项目模板

108 阅读4分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

项目名称:  某水产品年龄预测                            项目期:15天

 

项目简述:

通过与年龄判断相关的属性建立水产品年龄自动预测系统,此外通过特征选择找到影响该水产品年龄的主要特征。

项目所涉及技术:

Numpy,pandas,matplotlib,sklearn,mysql

项目所涉及理论与方法:

岭回归理论,OLS理论,岭迹理论,lambda选择方法,岭回归的压缩理论,岭回归选参方法,异常值检验方法,相关与多重相关理论,正态分布理论,数据的统计性分类,PCA降维理论,bias-variance-tradeoff理论

项目流程:

一,数据建模:

  1. 分析目的:通过该水产品年龄相关身体信息,自动判别该水产品年龄,从而据此制定出相应售价。此外,找出主要的年龄影响因素。从而达到快速判别甚至人眼可识别年龄。

  2. 找到并确定所有与年龄相关特征,建立特征框架,然后根据这些特征采集自然数据。

3.数据预处理:

(1)数据质量检验

     a. 缺失值检验

     b. 异常值检验

     c. 不一致值检验

     d. 重复数据及含有特殊符号的数据检验

(2)数据清理与必要处理

     a. 数据清洗与整理:去除无效字符,缺失值补充,重复行或列、无用行或列删除,离群点检验,行列顺序调整等。

     b. 数据变换与适合的数据规约

(3)数据特征分析

     a. 分布分析

     b. 统计量分析

     c. 数据类型分析

     d. 贡献度与相关性分析

  1. 特征处理

(1)整理和构造特征

     a. 对数值型数据(定距型数据(Interval Scale)or 定比型数据 (Ratio Scale)): 无量纲化(譬如归一化);离散化等

     b. 对类别型数据(定类型数据(Nominal Scale)):用数字表示类别;例如公:1,母:0

(2)特征降维:

     PCA降维

二,算法选择

 根据数据模型特征选择岭回归算法。通过10折交叉验证优化模型。同时通过R2-Score,Mape Rmse等检验模型进行模型检验。

三,主特征分析

   通过REF法和岭迹法综合分析出主要特征,删除非重要特征,并导入模型检验。

 

四,通过优化和消参后模型对该水产品年龄进行预测

项目中遇到的问题:

  1. 再从数据库Mysql中调用数据时,出现查询不到所需数据的情况,经检查数据库表格,发现很多数据分布混乱,有的甚至一列数据分布在不同表格,后把数据重新整理分配,并把各个表格重新编号问题得以解决。由此可见数据的集中有序对数据的调取十分重要。

  2. 由于该数据异常值较多,如果过度追求R2-Score在训练时期的评分,反而造成测试时期R2-Score的评分大大下降。依据bias-variance-tradeoff理论,改变lambda参数值,降低训练时期R2-Score的评分,得到满意的测试评分。

  3. 在求解相关系数时,由于没有注意该数据集的复杂性(定必,定类,定距型数据均有)。采用了皮尔森关联系数计算特征与结果之间的相关性,后改为计算spearman相关系数。

  4. 分布检验发现部分数据为非正态分布,因此采用了数据归一化处理。

  5. 最好采用pandas作图

项目总结:

由于数据量限制,预测的相对误差在8%左右。后期可增加数据量,提高预测精度。此外,考虑到数据的某些特殊性,后期可尝试Cart_Regression 或者Random_forest、SVM算法继续改进模型。

项目前景:

通过高速自动对某水产品进行价格定级,使水产品销售智能化、标准化。另外,所有依据年龄定价的水产品均可通过该模型进行年龄预测,市场应用前景巨大。