2021/12/31机器学习之scikit-learn分类器

预备:训练机器学习分类算法的主要步骤

1.选择特征并收集训练样本
2.选择度量性能的指标
3.选择分类器并优化算法
4.评估模型的性能
5.调整算法

一、基于逻辑回归的分类概率建模

提出背景:

感知机提供了良好且易用的入门级算法,但是最大缺点是如果类不是完全线性可分,就永远不收敛。原因在于权重不断在更新,不完全线性可分时,导致每次迭代至少有一个错误的分类样本存在。

逻辑回归的定义:

一种简单且强大的解决线性二元分类问题的算法,是一种很容易实现分类的模型,但仅仅在线性可分类上表现不错。(注意逻辑回归不是回归模型,是分类模型)

逻辑回归中的让步比,logit函数和sigmoid函数:

让步比:

有利于某一特定事件的概率,可以定义为p/(1-p),p代表阳性事件的概率,阳性事件并不一定意味着好,他指的是要预测的事件,比如,病人有某种疾病的可能性,可以认为阳性事件分类标签y=1。

logit函数:

让步比的对数形式:注意输入值在0-1之间,输出值为整个实数范围**
在这里插入图片描述
可以用于表示特征值和对数概率之间的线性关系:
在这里插入图片描述
这里的p(y=1|x)是某个特定样本输入x类给定特征标签为1的条件概率

sigmoid函数:

logit函数的逆形式,用于预测某个样本属于某个特定类的概率。
2021/12/31机器学习之scikit-learn分类器_第1张图片
这里z为净输入,是权重和样本特征的线性组合,z=wTx=w0x0+w1x1+…+wmxm。
2021/12/31机器学习之scikit-learn分类器_第2张图片
从上图可以分析出:z->+∞,φ(z)->1,z->-∞,φ(z)->0,可以得出结论:S函数将实数作为输入,并在截距为φ(z)=0.5时转换范围在[0,1]之间

逻辑回归和Adaline算法区别:

根本区别在于激活函数不一样,Adaline算法地激活函数是线性函数φ(z)=z,而逻辑回归激活函数为sigmoid函数。
2021/12/31机器学习之scikit-learn分类器_第3张图片
2021/12/31机器学习之scikit-learn分类器_第4张图片
逻辑回归函数通过S函数后得出一个样本属于某一类的概率,通过阈值函数可以得到一个二元输出,那么可以说逻辑回归不仅对预测分类感兴趣,同时也对评估类中成员概率也感兴趣
2021/12/31机器学习之scikit-learn分类器_第5张图片

逻辑回归的代价函数(损失函数):

