解决机器学习问题的流程

确定问题类别

有监督或者无监督问题,是分类还是回归问题。

数据采集

使用爬虫收集远程监督数据,或者收集目前已有开源数据集。

数据清洗

对于收集来的数据进行清洗工作,比如异常值检测(离群点检测),可以采用聚类方法k-means,找出离群点,以及基于统计的方法如分布在正态分布不接受的范围内的。

数据集分割

将数据集分为训练集,验证集,测试集。

特征工程

采用交叉特征,统计特征(有的特征不能统计测试集和验证集的,否则会过拟合),特征离散化等。

数据可视化以及模型选择

将数据根据label,如果是分类问题,可以给不同标签的点打上不同的颜色(如果特征比较多,可以先用pca降维之后再可视化),然后根据样本的分布情况(比如是用线性分类边界,还是非线性分类边界比较好),具体确定分类算法,线性分类比较可以使用逻辑回归,线性svm等,非线性分类可以用决策树等。

模型训练

用sklearn,tensorflow,xgboost,lightgbm等库进行模型训练(使用训练集),同时使用验证集检测优化目标,防止过拟合,也可以采用交叉验证的方式。

模型评估

使用测试集测试模型性能,之后进行线上A/Btest。

如果模型性能较差:

1,过拟合或者欠拟合。

2,数据是否清洗干净。

3,如果是过拟合可以加大模型的正则化项,L1或着L2,或者dropout等。(也可以多训练几个差异较大的模型,融合抑制过拟合)。

4,如果是欠拟合可以多用几个模型,进行模型融合,或者减小正则化项,或者查看使用的模型是否适用于当前问题。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章