机器学习之常见算法描述

1、线性回归算法
1.1算法概述
  回归就是用一条曲线对数据点进行拟合,该曲线成为最佳拟合曲线,这个拟合过程称为回归。当该曲线为一条直线时,就是线性回归。
  线性回归一般用来做连续值的预测,预测的结果是一个连续值。
  在训练学习样本时,需要特征向量X和样本的实际结果Y,所以线性回归属于监督学习里的回归模型。
1.2算法步骤
  建立模型->定义损失函数->判断数据量和特征值大小->大用梯度下降法,小用最小二乘法->参数求解->模型校验->经济预测

2、逻辑回归算法
2.1算法概述
  背景:一般情况下,使用线性回归算法预测连续值的结果,根据结果设定阈值即可。但在很多实际情况中,需要学习的分类数据并不精确,如果仍然使用线性回归的方法,会使分类器的准确率偏低。
  定义:是一种广义的线性回归分析方法,在线性回归的基础上套用一个逻辑函数,对事件发生的概率进行预测。在线性回归中得到一个预测值,然后该值通过逻辑函数进行转换,将预测值变成概率值,再根据概率值实现分类。
2.2算法步骤
  加载数据文件->数据预处理,生成多项式特征(多项式拟合时,多边形边界需要将特征转为多项式转换,进而更改样本的分布状态,使之能拟合更复杂的边界)->初始化参数,构建损失函数->用梯度下降算法优化损失函数,确定参数->构建预测函数,求概率值(sigmoid函数等)->根据概率值画决策边界

3、K最近邻算法KNN
3.1算法概述
  由某个样本K个邻居的类别来推断出样本的类别(近朱者赤近墨者黑)。
  由于KNN方法主要靠周围有限的邻近样本,而不是靠判别类域的方法来确定所属类别,因此对于类域的交叉或重叠较多的待分样本来说,KNN更加合适。
3.2算法步骤
  数据预处理->初始化最近邻训练元组(大小为K的优先级队列)->遍历训练元组计算距离->调整优先队列->计算误差率->设定不同K值重新训练->取误差率最小的K值

4、PCA降维算法
4.1算法概述
  掌握事物主要矛盾的统计分析方法,从多元事务中解析出主要影响因素,揭示事物本质,简化复杂问题。
  PCA将数据投射到一个低维子空间实现降维,同时尽可能地保留更多变量。
4.2算法步骤。
  读入数据矩阵->去除平均值(中心化)->计算协方差矩阵->求特征值和特征向量->对特征值进行排序->保留大到小N个特征向量->计算降维后的数据矩阵
  注:
    两个矩阵相乘的意义是:将右边的矩阵中的每一列列向量变换到左边矩阵中每一行行向量为基所表示的空间中去。--->降维
    如何选择这个方向(基)以保留最多的原始信息?投影后的投影值尽可能分散--->分散程度用方差(越大)表示。
    对于更高维,首先找到一个方向使得投影后方差最大,这样就完成了第一个方向的选择,继而选择第二个投影方向(两个字段尽可能表示更多的信息,不希望他们之间存在相关性)--->协方差为0,两个字段完全独立--->两个方向正交
    优化目标:将一组n维向量降为K维,选择K个单位正交基,使得原始数据变换到这组基上后,各字段两两间协方差为0,而字段的方差尽可能的大(在正交的约束下,取最大的K个方差)
    将方差和协方差统一到一起--->XXT,(协方差矩阵,对角线是个字段方差,其他是字段协方差)--->将协方差矩阵对角化(除对角线外的元素化为0,对角线上将元素按大小从下到上排列)

5、k-means算法
5.1算法概述
  基于样本间相似性度量的聚类算法。即将数据点到原型的某种距离作为优化的目标函数。
5.2算法步骤
  选择K个聚类中心->计算每个对象与K个中心对象的距离,并把它归到距离最近的簇中->计算每个簇的新中心
  初始聚类中心的选择:
  1.凭经验、
  2.数据随机分为K类,计算每类中心、
  3.用相距最远的K个特征、随机从n个模式中取出一部分模式用层次聚类法聚成K类,以每类中心、
  4.求以每个特征点为球心,某一正数r为半径的球形区域中的特征点个数,选取密度最大的特征点为第一个初始聚类中心,然后在与该中心大于某个距离d的那些特征点中选择另一个具有最大密度的特征点作为第二个初始聚类中心,直到选择K个
  K的调整:
  1.按先验知识、
  2.让K从小到大逐步增加,目标函数随K的增加而单调减少,但速度在一定时候会减缓,曲率变化最大的那个点对应最优聚类数。

6、支持向量机算法SVM
6.1算法概述
  用来解决分类问题,构造直线、平面或者超平面的模型将数据分隔开。“机”指算法,“支持向量”指数据集中某些点位置比较特殊,最靠近划分直线上面的点,影响直线的最终位置。
