确定问题类别
有监督或者无监督问题,是分类还是回归问题。
数据采集
使用爬虫收集远程监督数据,或者收集目前已有开源数据集。
数据清洗
对于收集来的数据进行清洗工作,比如异常值检测(离群点检测),可以采用聚类方法k-means,找出离群点,以及基于统计的方法如分布在正态分布不接受的范围内的。
数据集分割
将数据集分为训练集,验证集,测试集。
特征工程
采用交叉特征,统计特征(有的特征不能统计测试集和验证集的,否则会过拟合),特征离散化等。
数据可视化以及模型选择
将数据根据label,如果是分类问题,可以给不同标签的点打上不同的颜色(如果特征比较多,可以先用pca降维之后再可视化),然后根据样本的分布情况(比如是用线性分类边界,还是非线性分类边界比较好),具体确定分类算法,线性分类比较可以使用逻辑回归,线性svm等,非线性分类可以用决策树等。
模型训练
用sklearn,tensorflow,xgboost,lightgbm等库进行模型训练(使用训练集),同时使用验证集检测优化目标,防止过拟合,也可以采用交叉验证的方式。
模型评估
使用测试集测试模型性能,之后进行线上A/Btest。
如果模型性能较差:
1,过拟合或者欠拟合。
2,数据是否清洗干净。
3,如果是过拟合可以加大模型的正则化项,L1或着L2,或者dropout等。(也可以多训练几个差异较大的模型,融合抑制过拟合)。
4,如果是欠拟合可以多用几个模型,进行模型融合,或者减小正则化项,或者查看使用的模型是否适用于当前问题。