机器学习第六周(三)

来源:互联网 发布:ins聊天软件下载 编辑:程序博客网 时间:2024/05/18 01:02

  • 构建垃圾分类器
  • 错误分析Error Analysis
  • 数值计算来评估你的机器学习算法

构建垃圾分类器


判断邮件是否为垃圾邮件,从邮件中的字母来分析。
1)、给出能分辨垃圾邮件和非垃圾邮件的一些单词。
2)、在要求评定的emil遍历找出最频繁的单词。
3)、当1)中的单词能在2)中找到,输入1,否则0,构建向量。

构建垃圾分类器


怎样分类的降低错误率呢???

作者这里给出四种方法:
降低错误率
因为每种方法实验的时间成本很高,所以我们需要找到最有效的那一种方法。


错误分析(Error Analysis)

作者这里推荐解决机器学习问题的一般步骤:

1)、从一个简单的算法开始,实现它并且在交叉验证数据集上进行测试。
如果你准备研究机器学习的东西,或者构造机器学习应用程序,最好的实践方法不是建立一个非常复杂的系统,拥有那么多复杂的变量,而是构建一个简单的算法,这样你可以很快地实现它。

2)、绘制出学习曲线来进而决定是否需要更多的数据,或者更多的特征,等等。

3)、误差分析:手动检查在交叉验证集中的错误,并尝试找出大部分错误例子的趋势。

错误分析具例

交叉验证集中样本有mcv=500。算法错误的分类了100封邮件。
手动检查者100个误分类样本,在基于下面的俩个条件再重新分类:

a)、它们是什么类别的邮件

如果你发现算法对于某个类别的分类区分的很差(比如说大部分的错误分类的邮件其实都属于钓鱼邮件这种类别,就证明算法对钓鱼邮件的识别很差)这说明,你应该花更多时间来研究这种类型的邮件。然后看看你是否能通过构造更好的特征变量来正确区分这种类型的邮件。

b)、查看哪些特征可能会帮助算法正确地分类邮件

比如说查看邮件分别属于“故意拼写错误”“不正常的来源”“有垃圾邮件特有的标点符号”,如果你发现在错误分类的邮件中,很少有故意拼写错误的情况,那么你就可以不用花太多时间在这一特征上了。如果你发现有垃圾邮件特有的标点符号这种类别的邮件很多,那么这就是一个很强的特征,说明你应该花费时间在这种类别的分类上。

这种误差分析是手动检测的过程,检测算法可能会犯的错误,这通常能帮你找到更为有效的手段。


数值计算来评估你的机器学习算法

将误差结果作为一个单一的数值是非常重要的。否则很难评估算法的性能

作者这里给出了“词干提取”软件的例子:
词干提取软件会将单词”discount”、”discounts”等词视为同一个单词词干提取软件只会检查单词的开头几个字母,这虽然有用,但也可能会造成一些问题。举个例子,这个软件会把单词”universe(宇宙)”和”university(大学)”也视为同一个单词,因为他们的开头是一样的。这就误判了。

因此这里可以用数值来评估算法性能,具体的说,你应该通过交叉验证来验证不用词干提取与用词干提取的算法的错误率。比如:如果你不在你的算法中使用词干提取,然后你得到比如5%的分类错误率,然后你再使用词干提取来运行你的算法,你得到比如3%的分类错误率,那么这很大的减少了错误的发生,于是你决定词干提取是一个好方法。

原创粉丝点击