博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
机器学习方法:回归(一):线性回归Linear regression
阅读量:5902 次
发布时间:2019-06-19

本文共 2452 字,大约阅读时间需要 8 分钟。

欢迎转载。转载请注明:本文出自。

开一个机器学习方法科普系列:做基础回想之用。学而时习之;也拿出来与大家分享。数学水平有限,仅仅求易懂,学习与工作够用。周期会比較长。由于我还想写一些其它的,呵呵。

content:

linear regression, Ridge, Lasso
Logistic Regression, Softmax
Kmeans, GMM, EM, Spectral Clustering
Dimensionality Reduction: PCA、LDA、Laplacian Eigenmap、 LLE、 Isomap(改动前面的blog)
SVM
ID3、C4.5
Apriori,FP
PageRank
minHash, LSH
Manifold Ranking,EMR
待补充

開始几篇将具体介绍一下线性回归linear regression,以及加上L1和L2的正则的变化。

后面的文章将介绍逻辑回归logistic regression。以及Softmax regression。为什么要先讲这几个方法呢?由于它们是机器学习/深度学习的基石(building block)之中的一个。而且在大量教学视频和教材中重复被提到。所以我也记录一下自己的理解,方便以后翻阅。这三个方法都是有监督的学习方法,线性回归是回归算法,而逻辑回归和softmax本质上是分类算法(从离散的分类目标导出),只是有一些场合下也有混着用的——如果目标输出值的取值范围和logistic的输出取值范围一致。

ok,废话不多说。

1、Linear Regression

能够说基本上是机器学习中最简单的模型了,可是实际上其地位非常重要(计算简单、效果不错。在非常多其它算法中也能够看到用LR作为一部分)。

先来看一个小样例,给一个“线性回归是什么”的概念。图来自[2]。

这里写图片描写叙述这里写图片描写叙述

如果有一个房屋销售的数据例如以下:
面积(m^2) 销售价钱(万元)
123 250
150 320
87 160
102 220
… …

当我们有非常多组这种数据。这些就是训练数据,我们希望学习一个模型,当新来一个面积数据时。能够自己主动预測出销售价格(也就是上右图中的绿线);这种模型必定有非常多。当中最简单最朴素的方法就是线性回归,也就是我们希望学习到一个线性模型(上右图中的红线)。只是说是线性回归,学出来的不一定是一条直线,仅仅有在变量x是一维的时候才是直线,高维的时候是超平面。

定义一下一些符号表达,我们通常习惯用X=(x1,x2,...,xn)TRn×p表示数据矩阵,当中xiRp表示一个p维度长的数据样本;y=(y1,y2,...,yn)TRn表示数据的label,这里仅仅考虑每个样本一类的情况。

线性回归的模型是这种。对于一个样本xi,它的输出值是其特征的线性组合:

f(xi)=m=1pwmxim+w0=wTxi
当中。
w0称为截距。或者bias。上式中通过添加
xi0=1
w0也吸收到向量表达中了,简化了形式,因此实际上
xi
p+1维度。

线性回归的目标是用预測结果尽可能地拟合目标label,用最常见的Least square作为loss function:

J(w)=1ni=1n(yif(xi))2=1nyXw2

从下图来直观理解一下线性回归优化的目标——图中线段距离(平方)的平均值,也就是最小化到切割面的距离和。

这里写图片描写叙述

也就是非常多中文教材中提到的最小二乘;线性回归是convex的目标函数,而且有解析解:

w^=(XTX)1XTy
线性回归到这里就训练完毕了,对每个样本点的预測值是
f(xi)=yi^=w^Txi

所以:

y^=Xw^=X(XTX)1XTy

接下来看一下我们寻找到的预測值的一个几何解释:从上面的解析解w^=(XTX)1XTy能够得到XT(y^y)=0(垂直的向量相乘=0)。因此实际上y^y在平面X(由列向量x1x2张成。如果仅仅有两维)上的投影。

预測值的直观解释

ok,一般介绍线性回归的文章到这里也就结束了,由于实际使用中基本就是用到上面的结果,解析解计算简单而且是最优解;当然如果求逆不好求的话就能够不用解析解,而是通过梯度下降等优化方法来求最优解,梯度下降的内容不在本篇中,后面讲逻辑回归会说到。也能够看我前面写的中有写到。或者直接翻阅。

只是在这里我再略微提几个相关的分析,能够參考ESL[3]的第3章中的内容。前面我们对数据本身的分布是没有不论什么如果的。本节以下一小段我们如果观察值yi都是不相关的,而且方差都是σ2。而且样本点是已知(且是中心化过了的。均值为0)的。

于是我们能够推出协方差矩阵

Var(β^)=(XTX)1σ2

证明:

Var(β^)=(XTX)1XTyytX(XTX)1=(XTX)1σ2

要预计方差σ2。能够用

σ^2=1np1i=1n(yiy^i)2
这里和一般的方差的形式看起来不同,分母是
np1而不是
n,是由于这种预计才是
σ2的无偏预计。
证明:

E(σ^2)=E(1np1i=1n(yiy^i)2)=E(1np1[yX(XTX)1XTy]T[yX(XTX)1XTy]=E(1np1yT[InX(XTX)1XT]y=nσ2np11np1tr(X(XTX)1XTyyT)=nσ2np1σ2np1tr(X(XTX)1XT)=nσ2np1(p+1)σ2np1=σ2

好,第一篇就写到这里。这个系列是从0開始的基础复习记录。力求清晰易懂。下一篇lasso和ridge regression。

參考资料

[1]
[2]
[3]The Elements of Statistical Learning,ch3

转载于:https://www.cnblogs.com/yutingliuyl/p/7074057.html

你可能感兴趣的文章
C#的异常处理机制
查看>>
vsftp:500 OOPS: could not bind listening IPv4 sock
查看>>
Linux安装BTCPayServer并设置比特币BTC和Lightning支付网关
查看>>
mysql安装,远程连接,以及修改密码
查看>>
Mybatis查询返回Map类型数据
查看>>
java的深拷贝与浅拷贝
查看>>
程序员如何提高工作效率
查看>>
promise
查看>>
将Java应用部署到SAP云平台neo环境的两种方式
查看>>
数据批量导入Oracle数据库
查看>>
调用lumisoft组件发邮件 不需要身份验证 不需要密码
查看>>
DW 正则
查看>>
抓屏原理
查看>>
UNIX网络编程读书笔记:TCP输出、UDP输出和SCTP输出
查看>>
扩展 DbUtility (1)
查看>>
iOS开发UI篇—使用picker View控件完成一个简单的选餐应用
查看>>
Apple Developer Registration and DUNS Number Not Accepted
查看>>
Hadoop学习笔记系列文章导航
查看>>
SpringMVC中ModelAndView addObject()设置的值jsp取不到的问题
查看>>
Prometheus : 入门
查看>>