1.线性模型的基本形式
- 定义:给定一个数据集D,其中的样本有d个属性,
是第i个属性的取值,所以线性模型可以通过这样一个组合来学得一个属性的线性组合的函数用来预测:
写成向量形式就是,在确定w和b之后,就可以得到最终的模型。
2.线性回归
一元线性回归(单个属性)
- 属性值的转换:如果离散属性的数值之间存在一种有序关系,即可以通过排序的方式找出数值之间的关系,那么可以直接将这种属性的数值直接转换为连续值,比如高矮胖瘦,资产总数等属性;若无法通过排序的方式找出数值关系,就需要将属性值转换为数值向量的形式,比如对瓜进行分类,“西瓜”,“南瓜”,“黄瓜”可以转化为(0,0,1),(0,1,0),(1,0,0)
- 参数w和b的求解方法:核心思想是使损失函数最小化
具体求解方法,使均方误差最小化:
使用的数学方法是最小二乘法,即试图找到一条直线,使全部样例到直线上的欧氏距离的和最小:
- 先对w和b分别求导
- 将上面两个式子等于0然后列方程组,进行求解,可得到:
多元线性回归
- 所要学的目标函数形式为:
- 优化目标和一元类似,且数学方法也是最小二乘法
总结
线性模型的结构简单,求解方式也很容易理解,而且它还有很多种的变化,比如下一章的逻辑回归模型
3.逻辑回归(书中叫对数几率回归)
- 原理:假设样本的真实值在指数尺度上面变化,那就可以将输出标记的对数作为线性模型的逼近目标:
上式在形式上还是线性回归的样子,但是预测结果是一种输入空间到输出空间的非线性的映射
激活函数(联系函数):激活函数g(x)是一种将预测值和真实值做逼近的函数,上面的lnx就是激活函数的一种,激 活函数的基本性质需要满足单调可微且总够光滑。所以逻辑回归做分类的原理就是找到一个合适的激活函数将真实值和预测值进行更加有效的联系
2.逻辑回归激活函数的选择
- 因为二分类的真实值只有0,1两种选项,所以目标就是寻找一个激活函数将线性回归所求得的值映射为0,1值,如下图所示
根据对于激活函数单调可微且足够光滑的要求,选择对数几率函数为,最终的图像效果如上图所示,逻辑回归就是在用线性模型的值来逼近对数几率
3.逻辑回归的优点
- 不需要先假设数据的分布就能够对分类问题建模
- 在预测到类别的同时还计算出了近似概率
- 可以直接用数值优化算法来求解
总结
逻辑回归有诸多的好处且建模过程简单,具体优化过程见西瓜书第三章
4.线性判别分析(LDA)
- 核心思想:给定一个训练集,使用一些方法将训练集中的数据投影到直线上面去,具体任务就是让属于同类的样本点的投影之间的距离尽可能的近,不同类样本点的投影之间的尽可能远,如下图:
- 定义:两类样本的中心在直线上的投影为
和
,两类样本点的协方差为
和,类内散度矩阵和类间散度矩阵
- 优化目标:使同类之间的协方差尽可能小,使不同类之间的投影点尽可能远离 ,于是得到了LDA的优化目标,写成:
或者
- 计算方法:利用拉格朗日算子法,可以求解w的值
5.多分类学习
- 主要思想:将多分类转换为二分类 ,给每个二分类任务训练出一个分类器,然后用这些分类器同时进行预测,比较各分类器的预测值准确度。其中主要数据集拆分方法有一对多,一对一,多对多等
- 一对一和一对多的思想:一对一是将N个种类进行两两配对,然后阐述N(N-1)/2个二分类任务;一对多是将一个类作为正,其他的作为负,训练出N个分类器,具体的实现流程如下图:
- 一对一和一对多的优缺点:一对一需要训练更多的分类器,会消耗更多的存储开销,但是一对一在训练的时候每次只使用两类数据,而一对多每次训练都需要使用全部数据,这也会导致大量的时间开销,所以在类别较多时,一对一的时间开销往往更小
6.类别不平衡问题
- 主要指的是在进行分类任务时,不同类别的训练样例数目有很大差别的情况,比如1000个样本,有999个是正的,只有一个是反的,那么这个学得模型无法预测出反例,就失去了预测价值
- 但是这种现象可以用在异常检测之中,比如通过大量的好样本来训练一个检测飞机发动机好坏的模型,这样它可以学得很多好样本的特征 ,更偏向于好样本,所以如果输入一个坏的测试样例,那么这个模型就会得到一个异常的预测结果,这时候就可以判定飞机发动机有问题