分类 Classification
文章目录
- 分类
- 什么是分类?
- 前置知识
- 点到平面距离
- 最大似然估计
- 训练集的矩阵表示
- 感知机(Perceptron)
- 支持向量机(Support Vector Machines)
- 核方法与核函数
- 逻辑回归(Logistic Regression)
- 三种模型的对比
分类
什么是分类?
一种典型的有监督学习问题
如下图,假设线性可分训练集D={xi,yi}i=1n,y∈{−1,1}D=\left\{\boldsymbol{x}_{i}, y_{i}\right\}_{i=1}^{n}, y \in\{-1,1\}D={xi,yi}i=1n,y∈{−1,1}
- 感知机:找到一条直线,将两类数据分开即可
- 支持向量机:找到一条直线,不仅将两类数据正确分类,还使得数据离直线尽量远
- 逻辑回归:找到一条直线使得观察到训练集的“可能性”最大
前置知识
点到平面距离
最大似然估计
”似然”:likelihood 可能性。
最大似然法,一种求解概率模型参数的方法。
最早是遗传学家以及统计学家罗纳德·费雪在1912年至1922年间开始使用。
训练集的矩阵表示
假设训练集的特征部分记为n×(d+1)n\times (d+1)n×(d+1)矩阵XXX,其中最后一列取值全为1.标签部分记为yyy,参数记为www:
y^=Xw\widehat{\boldsymbol{y}}=\mathbf{X} \mathbf{w} y=Xw
感知机(Perceptron)
假设f(x)=wTxf(\boldsymbol{x})=\mathbf{w}^{\mathrm{T}} \boldsymbol{x}f(x)=wTx,系数w=(w1,w2,…,wd,w0)T\mathbf{w}=\left(\mathrm{w}_{1}, \mathrm{w}_{2}, \ldots, \mathrm{w}_{\mathrm{d}}, \mathrm{w}_{0}\right)^{\mathrm{T}}w=(w1,w2,…,wd,w0)T,模型为:
y=H(f(x))={+1,wTx>0−1,wTx≤0y=H(f(x))=\left\{\begin{array}{ll} +1, & \mathbf{w}^{\mathrm{T}} \boldsymbol{x}>0 \\ -1, & \mathbf{w}^{\mathrm{T}} \boldsymbol{x} \leq 0 \end{array}\right. y=H(f(x))={+1,−1,wTx>0wTx≤0
令f(x)=0f(x)=0f(x)=0,可以得到决策超平面wTx=0\mathbf{w}^{\mathrm{T}} \boldsymbol{x}=0wTx=0
有nnn个训练样本,线性可分数据集D={(x1,y1),…,(xn,yn)}\mathrm{D}=\left\{\left(\boldsymbol{x}_{1}, y_{1}\right), \ldots,\left(\boldsymbol{x}_{\mathrm{n}}, y_{\mathrm{n}}\right)\right\}D={(x1,y1),…,(xn,yn)},点xi,yix_i,y_ixi,yi到决策超平面的距离为(不妨令∥w∥2=1\|\mathbf{w}\|\ _2=1∥w∥ 2=1):
di=∣wTxi∣∥w∥2=yiwTxi∥w∥2→yiwTxid_{i}=\frac{\left|\mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}}\right|}{\|\mathbf{w}\|_{\mathbf{2}}}=\frac{y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}}}{\|\mathbf{w}\|_{\mathbf{2}}} \rightarrow y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}} di=∥w∥2∣∣wTxi∣∣=∥w∥2yiwTxi→yiwTxi
优化目标是:误分类样本离超平面距离之和最小
目标函数:L(w)=−∑i∈MyiwTxi\mathrm{L}(\mathbf{w})=-\sum_{i \in M} y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}}L(w)=−∑i∈MyiwTxi,MMM为误分类样本集合{j∣yjwTxj<0}\left\{j \mid y_{j} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{j}}<0\right\}{j∣yjwTxj<0},
严格来说,在f(x)=0f(x)=0f(x)=0处不可微,是没有梯度的,所以用次梯度来解决。
梯度:∇L(w)=−∑i∈Myixi\nabla \mathrm{L}(\mathbf{w})=-\sum_{i \in M} y_{i} \boldsymbol{x}_{\boldsymbol{i}}∇L(w)=−∑i∈Myixi
梯度下降法(GD):
w(t+1)←w(t)+ηt∑i∈Myixi\mathbf{w}^{(t+1)} \leftarrow \mathbf{w}^{(t)}+\eta_{t} \sum_{i \in M} y_{i} \boldsymbol{x}_{\boldsymbol{i}} w(t+1)←w(t)+ηti∈M∑yixi
随机梯度下降法(SGD):
w(t+1)←w(t)+ηtyixi\mathbf{w}^{(t+1)} \leftarrow \mathbf{w}^{(t)}+\eta_{t} y_{i} \boldsymbol{x}_{\boldsymbol{i}} w(t+1)←w(t)+ηtyixi
感知机算法过程:
支持向量机(Support Vector Machines)
线性可分训练集D={(x1,y1),…,(xn,yn)}\mathrm{D}=\left\{\left(\boldsymbol{x}_{1}, y_{1}\right), \ldots,\left(\boldsymbol{x}_{\mathrm{n}}, y_{\mathrm{n}}\right)\right\}D={(x1,y1),…,(xn,yn)},点(xi,yi)\left(\boldsymbol{x}_{i}, y_{i}\right)(xi,yi)到决策超平面的距离di=yiwTxi∥w∥2d_{i}=\frac{y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}}}{\|\mathbf{w}\|_{2}}di=∥w∥2yiwTxi,我们的目标是让整个数据集离超平面越远越好,也就是让所有点中最近的点的距离最大:
maxwminiyiwTxi∥w∥2⇔maxw1∥w∥2miniyiwTxi\max _{\mathbf{w}} \min _{i} \frac{y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}}}{\|\mathbf{w}\|_{2}} \Leftrightarrow \max _{\mathbf{w}} \frac{1}{\|\mathbf{w}\|_{2}} \min _{i} y_{i} \mathbf{w}^{\mathrm{T}} x_{i} wmaximin∥w∥2yiwTxi⇔wmax∥w∥21iminyiwTxi
yiwTxiy_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}}yiwTxi相当于直线的系数,所以不妨令miniyiwTxi=1\min _{i} y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}}=1miniyiwTxi=1,则:
maxw1∥w∥2⇔minw12∥w∥22(1)\max _{\mathbf{w}} \frac{1}{\|\mathbf{w}\|_{2}} \Leftrightarrow \min _{\mathbf{w}} \frac{1}{2}\|\mathbf{w}\|_{2}^{2} \tag{1} wmax∥w∥21⇔wmin21∥w∥22(1)
因为假设了miniyiwTxi=1\min _{i} y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}}=1miniyiwTxi=1,那么对于训练集任意样本需满足yiwTxi≥1y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}} \geq 1yiwTxi≥1,对于不满足上述条件样本的损失函数定义为$1-y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}} $,则样本损失为合页损失(hinge loss):
L(yi,f(xi))=max(0,1−yiwTxi)(2)\mathrm{L}\left(y_{i}, f\left(\boldsymbol{x}_{\boldsymbol{i}}\right)\right)=\max \left(0,1-y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{i}}\right) \tag{2} L(yi,f(xi))=max(0,1−yiwTxi)(2)
为什么叫合页损失呢?如下配图:
所以,(1)(2)两个优化目标得到的目标函数:
L(w)=λ2∥w∥22+∑i=1nmax(0,1−yiwTxi)\mathrm{L}(\mathbf{w})=\frac{\lambda}{2}\|\mathbf{w}\|_{2}^{2}+\sum_{i=1}^{n} \max \left(0,1-y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{i}\right) L(w)=2λ∥w∥22+i=1∑nmax(0,1−yiwTxi)
其中,λ\lambdaλ是超参数,用来平衡两个优化目标
记不满足约束的样本集M={j∣yjwTxj<1}M=\left\{j \mid y_{j} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{\boldsymbol{j}}<1\right\}M={j∣yjwTxj<1},那么梯度为:
∇L(w)=λw−∑i∈Myixi\nabla \mathrm{L}(\mathbf{w})=\lambda \mathbf{w}-\sum_{i \in M} y_{i} \boldsymbol{x}_{i} ∇L(w)=λw−i∈M∑yixi
梯度下降法:
w(t+1)←w(t)−ηt(λw(t)−∑i∈Myixi)\mathbf{w}^{(t+1)} \leftarrow \mathbf{w}^{(t)}-\eta_{t}\left(\lambda \mathbf{w}^{(t)}-\sum_{i \in M} y_{i} \boldsymbol{x}_{i}\right) w(t+1)←w(t)−ηt(λw(t)−i∈M∑yixi)
随机梯度下降法:
w(t+1)←w(t)−ηt(λw(t)−I(i∈M)yixi)\mathbf{w}^{(t+1)} \leftarrow \mathbf{w}^{(t)}-\eta_{t}\left(\lambda \mathbf{w}^{(t)}-\mathrm{I}(i \in M) y_{i} \boldsymbol{x}_{i}\right) w(t+1)←w(t)−ηt(λw(t)−I(i∈M)yixi)
上面的算法是软间隔的SVM,如果是非线性的,使用映射的方法,从低维映射到高维。在高维会有维度灾难的问题,但是计算量还是低维的计算量。SVM没有很好解决的问题:怎么从低维映射到高维。
核方法与核函数
核方法的基本原理是把原坐标系里线性不可分的数据使用核函数(Kernel)投影到另一个空间,尽量使得数据在新的空间里线性可分。
- 核函数的引入避免了“维数灾难”,大大减小了计算量。而输入空间的维数nnn对核函数矩阵无影响,因此,核函数方法可以有效处理高维输入。
- 无需知道非线性变换函数的形式和参数。
- 核函数的形式和参数的变化会隐式改变从输入空间到特征空间的映射,进而对特征空间的性质产生影响,最终改变各种核函数方法的性能。
- 核函数方法可以和不同的算法相结合,形成多种不同的基于核函数技术的方法,且这两部分的设计可以单独进行,并可以为不同的应用选择不同的核函数和算法。
具体地,特征XiX_iXi和XjX_jXj在新空间中的内积可以由核函数k(xi,xj)k\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right)k(xi,xj)计算得到。
- 多项式核: k(xi,xj)=(xiTxj+r)dk\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right)=\left(x_{i}^{\mathrm{T}} \boldsymbol{x}_{j}+r\right)^{d}k(xi,xj)=(xiTxj+r)d, ddd为次数, rrr为截距项
- 拉普拉斯核: k(xi,xj)=exp(−∥xi−xj∥δ)k\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right) =\exp \left(-\frac{\left\|x_{i}-x_{j}\right\|}{\delta}\right)k(xi,xj)=exp(−δ∥xi−xj∥), $\delta>0 $
- 高斯核:k(xi,xj)=exp(−∥xi−xj∥22δ2)k\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right)=\exp \left(-\frac{\left\|x_{i}-x_{j}\right\|^{2}}{2 \delta^{2}}\right)k(xi,xj)=exp(−2δ2∥xi−xj∥2),δ>0\delta>0δ>0为窗宽
- Sigmoid核(Fisher核): k(xi,xj)=tanh(βxiTxj+θ)k\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right)=\tanh \left(\beta x_{i}^{\mathrm{T}} x_{j}+\theta\right)k(xi,xj)=tanh(βxiTxj+θ), β>0\beta>0β>0, $\theta<0 $
逻辑回归(Logistic Regression)
假设f(x)=wTxf(\boldsymbol{x})=\mathbf{w}^{\mathrm{T}} \boldsymbol{x}f(x)=wTx,系数w=(w1,w2,…,wd,w0)T\mathbf{w}=\left(\mathrm{w}_{1}, \mathrm{w}_{2}, \ldots, \mathrm{w}_{\mathrm{d}}, \mathrm{w}_{0}\right)^{\mathrm{T}}w=(w1,w2,…,wd,w0)T,训练集D={xi,yi}i=1n,y∈{−1,1}D=\left\{\boldsymbol{x}_{i}, y_{i}\right\}_{i=1}^{n}, y \in\{-1,1\}D={xi,yi}i=1n,y∈{−1,1},概率的解释:
p(y=1∣x)=11+e−wTx(1)p(y=1 \mid \boldsymbol{x})=\frac{1}{1+e^{-\mathrm{w}^{\mathrm{T}} x}} \tag{1} \\ p(y=1∣x)=1+e−wTx1(1)
p(y=−1∣x)=1−p(y=1∣x)=11+ewTx(2)p(y=-1 \mid \boldsymbol{x})=1-p(y=1 \mid \boldsymbol{x})= \frac{1}{1+e^{\mathrm{w}^{\mathrm{T}}x}} \tag{2} p(y=−1∣x)=1−p(y=1∣x)=1+ewTx1(2)
类似sigmoid函数,(1)式代表样本是正的概率,(2)式代表样本是负的概率,结合$ y \in{-1,1},加入,加入,加入y后,样本后,样本后,样本(\boldsymbol{x}{1}, y{1})$的概率为:
p(yi∣xi)=11+e−yiwTxip\left(y_{i} \mid \boldsymbol{x}_{i}\right)=\frac{1}{1+e^{-y_{i} \mathbf{w}^{\mathrm{T}} x_{i}}} p(yi∣xi)=1+e−yiwTxi1
这时,我们想到最大似然估计,把每一个概率连乘,得到似然函数为:
L(w)=∏i=1np(yi∣xi)=∏i=1n11+e−yiwTxi\mathrm{L}(\mathbf{w})=\prod_{i=1}^{n} p\left(y_{i} \mid \boldsymbol{x}_{i}\right)=\prod_{i=1}^{n} \frac{1}{1+e^{-y_{i} w^{\mathrm{T}} x_{i}}} L(w)=i=1∏np(yi∣xi)=i=1∏n1+e−yiwTxi1
为了便于计算,取对数,将乘法变为加法,负对数似然函数为:
NLL(w)=∑i=1nln(1+e−yiwTxi)\operatorname{NLL}(\mathbf{w})=\sum_{i=1}^{n} \ln \left(1+e^{-y_{i} \mathbf{w}^{\mathrm{T}} x_{i}}\right) NLL(w)=i=1∑nln(1+e−yiwTxi)
梯度为:
w(t+1)←w(t)+ηt∑i=1nyixi1+eyiwTxi\mathbf{w}^{(t+1)} \leftarrow \mathbf{w}^{(t)}+\eta_{t} \sum_{i=1}^{n} \frac{y_{i} \boldsymbol{x}_{i}}{1+e^{y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{i}}} w(t+1)←w(t)+ηti=1∑n1+eyiwTxiyixi
随机梯度下降法:
w(t+1)←w(t)+ηt∑i=1nyixi1+eyiwTxi\mathbf{w}^{(t+1)} \leftarrow \mathbf{w}^{(t)}+\eta_{t} \sum_{i=1}^{n} \frac{y_{i} \boldsymbol{x}_{i}}{1+e^{y_{i} \mathbf{w}^{\mathrm{T}} \boldsymbol{x}_{i}}} w(t+1)←w(t)+ηti=1∑n1+eyiwTxiyixi
三种模型的对比
感知机:$\mathrm{L}(y, f(\boldsymbol{x}))=\max (0,-y f(\boldsymbol{x})) $
支持向量机 : L(y,f(x))=max(0,1−yf(x))\mathrm{L}(y, f(\boldsymbol{x}))=\max (0,1-y f(\boldsymbol{x}))L(y,f(x))=max(0,1−yf(x))
逻辑回归 : $\mathrm{L}(y, f(\boldsymbol{x}))=\ln (1+\exp (-y f(\boldsymbol{x}))) $
从图中可以看出,感知机对于小于0的有惩罚,支持向量机小于1就有惩罚。理想的损失函数:0-1损失 ,就是图中的黑色部分,但是这很难被高效地优化
感知机
- 关注误分类样本,将训练集样本分对即可
- 是支持向量机、神经网络的基本模型
- 只能应用于线性可分数据集
支持向量机
优点:
- 可以使用核技巧将低维数据转换到高维运算,保持低维的计算量
缺点:
- 如何选择核函数是一大困难
- 当特征维度远远大于样本量时,效果会比较差
- 当样本量很大时,使用非线性核函数会导致计算效率低下
- SVM无法直接输出概率化的取值
逻辑回归
- 使用 Logistic 函数赋予样本概率解释
- 使用最大似然法求解,是一种线性分类模型
- 为防止过度拟合,可在优化目标添加正则项
分类 Classification相关推荐
- 分类(classification)是认知的基础、分类步骤及主要算法、分类与回归的区别、分类过程
分类(classification)是认知的基础.分类步骤及主要算法.分类与回归的区别.分类过程 目录
- 机器学习笔记04:逻辑回归(Logistic regression)、分类(Classification)
之前我们已经大概学习了用线性回归(Linear Regression)来解决一些预测问题,详见: 1.<机器学习笔记01:线性回归(Linear Regression)和梯度下降(Gradien ...
- 机器学习12:分类 Classification
分类(Classification)是一个有监督的学习过程,目标数据集(示例集)中具有的类别是已知的,分类过程需要做的就是把每一条记录归到对应的类别下.由于必须事先知道各个类别的信息,并且所有待分类的 ...
- 回归(regression)与分类(classification)的区别
回归与分类的不同 1.回归问题的应用场景 2.分类问题的应用场景 3.如何选择模型 回归与分类的不同 1.回归问题的应用场景 回归问题通常是用来预测一个值,如预测房价.未来的天气情况等等,例如一个产品 ...
- 分类Classification:决策树Decision Tree
目录 分类的定义 决策树Decision Tree 混乱衡量指标Gini index 决策树的特点 分类的定义 分类:建立一个学习函数(分类模型)将每个属性集合(x1,x2,...xn)对应到一组已定 ...
- 独家思维导图!让你秒懂李宏毅2020机器学习(二)—— Classification分类
独家思维导图!让你秒懂李宏毅2020机器学习(二)-- Classification分类 在上一篇文章我总结了李老师Introduction和regression的具体内容,即1-4课的内容,这篇我将 ...
- KNN 分类算法原理代码解析
作者 | Charmve 来源 | 迈微AI研习社 k-最近邻算法是基于实例的学习方法中最基本的,先介绍基x`于实例学习的相关概念. 基于实例的学习 已知一系列的训练样例,很多学习方法为目标函数建立起 ...
- 随机森林RandomForest挖掘生物标记预测分类
随机森林简介 如果读者接触过决策树(Decision Tree)的话,那么会很容易理解什么是随机森林.随机森林就是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习 ...
- RandomForest:随机森林预测生物标记biomarker——分类
随机森林简介 R randomForest包 安装与加载 分类Classification 分类结果主坐轴分析 随机选取2/3预测,1/3验证 无监督分类 分层抽样 Reference 猜你喜欢 写在 ...
最新文章
- 哈佛大学(2020)《CS50 Python人工智能入门》课程资料下载
- _fseeki64在linux下的头文件,fseek能处理2GB以上的文件吗?
- 2016 ACM/ICPC Asia Regional Qingdao Online 1005 Balanced Game
- 吴恩达机器学习系列课程--个人笔记
- SQL Server T-SQL编程:数据库用户与安全设置
- Ubuntu 20.04 LTS 开发周期的重要任务:移除 Python 2
- wxcharts.js结合java后台在小程序中的使用(柱状图,其它同理)
- 20145235 《Java程序设计》第8周学习总结
- Face++ AI换脸
- 《如何克服社交焦虑》- (美)埃伦·亨德里克森著;冯晓霞译
- php字符串函数(2)替换、分割、填充、去除
- 卡巴斯基7.0反病毒一年激活码免费领取(官方活动,现已停止)
- ps新手零基础知识入门教程学习_图文
- excel用图标表示数据增减
- 元宇宙的隐私保护:技术与监管
- 饱受非议的上市手段,不被认可的量子初创公司是如何登陆纳斯达克的?
- Java 攻城狮面试题 03_ Nginx 反向代理服务器
- 23岁女生嫌男友年薪15万太低?网友称:我年薪100w+,跟我吧
- Google Earth Engine(GEE)——中国上海夜间灯光数据时序分析
- 2021-12-20 WPF上位机 120-三菱PLC协议之读写方法流程解析
热门文章
- 图解 MongoDB 地理位置索引的实现原理
- 解决博易博客后台文章管理页面无法显示分页的问题
- iOS-项目开发1-UIImage
- 51nod 1009 数字1的数量
- [代码]--GridControl使用技巧总结,更新中...
- Android日期格式化
- Android studio快捷键大全 和 eclipse对照(原)
- [Usaco2014 Open]Gold Fair Photography(hash)
- 如何在Delphi 中调用C#生成的DLL类库
- 【小型JavaFx项目】英汉词典