6.2算法步骤
  给定训练集->构造最优化问题->求解最优化的所有ai->计算参数w,b->得出超平面和分类决策函数
  注:
    对一个数据点进行分类,超平面离数据点的间隔越大,分类的确信度也越大。--->几何间隔最大
6.3非线性支持向量机与核函数
  非线性类型通常在二维平面不可分,需要通过一个函数将原始数据映射到高维空间,从而使得数据在高维空间很容易区分,实现这一目标的函数称为核函数
  在线性不可分的情况下,支持向量机首先在低维空间中完成计算,然后通过核函数将输入空间映射到高维特征空间,最终在高维特征空间中构造出最优分离超平面。
  常见核函数:多项式核、高斯核、线性核

7、AdaBoost算法(自适应增强)
7.1算法概述
  自适应在于:前一个基本分类器分类错误的样本的权重会得到加强,加权后的全体样本再次被用来训练下一个基本分类器。同时在每一轮训练中加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数时停止训练。
  想要实现“三个臭皮匠顶个诸葛亮”的效果,企图用多个分类能力较弱但是不断优化的分类器组成一个比现存任一强分类器分类能力更强的集合分类器。
7.2算法步骤
  加载数据集->K次迭代{初始化权值分布->训练弱分类器Gm->计算弱分类器在数据集上的分类误差率->计算弱分类器在最终分类器的权重(误差率越小权重越大)->更新训练数据集的权值分布(增大误分类样本的权值减少正确分类样本的权重)}->组合m个弱分类器

8、决策树算法
8.1算法概述
  在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于0的概率,评价项目风险。
  决策树中每一个节点会响应输入值中某一变量值,该节点的边所指向的子节点指示输入值可能产生新的响应值,每一个叶节点可以代表输入值所对应的一种最终输出值。
  决策树是一类广泛应用的一种树状分类器,在树的每个节点上通过选择最优的分裂特征不停地进行分类,直到到达建树的停止条件,比如叶节点里的数据都属于同一个类别。决策树确定一条由根节点到叶节点里的数据都属于同一个类别。当输入待分类样本时,决策树决定一条由根节点到叶节点的唯一路径,该路径叶节点的类别就是待分类样本的所属类别。
8.2算法步骤
  生成算法有多种,如:ID3、C4.5、C5.0等
  加载数据文件->计算数据集S每个属性的熵->S不为空{选取数据集S中熵最小(或信息增益最大)的属性->从S中剔除该属性->添加该属性作为作为决策树的节点}
8.3重要概念
  熵:每条信息中所包含信息的平均量,是不确定性的度量
  信息增益:是信息熵的变形,衡量一个属性分区数据样本的能力(信息增益越大,决策树越简洁)。

9、高斯混合模型算法
9.1算法概述
  是一种广泛的聚类算法,通过对多个高斯模型做线性组合,对样本数据的概率密度分布进行估计,以达到聚类的目的。
  使用高斯分布作为参数模型,并使用期望最大化EM算法进行参数评估,就得到数据在各个类上的概率值,最后选取概率值最大的类作为估计结果。
