Lesson11 系统设计

11-1 垃圾邮件分类

这一章主要介绍在我们设计机器学习系统时候,我们着重考虑的。

现在要设计一个区分垃圾邮件的系统。那么,第一种考虑方法是,我们选择所有可能成为垃圾邮件的单词,作为特征值。例如:

特征值 垃圾邮件单词 非垃圾邮件单词
x1 buy NG
x2 sell you
... ... ...

然后通过这些特征量根据不同的邮件进行训练。

如何做能够降低你的误差?

  • 收集更多的数据
  • 从邮件的地址出发
  • 从邮件的正文内容入手

你可能使用头脑风暴,这样做其实已经很不错了。也有可能你会突发奇想,想出一个特征来。

11-2 错误分析

当你开始一个机器学习的项目的时候,不是先想出很复杂的算法。而是以最快的速度构建出一个机器学习的方法。所以,正确的设计机器学习系统的姿势如下:

  • 1 快速的实现一个系统。并测试你的交叉验证集。
  • 2 绘制学习曲线。搞清楚是高偏差还是高误差问题
  • 3 错误分析。例如,分析那些被系统过滤出来的垃圾邮件和非垃圾邮件,找出其中可能存在的系统性规律。通过人工检查这些错误,可能知道是什么类型的错误,例如可能是药物邮件等。另外,可以看看哪些其他的特征量可以帮助我们,例如有很多感叹号。

错误分析的本质就是从哪些被错误分类的数据中再次寻找规律,并将这些规律做成特征。

除了这些,还需要一种能够评估你的机器学习好坏的数值方法,例如误差率,也就是增加了一种改善的方式,误差率如何。

11-3 误差度量(偏斜类)

例如,在计算癌症的逻辑回归中,你计算的癌症患者的误差是1%, 然而,实际上在所有的病人中得癌症的只有0.05%。那么,你的这个误差就显得不那么和谐,甚至是错误的。出现这种问题的根源在于其中一个样本的数量非常少,这种样本被叫做偏斜类。因此当你的数据中有偏斜类,那么产生的问题就是很小的误差,同时就算算法优化了,得到了误差的提升也是无法确定算法是否提升了。对于偏斜类问题不能使用 上节中的误差率进行分析。

因此当我们遇到具有偏斜类的数据集的时候,采用的是:查准率和召回率进行比较分析。下面的例子,介绍查准率和召回率。

对于癌症分类,y=1表示有;y=0表示没有

实际 y=1 实际 y = 0
预测 y=1 真阳性 假阳性
预测 y = 0 假阴性 真阴性
查准率 = 真阳性 / 预测阳性 = 真阳性 / (真阳性 + 假阳性)
召回率 = 真阳性 / 实际阳性 = 真阳性 / (真阳性 + 假阴性)

通过查准率和召回率来看具有偏斜类算法就更好。

11-4 平衡查准率和召回率

例如:

预测 1 if h(x) >= 0.5
预测 0 if h(x) < 0.5

高查准率,令 h(x) = 0.7 或者 0.9 可以更加的容易查出。

高召回率,令 h(x) = 0.3

当我们进行股票的涨跌预测的时候,使用高查准率更好。

那么,如何选择算法呢?需要对比不同算法下的查准率和召回率.

N/A 查准率(P) 召回率(R)
算法1 0.5 0.4
算法2 0.7 0.1
算法3 0.02 1.0

那么,究竟如何选择哪个算法呢?使用如下公式:

F = 2 PR/(P+R)

11-5 数据

劣质算法,在数据量很大的情况和优质算法可能差不多。这种情况往往是因为忽略数据的上下文中的一些特点。

那么,我们要做的是在预测一件事情的时候,将现有的特征量假设告诉一个这方面的专家,那么,他能否预测出结果呢?例如,仅仅知道房子的大小,专家能否预测价格呢?显然不能。所以,如果你的机器学习特征量使用的是仅仅房子大小,显然算法和算法之间是无法区分好坏的。

results matching ""

    No results matching ""