携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情
项目名称: 某水产品年龄预测 项目期:15天
项目简述:
通过与年龄判断相关的属性建立水产品年龄自动预测系统,此外通过特征选择找到影响该水产品年龄的主要特征。
项目所涉及技术:
Numpy,pandas,matplotlib,sklearn,mysql
项目所涉及理论与方法:
岭回归理论,OLS理论,岭迹理论,lambda选择方法,岭回归的压缩理论,岭回归选参方法,异常值检验方法,相关与多重相关理论,正态分布理论,数据的统计性分类,PCA降维理论,bias-variance-tradeoff理论
项目流程:
一,数据建模:
-
分析目的:通过该水产品年龄相关身体信息,自动判别该水产品年龄,从而据此制定出相应售价。此外,找出主要的年龄影响因素。从而达到快速判别甚至人眼可识别年龄。
-
找到并确定所有与年龄相关特征,建立特征框架,然后根据这些特征采集自然数据。
3.数据预处理:
(1)数据质量检验
a. 缺失值检验
b. 异常值检验
c. 不一致值检验
d. 重复数据及含有特殊符号的数据检验
(2)数据清理与必要处理
a. 数据清洗与整理:去除无效字符,缺失值补充,重复行或列、无用行或列删除,离群点检验,行列顺序调整等。
b. 数据变换与适合的数据规约
(3)数据特征分析
a. 分布分析
b. 统计量分析
c. 数据类型分析
d. 贡献度与相关性分析
- 特征处理
(1)整理和构造特征
a. 对数值型数据(定距型数据(Interval Scale)or 定比型数据 (Ratio Scale)): 无量纲化(譬如归一化);离散化等
b. 对类别型数据(定类型数据(Nominal Scale)):用数字表示类别;例如公:1,母:0
(2)特征降维:
PCA降维
二,算法选择
根据数据模型特征选择岭回归算法。通过10折交叉验证优化模型。同时通过R2-Score,Mape Rmse等检验模型进行模型检验。
三,主特征分析
通过REF法和岭迹法综合分析出主要特征,删除非重要特征,并导入模型检验。
四,通过优化和消参后模型对该水产品年龄进行预测
项目中遇到的问题:
-
再从数据库Mysql中调用数据时,出现查询不到所需数据的情况,经检查数据库表格,发现很多数据分布混乱,有的甚至一列数据分布在不同表格,后把数据重新整理分配,并把各个表格重新编号问题得以解决。由此可见数据的集中有序对数据的调取十分重要。
-
由于该数据异常值较多,如果过度追求R2-Score在训练时期的评分,反而造成测试时期R2-Score的评分大大下降。依据bias-variance-tradeoff理论,改变lambda参数值,降低训练时期R2-Score的评分,得到满意的测试评分。
-
在求解相关系数时,由于没有注意该数据集的复杂性(定必,定类,定距型数据均有)。采用了皮尔森关联系数计算特征与结果之间的相关性,后改为计算spearman相关系数。
-
分布检验发现部分数据为非正态分布,因此采用了数据归一化处理。
-
最好采用pandas作图
项目总结:
由于数据量限制,预测的相对误差在8%左右。后期可增加数据量,提高预测精度。此外,考虑到数据的某些特殊性,后期可尝试Cart_Regression 或者Random_forest、SVM算法继续改进模型。
项目前景:
通过高速自动对某水产品进行价格定级,使水产品销售智能化、标准化。另外,所有依据年龄定价的水产品均可通过该模型进行年龄预测,市场应用前景巨大。