图解最常用的 10 个机器学习算法

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

在机器学习领域有种说法叫做“世上没有免费的午餐”简而言之它是指没有任何一种算法能在每个问题上都能有最好的效果这个理论在监督学习方面体现得尤为重要。

举个例子来说你不能说神经网络永远比决策树好反之亦然。模型运行被许多因素左右例如数据集的大小和结构。

因此你应该根据你的问题尝试许多不同的算法同时使用数据测试集来评估性能并选出最优项。

当然你尝试的算法必须和你的问题相切合其中的门道便是机器学习的主要任务。打个比方如果你想打扫房子你可能会用到吸尘器、扫帚或者拖把但你肯定不会拿把铲子开始挖坑吧。

对于渴望了解机器学习基础知识的机器学习新人来说这儿有份数据科学家使用的十大机器学习算法为你介绍这十大算法的特性便于大家更好地理解和应用快来看看吧。

文章目录

技术提升

技术要学会分享、交流不建议闭门造车。

好的文章离不开粉丝的分享、推荐资料干货、资料分享、数据、技术交流提升均可加交流群获取群友已超过2000人添加时最好的备注方式为来源+兴趣方向方便找到志同道合的朋友。

方式①、添加微信号dkl88191备注来自CSDN
方式②、微信搜索公众号Python学习与数据挖掘后台回复加群

01 线性回归

线性回归可能是统计学和机器学习中最知名和最易理解的算法之一。

由于预测建模主要关注最小化模型的误差或者以可解释性为代价来做出最准确的预测。 我们会从许多不同领域借用、重用和盗用算法其中涉及一些统计学知识。

线性回归用一个等式表示通过找到输入变量的特定权重B来描述输入变量x与输出变量y之间的线性关系。

Linear Regression

举例y = B0 + B1 * x

给定输入x我们将预测y线性回归学习算法的目标是找到系数B0和B1的值。

可以使用不同的技术从数据中学习线性回归模型例如用于普通最小二乘和梯度下降优化的线性代数解。

线性回归已经存在了200多年并且已经进行了广泛的研究。 如果可能的话使用这种技术时的一些经验法则是去除非常相似相关的变量并从数据中移除噪声。 这是一种快速简单的技术和良好的第一种算法。

02 逻辑回归

逻辑回归是机器学习从统计领域借鉴的另一种技术。 这是二分类问题的专用方法两个类值的问题。

逻辑回归与线性回归类似这是因为两者的目标都是找出每个输入变量的权重值。 与线性回归不同的是输出的预测值得使用称为逻辑函数的非线性函数进行变换。

逻辑函数看起来像一个大S并能将任何值转换为0到1的范围内。这很有用因为我们可以将相应规则应用于逻辑函数的输出上把值分类为0和1例如如果IF小于0.5那么 输出1并预测类别值。

Logistic Regression

由于模型的特有学习方式通过逻辑回归所做的预测也可以用于计算属于类0或类1的概率。这对于需要给出许多基本原理的问题十分有用。

与线性回归一样当你移除与输出变量无关的属性以及彼此非常相似相关的属性时逻辑回归确实会更好。 这是一个快速学习和有效处理二元分类问题的模型。

03 线性判别分析

传统的逻辑回归仅限于二分类问题。 如果你有两个以上的类那么线性判别分析算法Linear Discriminant Analysis简称LDA是首选的线性分类技术。

LDA的表示非常简单。 它由你的数据的统计属性组成根据每个类别进行计算。 对于单个输入变量这包括

  • 每类的平均值。

  • 跨所有类别计算的方差。

Linear Discriminant Analysis

LDA通过计算每个类的判别值并对具有最大值的类进行预测来进行。该技术假定数据具有高斯分布钟形曲线因此最好先手动从数据中移除异常值。这是分类预测建模问题中的一种简单而强大的方法。

04 分类和回归树

决策树是机器学习的一种重要算法。

决策树模型可用二叉树表示。对就是来自算法和数据结构的二叉树没什么特别。 每个节点代表单个输入变量x和该变量上的左右孩子假定变量是数字。

Decision Tree

树的叶节点包含用于进行预测的输出变量y。 预测是通过遍历树进行的当达到某一叶节点时停止并输出该叶节点的类值。

决策树学习速度快预测速度快。 对于许多问题也经常预测准确并且你不需要为数据做任何特殊准备。

05 朴素贝叶斯

朴素贝叶斯是一种简单但极为强大的预测建模算法。

该模型由两种类型的概率组成可以直接从你的训练数据中计算出来1每个类别的概率; 2给定的每个x值的类别的条件概率。 一旦计算出来概率模型就可以用于使用贝叶斯定理对新数据进行预测。 当你的数据是数值时通常假设高斯分布钟形曲线以便可以轻松估计这些概率。

Bayes Theorem

朴素贝叶斯被称为朴素的原因在于它假设每个输入变量是独立的。 这是一个强硬的假设对于真实数据来说是不切实际的但该技术对于大范围内的复杂问题仍非常有效。

06 K近邻

