新手入门机器学习十大算法

新手入门机器学习十大算法

在机器学习的世界中,有一种被称为"无免费午餐"的定理。它意在说明没有哪种算法能够完美地解决每个问题,特别是对于监督学习问题。例如,神经网络不会总是比决策树要好,反之亦然。往往是有许多因素在起作用(如:数据集的大小、结构),共同决定了最后的结果。因此,我们应该针对具体的问题尝试许多不同的算法,并选取一部分数据作为"测试集"来评估性能,最后选择性能最好的算法。

线性回归已经存在了200多年,并且已经被广泛研究。使用该方法时,我的一些经验是删除非常相似的变量,并尽可能消除数据中的噪声。总而言之,线性回归是一种快速而简单的算法,非常适合大家作为入门的第一种算法来尝试。2、逻辑回归(LogisticRegression)逻辑回归是机器学习从统计学领域借鉴过来的另一种方法。

3、线性判别分析(LinearDiscriminantAnalysis)逻辑回归是一种仅限于两分类问题的分类算法。但如果我们有两个以上的类别,那么线性判别分析算法是首选的线性分类算法。LDA的表示是非常直接的:它由每个类计算的数据所统计的属性组成。此外对于单个输入变量,它包括:每个类别的平均值以及所有类别计算的方差。

LDA是通过计算每个类的判别值并对具有最大值的类进行的预测。该技术的前提是假设数据具有高斯分布,因此我们需要事先从数据中删除异常值。LDA也是分类预测建模问题的一种简单而强大的算法。4、决策树模型(ClassificationandRegressionTrees)决策树是机器学习中预测建模一种重要的算法。

树的叶节点包含用于进行预测的输出变量(y)。预测过程是通过遍历树的分裂直到到达叶节点并输出该叶节点处的类值。决策树学模型的优势在于学习以及预测的速度都非常快。并且树模型适用于各种各样的问题,不需要对数据进行任何特殊的处理。5、朴素贝叶斯(NaiveBayes)NaiveBayes是一种简单但非常强大的预测建模算法。

朴素贝叶斯之所以被称为"naive",是因为它假设每个输入变量是独立的。现实这是一个强有力的假设,对于实际数据是不成立的,但该技术对于大范围的复杂问题是非常有效。六、K近邻算法(K-NearestNeighbors)KNN算法非常的简单、有效。KNN的模型表示是整个训练数据集。KNN算法的原理是通过搜索整个训练集来寻找K个最相似的实例,并总结这K个实例的输出变量,进而对新的数据点进行预测。

七、学习矢量量化(LearningVectorQuantization)K近邻的缺点是我们需要等候整个训练数据集。而学习矢量量化算法(简称LVQ)是一种神经网络算法,允许我们选择要挂起的训练实例数量,并可以准确地学习到这些实例。如果我们的数据集可以使用KNN的方法训练出良好的结果,那么就可以尝试使用LVQ算法来减少存储整个训练数据集的内存需求。LVQ的表示是码本(权值)向量的集合。

8、支持向量机(SupportVectorMachines)支持向量机可能是目前最流行的机器学习算法之一。SVM算法的核心是选择一个最佳的超平面将输入变量空间中的点按照它们的类(0或1)分开。所谓的"超平面"其实就是一个分割输入变量空间的线,在二维空间中,我们可以将其可视化为一条直线,并且假设我们所有的输入点都可以被这条直线完全分开。

此外,超平面和最近数据点之间的距离称为边距。可以分离两个类的最佳或最优超平面是具有最大边距的行。这些点与定义超平面和分类器的构造是有关,这些点称为支持向量。它们可以支持或定义超平面。最后,SVM可能是最强大的分类器之一,值得我们使用数据集尝试使用。9、随机森林(BaggingandRandomForest)随机森林是最流行和最强大的机器学习算法之一。

10、BoostingandAdaBoostBoosting是一种集成方法,试图从多个弱分类器中创建强分类器。这一过程是通过从训练数据种构建模型,然后创建第二个模型来完成的,该模型试图纠正来自第一个模型的错误。以此类推,添加模型直到能完美预测训练集或是添加最大数量的模型。AdaBoost是第一个真正成功实现Boosting的算法,是理解boosting方法的最佳起点。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181003A0TJ9Q00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券