【机器学习】监督学习:分类和回归

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhuanzhe117/article/details/79228406

  有没有想过为什么监督学习中“分类”占了一大半?

  监督学习是指有目标变量或预测目标的机器学习方法,包括分类和回归。对于分类来说,目标变量是样本所属的类别,在样本数据中,包含每一个样本的特征,如花朵颜色、花瓣大小,也包含这个样本属于什么类别,它是向日葵还是菊花,而这个类别就是目标变量。分类就是根据样本特征对样本进行类别判定的过程。对于回归来说,回归就是为了预测,比如预测北京的房价,每一套房源是一个样本,样本数据中也包含每一个样本的特征,如房屋面积、建筑年代等,房价就是目标变量,通过拟合出房价的直线预测房价,当然预测值越接近真实值越好,这个过程就是回归。

  分类和回归的区别在于:分类的目标变量是标称型的,以电影分类为例,一部电影无非是动作片、爱情片、喜剧片、恐怖片等类别。而回归的目标变量是连续数值型的,如果预测鲍鱼的年龄,则可能是任意正数了。

目前学过的分类算法有:

 

KNN

k-近邻算法,使用距离测量的方法进行分类。

原理是:存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。输入没有标签的新数据后,将数据的每个特征与样本集中数据对应的特征进行距离计算,然后提取样本集中特征最相似数据(最近邻)的分类标签。一般选择k(k不大于20)个最相似的数据,从k个数据中选择出现次数最多的分类,作为新数据的分类。

步骤是:

(1)计算待测点与已知类别数据集中的点的距离;

(2)按照距离升序排序;

(3)选取与待测点距离最小的k个点;

(4)计算前k个点所属类别的出现频率;

(5)返回频率最高的类别作为待测点的类别。

 

DecisionTree

决策树,通过选区最优特征划分数据集,构建一棵树,表示我们的整个决策过程。

原理是:利用已知样本数据提取出一系列规则,构造一棵决策树,利用这些规则对新数据进行分类。构造决策树时,需要找到当前数据集上哪个特征划分数据分类时能划分出最好的结果。最好的结果是指划分前,数据集混合程度较高,按某个特征划分后,多个数据集的数据混合程度较低。混合程度可以用信息熵来计算,混合程度变化量可以用信息增益来表示。构造决策树是离线的,构造完成可以用它执行分类。这里用到的是ID3算法,随着划分会消耗特征,且划分时不一定二分。(ID3、C4.5和CART是三个非常著名的决策树算法。简单地说,ID3使用信息增益作为选择特征的准则;C4.5使用信息增益比作为选择特征的准则;CART使用Gini指数作为选择特征的准则。)

步骤是:

因此,构建决策树的过程将是一个递归,递归返回的条件有三种:

(1)当前节点包含的样本属于同一类别,无需划分;

(2)当前属性集为空,或所有样本在属性集上取值相同,无法划分;

(3)当前节点包含样本集合为空,无法划分。

每一次递归就是

(1)通过计算信息增益寻找划分数据集的最好特征;

(2)划分数据集;

(3)创建分支节点。

 

NaiveBayes

朴素贝叶斯,基于概率论的分类方法,贝叶斯公式。

原理是:条件概率和贝叶斯模型。

步骤是:

(1)训练数据生成训练样本集:TF-IDF

(2)对每个类别计算P(yi)

(3)对每个特征属性计算所有类别的条件概率

(4)对每个类别计算P(x|yi)P(yi)

(5)以P(x|yi)P(yi)的最大项作为x的所属类别

用于文本分类一般步骤是:

(1)预处理:去除文本的噪声信息

(2)分词:使用分词器分词,并去除停用词

(3)构建词向量空间:统计文本词频,生成文本的词向量空间

(4)权重策略:使用TF-IDF发现特征词,并抽取为反映文档主题的特征

(5)分类器:使用算法训练分类器

(6)评价分类结果:分类器的测试结果分析

 

LogisticRegression:

   逻辑回归,是一种分类算法,就是回归+Sigmoid函数。

