假设空间与学习
假设空间,就是一个由所有假设构成的空间。因为世界上很多暗含的规律,总有一条符合想要解决的问题。因此,学习的过程也可以看成是在假设空间中搜索符合的规律的过程。当然很多事情的假设空间是很庞大,是无法通过遍历法来探寻到符合条件的假设。因此对假设空间的搜索就需要有一定的策略,例如:自顶向下、自底向上、从一般到特殊、从特殊到一般等。
但是,在实际的工作中,是不存在可以覆盖所有情况的数据集的。也就是说,通过这样的数据集训练出的模型,是达不到真相的。只能说,不同的策略训练出的模型可以不同程度的逼近真相。
在这种情况下,我们可能在假设空间中得到很多符合训练集的假设。“奥卡姆剃刀”策略中说:若有多个假设与观察一致,则选择最简单的那个。从直观上来看,最简单的假设可以覆盖更多的特征空间。但是,这并不能针对所有的问题。因此我们还需要有一些指标对学习到的模型性能进行评估。
评估指标
accuracy or error
准确率和错误率比较好理解,假设有m个样本,其中a个样本划分错误。
误差就是:
E
=
a
m
E=\frac{a}{m}
E=ma
而准确率就是
1
−
E
1-E
1−E。
precision and recall(召回率)
当然,有的时候,准确率不是那么的好用。特别是我们想要进行异常检测的时候。假设有100件物品,其中只有1件是异常物品。我们即使是将所有的产品都预测成正确的产品,也有99%的准确率。这显然是不符合要求的。
因此我们需要有另一种指标。
可以这样定义:
- TP为真正例,就是本身为正例且预测为正例
- FP为假正例,真实情况为反例,预测为正例
- TN为真反例,真实情况为反例,预测为反例
- FN为假反例,真实情况为正例,预测为反例
这样的,precision就可以定义为所有预测为正例的样本中,正例的个数:
P
=
T
P
T
P
+
F
P
P=\frac{TP}{TP+FP}
P=TP+FPTP
而recall可以定义为,样本中的正例有多少被预测正确了:
R
=
T
P
T
P
+
F
N
R=\frac{TP}{TP+FN}
R=TP+FNTP
评估方法
留出法
直接将数据集D划分为两个互斥的集合。其中一个用于训练集,另一个用于测试集。
交叉验证法
将数据集D划分为K个子集。每次从中选择一个作为测试集,其余作为训练集。然后得到的K个结果平均就是最终的结果。