机器学习算法总览

线性回归
- 线性回归(Linearregression):线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。
- 线性回归是一种有监督学习。

-
回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。学出来的不一定是一条直线,只有在变量x是一维的时候才是直线,高维的时候是超平面。比如房子的售价由面积,户型,区域等多种条件来决定,通过这些条件来预测房子的售价可抽象为一个线性回归问题。
- 图中显示的是多项式线性回归
-
线性回归的模型函数如下。其中w为权重参数,b为偏置,x表示样本。

- 模型预测与真实值的关系如下。其中y表示真实值,ε表示误差。

- 误差ε受到众多因素独立影响,线性回归模型假设误差ε服从正态分布。根据正态分布函数与最大似然估计,可以求出线性回归的损失函数为:

- 我们想要预测值与真实值最接近,就是求损失值最小。可以使用梯度下降的方法求出当损失函数达到最小的时候的权重参数w,继而完成模型构建。
线性回归扩展-多项式回归
- 多项式回归,是线性回归的拓展,通常数据集的复杂度会超过用一条直线来拟合的可能性,也就是使用原始的线性回归模型会明显欠拟合。解决的办法就是使用多项式回归。

- 这里n次方就是多项式回归维度(degree)。多项式回归仍然是线性回归的一种,是因为其非线性体现在特征的维度上,而其权重参数w之间的关系仍然是线性的。

线性回归与防止过拟合
- 正则项有助于减少过拟合,w值在样本空间中不能过大/过小,可以在目标函数之上增加一个平方和损失:

- 正则项(norm):这里这个正则项叫做L2-norm,这个使用这个损失函数的,线性回归也叫Ridge回归。

- 追加了绝对值损失的线性回归叫做Lasso回归。
逻辑回归
- 逻辑回归:逻辑回归模型是一种分类模型,用来解决分类问题。模型的定义:

- 其中w称为权重,b称为偏置,其中的wx+b看成对x的线性函数。然后对比上面两个概率值,概率值大的就是χ对应的类。

- 逻辑回归与线性回归都是广义线性模型。逻辑回归在线性回归的基础上引入了非线性因素(sigmoid函数),并设定了阈值,因此可以处理二分类问题。
- 根据逻辑回归的模型函数,可以通过最大似然估计计算出逻辑回归的损失函数为:

- 其中w为权重参数,m为样本个数,x表示样本,y表示真实值。同样可以通过梯度下降算法求得所有权重参数w的值。
- 追加正则项之后,逻辑回归也可以防止过拟合
决策树
- 决策树(decisiontree)是一个树结构。每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。

- 决策树最重要的是决策树的构造。所谓决策树的构造就是进行属性选择度量确定各个特征属性之间的拓扑结构。构造决策树的关键步骤是分裂属性,即在某个节点处按照某一特征属性的不同划分构造不同的分支。
- 决策树的学习算法用来生成决策树,常用的学习算法为ID3,C4.5,CART。
决策树的结构

- 除了根节点之外的其它节点统称为叶子节点
决策树的构建关键点
- 决策树的构造就是进行属性的选择,确定各个特征属性之间的树结构。构建决策树的关键步骤就是按照所有的特征属性进行划分操作,对所有的划分操作的结果集的"纯度"进行比较,选择"纯度"最高的属性作为分割数据集的数据点。
- 纯度的量化指标主要通过信息熵与GINI系数,公式如下:

- 其中pk表示样本属于类别k的概率(共有K个类别),分割前与分割后的纯度差异越大,决策树越好。
- 常见的决策树算法有ID3,C4.5,CART等。
决策树的构建过程
- 特征选择:从训练数据的特征中选择一个特征作为当前节点的分裂标准(特征选择的标准不同产生了不同的特征决策树算法)。
- 决策树生成:根据所选特征评估标准,从上至下递归地生成子节点,直到数据集不可分则停止决策树停止生长。
- 剪枝:决策树容易过拟合,需要剪枝来缩小树的结构和规模(包括预剪枝和后剪枝)。
决策树案例
- 下图案例向我们展示了一个决策树进行的分类问题,分类结果受到三个属性的影响分别是Refund,Marital status, Taxable Income。

