赞
踩
几种常见函数的导数:
① C’=0(C为常数);
② (xn)’=nx(n-1) (n∈Q);
③ (sinx)’=cosx;
④ (cosx)’=-sinx;
⑤ (ex)’=ex;
⑥ (ax)’=axIna (ln为自然对数)
⑦ loga(x)’=(1/x)loga(e)
导数的四则运算
①(u±v)’=u’±v’
②(uv)’=u’v+uv’
③(u/v)’=(u’v-uv’)/ v^2
④[u(v)]’=[u’(v)]*v’ (u(v)为复合函数f[g(x)])
矩阵转置
线性回归的方程 机器学习本质:解方程 有斜率 截距
最小二乘法(Least Squares Method,简记为LSE)是一个比较古老的方法,源于天文学和测地学上的应用需要。在早期数理统计方法的发展中,这两门科学起了很大的作用。丹麦统计学家霍尔把它们称为“数理统计学的母亲”。此后近三百年来,它广泛应用于科学实验与工程技术中。美国统计史学家斯蒂格勒( S. M. Stigler)指出, 最小二乘方法是19世纪数理统计学的压倒一切的主题。1815年时,这方法已成为法国、意大利和普鲁士在天文和测地学中的标准工具,到1825年时已在英国普遍使用。追溯到1801年,意大利天文学家朱赛普·皮亚齐发现了第一颗小行星谷神星。经过40天的跟踪观测后,由于谷神星运行至太阳背后,使得皮亚齐失去了谷神星的位置。随后全世界的科学家利用皮亚齐的观测数据开始寻找谷神星,但是根据大多数人计算的结果来寻找谷神星都没有结果。时年24岁的高斯也计算了谷神星的轨道。奥地利天文学家海因里希·奥尔伯斯根据高斯计算出来的轨道重新发现了谷神星。高斯于其1809年的著作《关于绕日行星运动的理论》中。在此书中声称他自1799年以来就使用最小二乘方法,由此爆发了一场与勒让德的优先权之争。近代学者经过对原始文献的研究,认为两人可能是独立发明了这个方法,但首先见于书面形式的,以勒让德为早。然而,现今教科书和著作中,多把这个发明权归功于高斯。其原因,除了高斯有更大的名气外,主要可能是因为其正态误差理论对这个方法的重要意义。勒让德在其著作中,对最小二乘方法的优点有所阐述。然而,缺少误差分析。我们不知道,使用这个方法引起的误差如何,就需建立一种误差分析理论。高斯于1823年在误差e1 ,… , en独立同分布的假定下,证明了最小二乘方法的一个最优性质: 在所有无偏的线性估计类中,最小二乘方法是其中方差最小的!在德国10马克的钞票上有高斯像,并配了一条正态曲线。在高斯众多伟大的数学成就中挑选了这一条,亦可见这一成就对世界文明的影响。
xi [[0.5],[1],[2],[3],[4]]
yi:1,2,4,6,8
y: = wx + b ----> wx + b
H = ((wxi + b- yi)^2).sum()
w = 2;b = 0-----> H最小值
y = (x - 2.5)**2 - 1
得名于f(x)=ax+b的图像的形象 很直观 就是一条直线的形象
import numpy as np from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt %matplotlib inline from sklearn import datasets # 波士顿房价 boston = datasets.load_boston() X = np.linspace(0,10,50).reshape(-1,1) X #array([[ 0. ], [ 0.20408163],... [ 9.59183673],[ 9.79591837],[10. ]]) y = np.random.randint(2,8,size = 1)*X y #array([[ 0. ],[ 1.2244898 ],...[57.55102041],[58.7755102 ],[60. ]]) y/X #array([[nan],[ 6.],[ 6.],...[ 6.],[ 6.]]) lr = LinearRegression() lr.fit(X,y) # coeficient 效率,斜率 # w ---->weight 权重, lr.coef_ #array([[6.]])
w ^ = ( X T X ) − 1 X T y \hat{w} = (X^TX)^{-1}X^Ty w^=(XTX)−1XTy
# 线性代数中的矩阵运算
np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y)
#array([[6.]])
最
小
二
乘
法
H
=
∑
i
=
0
N
(
X
w
−
y
)
2
最小二乘法 H = \sum_{i = 0}^N(Xw - y)^2
最小二乘法H=i=0∑N(Xw−y)2
2
(
X
w
−
y
)
X
=
0
2(Xw - y)X = 0
2(Xw−y)X=0
(
X
w
−
y
)
X
X
−
1
=
0
X
−
1
(Xw - y)XX^{-1} = 0X^{-1}
(Xw−y)XX−1=0X−1
X
w
−
y
=
0
Xw - y = 0
Xw−y=0
X
w
=
y
Xw = y
Xw=y
X
T
X
w
=
X
T
y
X^TXw = X^Ty
XTXw=XTy
(
X
T
X
)
−
1
(
X
T
X
)
w
=
(
X
T
X
)
−
1
X
T
y
(X^TX)^{-1}(X^TX)w = (X^TX)^{-1}X^Ty
(XTX)−1(XTX)w=(XTX)−1XTy
I
w
=
(
X
T
X
)
−
1
X
T
y
Iw = (X^TX)^{-1}X^Ty
Iw=(XTX)−1XTy
w
=
(
X
T
X
)
−
1
X
T
y
w = (X^TX)^{-1}X^Ty
w=(XTX)−1XTy
并不是每个矩阵都有逆矩阵,但是都有转置矩阵,现将矩阵乘它的转置矩阵,变成方阵,就有转置矩阵了。
X = boston['data'] y = boston['target'] X.shape #(506, 13) from sklearn.model_selection import train_test_split X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2) X.shape #(506, 13) lr = LinearRegression(fit_intercept=False) #不考虑截距 lr.fit(X_train,y_train) # 斜率个数:属性的个数决定 display(lr.coef_,lr.intercept_) #array([-0.1412295 , 0.04181349, -0.01322025, 1.86963613, -4.15101845,6.06733637, -0.01337729, -1.09192302, 0.17925408, -0.00889826,-0.41013493, 0.01643046, -0.3599472 ]) #0.0 # 算法预测的结果 lr.predict(X_test).round(2)[:25] #array([21.11, 17.72, 31.43, 2.33, 24.62, 19.41, 20.77, 8.16, 26.16,19.31, 20.68, 7.19, 43.46, 24.02, 21.2 , 17.67, 10.54, 14.64,27.81, 27.43, 22.87, 30.66, 19.62, 37.61, 30.9 ])
f ( x ) = w 1 ∗ x 1 + w 2 ∗ x 2 + … … + w 13 ∗ x 13 f(x) = w1*x1 + w2*x2 + …… + w13*x13 f(x)=w1∗x1+w2∗x2+……+w13∗x13
w = lr.coef_ w #array([-0.1412295 , 0.04181349, -0.01322025, 1.86963613, -4.15101845,6.06733637, -0.01337729, -1.09192302, 0.17925408, -0.00889826,-0.41013493, 0.01643046, -0.3599472 ]) X_test.dot(w).round(2)[:25] #array([21.11, 17.72, 31.43, 2.33, 24.62, 19.41, 20.77, 8.16, 26.16,19.31, 20.68, 7.19, 43.46, 24.02, 21.2 , 17.67, 10.54, 14.64,27.81, 27.43, 22.87, 30.66, 19.62, 37.61, 30.9 ]) # '真实'的房价显示 y_test[:25] #array([16.4, 18.6, 41.3, 8.8, 22.8, 27.1, 18.7, 27.5, 22. , 14.1, 16.1,5. , 50. , 22.6, 13.8, 20.8, 12. , 12.8, 22.9, 26.5, 21.5, 29.9,18.3, 50. , 50. ]) lr = LinearRegression(fit_intercept=True) #带截距 lr.fit(X_train,y_train) display(lr.coef_,lr.intercept_) #array([-1.41151959e-01, 4.11921987e-02, -1.40329665e-03, 1.62461478e+00,-1.74893870e+01, 3.95218799e+00, -4.11935673e-03, -1.60614632e+00,2.97047505e-01, -1.16287244e-02, -9.43595535e-01, 1.09847236e-02,-4.79093686e-01]) #35.204261036207875 #截距
f ( x ) = w 1 ∗ x 1 + w 2 ∗ x 2 + … … + w 13 ∗ x 13 + b f(x) = w1*x1 + w2*x2 + …… + w13*x13 + b f(x)=w1∗x1+w2∗x2+……+w13∗x13+b
lr.predict(X_test).round(2)[:15]
#array([19.23, 16.17, 33.17, 3.79, 28.58, 19.67, 21.32, 13.91, 27.06,17.79, 18.98, 6.42, 43.27, 24.57, 20.47])
# 根据斜率和截距构造方程,进行求解的结果
(X_test.dot(lr.coef_) + lr.intercept_).round(2)[:15]
#array([19.23, 16.17, 33.17, 3.79, 28.58, 19.67, 21.32, 13.91, 27.06,17.79, 18.98, 6.42, 43.27, 24.57, 20.47])
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。