这一节主要讲如何构建一个机器学习系统以及其中可能遇到的问题。
1. Building a Spam Classifier
1.1 Prioritizing What to Work On
创建一个垃圾邮件分类系统:
- 构建一个垃圾邮件的常用词字典
- 通过与字典中的词比较构建特征向量
- 构建分类器进行训练得到最优分类模型
如何优化分类模型,常用的方法:
1.2 Error Analysis
当构建一个机器学习应用时,建议的一个顺序是:
- 首先构建一个比较简单的模型或算法
- 绘画出该模型的学习曲线,来诊断该模型是否有高偏差和高方差问题,进一步判断收集更多的数据和特征是否有帮助
- 误差分析,对交叉验证误差进行分析,分析是什么导致了误差,并根据分析结果判断如何改善模型,
2. Handling Skewed Data
2.1 Error Metrics for Skewed Classes
(1)偏斜类(Skewed Classes)是指假设一个样本中有两类,其中一类的数目比另一类的样本数目要多的多,这时我们用总体分类精度来评价该机器学习模型可能会出现较大的误差和问题,比如利用一个简单的模型(y=0)就可以获得很高的模型精度,但是这显然不适合实际样本的,所以就需要使用其他方法来对该模型进行评价,避免偏斜类的问题。所以就产生了Precision和Recall评价方法。
(2)Precision 和Recall是另一种评价模型精度的方法,对于偏斜类问题能较好的对模型进行评价。
Predicted Class/ Actual Class | 1 | 0 |
---|---|---|
1 | True Positive | False Positive |
0 | False Negative | True Negative |
计算Precision和Recall的公式如下:
2.2 Trading Off Precision and Recall
(1)通过Precision和Recall参数可以定量评价一个模型,但是有时需要根据实际情况选择是高Precision还是高Recall,对于逻辑回归模型,这可以通过修改阈值来实现,但是如何自动的选择合适的阈值呢?
(2)F Score
利用precision和recall无法全面的对模型进行评价,F Score是将precision和recall合在一起的度量参数评价指标,可以基本权衡一个算法的有效性。
3. Using Large Data Sets
3.1 Data for machine learning
大数据集能保证我们能获得一个低偏差和低方差的模型
- 如果我们有大量的特征,则可以避免High Bias的问题
- 同时如果我们有大量的数据,则可以避免High Variance的问题
- 具有较低的训练集误差和交叉误差,我们就可以获得一个较低的测试误差