sklearn应用于机器学习时的验证方法

        在讨论sklearn实现验证前,记录一个关于模型验证的常识以便今后查阅。

        在通过训练获得一个对象后,需要进行验证。此时,对于验证数据有一定的要求。之前,我的做法是从原始数据中随机抽取10000组数据进行验证,验证效果证明还可以。但是突然发现一个问题,由于应用是用于检测异常信息,而异常信息与正常信息相比,占比很低,这样验证出来的结果是不可靠的。例如,天气预报中预测降水不容易,平常人靠猜猜中的概率很低。但是如果猜不降水,也就是猜明天不下雨,那其实猜中的概率是很高的。所以对于验证数据,需要加大异常信息的比重,最终发现其实结果并没有那么完美。

             验证的过程需要放入交叉验证。在模型训练的过程中,在没有把握之前尽量不碰用于验证的数据。可以采用交叉验证。其中cv是指把样本随机分成几份,scoring指评估方式以“准确率”的形式展现。

        在验证分类的结果时,还可以采用混淆矩阵来帮助查看分类器。当然,由于多标签分类的特殊性,无法利用混淆矩阵。目前,在多类别分类中应用效果较好。每行每列都有准确分类和误分的数量。

        对于最终的验证,sklearn也同样提供了工具帮助完成。

[[2892    17   18    0    0    0    0    0    0]
 [   5    1435   0    0    9    0    0    0    0]
 [  11    0  298    0    0     1    0    0    0]
 [   0    0   0    0    0    0    0    0    0]
 [   3    75   0    0     4750   0    0    45    0]
 [  19    0   70    0    0    769   0    0    0]
 [   1    0   0    0    0    0    0    0     0]
 [  24    0   0    1     119   0    0    255   0]
 [   5    0   0    0     1    13   0    0  161]]
from sklearn.model_selection import cross_val_score
cross_val_score(clf, x_train, ytrain, cv=5, scoring="accuracy")
from sklearn.metrics import confusion_matrix
confusion_matrix(y_test, y_result)
from sklearn.metrics import accuracy_score
accuracy_score(y_result, y_test)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值