1、判断问题(分类/回归)
2、收集数据(使用爬虫抓取数据/使用公司业务数据/使用开源数据)
3、数据标注(为搜集好的数据打标签。例如,猫狗图片分类问题,从网上抓取猫和狗的图片,为图片做标注,这张图片是猫还是狗。再譬如舰船目标检测,框出舰船的位置,再注明舰船的类别。)
4、数据预处理、主要包括删除重复值,缺失值的处理,数据归一化,特征工程(特征选择),主成分分析,数据分箱等
5、模型选择(从简单的模型尝试起)
如何判断模型的好坏?
1)根据评估指标来判断(直接用来判断模型的好坏)
分类问题指标:查准率(Precision)、查全率(Recall)(越高越好),准确率(Accuracy)等
正例和反例
例如:预测一段代码有无bug
从代码中抽特征(特征1,特征2,特征3,标签(1和0))
约定正例为1(有bug),反例为0(无bug)
真正例(TP):一个样本,真值为1,用模型预测也为1
假正例(FP):一个样本,真值为0,用模型预测也为1
真反例(TN):一个样本,真值为0,用模型预测也为0
假反例(FN):一个样本,真值为1,用模型预测也为0
查准率(Precision)=TP/(TP+FP)
查全率(Recall)=TP/(TP+FN)
回归问题指标:均方误差(MSE),平均绝对误差(MAE)
2)数据集的划分
直接用获取的数据训练模型是否可以?
答:不可以,直接用经过数据预处理的所有数据训练模型可能会出现问题,有可能模型在训练数据上效果非常好,在真实场景下的测试数据上效果非常差,即会出现过拟合的问题。
两个概念:
过拟合:训练的时候,效果非常好,但是测试的时候,效果很差
欠拟合:训练的时候,效果非常差
因此,需要对数据集做划分——做验证(验证模型)
一般会将数据集划分为训练集和验证集,如何划分?
- 留出法(hold-out):80%做训练,20%做验证(注:使用分层采样的方式)
例:1000张图片,500张是猫,500张是狗
分层采样:800张训练集(400张是猫,400张是狗)
200张验证集(100张是猫,100张是狗)
- k折交叉验证
- 多次k折交叉验证
- 自助法
6、划分数据集,做验证
7、训练好模型并根据验证集调优后,在真实的数据集上做测试。
8、测试完毕即可部署模型(部署模型)
9、将模型实际使用过程中的数据添加到训练集中,进行模型调优