一个例子
- 数据:工资和年龄(2个特征)
- 目标:预测银行会贷款给我多少钱(标签)
- 考虑:工资和年龄都会影响最终银行贷款的结果,那么他们各自会有多大的影响呢?(参数)
样本数据如下图所示:
通俗解释
- X1,X2就是我们的两个特征(工资,年龄),Y是银行最终会借给我们多少钱
- 找到合适的一条线(想象一个高维)来最好的拟合我们的数据点
数学公式
- 假设θ1\theta_1θ1是年龄的参数,θ2\theta_2θ2是工资的参数
- 拟合的平面:hθ(x)=θ0+θ1(x1)+θ2h_\theta(x)=\theta_0+\theta_1(x_1)+\theta_2hθ(x)=θ0+θ1(x1)+θ2(x2x_2x2)(θ0\theta_0θ0是偏置项)
- 整合后:hθ(x)=∑n=1Nxnθn=θTxh_\theta(x)=\sum_{n=1}^N{x_n\theta_n}=\theta^Txhθ(x)=∑n=1Nxnθn=θTx(其中x0x_0x0全为1)
误差
- 真实值和预测值之间肯定是存在差异的(用ϵ\epsilonϵ来表示该误差)
- 对于每个样本iii:yi=θTxi+ϵiy^i=\theta^Tx^i+\epsilon^iyi=θTxi+ϵi
- 误差ϵi\epsilon^iϵi是独立并且具有相同的分布,并且服从均值为0,方差为θ2\theta^2θ2的高斯分布
- 独立:张三和李四一起来贷款,他俩没关系
- 同分布:他俩都来得是我们假定的这家银行
- 高斯分布:银行可能会多给,也可能会少给,但是绝大多数情况下这个浮动不会太大,极小情况下浮动会比较大,符合正常情况(值特殊时是正太分布)
- 预测值和误差:yi=θTxiy^i=\theta^Tx^iyi=θTxi+ϵi——(1)\epsilon^i ——(1)ϵi——(1)
- 由于误差服从高斯分布:p(ϵi)=12πσ∗e−(ϵi)22σ2——(2)p(\epsilon^i)=\frac{1}{\sqrt{2π}\sigma}*e^{\frac{-(\epsilon^i)^2}{2\sigma^2}} ——(2)p(ϵi)=2πσ1∗e2σ2−(ϵi)2——(2)
- 将(1)式代入(2)式:p(yi∣xi;θ)=12πσ∗e−(yi−θTxi)22σ2p(y^i|x^i;\theta)=\frac{1}{\sqrt{2π}\sigma}*e^{\frac{-(y^i-\theta^Tx^i)^2}{2\sigma^2}} p(yi∣xi;θ)=2πσ1∗e2σ2−(yi−θTxi)2
- 似然函数:L(θ)=∏i=1mp(yi∣xi;θ)=∏i=1m12πσ∗e−(yi−θTxi)22σ2L(\theta)=\prod_{i=1}^mp(y^i|x^i;\theta)=\prod_{i=1}^m\frac{1}{\sqrt{2π}\sigma}*e^{\frac{-(y^i-\theta^Tx^i)^2}{2\sigma^2}}L(θ)=i=1∏mp(yi∣xi;θ)=i=1∏m2πσ1∗e2σ2−(yi−θTxi)2
- 解释:什么样的参数跟我们的数据组合后恰好是真实值
- 对数似然:logL(θ)=log∏i=1mp(yi∣xi;θ)=∏i=1m12πσ∗e−(yi−θTxi)22σ2\log L(\theta)=\log \prod_{i=1}^mp(y^i|x^i;\theta)=\prod_{i=1}^m\frac{1}{\sqrt{2π}\sigma}*e^{\frac{-(y^i-\theta^Tx^i)^2}{2\sigma^2}}logL(θ)=logi=1∏mp(yi∣xi;θ)=i=1∏m2πσ1∗e2σ2−(yi−θTxi)2
- 解释:乘法难解,加法就容易了,对数里面乘法可以转换成加法
- 展开化简:∑i=1mlog12πσ∗e−(yi−θTxi)22σ2=mlog12πσ−1σ2∗12∑i=1m(yi−θTxi)2\sum_{i=1}^m \log \frac{1}{\sqrt{2π}\sigma}*e^{\frac{-(y^i-\theta^Tx^i)^2}{2\sigma^2}}=m\log \frac{1}{\sqrt{2π}\sigma}- \frac{1}{\sigma^2}*\frac{1}{2}\sum_{i=1}^m(y^i-\theta^Tx^i)^2i=1∑mlog2πσ1∗e2σ2−(yi−θTxi)2=mlog2πσ1−σ21∗21i=1∑m(yi−θTxi)2
- 目标:让似然函数(对数变换后也一样)越大越好J(θ)=12∑i=1m(yi−θTxi)2(最小二乘法)J(\theta)=\frac{1}{2}\sum_{i=1}^m(y^i-\theta^Tx^i)^2(最小二乘法)J(θ)=21i=1∑m(yi−θTxi)2(最小二乘法)
- 目标函数:J(θ)=12∑i=1m(hθ(xi)−yi)2=12(Xθ−y)T(Xθ−y)J(\theta)=\frac{1}{2}\sum_{i=1}^m(h_\theta(x^i)-y^i)^2=\frac{1}{2}(X\theta-y)^T(X\theta-y)J(θ)=21i=1∑m(hθ(xi)−yi)2=21(Xθ−y)T(Xθ−y)
- 求偏导:∇θ=∇θ(12(Xθ−y)T(Xθ−y))=∇θ(12(θTXT−yT)(Xθ−y))\nabla_\theta=\nabla_\theta(\frac{1}{2}(X\theta-y)^T(X\theta-y))=\nabla_\theta(\frac{1}{2}(\theta^TX^T-y^T)(X\theta-y))∇θ=∇θ(21(Xθ−y)T(Xθ−y))=∇θ(21(θTXT−yT)(Xθ−y))
=∇θ(12(θTXTXθ−θTXTy−yTXθ+yTy))=\nabla_\theta(\frac{1}{2}(\theta^TX^TX\theta-\theta^TX^Ty-y^TX\theta+y^Ty))=∇θ(21(θTXTXθ−θTXTy−yTXθ+yTy))
=12(2XTXθ−XTy−(yTX)T)=XTXθ−XTy=\frac{1}{2}(2X^TX\theta-X^Ty-(y^TX)^T)=X^TX\theta-X^Ty=21(2XTXθ−XTy−(yTX)T)=XTXθ−XTy - 令偏导等于0:θ=XTyXTX\theta=\frac{X^Ty}{X^TX}θ=XTXXTy
评估方法
- 最常用的评估项R2:1−∑i=1m(y^i−yi)2(残差平方和)∑i=1m(yi−y‾)2(类似方差项)R^2:1-\frac{\sum_{i=1}^m(\hat y_i-y_i)^2(残差平方和)}{\sum_{i=1}^m(y_i-\overline y)^2(类似方差项)}R2:1−∑i=1m(yi−y)2(类似方差项)∑i=1m(y^i−yi)2(残差平方和)
- R2R^2R2的取值越接近于1,我们认为模型拟合的越好
- R2R^2R2的取值越接近于0,我们认为模型拟合的不好