机器学习(二)
机器学习(二),用于机器学习的数据一定要是数据平衡的,如果数据严重失衡的话,那么对于机器学习来说,可能会学习不出什么出来。就好比这次的赛题来说,造假公司与非造假公司的数量比达到了1:100,如果直接使用这样不平衡的数据去进行机器学习,那么就会导致训练的结果偏向于非造假公司,可能到时候预测出来的结果会公司全是非造假公司。
在进行机器学习之前,我们首先要搞清楚,选着哪一种机器学习来建立模型,在比较机器学习时,用什么指标进行比较。这是我们在进行机器学习之前需要考虑的。
交叉验证
将给定的数据划分为训练集与测试集。为了更好的训练模型,继续将训练集划分成n块,1块作为验证集,剩余n-1块作为子训练集,验证集依次从第一块取到第n块。将模型训练n次,比较结果,选取恰当的参数值作为模型的参数值。
混淆矩阵
上面介绍了训练模型的方法,下面就要寻找评判指标呢,这里评判指标的主要作用是,评判模型是否合乎需求,预测出来的数据是否准确。
#导入相关包
from sklearn.metrics import confusion_matrix
#真实值
true1 = [0,0,0,0,1,1,0,0,1,1]
#预测的值
test1 = [0,0,1,0,1,1,0,0,1,0]
test2 = [0,0,0,0,1,1,1,1,0,1]
#打印混淆矩阵 参数为:测试值,真实值
cnf_m =confusion_matrix(test2,true1)
结果
0(真实值) | 1(真实值) | |
---|---|---|
0(预测值1) | 5 | 1 |
1(预测值1) | 1 | 3 |
0(预测值2) | 4 | 1 |
1 (预测值2) | 2 | 3 |
混淆矩阵主要是反映了预测值与真是值之间的关系。
比如说:预测值1中为 0 的且对应真实值中为 0 的个数有5个,预测值1中为 0 的且对应真实值中为 1 的有1个
。
混淆矩阵中左边的为预测值,上面的为真实值。
总结
这一篇文章还是介绍了一些在机器学习之前的一些准备。只有把准备工作做好了,在进行机器学习时才会很轻松。。。。