机器学习学习笔记(3) --SparkMLlib部分算法解析

2021-04-13 14:33:19 浏览数 (1)

目录

  • 1、线性回归(有监督值预测算法模型)
  • 2、贝叶斯(有监督的基于概率的分类算法模型)
  • 3、KNN最邻近算法(有监督的分类算法)
  • 4、K-Means算法(无监督聚类算法)
  • 5、逻辑回归算法(线性回归分析有监督分类模型)
  • 6、决策树和随机森林(非线性有监督分类模型)

1、线性回归(有监督值预测算法模型)

  由点与点之间的关系反推出函数表达式的过程就是回归,回归在机器学习中解决的问题就是值预测问题;确定一条最好的直线来拟合所有的点,假设直线是y=W0 W1X,确定直线就是确定W0和W1的值;

  一元线性回归公式:

            Θ₀:截距    Θ₁:权重    x:特征|维度   h₀(X):预测的值

  二元线性回归公式:

  n元线性回归公式:

  即:

线性回归预测的目的就是求使所有的点到这条线的误差最小的函数表达式;

  线性回归误差公式:

  根据极大似然估计法可得知,当误差最小,即y发生的概率最大,需要求得y最大值时的误差值ε,下面是标准正态分布函数图:

  误差推倒公式:

  误差最小化:要求参数的最优解,使得所有点到这条线的误差最小,如果将y表示样本的真实值,h(x₀)表示样本的预测值,那么可得损失函数:

误差优化方法有最小二乘法和梯度下降法;

  通过求导的方式可以确定Θ值,由于Θ是一组值,无法确定其中的Θ₀和Θ₁的值,即正向求导无法求得答案,则可以使用梯度下降的方法求Θ₀和Θ₁的值,梯度下降法又分为随机梯度下降法和批量梯度下降法;在训练线性回归模型时需要指定一个误差值J(Θ),梯度下降法调节Θ₀和Θ₁的值时还要指定步长和学习率。下面是线性回归模型的训练流程图解:

  梯度下降停止的条件:

代码语言:javascript复制
	Ⅰ、当计算得到的误差值小于指定的误差值
	Ⅱ、当迭代到指定次数

  训练数据集一般分为两部分:

代码语言:javascript复制
	Ⅰ、训练集
	Ⅱ、测试集
	一般训练集和测试集8|2分。

  训练模型过程中的过拟合和欠拟合问题:

代码语言:javascript复制
	过拟合即模型在训练集中表现优异,但是在测试集中表现极差,当训练集非常少,特征非常多时容易出现过拟合;
	欠拟合即训练集和测试集表现都不好。

2、贝叶斯(有监督的基于概率的分类算法模型)   机器学习算法中,有种依据概率原则进行分类的朴素贝叶斯算法,正如气象学家预测天气一样,朴素贝叶斯算法就是应用先前事件的有关数据来估计未来某个事件发生的概率;   下面是基于贝叶斯定理的条件概率公式:

P(A) 称为先验概率(已知) P(B)称为标准化常量(已知) P(B|A)称为似然度(已知) P(A|B)称为后验概率(未知)   如何理解朴素贝叶斯算法?下面将从如何通过该算法进行垃圾分类进行分析:

P(spam) 所有邮件中是垃圾邮件的概率 P(Viagra|Spam) 是垃圾邮件且含有Viagra的概率 P(Viagra) 所有邮件内含有Viagra的概率 P(spam|Viagra) 含有Viagra且是垃圾邮件的概率   计算贝叶斯定理中每一个组成部分的概率,我们必须构造一个频率表:

  由表可以计算 P(spam|Viagra) = P(Viagra|Spam)P(spam) / P(Viagra) = (4/20) (20/100) / (5/100) = 0.8,所以可以得知电子邮件中含有单词Viagra,那么该邮件是垃圾邮件的概率为80%,所以含有Viagra的消息都需要被过滤掉。   当有更多额外特征时:

  可以得到概率如下:

  拉普拉斯估计:

3、KNN最邻近算法(有监督的分类算法)   该算法的思路是:如果一个样本空间中的K个最相似的样本中大多数属于某个类别,则该样本也属于这个类别。KNN算法由邻居推断类别,就是距离衡量样本之间的相似度。

  距离的度量常用的有欧式距离(两点之间的距离)、曼哈顿距离(出租车距离)、余弦夹角(余弦角度)等,一般使用欧式距离,对于文本分类问题则常用余弦距离; 该算法的三个基本要素是:K值的选择、距离度量和分类决策规则;   该算法在分类时有个不足是当样本数量不平衡时,如果一个类别的样本数量很大,而其它类别的样本数量很小时,有可能导致当输入一个新的样本时该样本的K个邻居中类别数量较多的样本占多数,从而导致该结果很大可能性是数量多的类别,解决该问题的方案是给样本给与不同的权重,根据和输入样本距离的远近给近邻进行加权,越近权值越大,权重一般为距离平方的倒数。   该算法还有一个不足是当某些值的数值大小特别大时可能会对距离的计算产生影响,为防止某一维度的数据对距离的计算有影响,保证多个维度的特征是等权重的,且最终结果不能被数据的大小影响,则可以将各个维度数据的数值进行归一化,把数据归一化到[0,1]区间内。

4、K-Means算法(无监督聚类算法) 聚类的定义和思想:   聚类是一种无监督学习,就是对大量未知标注的数据集按数据的内在相似性将数据集划分为多个类别,使类别内的数据相似度较大而类别间的相似度较小,一个类别也叫一个簇,类别内的相似性越大,类别之间的差别越大则聚类效果越好。   分类的目标是事先已知的,而聚类事先不知道目标变量是什么,类别没有像分类一样预先定义,聚类用于知识的发现,而不是预测。

  K-Means算法实现步骤:

  K-Means算法训练过程:

  K值的选取一般可以根据问题的内容来确定,也可以根据肘部法确定。

相似度计算方法:

Ⅰ、欧式距离

Ⅱ、余弦距离

K-Means算法的优劣:

K-Means 算法:   K-means算法可能存在随机选取的中心点位置非常近,导致迭代次数增加,K-Means 算法就是在K-Means算法的基础上使随机选取的中心点不会聚集的算法。

5、逻辑回归算法(线性回归分析有监督分类模型)   线性回归是一种用于分类的算法,线性回归要求因变量必须是连续性的数据变量,逻辑回归要求因变量必须是分类变量,可以是二分类或者多分类(多分类可以归结为二分类问题),逻辑回归的输出是0~1之间的概率。   逻辑回归公式:

S曲线的值域是在(0,1)之间,值域的中间值0.5就是作为分类的阈值;   找到逻辑回归分界线:

由以上分析可得知逻辑回归的本质还是线性回归。   逻辑回归的优缺点:

逻辑回归-梯度下降法:

现在问题就转换为求解损失函数最小值

逻辑回归优化方案: Ⅰ、有无截距 Ⅱ、线性不可分问题 解决办法: (1)重新选择算法 (2)增加维度,映射至高维,增加新维度 Ⅲ、调整分类阈值

Ⅳ、鲁棒性调优

正则化、增加权重 Ⅴ、归一化数据

Ⅵ、调整数据的正负值 Ⅶ、训练方法优化

6、决策树和随机森林(非线性有监督分类模型)   线性分类模型可能会存在线性不可分问题,但是非先行分类算法模型就不存在该问题;

线性分裂纯粹度:

0 人点赞