线性回归案例
工作年限和所应用语言对应的工资
- 数据: 工作年限和编程语言
- 目标: 公司所给的工资(标签)
- 问题: 究竟工作年限影响大还是语言影响大(参数)
工作年限 | 编程语言 | 工资(K) |
---|---|---|
5 | java | 25 |
3 | python | 16 |
4 | .net | 16 |
5 | ml | 40 |
转换成数学问题 y=w1X1+w2X2+w0,y为输出的结果X1,X2分别代表工作年限和语言w1,w2分别代表工作年限的权重,编程语言的权重,w0代表的偏置项,转化到机器学习上 H θ ( x ) = θ 1 x 1 + θ 2 x 2 + θ 0 H_\theta(x)=\theta_1x_1+\theta_2x_2+\theta_0 Hθ(x)=θ1x1+θ2x2+θ0整合有(为何下标可以从0开始,你可以认为将 x 0 x_0 x0设置为1,后面的文章会有解释) H θ ( x ) = ∑ i = 0 n θ i x i = θ T x H_\theta(x)=\sum_{i=0}^{n}{\theta_ix_i}=\theta^Tx Hθ(x)=i=0∑nθixi=θTx
误差
理论值与实际的值之间存在差异,我们可以把这个差异就成为误差
y
i
=
θ
T
x
i
+
ϵ
i
y^{i}=\theta^Tx^{i}+\epsilon^{i}
yi=θTxi+ϵi 这里我们介绍下等式的含义
- i i i代表第 i i i号样本
- θ T x i \theta^Tx^{i} θTxi代表的预测出来的结果, θ \theta θ代表的是参数的权重, x i x^{i} xi代表的是样本数据
- y i y^{i} yi代表理论的结果
- ϵ i \epsilon^{i} ϵi代表预测出来的结果与实际结果的误差
如下面的图所示预测的是一个平面(多维叫超平面,二维叫平面,一维就是直线)红色的点就是真是的值红色点到平面的距离就是误差,红色的点有在平面上,有在平面的下,误差就出现了有正有负,接下来重点介绍下误差
- 误差的分布
误差 ϵ i \epsilon^{i} ϵi是独立并且同分布的,均值为0方差为 θ 2 \theta^2 θ2的高斯分布,为什么选择高斯分布?请看高斯分布的图形
越靠近均值附近,概率越大,误差分布在均值附近概率就越大.解释几个概念:
- 独立 张三李四都在某公司,理论上张三的工资和李四的工资没有关系(为何是理论上,实际中不排除关系户)
- 同分布 某公司是个大容器,里面装了员工,相对员工来说,都分布在一个容器里(都给公司干活)
- 高斯分布 某公司的标准3年java程序员15k,张三和李四都是3年的java程序员,张三工资15.1k,李四的工资14.9k误差均值为0,而且公司3年java程序员工资分布基本都在均值附近,差异不会太大,可能有25k的但是概率很小
高斯分布公式
p
(
ϵ
(
i
)
)
=
1
2
π
σ
e
−
(
ϵ
(
i
)
)
2
2
σ
2
(
1
−
1
)
p(\epsilon^{(i)})=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(\epsilon^{(i)})^2}{2\sigma^2}} (1-1)
p(ϵ(i))=2πσ1e−2σ2(ϵ(i))2(1−1)
y
(
i
)
=
θ
T
x
(
i
)
+
ϵ
(
i
)
(
1
−
2
)
y^{(i)}=\theta^Tx^{(i)}+\epsilon^{(i)} (1-2)
y(i)=θTx(i)+ϵ(i)(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\pi}\sigma}e^{(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})}
p(y(i)∣x(i);θ)=2πσ1e(−2σ2(y(i)−θTx(i))2)
这么多公式看着一脸懵逼,到底是干啥的呢!!!细细给你道来.先上大招,然后告诉你大招怎么按出来的,那就是似然估计
似然估计公式
L
(
θ
)
=
∏
i
=
1
n
p
(
y
(
i
)
∣
x
(
i
)
;
θ
)
=
∏
i
=
1
n
1
2
π
σ
e
(
−
(
y
(
i
)
−
θ
T
x
(
i
)
)
2
2
σ
2
)
L(\theta)=\prod_{i=1}^{n}p(y^{(i)}|x^{(i)};\theta)=\prod_{i=1}^{n}\frac{1}{\sqrt{2\pi}\sigma}e^{(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})}
L(θ)=i=1∏np(y(i)∣x(i);θ)=i=1∏n2πσ1e(−2σ2(y(i)−θTx(i))2)
含义:预测值与真实值相等的概率,它依赖于某个参数或者几个参数,用
θ
\theta
θ表示,将该概率看成是
θ
\theta
θ的函数,用
L
(
θ
)
L(\theta)
L(θ)表示,又称为
θ
\theta
θ的似然函数
例子:王五3年python工作经验,什么样的参数能使王五的工资接近15k,换句话说,就是王五的工资接近15k时,
θ
\theta
θ的值是什么,
θ
\theta
θ是概率,概率越大越好就是极大似然估计
- 极大似然估计量
L
(
θ
)
估
计
=
m
a
x
L
(
θ
)
的
解
θ
估
计
为
θ
的
极
大
似
然
估
计
量
L(\theta)估计=maxL(\theta)的解\theta估计为\theta的极大似然估计量
L(θ)估计=maxL(θ)的解θ估计为θ的极大似然估计量
求最值问题无非就是求导,判断单调性,在此之前,引入一个新的概念就是对数似然估计
l o g ( L ( θ ) ) = l o g ( ∏ i = 1 n 1 2 π σ e ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) ) log(L(\theta))=log(\prod_{i=1}^{n}\frac{1}{\sqrt{2\pi}\sigma}e^{(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})}) log(L(θ))=log(i=1∏n2πσ1e(−2σ2(y(i)−θTx(i))2))
为何要引入似然估计,因为似然估计都是样本数量的相乘,不容易计算,从而引入对数似然,因为在定义域内,对数函数不会影响原函数的单调性
L
o
g
A
B
=
L
o
g
A
+
L
o
g
B
LogAB=LogA+LogB
LogAB=LogA+LogB
- 对数似然估计展开
l o g ( L ( θ ) ) = l o g ( ∏ i = 1 n 1 2 π σ e ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) ) log(L(\theta))=log(\prod_{i=1}^{n}\frac{1}{\sqrt{2\pi}\sigma}e^{(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})}) log(L(θ))=log(i=1∏n2πσ1e(−2σ2(y(i)−θTx(i))2)) = ∑ i = 1 n l o g 1 2 π σ e ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) =\sum_{i=1}^{n}log\frac{1}{\sqrt{2\pi}\sigma}e^{(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})} =i=1∑nlog2πσ1e(−2σ2(y(i)−θTx(i))2) = ∑ i = 1 n ∗ 1 2 π ∗ σ + ∑ i = 1 n l o g e ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) =\sum_{i=1}^{n}*\frac{1}{\sqrt{2\pi}*\sigma}+\sum_{i=1}^{n}log_e^{(-\frac{(y^{(i)}-\theta^Tx^{(i)})^2}{2\sigma^2})} =i=1∑n∗2π∗σ1+i=1∑nloge(−2σ2(y(i)−θTx(i))2) = n ∗ 1 2 π σ − 1 2 ∗ 1 σ 2 ∗ ∑ i = 1 n ( y ( i ) − θ T x ( i ) ) 2 =n*\frac{1}{\sqrt{2\pi}\sigma}-\frac{1}{2}*\frac{1}{\sigma^{2}}*\sum_{i=1}^{n}(y^{(i)}-\theta^Tx^{(i)})^2 =n∗2πσ1−21∗σ21∗i=1∑n(y(i)−θTx(i))2
观察此式子想获取最大似然函数,减号后面的式子为正当且仅当后面的式子最小的时候,似然函数最大,为了纪念这伟大时刻,取个牛逼点的名字吧,损失函数
: J ( θ ) = 1 2 ∑ i = 1 n ( y ( i ) − h θ ( x ( i ) ) ) 2 J(\theta)=\frac{1}{2}\sum_{i=1}^{n}(y^{(i)}-h_\theta(x^{(i)}))^2 J(θ)=21i=1∑n(y(i)−hθ(x(i)))2 - 上式中求损失函数最小值问题常用算法
最小二乘法:直接另导数为0
梯度下降法:不断迭代
牛顿法:二阶导,收敛速度快
接下来会详细介绍下最小二乘法