一般门户网站,广州在线网站制作,深圳广告公司集中在哪里,扁平风格企业网站源码AI目录#xff1a;sheng的学习笔记-AI目录-CSDN博客 分类准确度问题
假设有一个癌症预测系统#xff0c;输入体检信息#xff0c;可以判断是否有癌症。如果癌症产生的概率只有0.1%#xff0c;那么系统预测所有人都是健康#xff0c;即可达到99.9%的准确率。
但显然这样的…AI目录sheng的学习笔记-AI目录-CSDN博客 分类准确度问题
假设有一个癌症预测系统输入体检信息可以判断是否有癌症。如果癌症产生的概率只有0.1%那么系统预测所有人都是健康即可达到99.9%的准确率。
但显然这样的机器学习系统是失败的因为对于极度偏斜(Skewed Data)的数据只使用分类准确度是远远不够的。
针对这样的问题我们需要引入其他指标来评估机器学习分类结果的好坏。
混淆矩阵
对于二分类问题混淆矩阵是2x2分别是0和1其中每一行代表真实值每一列代表预测值 TPTrue Positive。预测为1实际为1预测正确。FPFalse Positive。预测为1实际为0预测错误。FNFalse Negative。预测为0实际为1预测错误。TNTrue Negative。预测为0实际为0预测正确。 指标
取值范围
这几个指标的取值都在0-1之间数值越接近于1效果越好
精度
预测数据中预测正确的数量就是精准率检索出来的条目有多少是正确的 召回率
真实发生数据预测正确的数量就是召回率所有正确的条目有多少被检索出来 F1Score
F1Score指标就是综合精准率和召回率两个指标只有当召回率和精度都很高时分类器才能得到较高的F1分数 ROC曲线
首先引入两个指标误报率(FPR)和召回率(TPR)。
其中FPR 它是指是被错误地预测为正类的样本占所有实际为负类的样本的比例。TPR 它是指被正确地预测为正类的样本占所有实际为正类的样本的比例。 举例
某池塘有1400条鲤鱼300只虾300只鳖。现在以捕鲤鱼为目的撒一大网逮着了700条鲤鱼200只虾100只鳖那么这些指标如下 ①.正确率700/(700200100)70% ②.召回率700/140050% ③.F值2*((70*50)/(7050))58.3%
代码
sklearn的精准和找回代码 from sklearn.metrics import precision_score, recall_scoreprecision_score(y_train_5, y_train_pred) # 4096 / (4096 1522)
0.7290850836596654recall_score(y_train_5, y_train_pred) # 4096 / (4096 1325)
0.7555801512636044
f1的代码 from sklearn.metrics import f1_scoref1_score(y_train_5, y_train_pred)
0.7420962043663375
指标对比分析
F1分数对那些具有相近的精度和召回率的分类器更为有利。
这不一定能一直符合你的期望在某些情况下你更关心的是精度而另一些情况下你可能真正关心的是召回率。
例如假设你训练一个分类器来检测儿童可以放心观看的视频那么你可能更青睐那种拦截了很多好视频低召回率但是保留下来的视频都是安全高精度的分类器而不是召回率虽高但是在产品中可能会出现一些非常糟糕的视频的分类器这种情况下你甚至可能会添加一个人工流水线来检查分类器选出来的视频。
反过来说如果你训练一个分类器通过图像监控来检测小偷你大概可以接受精度只有30%但召回率能达到99%当然安保人员会收到一些错误的警报但是几乎所有的窃贼都在劫难逃。遗憾的是鱼和熊掌不可兼得你不能同时增加精度又减少召回率反之亦然。这称为精度/召回率权衡。
由于ROC曲线与精度/召回率PR曲线非常相似因此你可能会问如何决定使用哪种曲线。有一个经验法则是当正类非常少见或者你更关注假正类而不是假负类时应该选择PR曲线反之则是ROC曲线。 参考文章
机器学习评估分类结果——精准率、召回率、F1Score_f1 score-CSDN博客
第三章.逻辑回归—正确率/召回率/F1指标非线性逻辑回归代码_正确率 召回率-CSDN博客
蜥蜴书机器学习实战