分享

常见机器学习算法

 昵称16619343 2017-08-06

以下是常用机器学习算法的列表。 这些算法几乎可以应用于任何数据问题:

线性回归

逻辑回归

决策树

SVM

朴素贝叶斯

KNN

K-Means

随机森林

降维算法

Gradient Boost&Adaboost

1.线性回归

它用于基于连续变量来估计实际价值(房屋成本,电话数量,总销售额等)。在这里,我们通过拟合最佳线来建立独立变量和因变量之间的关系。这个最佳拟合线被称为回归线,由线性方程Y = a * X + b表示。

理解线性回归的最好方法是回想童年的经历。比如,你要求五年级的孩子通过体重来从小到大排序班里的学生,而事先不告诉学生们的体重!你认为孩子会做什么?他/她很可能在身高和体格上分析人物的体重,并使用这些可视参数的组合进行排列。这是现实生活中的线性回归!孩子实际上已经弄清楚,身高和体格将有一个关系与体重相关联,看起来就像上面的等式。

在这个方程式中:

Y-因变量

a - 斜率

X - 自变量

b - 截距

这些系数a和b是基于最小化数据点和回归线之间的距离的平方差之和导出的。

看下面的例子。这里我们确定了线性方程y = 0.2811x + 13.9的最佳拟合线。现在使用这个方程,我们可以找到一个人(身高已知)的体重。



线性回归

线性回归主要有两种类型:简单线性回归和多元线性回归。 简单线性回归的特征在于一个自变量。 而且,多元线性回归(顾名思义)的特征是多个(多于1个)自变量。 在找到最佳拟合线的同时,可以拟合多项式或曲线回归线,这些被称为多项式或曲线回归。

2.逻辑回归

不要因为它的名字而感到困惑,逻辑回归是一个分类算法而不是回归算法。它用于基于给定的一组自变量来估计离散值(二进制值,如0/1,是/否,真/假)。简单来说,它通过将数据拟合到logit函数来预测事件发生的概率。因此,它也被称为logit回归。由于它预测概率,其输出值在0和1之间(如预期的那样)。

再次,让我们通过一个简单的例子来尝试理解这一点。

假设你的朋友给你一个难题解决。只有2个结果场景 - 你能解决和不能解决。现在想象,你正在被许多猜谜或者简单测验,来试图理解你擅长的科目。这项研究的结果将是这样的结果 - 如果给你一个10级的三角形问题,那么你有70%可能会解决这个问题。另外一个例子,如果是五级的历史问题,得到答案的概率只有30%。这就是逻辑回归为你提供的结果。

对数学而言,结果的对数几率被建模为预测变量的线性组合。

odds= p/ (1-p) = probability of event occurrence / probability of not event occurrence ln(odds) = ln(p/(1-p)) logit(p) = ln(p/(1-p)) = b0+b1X1+b2X2+b3X3….+bkXk

以上,p是感兴趣特征的概率。 它选择最大化观察样本值的可能性的参数,而不是最小化平方误差的总和(如在普通回归中)。

现在,你可能会问,为什么要采用log? 为了简单起见,让我们来说,这是复制阶梯函数的最好的数学方法之一。 我可以进一步详细介绍,但这将会打破这篇文章的目的。



3.决策树

这是我最喜欢的算法之一,我经常使用它。 它是一种主要用于分类问题的监督学习算法,令人惊讶的是,它可以适用于分类和连·续因变量。 在该算法中,我们将群体分为两个或多个均匀集合。 这是基于最重要的属性/自变量来做出的并将它们分为不同的组。关于决策树的更多细节,你可以阅读决策树简介



在上图中,您可以看到根据多个属性将群体分为四个不同的群组,以确定用户“是否可以玩”。为了 将人口分为不同的特征群体,它使用了诸如Gini,信息增益,卡方,熵等各种技术。



了解决策树如何运作的最佳方法是播放Jezzball - 微软的经典游戏(下图)。 大体上就是,来一起在屏幕上滑动手指,筑起墙壁,掩住移动的球吧。

4.SVM(支持向量机)

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

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



现在,我们将找到一些可以将数据分割成两类的线。 而我们想要的线,就是使得两组数据中最近点到分割线的距离最长的线。



在上述示例中,将数据分成两个不同分类的组的线是黑线,因为两个最接近的点距离线最远(红线也可以,但不是一最远)。 这条线是我们的分类器, 然后根据测试数据位于线路两边的位置,我们可以将新数据分类为什么类别。

5. 朴素贝叶斯

