很久以前看吴恩达老师的视频和西瓜书时用jupyter写的,今天想起来就把它转到这里,真的挺方便。
绪论
样本空间(属性空间):属性张成的空间。如色泽、根蒂、敲声张成的用于描述西瓜的三维空间,每个西瓜都能在这个空间找到自己的坐标位置。
特征向量:空间中每一个点所对应的坐标向量。
泛化能力:学得模型适用于新样本的能力。
假设空间:所有假设组成的空间。假设西瓜的好坏由“色泽”,“根蒂”以及“敲声”决定,且"色泽"、"根蒂"和"敲声"分别有3、2、2 种可能取值,则假设空间大小就等于(加1是该种属性无论取什么值都合适、好瓜的概念不存在): ( 3 + 1 ) ∗ ( 2 + 1 ) ∗ ( 2 + 1 ) + 1 = 37 (3+1)*(2+1)*(2+1)+1=37 (3+1)∗(2+1)∗(2+1)+1=37
版本空间:假设空间中,与训练集正例一致的集合。
from IPython.display import Image
libo="/Users/libo/Pictures/西瓜书/"
Image(filename = libo + "1.png", width=500, height=60)
libo="/Users/libo/Pictures/西瓜书/"
Image(filename = libo + "2.png", width=600, height=60)
归纳偏好:学习算法在学习过程中对某种类型假设的偏好。针对具体问题而言。
模型评估与选择
错误率:分类错误的样本数占样本总数的比例
精度:1-错误率
经验误差:训练集上的误差
泛化误差:新样本上的误差
测试集与训练集的区分方法:
1.留出法:分为2个互斥的集合
2.交叉验证法:将数据集分为K个大小相似的互斥子集,每个子集尽可能保持数据一致性,即从数据集中分层采样。然后,用K-1个子集并集做为训练集,1个做为测试集。
3.自助法:前面2种方法的数据集要么比原数据集小,要么太复杂。给定D,每次随机挑选一个样本放入D*,将该样本放回D。重复执行m次,则得到D*:含m个样本的集。样本在m次采样中始终不被采的概率是:
(
1
−
1
m
)
m
(1-\frac{1}{m})^m
(1−m1)m
将D*训练,
D
−
D
∗
D-D*
D−D∗为测试
性能度量:衡量模型泛化能力的评价标准。回归任务中常用的是(均方误差): E ( f ; D ) = 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 E(f;D)=\frac{1}{m}\sum_{i=1}^m (f(x_i)-y_i)^2 E(f;D)=m1∑i=1m(f(xi)−yi)2
性能度量的几个概念:
1.错误率:分类错误的样本占样本总数的比例。
2.精度:分类正确的样本占样本总数的比例。
3.查准率(Precision):学习器挑出的好瓜中有多少是真正的好瓜?
4.查全率(Recall):所有真实的好瓜中,有多少被学习器挑出来了?
libo="/Users/libo/Pictures/西瓜书/"
Image(filename = libo + "3.jpg", width=500, height=60)
则查准率P与查全率R分别定义: P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP
P和R是相互矛盾的度量。希望将所有好瓜尽可能挑出来,则放掉一些坏瓜进来,R高了,但P会降低;若希望好瓜比较把握,则会漏掉一些好瓜,P高了,但R会降低。
libo="/Users/libo/Pictures/西瓜书/"
Image(filename = libo + "3.png", width=400, height=60)
优劣判断:C被A全包,则A的性能优于C;谁面积大谁优;平衡点(P=R)的取值比较。