第3章:线性模型

基本形式#

给定由d个属性描述的示例x=(x1,x2,...,xd)T,线性模型试图通过一个线性组合来进行预测的函数,既:

f(x)=w1x1+w2x2+...+wdxd+bf(x)=wTx+b

其中w=(w1,w2,...,wd)T是线性模型中的学习参数。

线性回归#

在给定数据集D={(xi,yi),1im},其中xi是d维的向量。线性回归试图学习到:

f(xi)=wTxi+b,  st: f(xi)yi

其中f(xi)是样本xi的预测值,yi为真实值。

当我们的所有样本的预测值都尽量靠近实际值,则我们的线性规划越好。则我们可以将这个评判标准转化为求预测值与真实值的方差最小化,既:

E(w,b)=arg min(i=1m(f(xi)yi)2

对该公式求偏导得如下公式:

E(w,b)w1=2(wij=1mx1,j2j=1m(y1b)x1,j)E(w,b)w2=2(wij=1mx2,j2j=1m(y2b)x2,j)...E(w,b)wd=2(wij=1mxd,j2j=1m(ydb)xd,j)E(w,b)b=2(mbi=1m(yiwTxi))

然后设每个等式为0,则

wi=j=1myi(xi,jx¯)j=1mxi,j21m(j=1mxi,j)2, i=1,2,3,..,db=1mi=1myiwTxi

这样就可以得到可学习参数。

对数线回归#

将线性回归的预测函数做变化就可以得到对数线性回归模型,既:

lny=wTx+b

这里已经让模型的特征和真实结果引入了非线性映射,如图:

image-20230217133914927

更加一般的引入其他函数可以表示为:

g(y)=wTx+b

其中g函数为可微函数。

对数几率回归#

在上面的回归模型解决了连续预测任务,但是实际中存在大量离散任务,对数几率回归就可以解决离散任务。对于最简单的离散任务:二分类任务。只需要将上诉针对连续任务的回归模型中预测值大于0的样本预测为0,小于0的样本预测为1.就实现了简单的将连续离散化操作。但是由于我们在求可学习参数时需要进行求偏导,则我们需要引入一个可微函数来实现刚刚所讲的离散化操作,既就是对数几率函数:

y=11+ex

image-20230217134826424

则对数几率回归的预测函数如下:

y=11+e(wTx+b),y(0,1)

由于y(0,1)其实可以看做是样本x被认为是正样本的概率,并且将上面的公式变形,可以得到如下:

ln(y1y)=wTx+b

y=p(y=1|x),1y=p(y=0:x)。这里可能有点难以理解。对于一个二分类问题,既:

p(y=1|x)+p(y=0|x)=1,p(y=1|x)=11+e(wTx+b)p(y=0|x)=e(wTx+b)1+e(wTx+b)

注意:我这里e有负号,所以推到是和西瓜书上一致的。

然后,我们就可以根据最大似然估计将这个事件的概率最大化,其中整个事件指的是所有样本为正负样本这种情况出现的概率。则得到我们所需的目标函数:

l(w,b)=Πi=1mp(yi|xi,w,b)

由于连乘的函数不方便求偏导,所以我们对该目标函数对数化,在对数化之后乘以-1,则目标函数就变成了最小化问题,既:

l(w,b)=i=1mln(p(yi|xi,w,b))

后续的利用偏导求解可学习参数w,b的微分值,对其进行更新即可。

线性判别分析#

线性判别分析的思想:让所有样本都投影到一个更加低维度的空间中。比如对于一个二维空间中的点,投影到一条直线上,线性判别分析想找到一条线让同类点在投影线上的密度尽量高,在非同类点在投影线上的密度尽量低。

image-20230217141806656

给定数据集D={(xi),yi}i=1m,yi{0,1},令Xi,μi,i分别表示第i类(i{0,1})分类的样本集合,均值向量,协方差矩阵。下面将详细推导均值向量,协方差矩阵:

xij表示第i分类样本集合中的第i个样本,则:

μi=(j=1dxij,1|Xi|,j=1dxij,2|Xi|,..,j=1dxij,d|Xi|)Tl(w,b)=1|Xi|j=1m((wTxij+b)yi)2

我们可以将(wTxij+b)yi=(w,b,1)T(xij,1,yi), 令W=(w,b,1)T,X=(xi,1,yi)T.则:

l(w,b)=WTX(WTX)TWT(XXT)W

则协方差矩阵i=XXT.

则两个分类的均值和协方差为WTμi,wTiw。根据线性判别的思想要让同类密度大,异类密度小,则要求各类协方差之和尽量小,各类均值向量的欧式距离尽量大!对于一个二分类来说,则目标函数设计如下:

J=||wTμ0wTμ1||2wT0w+wT1w

下面如何求解可学习参数的详细推导就不做详细说明了。

多分类学习#

在实际任务中分类任务通常是多分类任务。对于有些模型可以直接扩展为多分类模型,比如神经网络直接在最后的全连接网络的输出层增加节点即可。但是对于二分类器来说就需要使用一些策略将二分类扩展到多分类:

常见的策略有:一对一一对其余多对多

一对一:对多个分类两两配对形成N(N1)2个分类器

一对其余:只将其中一个类视作正样本,其余为负样本,形成N个分类器

多对多:将多个类别视作正样本,其余为负样本。

常用的多对多划分策略:纠错输出码(EOOC)#

EOOC的过程主要分为2个步骤:

  • 编码:对N个类别做M次划分,每次将一部分类别划为正样本,一部分为负样本,从从而形成二分问题。这样形成了M个二分问题的训练集,可以训练出M个分类器
  • 解码:M个分类器分别对测试数据进行测试,这些测试数据进行编码,将这些编码与每个类别各自的编码进行比较,返回其中距离最小的类别为最终预测结果。

image-20230217151659127

类别不平衡问题#

类别不平衡指的是训练集中不用类别的训练样例数差别很大。从上面的对数几率回归来讲,如果正样本的数量远远大于负样本的数量,则p(y=1|x)的值也会很大。所以,我们需要对其进行调整。

假设m+,m表示正负样本的数量,则令y1y>m+m为的预测为正样本。这种方式称为再放缩。但是该方法往往在实际中不适用。下面介绍三种方式:

欠采样:删除一些数量过大的样本,使得正负样本的数量达到平衡。

过采样:对类别数量少的种类进行重复采样,使得正负样本的数量达到平衡。

直接基于原始数据集:直接基于原始数据进行学习,但是在使用训练好的分类器其进行预测时,将再放缩放入决策过程中。

作者:ALINGMAOMAO

出处:https://www.cnblogs.com/ALINGMAOMAO/p/17130608.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   青山新雨  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示