它是基于贝叶斯定理的分类技术,假设预测因子之间是独立的。 简单来说,朴素贝叶斯分类器假设类中特定特征的存在与任何其他特征的存在无关。 例如,如果果实是红色,圆形,直径约3英寸,则果实可能被认为是苹果。 即使这些特征依赖于彼此或其他特征的存在,一个朴素的贝叶斯分类器将考虑的是所有属性来单独地贡献这个果实是苹果的概率。

朴素贝叶斯模型易于构建,对于非常大的数据集尤其有用。 除了简单之外,朴素贝叶斯也被称为超高级分类方法。

贝叶斯定理提供了一种由P(c),P(x)和P(x | c)计算概率P(c | x)的方法。 看下面的等式:



其中:

P(c | x)是在x条件下c发生的概率。

P(c)是c发生的概率。

P(x | c)在c条件下x发生的概率。

P(x)是x发生的概率。

示例:

让我们用一个例子来理解它。 下面我有一个天气和相应的目标变量“玩游戏”的训练数据集。 现在,我们需要根据天气条件对玩家是否玩游戏进行分类。 我们按照以下步骤执行。

步骤1:将数据集转换为频率表

步骤2:通过发现像“Overcast”概率= 0.29和播放概率为0.64的概率来创建似然表。



步骤3:现在,使用朴素贝叶斯方程来计算每个类的概率。 其中概率最高的情况就是是预测的结果。

6. KNN (K-近邻算法)

它可以用于分类和回归问题, 然而,它在行业中被广泛地应用于分类问题。 K-近邻算法用于存储所有训练样本集(所有已知的案列),并通过其k个邻近数据多数投票对新的数据(或者案列)进行分类。通常,选择k个最近邻数据中出现次数最多的分类作为新数据的分类。这些计算机的距离函数可以是欧几里德,曼哈顿,闵可夫斯基和汉明距离。 前三个函数用于连续函数,第四个函数用于分类变量。 如果K = 1,则简单地将该情况分配给其最近邻的类。 有时,选择K在执行KNN建模时是一个难点。



KNN可以轻松映射到我们的现实生活中。 如果你想了解一个人,你没有任何信息,你可能想知道先去了解他的亲密的朋友和他活动的圈子,从而获得他/她的信息!

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

KNN在计算上是昂贵的

变量应该被归一化,否则更高的范围变量可以偏移它

在进行KNN之前,预处理阶段的工作更像去除离群值、噪声值

7. K-Means

它是解决聚类问题的一种无监督算法。 其过程遵循一种简单而简单的方式,通过一定数量的聚类(假设k个聚类)对给定的数据集进行分类。 集群内的数据点与对等组是同构的和异构的。

尝试从油墨印迹中找出形状?(见下图) k means 与这个活动相似, 你通过墨水渍形状来判断有多少群体存在!



8. Random Forest(随机树林)

随机森林(Random Forest)是一个包含多个决策树的分类器, 其输出的类别由个别树输出类别的众数而定。(相当于许多不同领域的专家对数据进行分类判断,然后投票)



9. 降维算法

在过去的4-5年中,数据挖掘在每个可能的阶段都呈指数级增长。 公司/政府机构/研究机构不仅有新的来源,而且他们正在非常详细地挖掘数据。

例如:电子商务公司正在捕获更多关于客户的细节,例如人口统计,网络爬网历史,他们喜欢或不喜欢的内容,购买历史记录,反馈信息等等,给予他们个性化的关注,而不是离你最近的杂货店主。

作为数据科学家,我们提供的数据还包括许多功能,这对建立良好的稳健模型是非常有用的,但是有一个挑战。 你如何识别出1000或2000年高度重要的变量? 在这种情况下,维数降低算法可以帮助我们与决策树,随机森林,PCA,因子分析,基于相关矩阵,缺失值比等的其他算法一起使用。

10. Gradient Boosting & AdaBoost

当我们处理大量数据以预测高预测能力时,GBM&AdaBoost是更加强大的算法。 Boosting是一种综合学习算法,它结合了几个基本估计器的预测,以提高单个估计器的鲁棒性。 它将多个弱或平均预测值组合到一个强大的预测变量上。 这些提升算法在数据科学比赛中总是能够很好地运行,如Kaggle,AV Hackathon,CrowdAnalytix。

结束语

现在我相信,你会有一个常用的机器学习算法的想法。 我在写这篇文章和提供R和Python中的代码的唯一意图就是让你马上开始。 如果您想要掌握机器学习,请将算法运用实际问题,体会其中的乐趣

想学习更多Python课程:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多