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