01-线性回归
线性回归的优点:
- 速度快,一旦训练完毕,就不再需要数据集
- 线性回归是所有机器学习的基础,概念非常重要
线性回归的缺点:
为什么需要线性回归
试图找到自变量(independent variable)与因变量(dependent variable)之间的关系
给你房间的面积,求解房屋的价格。
线性回归就是求解m和b的过程。
注意:自变量可以有很多个,不只一个,房屋面积,离市中心距离,卧室数量,卫生间数量这些都可以当作自变量。
打开excel绘制趋势图
线性回归就是求解m = 122.6 b=1.086的过程。
初步理解梯度下降
梯度下降基本上是所有复杂机器学习框架的基石
初始数据集
面积 |
房价 |
80 |
200 |
95 |
230 |
104 |
245 |
112 |
247 |
125 |
259 |
135 |
262 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 | import numpy as np
data = np.array([
[80,200],
[95,230],
[104,245],
[112,247],
[125,259],
[135,262]
])
import matplotlib.pyplot as plt
%matplotlib notebook
fig = plt.figure(figsize=(6, 6), dpi=80)
plt.xlim(70 ,140)
plt.ylim(0, 300)
plt.scatter(data[:,0],data[:,1],c='r',marker='o',label='like')
plt.show()
|
课外阅读
爱因斯坦的小板凳
爱因斯坦小的时候,老师布置手工作业,让他们回家做出一个小板凳第二天交给老师。第二天,同学们都争先恐后的教出自己的作品,然而爱因斯坦却交给老师一个制作得很粗糙,一条凳腿还钉偏了的小板凳。
当时老师十分的不满,拿着板凳对同学说道:“你们有谁见过这么糟糕的凳子?”当时全班同学都笑翻了纷纷摇头。这时候老师又生气的对着爱因斯坦说:“我想,世界上不会再有比这更坏的凳子了。”
这时候爱因斯坦红着脸,走到老师前面,坚定的说:“有,老师,还有比这更坏的凳子。”于是全班同学停止了笑声,疑惑的望着爱因斯坦。
只见爱因斯坦走回自己的座位,并且从书桌下拿出两个更为粗糙的木板凳,说道:“这是我第一次和第二次制作的,而刚交上去的是第三个虽然不能让人满意,但是比起这两个要强得多。”
看到这里,原本生气的老师不再生气的指责爱因斯坦,而全班同学也再也没有嘲笑过爱因斯坦。
读后感: 没有对比就没有伤害。没有对比就没有进步。
第一个小板凳
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 | import numpy as np
data = np.array([
[80,200],
[95,230],
[104,245],
[112,247],
[125,259],
[135,262]
])
import matplotlib.pyplot as plt
%matplotlib notebook
fig = plt.figure(figsize=(6, 6), dpi=80)
plt.xlim(70 ,140)
plt.ylim(0, 300)
plt.scatter(data[:,0],data[:,1],c='r',marker='o',label='like')
X = np.linspace(70, 140, 7) # -pi到pi之间的7个点
price = np.ones(7)*100
plt.plot(X,price)
plt.annotate(r'$y=0x+100$',
xy=(100, 100), xytext=(+10, +50),
textcoords='offset points', fontsize=12,
arrowprops=dict(arrowstyle="->"))
plt.show()
|
走过路过,千万不要错过,所有同源统统一百万,一百万买不到吃亏,买不到上当。
第二个小板凳
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 | import numpy as np
data = np.array([
[80,200],
[95,230],
[104,245],
[112,247],
[125,259],
[135,262]
])
import matplotlib.pyplot as plt
%matplotlib notebook
fig = plt.figure(figsize=(6, 6), dpi=80)
plt.xlim(70 ,140)
plt.ylim(0, 300)
plt.scatter(data[:,0],data[:,1],c='r',marker='o',label='like')
X = np.linspace(70, 140, 7) # -pi到pi之间的7个点
price = np.ones(7)*200
plt.plot(X,price)
plt.annotate(r'$y=0x+100$',
xy=(100, 100), xytext=(+10, +50),
textcoords='offset points', fontsize=12,
arrowprops=dict(arrowstyle="->"))
plt.show()
|
第三个小板凳
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 | import numpy as np
data = np.array([
[80,200],
[95,230],
[104,245],
[112,247],
[125,259],
[135,262]
])
import matplotlib.pyplot as plt
%matplotlib notebook
fig = plt.figure(figsize=(6, 6), dpi=80)
plt.xlim(70 ,140)
plt.ylim(0, 300)
plt.scatter(data[:,0],data[:,1],c='r',marker='o',label='like')
X = np.linspace(70, 140, 7) # -pi到pi之间的7个点
price = np.ones(7)*246
plt.plot(X,price)
plt.annotate(r'$y=0x+246$',
xy=(100, 246), xytext=(+10, +20),
textcoords='offset points', fontsize=12,
arrowprops=dict(arrowstyle="->"))
plt.show()
|
思考题:
哪一个小板凳更好
如何用数据说话,用数据说明哪个小板凳好
面积 |
预测价 |
真实价 |
差价 |
80 |
100 |
200 |
100 |
95 |
100 |
230 |
130 |
104 |
100 |
245 |
145 |
112 |
100 |
247 |
147 |
125 |
100 |
259 |
159 |
135 |
100 |
262 |
162 |
总计误差,843万
面积 |
预测价 |
真实价 |
差价 |
80 |
200 |
200 |
0 |
95 |
200 |
230 |
30 |
104 |
200 |
245 |
45 |
112 |
200 |
247 |
47 |
125 |
200 |
259 |
59 |
135 |
200 |
262 |
62 |
总计误差,243万
面积 |
预测价 |
真实价 |
差价 |
80 |
246 |
200 |
-46 |
95 |
246 |
230 |
-16 |
104 |
246 |
245 |
-1 |
112 |
246 |
247 |
1 |
125 |
246 |
259 |
13 |
135 |
246 |
262 |
16 |
总计误差(绝对值),93万