首页
学习
活动
专区
工具
TVP
发布

6种机器学习算法要点

本文旨在为人们提供一些机器学习算法,这些算法的目标是获取关于重要机器学习概念的知识,同时使用免费提供的材料和资源。当然选择有很多,但哪一个是最好的?哪两个互相补充?什么是使用选定资源的最佳顺序?

通用的机器学习算法包括:

·决策树

·支持向量机

·朴素贝叶斯

·邻近算法

·K-means聚类算法

·随机森林

下面是使用Python和R代码简要解释的常见机器学习算法。

决策树

这是一种主要用于分类问题的监督学习算法。令人惊讶的是,它适用于分类问题的监督学习算法。在这个算法中,我们把种群分成两个或更多的集合。这是基于重要的属性和独立变量来完成的,以使得群组尽可能地不同。

Python代码:

R代码:

支持向量机(SVM)

这也是一种分类方法。在这个算法中,我们将每个数据绘制为一个n维空间中的其中一个点(其中n是你拥有的特征的数量),每个特征的值是特定坐标的值。

例如,如果我们只有两个特征,比如一个人的身高和头发长度,我们首先将这两个变量绘制在一个二维空间中,每个点有两个坐标(称为支持向量)。

现在,会找到一些线将两个不同分类的数据组之间的数据进行区分。这将是两组中最近点之间距离最远的直线。

Python代码:

R代码:

朴素贝叶斯

这是一个基于贝叶斯定理的分类技术,假设在预测变量之间建立独立的假设。简而言之,一个朴素贝叶斯分类器假定类中的某个特征的存在与任何其他特征的存在无关。例如,如果果实呈红色,圆形,直径约3英寸,则果实可以被认为是苹果。即使这些特征依赖于彼此或者依赖于其他特征的存在,朴素贝叶斯分类器也会考虑所有这些特性来独立地得出这个果实是苹果的可能性。

朴素贝叶斯模型很容易构建,对于非常大的数据集尤其有用。朴素贝叶斯与简单性相比,甚至超越了高度复杂的分类方法。

贝叶斯定理提供了一种计算P(c),P(x)和P(x c)的后验概率的方法:

P(c x)是给定预测器(属性)的(目标)的后验概率。

P(c)是先验概率。

P(x c)是预测器给定类的概率的可能性。

P(x)是预测器的先验概率。

Python代码:

R代码:

KNN(邻近算法)

这可以用于分类和回归问题。但在ML行业中分类问题更为广泛。 KNN是一个简单的算法,它存储所有可用的案例,并通过其多数投票来分类新案例。分配给该类的情况在其最近邻居中是最常见的,由一个距离函数来测量。

这些距离函数可以是闵可夫斯基距离(Minkowski Distance)、欧氏距离(Euclidean Distance)、曼哈顿距离(Manhattan Distance)或汉明距离(Hamming distance)。前三个函数用于连续函数,汉明距离用于分类变量。如果K = 1,那么这个情况就被简单地分配给它最近的类别。有时候,在执行KNN建模时,选择K是一个挑战。

KNN可以很容易地映射到我们的真实生活中。如果你想了解一个你没有任何信息的人,你可能想知道他们的好朋友和他们的圈子,从而获得他们的信息!

选择KNN之前需要考虑的事项:

·KNN在计算上是昂贵的。

·变量应该被标准化,否则较高范围的变量可能会偏差。

·在进行KNN之前更多地处理预处理阶段,如异常值/噪音消除。

Python代码:

R代码:

K-means聚类算法

这是一种解决聚类问题的无监督算法。其过程遵循一个简单的方法,通过一定数量的聚类来分类给定的数据集(假设K个聚类)。集群内的数据点对同组来说是同质且异构的。

K-means如何形成一个集群:

K-means为每个群集选取K个点数,称为质心。

每个数据点形成最接质心的群集,即K个群集。根据现有集群成员查找每个集群的质心。在这里,我们有新的质心。

由于我们有新的质心,请重复步骤2和步骤3.从新质心找到每个数据点的最近距离,并与新的K个聚类关联。重复这个过程直到收敛,即质心不变。

如何确定K的价值

在K-means中,我们有集群,每个集群都有自己的质心。集群内质心和数据点之差的平方和构成了该集群的平方和的总和。另外,当所有群集的平方和的总和被加上时,它成为群集解决方案的平方和的总和。

我们知道,随着集群数量的增加,这个值会不断下降,但是如果你绘制出结果的话,你可能会看到,平方距离的总和会急剧下降到某个K值,然后再慢慢减小。在这里,我们可以找到最优集群。

Python代码:

R代码:

随机森林

随机森林是一个决策树集合的商标术语。在随机森林里,我们有一系列被称为森林的决策树。为了根据属性对新的对象进行分类,每棵树都给出了一个分类,并且进行分类“投票”。森林选择了票数最多的分类(在森林中的所有树上)。

每棵树种植和成长如下:

如果训练集中的病例数为N,则随机抽取N个病例样本,并进行替换。这个样本将成为培育树木的训练集。

如果有M个输入变量,则指定一个数m

每棵树都尽可能长到最大程度。没有修剪。

Python代码:

R代码:

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券