< 【机器学习算法】10种常见机器学习算法+Python代码_华体育app官网_华体育app官网登录|华体会手机版

  监督式学习算法包括一个目标变量(因变量)和用来预测目标变量的预测变量(自变量)。通过这一些变量我们大家可以搭建一个模型,从而对于一个已知的预测变量值,我们大家可以得到对应的目标变量值。重复训练这个模型,直到它能在训练数据集上达到预定的准确度。

  属于监督式学习的算法有:回归模型,决策树,随机森林,K邻近算法,逻辑回归等。

  与监督式学习不同的是,无监督学习中我们没需要预测或估计的目标变量。无监督式学习是用来对总体对象进行分类的。它在根据某一指标将客户分类上有广泛应用。

  这个算法可以训练程序做出某一决定。程序在某一情况下尝试所有的可能行动,记录不同行动的结果并试着找出最好的一次尝试来做决定。

  线性回归是利用连续性变量来估计实际数值(例如房价,呼叫次数和总销售额等)。我们通过线性回归算法找出自变量和因变量间的最佳线性关系,图形上能确定一条最佳直线。这条最佳直线就是回归线。这个回归关系可以用Y=aX+b 表示。

  我们可以假想一个场景来理解线性回归。比如你让一个五年级的孩子在不问同学具体体重多少的情况下,把班上的同学按照体重从轻到重排队。这一个孩子会怎么做呢?他有一定的概率会通过观察大家的身高和体格来排队。这就是线性回归!这一个孩子其实是认为身高和体格与人的体重有某种相关。而这个关系就像是前一段的Y和X的关系。

  下图中我们得到的线。通过这一个方程,我们大家可以根据一个人的身高得到他的体重信息。

  线性回归主要有两种:一元线性回归和多元线性回归。一元线性回归只有一个自变量,而多元线性回归有多个自变量。拟合多元线性回归的时候,可通过多项式回归(Polynomial Regression)或曲线回归 (Curvilinear Regression)。

  别被它的名字迷惑了,逻辑回归其实是一个分类算法而不是回归算法。通常是利用已知的自变量来预测一个离散型因变量的值(像二进制值0/1,是/否,真/假)。简单来说,它是通过拟合一个逻辑函数(logit fuction)来预测一个事件发生的概率。所以它预测的是一个概率值,自然,它的输出值应该在0到1之间。

  假设你的一个朋友让你回答一道题。可能的结果只有两种:你答对了或没有答对。为了研究你最擅长的题目领域,你做了各种领域的题目。那么这个研究的结果可能是这样的:如果是一道十年级的三角函数题,你有70%的可能性能解出它。但如果是一道五年级的历史题,你会的概率可能只有30%。逻辑回归就是给你这样的概率结果。

  回到数学上,事件结果的胜算对数(log odds)可以用预测变量的线性组合来描述:

  在这里,p 是我们感兴趣的事件出现的概率。它通过筛选出特定参数值使得观察到的样本值出现的概率最大化,来估计参数,而不是像普通回归那样最小化误差的平方和。

  你可能会问为什么需要做对数呢?简单来说这是重复阶梯函数的最佳方法。因本篇文章旨不在此,这方面就不做详细的介绍了。

  这是我最喜欢也是能常常使用到的算法。它属于监督式学习,常用来解决分类问题。令人惊讶的是,它既能够应用于类别变量(categorical variables)也可以作用于连续变量。这个算法可以让我们把一个总体分为两个或多个群组。分组根据能够区分总体的最重要的特征变量/自变量进行。更详细的内容可以阅读这篇文章Decision Tree Simplified。

  从上图中我们大家可以看出,总体人群最终在玩与否的事件上被分成了四个群组。而分组是依据一些特征变量实现的。用来分组的具体指标有很多,比如Gini,information Gain, Chi-square,entropy。

  理解决策树原理的最好的办法是玩Jezzball游戏。这是微软的一款经典游戏(见下图)。这样的游戏的最终任务是在一个有移动墙壁的房间里,通过建造墙壁来尽可能地将房间分成尽量大的,没有小球的空间。

  每一次你用建墙来分割房间,实际上的意思就是在将一个总体分成两部分。决策树也是用类似方法将总体分成尽量多的不同组别。

  这是一个分类算法。在这个算法中我们将每一个数据作为一个点在一个n维空间上作图(n是特征数),每一个特征值就代表对应坐标值的大小。比如说我们有两个特征:一个人的身高和发长。我们大家可以将这两个变量在一个二维空间上作图,图上的每个点都有两个坐标值(这些坐标轴也叫做支持向量)。

  现在我们要在图中找到一条直线能最大限度将不同组的点分开。两组数据中距离这条线最近的点到这条线的距离都应该是最远的。

  这个算法是建立在贝叶斯理论上的分类方法。它的假设条件是自变量之间相互独立。简言之,朴素贝叶斯假定某一特征的出现与其它特征无关。比如说,如果一个水果它是红色的,圆状的,直径大概7cm左右,我们可能猜测它为苹果。即使这些特征之间有一定关系,在朴素贝叶斯算法中我们都认为红色,圆状和直径在判断一个水果是苹果的可能性上是相互独立的。

  贝叶斯理论告诉我们如何从先验概率P(c),P(x)和条件概率P(xc)中计算后验概率P(cx)。算法如下:

  步骤3:用朴素贝叶斯计算每种天气情况下玩和不玩的后验概率。概率大的结果为预测值。

  这个算法既能解决分类问题,也能够适用于回归问题,但工业上用于分类的情况更多。 KNN先记录所有已知数据,再利用一个距离函数,找出已知数据中距离未知事件最近的K组数据,最后按照这K组数据里最常见的类别预测该事件。

  KNN在生活中的运用很多。比如,如果你想了解一个不认识的人,你可能就会从这个人的好朋友和圈子中了解他的信息。

  这是一种解决聚类问题的非监督式学习算法。这样的解决方法简单地利用了少数的集群(假设K个集群)对给定数据来进行分类。同一集群内的数据点是同类的,不同集群的数据点不同类。

  2. 将每一个数据点与距离自己最近的质心划分在同一集群,即生成K个新集群。

  随机森林是对决策树集合的特有名称。随机森林里我们有多个决策树(所以叫“森林”)。为了给一个新的观察值分类,根据它的特征,每一个决策树都会给出一个分类。随机森林算法选出投票最多的分类作为分类结果。

  如果训练集中有N种类别,则有重复地随机选取N个样本。这些样本将组成培养决策树的训练集。

  在过去的4-5年里,可获取的数据几乎以指数形式增长。公司/政府机构/研究组织不仅有了更多的数据来源,也获得了更多维度的数据信息。

  作为一名数据科学家,我们手上的数据有非常多的特征。虽然这听起来有利于建立更强大精准的模型,但它们有时候反倒也是建模中的一大难题。怎么样才可以从1000或2000个变量里找到最重要的变量呢?这种情况下降维算法及其他算法,如决策树,随机森林,PCA,因子分析,相关矩阵,和缺省值比例等,就能帮我们解决难题。

  GBM和AdaBoost都是在有大量数据时提高预测准确度的boosting算法。Boosting是一种集成学习方法。它通过有序结合多个较弱的分类器/估测器的估计结果来提高预测准确度。这些boosting算法在Kaggle,AV Hackthon, CrowdAnalytix等数据科学竞赛中有出色发挥。

CONTACT US
欢迎随时与我们联系