标签:10 入门 dummy pred scikit metrics score print true
除了使用estimator的score函数简单粗略地评估模型的质量之外,在sklearn.metrics模块针对不同的问题类型提供了各种评估指标并且可以创建用户自定义的评估指标
metrics评估指标概述
sklearn.metrics中的评估指标有两类:以_score结尾的为某种得分,越大越好,以_error或_loss结尾的为某种偏差,越小越好。
常用的分类评估指标包括:accuracy_score,f1_score, precision_score,recall_score等。
常用的回归评估指标包括:r2_score,explained_variance_score等等。
常用的聚类评估指标包括:adjusted_rand_score,adjusted_mutual_info_score等等
代码
调用方法:metrics.方法名(真实值,预测值)
from sklearn import metrics
y_pred = [0,0,0,1,1,1,1,1]
y_true = [0,1,0,1,1,0,0,1]
print(metrics.confusion_matrix(y_true,y_pred))
print('准确率:',metrics.accuracy_score(y_true,y_pred))
print('类别精度:',metrics.precision_score(y_true,y_pred,average = None)) #不求平均
print('宏平均精度:',metrics.precision_score(y_true,y_pred,average = 'macro'))
print('微平均召回率:',metrics.recall_score(y_true,y_pred,average = 'micro'))
print('加权平均F1得分:',metrics.f1_score(y_true,y_pred,average = 'weighted'))
利用基于经验的基本策略作比较
比如有一个分类问题,如果有100个样本,其中90个正例,10个反例,那么即使全都预测为正,就能达到90%的正确率,一般的评价指标对于这类问题的评价不敏感,这是可以通过基准来评价模型的优劣性
DummyClassifier 实现了几种简单的分类策略:
- stratified 通过在训练集类分布方面来生成随机预测.
- most_frequent 总是预测训练集中最常见的标签.
- prior 类似most_frequenct,但具有precit_proba方法
- uniform 随机产生预测.
- constant 总是预测用户提供的常量标签.
DummyRegressor 实现了四个简单的经验法则来进行回归:
- mean 总是预测训练目标的平均值.
- median 总是预测训练目标的中位数.
- quantile 总是预测用户提供的训练目标的 qua
我们设定一个不平衡的数据集,其标签分布如下所示
# 比较线性svm分类器和虚拟估计器的得分
from sklearn.dummy import DummyClassifier
from sklearn.svm import SVC
svc = SVC(kernel='linear', C=1).fit(X_train, y_train)
print('linear svc classifier score:',svc.score(X_test, y_test))
dummy = DummyClassifier(strategy='most_frequent',random_state=0)
dummy.fit(X_train, y_train)
print('dummy calssifier score:',dummy.score(X_test, y_test))
此时得到结果
linear svc classifier score: 0.631578947368
dummy calssifier score: 0.578947368421
发现支持向量机的准确率并不高,说明需要改善模型
标签:10,入门,dummy,pred,scikit,metrics,score,print,true 来源: https://www.cnblogs.com/xiaoyunbowen/p/15312587.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。