问题:面积100平米售价120万是否值得投资?
1、确定x、y间的定量关系
y=f(x)
这一步是核心,有了这个定量关系,才能进一步去预测价格,然后进一步作出判读
2、根据关系预测合理价格
3、做出判断
如图,把对应的数进行可视化,然后通过线性模型y=ax+b去拟合这些点,对应了回归分析的方法。
原因:线性模型最基础最简单,而且点的分布接近于线性分布的
根据模型y=ax+b,那么就可以把整个问题转化成求解合理的a和b的过程。
若当a=0;b=1000000,如图
不符合数据点的分布,点到线的距离差距过大,也不符合实际情况。
若当a=-100000;b=1500000,如图
点和线差距更大,即拟合程度更加偏离实际值了。
假设
y
=
a
0
x
+
b
0
y = a_0 x + b_0
y=a0x+b0,可以先把a和b先假设出来
假设有m套房子,每套房子面积
x
i
\mathop x\nolimits_i
xi对应实际售价为
y
i
\mathop y\nolimits_i
yi
线性模型预测的售价为
y
i
′
y'_i
yi′,让
y
i
\mathop y\nolimits_i
yi和
y
i
′
y'_i
yi′尽可能接近,则拟合就是好的,
∴ m i n i m i z e { ∑ i = 1 m ( y ′ i − y ′ ) 2 } {\rm{minimize\{ }}\sum\limits_{{\rm{i = 1}}}^{\rm{m}} {\mathop {{\rm{(y'}}_{\rm{i}} {\rm{ - y')}}}\nolimits^{\rm{2}} } {\rm{\} }} minimize{i=1∑m(y′i−y′)2},m为样本数,即为损失函数,代表了样本的实际结果和预测结果的距离的平方和,这个要尽可能的小。
若拟合理想,则如图。
求解过程,判断那条线拟合程度更好。
代入公式进行计算
j
1
=
1
2
m
∑
i
=
1
m
(
y
1
′
−
y
)
2
=
1
2
×
3
×
(
(
0.5
−
1
)
2
+
(
1
−
2
)
2
+
(
1.5
−
3
)
2
)
=
0.583
j_1 = {1 \over {2m}}\sum\limits_{i = 1}^m {\mathop {(y'_1 - y)}\nolimits^2 } = {1 \over {2 \times 3}} \times (\mathop {(0.5 - 1)}\nolimits^2 + \mathop {(1 - 2)}\nolimits^2 + \mathop {(1.5 - 3)}\nolimits^2 ) = 0.583
j1=2m1i=1∑m(y1′−y)2=2×31×((0.5−1)2+(1−2)2+(1.5−3)2)=0.583
j 2 = 1 2 m ∑ i = 1 m ( y 2 ′ − y ) 2 = 1 2 × 3 × ( ( 4 − 1 ) 2 + ( 3 − 2 ) 2 + ( 2 − 3 ) 2 ) = 1.83 j_2 = {1 \over {2m}}\sum\limits_{i = 1}^m {\mathop {(y'_2 - y)}\nolimits^2 } = {1 \over {2 \times 3}} \times (\mathop {(4 - 1)}\nolimits^2 + \mathop {(3 - 2)}\nolimits^2 + \mathop {(2 - 3)}\nolimits^2 ) = 1.83 j2=2m1i=1∑m(y2′−y)2=2×31×((4−1)2+(3−2)2+(2−3)2)=1.83
1.83>0.583,所以绿色的线拟合会更好
那么在a和b未知的情况下,首先我们就采用梯度下降法进行求解a,b
梯度下降法引入
现实问题的思考
选择哪一种路线下山速度最快,即选择坡度最大的方向。
寻找函数极小值的方法
核心:计算开始点
x
i
\mathop x\nolimits_i
xi对应梯度,以一定步长向梯度反方向到达新的点
x
i
+
1
\mathop x\nolimits_{i + 1}
xi+1,重复此过程,直到
x
i
\mathop x\nolimits_i
xi、
x
i
+
1
\mathop x\nolimits_{i + 1}
xi+1几乎不再变化。
y
=
f
(
x
)
y = f(x)
y=f(x) 搜索方法:
x
i
+
1
=
x
i
−
α
⋅
∂
y
i
∂
x
i
\mathop x\nolimits_{i + 1} = \mathop x\nolimits_i - \alpha \cdot {{\partial \mathop y\nolimits_i } \over {\partial x_i }}
xi+1=xi−α⋅∂xi∂yi
即是从一个点出发 x i \mathop x\nolimits_i xi,沿着梯度 ∂ y i ∂ x i {{\partial \mathop y\nolimits_i } \over {\partial x_i }} ∂xi∂yi相反的方向,走一定的步长 α \alpha α,找到新的点 x i + 1 \mathop x\nolimits_{i + 1} xi+1,直到新的点和旧的点不再变化了,就找到了极小值的点
例子
y
=
f
(
x
)
=
x
2
−
4
x
+
4
y = f(x) = \mathop x\nolimits^2 - 4x + 4
y=f(x)=x2−4x+4
x
i
x_i
xi=1,
α
\alpha
α=0.01
x
i
+
1
x_{i + 1}
xi+1=?
根据
x
i
+
1
=
x
i
−
α
⋅
∂
y
i
∂
x
i
\mathop x\nolimits_{i + 1} = \mathop x\nolimits_i - \alpha \cdot {{\partial \mathop y\nolimits_i } \over {\partial x_i }}
xi+1=xi−α⋅∂xi∂yi
代入
x
i
+
1
\mathop x\nolimits_{i + 1}
xi+1 =1-0.01·(2·1-4)=1.02
这期间点就会往前挪动,直到挪动到逐渐接近极小值点x=2,来回不怎么变化,那么就找到了那个点。
minimize(J)
需要我们去寻找a和b使损失函数最小
J
=
1
2
m
∑
i
=
1
m
(
y
′
−
y
)
2
=
1
2
m
∑
i
=
1
m
(
a
x
i
+
b
−
y
)
2
=
g
(
a
,
b
)
J = {1 \over {2m}}\sum\limits_{i = 1}^m {\mathop {(y' - y)}\nolimits^2 } = {1 \over {2m}}\sum\limits_{i = 1}^m {\mathop {(ax_i + b - y)}\nolimits^2 } = g(a,b)
J=2m1i=1∑m(y′−y)2=2m1i=1∑m(axi+b−y)2=g(a,b)
重复计算直到收敛
首先计算机会生成临时变量
t
e
m
p
a
temp_a
tempa、
t
e
m
p
b
temp_b
tempb
t e m p a = a − α ∂ ∂ a g ( a , b ) = a − α 1 m ∑ i = 1 m ( a x i + b − y i ) temp_a = a - \alpha {\partial \over {\partial a}}g(a,b) = a - \alpha {1 \over m}\sum\limits_{i = 1}^m {(ax_i + b - y_i )} tempa=a−α∂a∂g(a,b)=a−αm1i=1∑m(axi+b−yi)
t e m p b = b − α ∂ ∂ b g ( a , b ) = b − α 1 m ∑ i = 1 m ( a x i + b − y i ) temp_b = b - \alpha {\partial \over {\partial b}}g(a,b) = b - \alpha {1 \over m}\sum\limits_{i = 1}^m {(ax_i + b - y_i )} tempb=b−α∂b∂g(a,b)=b−αm1i=1∑m(axi+b−yi)
传入下面的值
a = t e m p a a = temp_a a=tempa
b = t e m p b b = temp_b b=tempb
然后继续循环,往上代入计算
通过梯度下降法,从山丘某点出发,可以找到下降到山底最快的线路