支持向量机
- 支持向量机(SupportVectorMachine,SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器。SVM还包括核技巧,这使它成为实质上的非线性分类器。支持向量机的学习算法是求解凸二次规划的最优化算法。

- SVM的主要思想可以概括为两点:
- 对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间使其线性可分,从而使得高维特征空间采用线性算法对样本的非线性特征进行线性分析成为可能。
- 它基于结构风险最小化理论之上特征空间中构建最优超平面,使得学习器得到全局最优化,并且在整个样本空间的期望以某个概率满足一定上界。
线性支持向量机
- 如何使用一条之间分割下面的红蓝数据集?

- 直线被用来将数据分割到不同类别中,而实际上我们可以多条直线将数据分开。SVM的核心思路是找到一个直线,使离直线比较近的点,尽可能远离这条直线,这可以使模型具有很强的泛化能力。而这些点就被称为支持向量(SupportVector)。
- 在二维空间中,我们用直线来分割,如果是高维空间,我们使用超平面来分割。

非线性支持向量机
- 如何分类一种非线性可分的数据集?

- 使用核函数来构建非线性支持向量机。
- 核函数允许算法在变换后的高维特征空间中拟合最大的超平面。

K最邻近算法
- K最近邻(k-NearestNeighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

- KNN的核心思想是"近朱者赤,近墨者黑",其在逻辑上十分的简洁。
- KNN是非参数方法,常用在决策边界非常不规则的数据集中使用。
- KNN在分类预测时,一般采用多数表决法;KNN在做回归预测时,一般采用平均值法。
- KNN需要非常大的计算量。

- 一般来说,较大的k值会降低噪声对分类的影响,但会使类之间的边界不那么明显。
- K值越大越容易欠拟合,因为分割过于粗糙,越小越容易过拟合,因为分割过于细腻。

- 可以发现你会发现随着K值的增加,边界会变得更平滑。
- 随着K值的增加到无穷大,最终会变成全蓝或全红
朴素贝叶斯
- 朴素贝叶斯算法(NaiveBayes):朴素贝叶斯是一种简单的多类分类算法,基于贝叶斯定理,并假设特征之间是独立的。给定样本特征X,样本属于类别H的概率是:

-
类条件独立性:贝叶斯分类法假定一个属性值在给定类上的影响独立于其他属性的值。做此假定是为了简化计算,并在此意义下成为"朴素的"。
-
贝叶斯分类器应用于大型数据库具有较高的准确性和快速的速度。
-
特征独立假设。
- 例如,如果一个水果是红色的,圆圆的,直径大约10厘米,就可以被认为是苹果。
- 一个朴素贝叶斯分类器认为这些特征中的每一个都独立地贡献了这个水果是一个苹果的概率,而不考虑颜色、圆度和直径特征之间的任何可能的相关性。

集成学习
- 集成学习是一种机器学习范式,在这种范式中,多个学习者被训练和组合以解决同一个问题。通过使用多个学习者,集成的泛化能力可以比单个学习者强得多。
- 如果随机向数干人提出一个复杂的问题,然后汇总他们的答案。在许多情况下,会发现这个汇总的答案比专家的答案更好。这就是群众智慧。

集成学习的分类

集成学习-随机森林
- 随机森林(Random Forest)= Bagging + CART决策树。
- 随机森林建立多个决策树,并将它们合并在一起,以获得更准确和稳定的预测。
- 随机森林可以用于分类和回归问题。

- Bootstrap有放回的抽样
集成学习-GBDT
- GBDT是Boosting算法的一种。
- 综合模型的结果是所有基础学习器的结果相加等于预测值,其本质是下一个基础学习器去拟合误差函数对预测值的残差(这个残差就是预测值与真实值之间的误差)。
- GBDT在模型训练的时候,是要求模型预测的样本损失尽可能的小。

无监督学习-K-means
- K-means算法是输入聚类个数k,以及包含n个数据对象的数据集,输出满足方差最小的标准的k个聚类的一种算法。
- K-means算法需要输入聚类的最终个数k,然后将n个数据对象划分为k个聚类,而最终所获得的聚类满足:(1)同一聚类中的对象相似度较高;(2)而不同聚类中的对象相似度较小。

无监督学习-层次聚类
- 层次聚类法试图在不同层次对数据集进行划分,从而形成树形的聚类结构,数据集的划分可采用"自下向上"的聚合策略,也可以采用"自顶向下"的分拆策略。聚类的层次被表示成树形图。树根拥有所有样本的唯一聚类,叶子是仅有一个样本的聚类。
