常见的监督式学习任务:回归任务(预测值)和分类任务(预测类)
数据集
数据集: MNIST, 识别图像中的手写数字,机器学习领域的“Hello World”
MNIST介绍:7W数据集(图片),每张图片784个特征,图片是:28*28像素,每个特征代表一个像素点的强度,从0(白色)到255(黑色);目标label:表示的数字
SGD
随机梯度下降分类器:用于二元分类
用到的工具:
图像显示:
%matplotlib inline
matplotlib.pyplot
imshow: image show 图像显示,参数cmap:color map, 颜色图谱
np.random.shuffle/permutation
SGD分类器
性能评估
K-folder交叉验证
准确率通常无法成为分类器的首要性能指标,特别是在处理偏斜数据集;
混淆矩阵:
[[真负类TN, 假正类FP]
[假负类FN,真正类TP]]
T:True, F:False; P:Positive, N:Negtive
比如:二元分类,预测数字是否为5,那就有两个类别:正类别“5”和负类别“非5”
TN: 本身是负类,预测对了。将6成功预测为“非5”
FP:本身是负类,预测错误。将6预测为“5”
FN:将5预测为“非5”
TP:将5成功预测为“5”
精度:precision = TP / (TP + FP)
例如:总共(TP+FP)个实例里,有TP个是正确的。
当他说一张图片是5时,只有77%是准确的
召回率/灵敏度:recall = TP / (TP + FN)
解释:(TP+FN )个实例里找出了TP个正确的
只有79%数字5被检测出来。
from sklearn.metrics import presicion_score, recall_score
F1分数:
f1_score
重点理解:鱼与熊掌不可兼得,精度/召回率权衡