电子书

选择最佳机器学习分类模型及避免过拟合

第一章

选择正确的分类模型


什么是数据分类模型?

分类模型用于根据特定的特征集将项目分配给一个离散的组或类。

为什么做对这么难?

在给定的场景中,每个模型都有自己的优缺点。没有固定的流程图可以用来确定您应该使用哪个模型,而不过分简化考虑事项。选择数据分类模型还与业务用例和对您要实现的目标的充分理解密切相关。

如何选择合适的型号?

首先,确保你能回答以下问题:

  • 你有多少数据,它是连续的吗?
  • 它是什么类型的数据?
  • 你想要完成什么?
  • 把这个过程可视化有多重要?
  • 你需要多少细节?
  • 存储是一个限制因素吗?

当您确信自己理解了将要处理的数据类型以及它的用途时,就可以开始研究各种模型的优点了。有一些通用的经验法则可以帮助您选择最佳的分类模型,但这些只是起点。如果您正在处理大量的数据(性能或准确性方面的小差异可能会产生很大的影响),那么选择正确的方法通常需要尝试和错误,以实现复杂性、性能和准确性之间的正确平衡。下面的部分描述了一些常见的模型,这些模型对了解它们是有用的。

分类交叉验证

交叉验证是一种模型评估技术,用于评估机器学习算法在对未经训练的新数据集进行预测时的性能。这是通过对一个数据集进行分区,并使用一个子集来训练算法和用于测试的剩余数据来实现的。本文将更详细地讨论这种技术第三章

常见的分类模型

逻辑回归的一般图形。

尽管名称中有“回归”一词,但逻辑回归用于二元分类问题(数据只有两个类的问题)。逻辑回归被认为是一种更简单的分类技术,通常被用作在转向更复杂的模型类型之前建立基线的起点。

逻辑回归使用预测变量的线性组合来估计结果为0或1的概率。这就是为什么名字里有“回归”这个词。因为概率是根据预测变量的线性组合计算的,所以逻辑回归模型比较容易解释。

朴素贝叶斯模型的通用图。

如果数据不复杂,任务相对简单,可以尝试朴素的贝叶斯算法。它是一个高偏差/低方差的分类器,在使用有限的可用数据训练模型时,它比逻辑回归和最近邻算法有优势。

当CPU和内存资源是一个限制因素时,朴素贝叶斯也是一个不错的选择。因为朴素贝叶斯非常简单,它不倾向于过拟合数据,可以非常快速地训练。它还可以很好地处理用于更新分类器的连续新数据。

如果数据的大小和差异不断增加,而您需要一个更复杂的模型,那么其他分类器可能会更好。此外,它的简单分析也不是复杂假设的良好基础。

朴素贝叶斯通常是科学家在处理文本时首先尝试的算法(想想垃圾邮件过滤器和情感分析)。在排除这个算法之前先试试它是个好主意。

k最近邻居的一般图形。

根据数据点与训练数据集中其他点的距离对数据点进行分类是一种简单而有效的数据分类方法。\(k\)-最近邻(KNN)是“有罪关联”算法。

KNN是一个基于实例的懒惰学习者,这意味着它没有真正的训练阶段。您将训练数据加载到模型中,并将其放置,直到您真正想要开始使用分类器为止。当你有一个新的查询实例时,KNN模型查找最近邻居的指定的\(k\)数量;如果\(k\)是5,那么你找到了五个最近的邻居。如果您希望应用一个标签或类,模型将投票决定它应该被分类到哪里。如果您正在执行一个回归问题,并希望找到一个连续的数,取\(k)最近的邻居的\(f)值的平均值。

虽然训练时间的KNN较短,实际查询时间(和存储空间)可能比其他模型要长。当数据点的数量增加时尤其如此,因为你要保存所有的训练数据,而不仅仅是一个算法。

这种方法的最大缺点是,它可能被不相关的属性所欺骗,这些属性掩盖了重要的属性。其他模型如决策树能够更好地忽略这些干扰。有很多方法可以纠正这个问题,比如对数据施加权重,因此在决定使用哪个模型时需要使用自己的判断。

决策树的通用图形。

要了解决策树如何预测响应,请从树中的根(开始)节点一直到包含响应的叶节点。分类树给出的响应是名义上的,比如真或假。回归树给出数值响应。

决策树相对容易理解;您可以看到从根到叶路径的完整表示。如果你需要与对结论如何得出感兴趣的人分享结果,这一点尤其有用。它们的速度也相对较快。

决策树的主要缺点是它们往往过拟合,但有集成方法来抵消这一点。Toshi Takeuchi为Kaggle比赛写了一个很好的例子袋装决策树来确定一个人在泰坦尼克号灾难中幸存的可能性。

支持向量机的通用图形。

当数据正好有两个类时,可以使用支持向量机(SVM)。支持向量机通过找到将一个类的所有数据点与另一个类的数据点分离的最佳超平面来对数据进行分类(支持向量机的最佳超平面是两个类之间有最大余量的超平面)。可以使用具有两个以上类的支持向量机,在这种情况下,模型将创建一组二进制分类子问题(每个子问题有一个支持向量机学习器)。

使用支持向量机有几个强大的优势。首先,它非常准确,而且不会过度拟合数据。其次,线性支持向量机相对容易解释。因为支持向量机模型非常快,一旦你的模型被训练,你可以丢弃训练数据,如果你有有限的内存可用。它还倾向于利用一种称为“核技巧”的技术很好地处理复杂的非线性分类。

但是,需要预先对svm进行训练和调优,因此在开始使用模型之前需要在模型上投入时间。另外,如果您使用的模型包含两个以上的类,那么它的速度也会受到很大影响。

神经网络的通用图形。

人工神经网络(ANN)可以学习,因此可以训练它寻找解决方案、识别模式、分类数据和预测未来事件。人们经常使用人工神经网络来解决更复杂的问题,如字符识别、股票市场预测和图像压缩。

神经网络的行为是由它的单个计算元素的连接方式以及这些连接的强度(或权值)来定义的。根据指定的学习规则,通过训练网络自动调整权重,直到它正确地执行所需的任务。

对于有经验的用户,人工神经网络非常擅长建模具有大量输入特征的非线性数据。如果使用正确,人工神经网络可以解决用简单算法难以解决的问题。然而,神经网络的计算成本很高,很难理解一个人工神经网络是如何达到一个解决方案的(从而推断出一个算法),而且对一个人工神经网络进行精细调整通常是不切实际的——你所能做的就是改变训练设置的输入并重新训练。

测试你的知识!

如何修正KNN模型以忽略不相关的属性?

做的不错!

对数据施加权重是正确答案。

knn的最大缺点是,它们可能会被不相关的属性所欺骗,而这些属性会掩盖重要的属性。对数据施加权重可以纠正这个问题。

做的不错!

对数据施加权重是正确答案。

knn的最大缺点是,它们可能会被不相关的属性所欺骗,而这些属性会掩盖重要的属性。对数据施加权重可以纠正这个问题。

你是对的!

knn的最大缺点是,它们可能会被不相关的属性所欺骗,而这些属性会掩盖重要的属性。对数据施加权重可以纠正这个问题。

Baidu
map