9.2算法步骤
  构建高斯混合模型->初始化模型数目K(对应K个聚类),对每个模型设置初始值Πk(第k个模型的权重即第k类被选中的概率)、Ck(协方差矩阵->对数似然函数不收敛{估计步骤E,计算后验概率->最大化步骤M,更新参数->计算模型的对数似然函数}->得到最终分类结果
9.3初始化参数
  1.Ck设置为单位矩阵,Πk=1/K,均值μk设为随机数
  2.由k-means聚类算法对样本进行聚类,得到K值,然后利用各类的均值作为μk,并计算协方差矩阵Σk,Πk取各类样本占样本总数的比例。


10、随机森林算法
10.1算法概述
  随机森林以决策树为基分类器,它包含多个由Bagging集成学习技术训练得到的决策树,当输入待分类的样本时,最终的分类结果由单个决策树的输出结果投票决定。
  常规的分裂过程是在所有特征中进行筛选,特征之间的关联性可能会导致泛化能力不足。随机森林在决策树构建过程中引入了随机特征子空间的概念,其主要通过随机选取多个特征作为子空间供决策树在选取最优特征时用于分裂树节点。
10.2算法步骤
  输入待分类样本->使用Booststrap方法将样本划分为k个样本->构建K个决策树{第m个Booststrap训练样本->随机特征子空间->CART算法建树}->投票决定多个决策树的输出结果
10.3构建数据集
  从原始的数据集中使用Booststrap(有放回)方法随机抽取K次样本,生成K个数据集。

 

11、朴素贝叶斯算法
11.1算法概述
  基于概率论的分类算法,通过考虑特征概率来预测分类。该算法采用了“特征属性独立性假设”的方法,即对已知类别,假设所有特征属性相互独立。
  对于给定的训练数据集,首先基于特征属性独立假设学习输入\输出的联合概率分布,然后基于此模型,对给定的输入,利用贝叶斯定理估计后验概率最大的输出。
11.2算法步骤
  确定特征属性xj,获取训练样本集合yi->计算各类别的先验概率P(Y=Ck,类别Ck在训练样本集中的频率)->计算各类别下各特征属性xj的条件概率P(Xj=xj|Y=Ck,引入了拉普拉斯平滑)->计算各类别的后验概率P(Y=Ck|X=x)=P(Xj=xj|Y=Ck)*P(Y=Ck)/P(X=x)->后验概率最大项作为样本所属类别
11.3计算条件概率
  1.xj是离散值:假设xj符合多项式分布,条件概率是在样本类别Ck中特征。xj出现的频率。
  2.xj是稀疏二项离散值:假设xj符合伯努利分布,xj出现记为1,不出现记为0.
  3.xj是连续值:通常取xj的先验概率为正太分布,即在样本类别Ck中,xj的值符合正太分布。

12、隐马尔可夫模型算法HMM
12.1算法概述
  马尔可夫连是指一个离散变量的随机过程,其一系列状态之间的联系通过一个状态转移概率矩阵来描述。状态之间的转变具有相应的转移概率,并且状态转移概率仅仅依赖于当前的状态,与之前的状态无关。
  HMM是一个双重随机过程:一个随机过程是具有有限状态的马尔可夫链,用来描述状态的转移;另一个随机过程描述每个状态和观察值之间的统计对应关系。
  隐马尔可夫模型中的马尔可夫链是隐藏的,无法直接通过状态序列得到,但是每一个状态都有一个观察值,假设每个观察值只依赖于此刻马尔可夫链的状态,与其他因素无关。
12.2算法步骤
  给定模型的λ=(A,B,Π)和观测序列长度T->按照初始状态分布Π产生状态i1->循环T次{按照状态it的观测概率分布生成ot->按照状态it的状态转移概率分布产生状态it+1}->生成观测序列O=(O1,O2...OT)
  A是状态转移矩阵,B是观测概率矩阵,Π是初始状态概率向量

13、BP神经网络算法
13.1算法概述
  通常指基于误差反向传播算法的多层前向神经网络,由信号的前向传播误差的反向传播两个过程组成.
13.2算法步骤
  初始化权值和偏置->读取训练数据->误差不达标{{前向传播->计算期望输出与实际输出的误差}->反向传播,调整权值和偏置}
  权值调整量=学习率*局部梯度*上一层输出信号

14、卷积神经网络算法
14.1算法概述
  由一个或多个卷积层、池化层和最后的全连接层组成。
  卷积神经网络通过对图像进行局部扫描,提取其中的特征,再经过多层处理,增加所提取的特征的感受范围。另外,每次完成特征提取后通常会按照特定的规则消去数据,这样既降低了所要计算的参数规模,又增加了网络的拟合能力。
14.2结构元素介绍
  1.卷积层:卷积运算的目的是提取输入的不同特征,第一层卷积层可能只提取一些低级的特征,如边缘、线条和角等层级,更多层的网络能从低级特征中迭代提取更复杂的特征。
  2.池化层:是一种形式的下采样。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。
  3.全连接层:每一个神经元都与上一层的所有神经元相连,用来把前边提取到的特征综合起来。在卷积神经网络中全连接层起到将通过卷积层与池化层学习到的分布式特征表示映射到样本标记空间的作用。卷积神经网络中的全连接层可由卷积操作实现。
  4.损失函数层:用于决定训练过程如何来“惩罚”网络的预测结果和真实结果之间的差异,通常是网络的最后一层。各种不同的损失函数应用于不同类型的任务。

15、递归神经网络算法
15.1算法概述
  递归神经网络有两种,一种是基于时间的递归神经网络,常被用来进行时间序列预测,还有一种是基于结构的递归神经网络。
  递归神经网络目前比较热门的是RNN变体长短期记忆模型。可以把RNN看成一种回路,在回路中,神经网络反复出现,可以将它看作人的大脑中某一神经元在不同时间段的不同状态,随时间的推移,它所具备的信息不断变化。
  RNN的变体:LSTM、完全递归网络、Hopfield网络,回声状态网络、双向网络

 

参考文献:

        赵涓涓,强彦.Python机器学习[M].北京。:机械工业出版社,2019.6

posted @ 2021-10-31 20:13  NLP的小Y  阅读(434)  评论(2编辑  收藏  举报
/*粒子线条,鼠标移动会以鼠标为中心吸附的特效*/