此公式加了1/m并且把-号提出去了,目的是求了平均方便后续计算
(此公式的推导运用了对数极大似然法,这里不再赘述,了解更多点击该链接逻辑回归损失函数推导
2021/12/31机器学习之scikit-learn分类器_第6张图片
在这里插入图片描述
为了更好地理解损失函数,我们计算一个样本训练实例的代价:
在这里插入图片描述
方程中y=0,第一项为0,y=1,第二项为0
2021/12/31机器学习之scikit-learn分类器_第7张图片
2021/12/31机器学习之scikit-learn分类器_第8张图片
上图可以看出,如果正确预测样本属于第一类,代价就会接近0,如果正确预测代价为第二类,代价也会接近于0,但是预测错误代价就会趋于无穷大。

一个提醒:感知机里的两类是1和-1,逻辑回归的两类是1和0

逻辑回归的权重更新:

与Adaline算法梯度下降规则一致:
2021/12/31机器学习之scikit-learn分类器_第9张图片

通过正则化解决过拟合问题:

过拟合:模型在训练数据上表现良好,但是无法概括未见过的新数据或者测试数据

欠拟合:模型不足以捕捉训练数据的复杂模式,因此对为见过的数据表现不良。

方差:度量模型对样本预测结果的一致性。例如对于同一训练集的不同子集,模型是否能保持不变。对于训练数据随机性敏感

偏差:针对不同训练集多次建模,度量预测值和真实值之间的差距,度量非随机所带来的系统误差

高方差:模型过拟合,给定数据而言,参数太多,模型过于复杂

高偏置(差):模型欠拟合,给定数据,参数太少,模型过于简单

高方差和高偏差的判断:通过观察训练误差与测试误差的差距,差距大说明是高方差的,差距小则说明是高偏差。

2021/12/31机器学习之scikit-learn分类器_第10张图片

正则化

目的:找到好的偏差-方差平衡的方法,限制参数过多或者过大,避免模型更加复杂,通过正则化调整模型复杂度
定义:处理共线性(特征之间的高相关性),滤除数据中的噪声,并最终避免过拟合非常有效的方法
逻辑:引入额外的信息(偏差)来惩罚极端参数值(权重)
常见的正则化方法:L2正则化(L2收缩或权重衰减)
在这里插入图片描述
正则化参数:λ,作用是让模型变简单,不要过于复杂
正则项:逻辑回归中可以加入正则项使得模型在训练中缩小权重
在这里插入图片描述
λ正则项参数可以控制如何在更好地拟合训练数据的同时保持较小的权重,可以通过增大λ的值增大正则化强度
正则化参数λ与C和w的关系:C为逆正则化参数,λ越小,C越大,w越大,λ=-C,模型越过拟合

补充L1和L2正则:
1.L1是模型各个参数的绝对值之和。
2.L2是模型各个参数的平方和的开方值。

2021/12/31机器学习之scikit-learn分类器_第11张图片

二、支持向量机的最大余量分类

支持向量机(SVM)优化目标:寻找最大化边界。
支持向量机:边界定义为分离超平面(决策边界)与其最近的训练样本之间的距离,即支持向量机
2021/12/31机器学习之scikit-learn分类器_第12张图片
2021/12/31机器学习之scikit-learn分类器_第13张图片

如何理解间隔最大化?

间隔越大泛化误差越小,间隔越小越容易过拟合

正超平面:

在这里插入图片描述

负超平面:

在这里插入图片描述

两式子相减:

在这里插入图片描述

用向量w对式子归一化:

在这里插入图片描述
2021/12/31机器学习之scikit-learn分类器_第14张图片

方程的左边可以被解释为超平面正负之间的距离,即想要最大化的所谓间隔。现在,支持向量机的目标函数变成通过最大化右边 来最大化间隔,即最小化右边的倒数来实现最大化间隔(采用二次规划法)

2021/12/31机器学习之scikit-learn分类器_第15张图片

软间隔方法:

引入松弛变量ξ:要处理非线性可分问题,放松线性约束,允许在分类错误的情况下通过适当的代价惩罚来确保优化可以收敛
2021/12/31机器学习之scikit-learn分类器_第16张图片
最小化优化目标:
2021/12/31机器学习之scikit-learn分类器_第17张图片
这里的C可以和逻辑回归里的C一起理解,C为一个超参数,用于控制对分类错误的惩罚,C值越大相应的错误惩罚越大,容易造成过拟合,C越小分类错误不那么严,容易造成欠拟合,减小C增加偏置(差),但降低模型。
2021/12/31机器学习之scikit-learn分类器_第18张图片

三、支持向量机的核方法:

核是什么?是样本之间的相似性函数

核方法:针对线性不可分数据,建立非线性组合,通过映射函数φ把原始特征投到一个高维空间,特征在该空间变得线性可分。

2021/12/31机器学习之scikit-learn分类器_第19张图片

核技巧:

提出背景:为了使用SVM解决非线性问题,需要调用映射函数φ将训练数据变换成 在高维度空间上表示的特征,然后训练线性SVM模型对新特征空间里的数 据进行分类。可以用相同的映射函数φ对新的、未见过的数据进行变换,用 线性支持向量机模型进行分类。然而,这种映射方法的问题是构建新特征的计算成本非常高,特别是在处理高维度数据时。

核技巧:将x(i)Tx(j)替换为φ(x(i))Tφ(x(j))

核函数:

在这里插入图片描述
常用核函数:径向核函数(RBF)简称高斯核
2021/12/31机器学习之scikit-learn分类器_第20张图片
解释该公式:1.取反是因为把距离转化为相似性得分,
2指数运算是吧相似得分控制在1(完全相似)和0(非常不同)之间。
这里的

在这里插入图片描述
可以理解为高斯球的截至参数,增大γ,将增大训练样本的影响范围,导致决策面紧缩和波动,容易导致过拟合,减少γ,使得决策面相对偏松,容易导致欠拟合。这里可以和C进行比较,规律保持一致

四、决策树学习

决策树模型的学习逻辑:基于训练集的特征,通过学习一系列问题来推断样本的分类标签。决策树算法从树根开始,在信息增益(IG)最大的节点上分裂数据,各子节点在迭代过程中重复该分裂过程,直到只剩下叶子为止。这就意味着所有节点上的样本都属于同一类。

信息增益(IG)最大

1.定义目标函数:

2021/12/31机器学习之scikit-learn分类器_第21张图片
公式解释:

1.f是分裂数据的特征
2.Dp和Dj为父结点和第j个子节点
3.I为杂质含量
4.Np为父节点的样本数量
5.Nj是第j个子节点的样本数

父节点和子节点之间信息增益仅在杂志含量上存在差异,子节点杂志含量越低,信息增益越大。为简单起见我们只实现二元决策树,每个父结点只有左右两个子节点。
2021/12/31机器学习之scikit-learn分类器_第22张图片

2.三个杂志度量标准

基尼杂质度 IG

2021/12/31机器学习之scikit-learn分类器_第23张图片
可以理解为尽量减少错误分类概率的判断标准

信息熵IH

2021/12/31机器学习之scikit-learn分类器_第24张图片
这里p(i|t)为某节点t属于c类样本的概率。如果节点上所有样本都属于同一类,即只分一类,那么信息熵为0,如果类分的比较均匀,则信息熵最大

分类错误IE

在这里插入图片描述
这个是对剪枝有用的标准,但是对结点的分类概率变化不大敏感。

要学会计算哦!!!

构建决策树可以通过特征空间划分成不同的矩形来构建复杂的决策边界。但是决策树越深,决策边界越复杂

通过随机森林组合多个决策树

随机森林的优点:良好的分类性能,可扩展性和易用性。
随机胜利可以看成是决策树的集合
随机森林的逻辑:对分别受较大方差影响的多个决策树取平均值,以建立一个泛化性能和不易过拟合的强大模型.
随机森林的建立步骤:
1.随机提取规模为n的引导样本(从训练集中随机选择n个可替换样本)
2.基于引导样本的数据生成决策树.在每个结点完成以下任务
a.随机选择d个特征(不是考虑全部特征,而是特征的子集,无需替换<可以理解为不放回抽样>(为了增大树与树之间的差别)
b.根据目标函数提供最佳分裂特征来分裂结点,比如,最大化信息增益
3.重复1,2两步k次

聚合每棵树的预测结果,以多数票机制确定标签分类。

随机森铃的解释性不如决策树,但是可以不必为选择好的超参数担心,通常不需要剪枝。因为集合的模型来自于单个决策树的噪声,抵抗能力强,唯一需要关注的是随机森林中树的多寡k,通常树越多,随机森林分类器的性能越好,但是计算成本也越高。

随机森林中的超参数有哪些?

1.导引样本规模n
2.随机选择的特征树d
对于n:可以减少导引样本的规模,增加单棵树之间的多样性,增加随机森林的随机性,有助于减少过拟合,但是n较小会导致性能较低,一般来说不妨选择与原始训练集样本规模一样的n。
对于d,通常取如下公式,其中m为训练集的总特征数。

在这里插入图片描述

五、K-邻近算法

1.参数与非参数模型

参数模型:估计参数,从训练集中学习出一个函数,用来对新的数据点分类,不再需要原来的训练集,常见的有感知机,逻辑回归,线性支持向量机
非参数模型:不能用一组固定的参数描述,参数的个数随着训练数据的增长而增加,常见的有决策树分类器,随机森林和核支持向量机
基于实例的学习模型:以记忆训练集为特征,懒惰学习是基于实例的一种特殊情况,在学习过程中代价为0

2.KNN的训练逻辑:不从训练数据中学习判别函数,而是靠记忆训练过的数据集完成任务

3.KNN算法

1.选择k个数和一个距离度量
2.找到要分类样本的k近邻
3.以多数投票机制确定分类标签

2021/12/31机器学习之scikit-learn分类器_第25张图片

4.KNN算法的优缺点:

优点:当新的训练数据出现会快速适应
缺点:新样本分类的计算复杂度与训练样本在最坏情况下的规模呈现线性关系。同时不能丢弃训练样本,要处理大型数据,存储空间受到挑战。

5.距离的选择,可以选择简单的欧式距离等等

6.数维诅咒:KNN易于过拟合,当固定规模的训练集维数越来越大,特征空间会越来越稀疏,可以认为是即使是最近的邻居在高位空间的距离也很远,无法合适估计。(正则化的方法不适用于决策树和KNN,可以采取特征选择和降维的方法避免该问题)

六、大总结

这里展示了许多不同的解决线性和非线性问题的机器学习分类算法。
1如果关心可解释性,决策树特别有吸引力。
2逻辑回归不仅是一种有用的在线随机梯度下降模型,而且还可以预测特定事件的概率。
3.虽然支持向量机有强大的线性模型,也可以通过核技巧扩展到非线性问题,但必须调整许多参数才能做好预测。
4.随机森林这样的组合方法不需要调整太多参数,而且
不易过拟合,像决策树一样容易,这使得其成为许多实际问题领域具有吸引
力的模型。
5.KNN分类器通过懒惰学习提供了另一种分类方法,允许在没有
任何模型训练的情况下进行预测,但预测所涉及的计算成本昂贵。

你可能感兴趣的:(机器学习,scikit-learn,逻辑回归)