原理是:有一些数据点,我们对这些点进行拟合,得到一条最佳拟合线,这个拟合过程叫做回归,回归完成时得到最佳回归系数w,w是一个向量,向量维度为样本特征数+1,回归公式为:z=w0x0+w1x1+…+wnxn,这个公式就是模型的分界线,也叫判定边界,将待测样本的特征代入回归公式得到z值以后,代入Sigmoid函数,得到0或1,从而得到分类类别。当样本只有两个特征时,判定边界是一条二维平面上的直线,当样本有三个特征时,判定边界是三维空间的一个平面,当样本特征多于三个时,判定边界将会是多维的,我们统一把判定边界叫做超平面,这个概念在支持向量机中是同一个意思。

步骤是:

(1)采用(随机)梯度下降/上升算法求最佳回归系数

(2)画出决策边界

(3)通过Sigmoid函数进行分类

(4)测试算法准确率

 

学过的回归算法有:

 

LinearRegression

  线性回归,有时也称回归,不同情况下可以使用不同的回归方法,一般先采用线性回归方法得到最佳拟合直线,当出现欠拟合时,可采用局部加权线性回归,如果样本特征比样本数还多,就考虑使用缩减方法岭回归、lasso和前向逐步回归。

原理是:

1.线性回归,对于给定的样本x,与回归系数w通过xTw计算,可得到预测值y',真实值y与预测值y'之间的差值叫做误差,平方误差越小,说明预测结果越准确,也就是说使得误差平方和最小的w就是最好的系数,通过矩阵与导数知识的推导,可得到求w最优解的公式,由此求得w,完成回归,这个方法也叫最小二乘法。

2.局部加权回归LWLR,给待测点附近的每个点赋予一定的权重,采用高斯核计算权重,使得待测点附近的点具有较大的权重,较远的点具有较小的权重,甚至权重为0,这样一来,待测点的预测值将会更接近真实值,但这会导致准确过了头,发生过拟合,因此要调节高斯核的k,也是回归函数中唯一一个需要我们关注的参数,当k=1.0时,模型效果与线性回归基本无差异。该算法的问题就是计算量大,每个待测点都以全部样本点为参考求权重。

3.岭回归,是一种缩减方法,目的是通过引入常量和单位矩阵进行限制,使求得的w中,部分系数为0,也就是减少了不必要的特征,更好地理解数据的特征,从而求得比较准确的预测值。目前对岭回归的理解不是很深刻。

 

树回归

        CART算法叫作分类回归树,可用于分类也可用于回归,与ID3不同,CART可以处理连续型变量,采用二元切分法,构造的树是二叉树。构造树的过程依然是递归,我们可以构建两种树,回归树和模型树,回归树的叶节点包含单个值,模型树的单个节点包含的是线性方程,之所以采用树结构来切分数据,是因为这样处理数据集能得到更好的分类或回归效果。类似的,在该算法构建树的过程中,需要调节参数来控制什么时候生成叶节点,叶节点过多不是我们所希望的,所以通过调节参数以达到比较好的效果叫做预剪枝,通过测试集对树节点进行合并降低测试误差叫做后剪枝。

  

  几个算法的基本实现思路就先总结到这,后面再学习SVM和AdaBoost,以及各个算法的深入研究。

 题外话之读书方法:三遍读书法是快速阅读的利器,其实就是让我们第一遍读的时候快速与一本陌生的书混个眼熟,消除陌生感,人总是对自己熟悉的内容更感兴趣;第二遍在前面快速浏览的基础上,对每一章节仔细阅读,同时保证速度,和这本书变成熟悉的朋友;第三遍,能把前面看书的疑惑在本书中找到答案,并进行总结,在脑海中形成一张图。读书是一个把书读厚再读薄的过程,每一遍都比前面再熟悉一点而已,所以,一本书读一百遍也不为过,很多人努力去读一百本书,却很少有人把一本书读一百遍。

 

猜你喜欢

转载自blog.csdn.net/zhuanzhe117/article/details/79228406