直线机

机器学习常用经典模型及实现

发布时间:2022/8/30 16:31:01   
北京专业治白癜风的医院 http://m.39.net/news/ylzx/bjzkhbzy/

经过上一期的学习,明白了分类、回归、聚类等机器学习中的基本概念之后,介绍一些常用经典模型的核心思想,以及如何在scikit-learn中实现它们。在以下内容中,使用小写字母表示数值,使用粗体的小写字母表示向量,使用粗体的大写字母表示矩阵。

1.线性回归

线性回归(LinearRegression)属于有监督学习。将每条记录表示为一个m维向量x,m表示记录的特征数量,向量x各个维度上的分量即对应特征的值。线性回归模型可以表示为y=Wx+b,其中y和b为n维向量,分别表示模型输出和偏置项。n等于1时,进行回归,模型输出一个连续值;n大于1时,进行分类,模型输出一个n维向量,各分量表示不同类别对应的概率,归一化后选择最大者即可得到分类结果。W为n×m维矩阵,表示从输入x到输出y之间的线形映射。

线形回归模型的训练过程主要是根据已有的数据调整W和b。对于训练集中的每一条记录,可以由其特征x得出对应的y,并计算y与该记录真实标签之间的误差。将全部记录的误差进行求和,即可得到当前W和b对应的总误差,记作模型的损失函数。训练模型的目标便是让损失函数尽可能小,使用梯度下降法对损失函数求导,并根据梯度下降的方向调整模型参数即可,从而使得模型可以反映出训练集数据中特征和标签之间的关系。这种在训练集数据上定义并计算损失函数、根据梯度下降法调整模型参数的训练思想,对于大多数有监督学习模型而言都是适用的。

2.Logistic回归

Logistic回归(LogisticRegression)在线性回归的基础上增加了一些额外处理,公式表达为y=logit(Wx+b),这里的logit()即为Logistic函数,输入为一个n维向量,输入同样是一个n维向量,只过过将向量的每一个值都进行了归一化处理。例如,y=logit(x),那么两个向量的对应元素满足以下公式。

这样的好处是,向量x中可能会包含负值,而经过处理后,向量y中各个分量都为非负值并且全部加起来等于1,因此可以作为每个类别对应的输出概率,进行分类任务时,选择概率最大的类别即可。

.贝叶斯

朴素贝叶斯(NaiveBayesian)属于有监督学习,其核心思想是,最可能的分类是概率最大的分类。举一个非常简单的例子,当训练集中大多数长发用户对应的标签都是女生,而大多数短发用户对应的标签都是男生,那么对于测试集中的一名用户,如果为长发则分类为女生,如果为短发则分类为男生,即最可能的分类是概率最大的分类,而各个分类的概率可以通过基于训练集的统计获得。因此,朴素贝叶斯和概率论有密不可分的关系,还会涉及先验概率、后验概率、贝叶斯网络等更多内容。尽管朴素贝叶斯比较理论,但其在日常生活中有非常丰富的应用,感兴趣的话可以进一步了解。

4.K近邻

K近邻(KNearestNeighbor,KNN)属于有监督学习,其思想比较简单,为了确定一条测试记录的标签,可以找出训练记录中和其距离最近的K条记录。如果需要进行分类,则选出这K条训练记录中出现最多的分类标签;如果需要进行回归,则将这K条训练记录的标签值加权求和即可,权重和距离呈反比,距离该记录越远,对应的权重越小。

在使用K近邻模型时,主要需要考虑两个因素:如何选择最恰当的K,以及如何定义记录之间的距离。K的选择一般需要进行多次尝试,不宜过大或过小,和训练集数据量也存在关联。记录之间的距离可以使用最简单直观的欧拉距离进行计算。例如,当特征维度等于2时,每条记录对应xy坐标系平面上的一个点,使用欧拉公式即可计算点之间的距离。需要注意的是,在计算距离之前需要将各个特征进行归一化,因为不同特征的取值范围可能完全不同。

5.决策树

决策树(DecisionTree)属于有监督学习。举一个非常简单的例子,如果身高大于cm,则分类为成年人,否则分类为未成年人,这里的条件判断就是一次决策。假设已经有一棵训练好的决策树,树的每个非叶节点都对应一次条件判断,每个叶节点都对应一种分类标签。那么为了对一条记录进行分类,需要从根节点开始,根据判断结果进入相应的分支,并继续判断子节点的条件,如此不断进行直到抵达叶节点,将叶节点对应的类别作为分类结果。

决策树的训练过程即根据训练集数据,确定树的结构、每个非叶节点对应的条件判断、每个叶节点对应的分类标签。决策树的训练随着特征数量的增加会变得更加复杂,因为以上三方面内容的选取和设置将变得更加灵活。在训练之前需要设定一些决策树的模型参数,如树的最大深度、叶节点对应的最少记录数量、叶节点最大数量等,从而对决策树的结构进行适当限制,缩短训练时间并改善决策树的最终性能。

决策树的另一个特点是非线性分类边界。当以体重和身高为特征、以性别为标签时,每条记录都可以用xy坐标平面上的一个点来表示,那么二分类任务便是寻找一条最优的分界线,使得分界线一侧的点尽可能多地为男性,而另一侧则尽可能多地为女性。线性分类模型最终得到的分界线是一条直线,即线性分类边界。而决策树主要是通过树形判断分支实现的,例如身高是否大于cm、体重是否小于60kg等,因此得到的分界线呈锯齿状,为非线性分类边界,并且每一段都垂直于x轴或y轴。决策树也可以用于回归,如图2所示,来自于scikit-learn的官方示例,得到的回归拟合线同样呈锯齿状。还可以使用集成学习的方法,训练多个决策树并融合,即随机森林林(RandomForest)模型,从而实现更好的性能表现。

图2使用决策树进行回归

6.支持向量机

支持向量机(SupportVectorMachine)属于有监督学习,其核心思想是将记录点所在的原始空间,通过一些可选的核函数,变换到另一空间,使得在新空间中大大简化原始分类任务。例如,将平面坐标系变换为极坐标系之后,极坐标系中与半径轴垂直的一条分割直线,对应平面坐标系中的一个圆形分割曲线。

在新空间中进行二分类时,需要选择一个超平面(Hyperplane)作为分界面。一维空间中使用点进行分割,二维空间中使用曲线进行分割,三维空间中使用曲面进行分割,更高维空间中的分界面称作超平面。需要着重

转载请注明:http://www.aideyishus.com/lkjg/1405.html

------分隔线----------------------------