KNN算法非常简单而且非常有效。KNN的模型用整个训练数据集表示。 是不是特简单

通过搜索整个训练集内K个最相似的实例邻居并对这些K个实例的输出变量进行汇总来预测新的数据点。 对于回归问题新的点可能是平均输出变量对于分类问题新的点可能是众数类别值。

成功的诀窍在于如何确定数据实例之间的相似性。如果你的属性都是相同的比例最简单的方法就是使用欧几里德距离它可以根据每个输入变量之间的差直接计算。

K-Nearest Neighbors

KNN可能需要大量的内存或空间来存储所有的数据但只有在需要预测时才会执行计算或学习。 你还可以随时更新和管理你的训练集以保持预测的准确性。

距离或紧密度的概念可能会在高维环境大量输入变量下崩溃这会对算法造成负面影响。这类事件被称为维度诅咒。它也暗示了你应该只使用那些与预测输出变量最相关的输入变量。

07 学习矢量量化

K-近邻的缺点是你需要维持整个训练数据集。 学习矢量量化算法或简称LVQ是一种人工神经网络算法允许你挂起任意个训练实例并准确学习他们。

Learning Vector Quantization

LVQ用codebook向量的集合表示。开始时随机选择向量然后多次迭代适应训练数据集。 在学习之后codebook向量可以像K-近邻那样用来预测。 通过计算每个codebook向量与新数据实例之间的距离来找到最相似的邻居最佳匹配然后返回最佳匹配单元的类别值或在回归情况下的实际值作为预测。 如果你把数据限制在相同范围如0到1之间则可以获得最佳结果。

如果你发现KNN在您的数据集上给出了很好的结果请尝试使用LVQ来减少存储整个训练数据集的内存要求。

08 支持向量机

支持向量机也许是最受欢迎和讨论的机器学习算法之一。

超平面是分割输入变量空间的线。 在SVM中会选出一个超平面以将输入变量空间中的点按其类别0类或1类进行分离。在二维空间中可以将其视为一条线所有的输入点都可以被这条线完全分开。SVM学习算法就是要找到能让超平面对类别有最佳分离的系数。

Support Vector Machine

超平面和最近的数据点之间的距离被称为边界有最大边界的超平面是最佳之选。同时只有这些离得近的数据点才和超平面的定义和分类器的构造有关这些点被称为支持向量他们支持或定义超平面。在具体实践中我们会用到优化算法来找到能最大化边界的系数值。

SVM可能是最强大的即用分类器之一在你的数据集上值得一试。

09 bagging和随机森林

随机森林是最流行和最强大的机器学习算法之一。 它是一种被称为Bootstrap Aggregation或Bagging的集成机器学习算法。

bootstrap是一种强大的统计方法用于从数据样本中估计某一数量例如平均值。 它会抽取大量样本数据计算平均值然后平均所有平均值以便更准确地估算真实平均值。

在bagging中用到了相同的方法但最常用到的是决策树而不是估计整个统计模型。它会训练数据进行多重抽样然后为每个数据样本构建模型。当你需要对新数据进行预测时每个模型都会进行预测并对预测结果进行平均以更好地估计真实的输出值。

Random Forest

随机森林是对决策树的一种调整相对于选择最佳分割点随机森林通过引入随机性来实现次优分割。

因此为每个数据样本创建的模型之间的差异性会更大但就自身意义来说依然准确无误。结合预测结果可以更好地估计正确的潜在输出值。

如果你使用高方差算法如决策树获得良好结果那么加上这个算法后效果会更好。

10 Boosting和AdaBoost

Boosting是一种从一些弱分类器中创建一个强分类器的集成技术。 它先由训练数据构建一个模型然后创建第二个模型来尝试纠正第一个模型的错误。 不断添加模型直到训练集完美预测或已经添加到数量上限。

AdaBoost是为二分类开发的第一个真正成功的Boosting算法同时也是理解Boosting的最佳起点。 目前基于AdaBoost而构建的算法中最著名的就是随机梯度boosting。

AdaBoost

AdaBoost常与短决策树一起使用。 在创建第一棵树之后每个训练实例在树上的性能都决定了下一棵树需要在这个训练实例上投入多少关注。难以预测的训练数据会被赋予更多的权重而易于预测的实例被赋予更少的权重。 模型按顺序依次创建每个模型的更新都会影响序列中下一棵树的学习效果。在建完所有树之后算法对新数据进行预测并且通过训练数据的准确程度来加权每棵树的性能。

因为算法极为注重错误纠正所以一个没有异常值的整洁数据十分重要。

初学者在面对各种各样的机器学习算法时提出的一个典型问题是“我应该使用哪种算法”问题的答案取决于许多因素其中包括

  • 数据的大小质量和性质;

  • 可用的计算时间;

  • 任务的紧迫性;

  • 你想要对数据做什么。

即使是一位经验丰富的数据科学家在尝试不同的算法之前也无法知道哪种算法会表现最好。 虽然还有很多其他的机器学习算法但这些算法是最受欢迎的算法。 如果你是机器学习的新手这是一个很好的学习起点。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: 机器学习