线性回归
- 做分类,找一条线,将不同类分开。做回归,就是找一条线,将它们串起来。
- 线性模型形式化地写出来:
f(x)=w1*x1+w2*x2+……+wd*xd+b
。每一个x,代表一个属性;每一个w,代表一个权重。
- 线性回归,我们要做的就是,找到一个方程f(x),使f(x)==y(理想情况)。由于有过拟合的存在,完全相等未必是好的,所以我们找f(x)≈y。
w1*0.9+w2*0.8
w1*青绿色+w2*浊音
- 线性回归模型,非常擅长处理数值属性。所以我们要将离散的属性,转成数值属性。
- 在转换中需要考虑离散的属性中是否有序。例如:
身高属性:高 中 低 (有序);转成连续数值:1.0 0.5 0
。例如:颜色属性:青绿 浅白 黑色(无序);转成向量编码:[0 ,1 ,0]
- 如何找到一个线性回归,那么要使f(x)与y之间的均方误差最小化,求得w和b的最优解,用w* 和 b* 表示。
- 求最优解有一个经典的做法:最小二乘估计。
最小二乘解
- 偏导,表示变化率;偏导为0,不再变化,达到最大或最小。
- 线性回归的表达
(f(x)-y)^2
,没有最大值,可以无限偏离。只有可能是最小值,即f(x)==y,此时求得w和b的最优解。
多元线性回归
- 刚才的x并没有加粗,是一个标量。
- 现在的x加粗了,表示是一个向量。x有d个,w也有d个。
y=w1*x1+w2*x2+……+b*1
X=[x1,x2,……,xd,1] w^=[w1,w2,……,wd,b]
- 将w和b吸收入向量形式w^,则f(x)=Xw ^。多元时,要写成二次型的形式。
广义线性模型
线性模型的变化
广义线性模型
- 如何用回归的模型来解决分类问题呢,接下来将叙述。
对率回归
二分类任务
- 线性回归是实值输出,而分类期望的输出时0或1。那么我们需要有一个函数将实值输出z与0/1输出联系起来。
- 单调可微、任意阶可导,于是找到了对数几率函数。
对率回归
- 几率:y/(1-y) ,反映了x作为正例的相对可能性。
- 以对数几率函数作为联系函数的线性回归模型,称为对数几率回归。它是分类学习算法。
- 对率回归的优点:
- 不需要事先假设数据分布(可以对任意数据使用)
- 可得到“类别”的近似概率预测
- 可以用现有的数据优化方法求最优解。
对率回归求解
- 只有凸函数:梯度为0 的点,才是极值点。所以如下图所示的式子不是凸函数,不适用最小二乘法求解最优解。
- 极大似然法的假设:
MAX(P(真是+)*P(预测为+)+P(真是-)*P(预测为-))
通常加一个ln 因为概率连乘通常造成浮点数的下移。
- 其中
P(真是+)可用y表示,P(真是-)可用1-y表示;P(预测为+)用上图所示的P1(xi;β),P(预测为-)用上图所示的P0(xi;β)
线性判别分析(LDA)
- 先用线性模型做回归,找一个联系函数将线性结果与分类结果联系起来。例如:对率回归。
- 在线性模型上,把原来复杂的问题分开。可以引入很多种假设,其中一种线性判别分析。
- 有一条线模型,有两堆点(+,-)。如何通过这条线把它们分开呢?
- 假设我们能找到每个点在这条线上的投影。希望同类的样本点之间尽可能近,异类的样本点之间尽可能远。
- 未来的新样本若落入+号区域就是正类,落入-号区就是反类。
- 尽可能近,同类中的样本离均值向量近;尽可能远,两类的均值向量间的距离远。
- 以上是给定的一些符号。
- 在LDA中定义,类内散度矩阵:同类对象内部的分散程度。第0/1类,每个样本离中心有多远。
- 类间散度矩阵:两类样本的中心距离。
- LDA的目标是最大化J(广义瑞利商)。在J中
w
的大小不重要,分子分母可以约去;重要的是w
的方向。在做分类的过程中,本就是将点投影到线的延长线上,所以线的方向很重要。
- 在J中,令分母为1;J=分子。最大化该式子的等价形式为最小化负的该式子。
类别不平衡
y/(1-y)>1 ,y>1/2,预测为正例
,隐含了1/2作为标准。此时正反例是一样多的。- 正反例不平衡时,则需要使
y/(1-y)>m+/m-,预测为正例
y'/(1-y')=y/(1-y)*(m-/m+)
,是想找到一个新函数,新函数以1/2为切分点,能够代表原函数的切分点(m+/(m- + m+))
。- 然而,很难很精确地估计m-/m+。只有我们拿到的训练集,是整个潜在可能的数据的无偏采样,才能保证样本中的比例等于实际比例。
- 常见类别不平衡学习方法:
- 过采用:增加小类的数量,可以通过在两个样本间插值。
- 欠采样:将大类样本减少,使其与小类样本一样多。
- 阈值移动:调整阈值为正类数/总数。
以上就是本文的全部内容,感谢各位的阅读与支持!