赞
踩
线性回归: 有监督学习的一种算法。主要关注多个因变量和一个目标变量之间的关系。
因变量: 影响目标变量的因素:
X
1
,
X
2
.
.
.
X_1, X_2...
X1,X2... ,连续值或离散值。
目标变量: 需要预测的值:
t
a
r
g
e
t
target
target,
y
y
y
因变量和目标变量之间的关系: 即模型,model
连续值是可以在一个区间范围内取任意值的变量。例如,身高、体重、温度、时间等都是连续值
离散值是只能取有限个数值或者可数值的变量。例如,学生人数、家庭成员数、考试分数等都是离散值
简单线性回归对应的公式:
y
=
w
x
+
b
y = wx + b
y=wx+b
y
y
y 是目标变量即未来要预测的值
x
x
x 是影响
y
y
y 的因素
w
,
b
w,b
w,b 是公式上的参数即要求的模型,
w
w
w就是斜率,
b
b
b就是截距
一元一次方程:
一元二次方程:
现实生活中,往往影响结果 y 的因素不止一个,有可能是 n 个,
X
1
,
X
2
,
X
n
.
.
.
X_1,X_2,X_n...
X1,X2,Xn...
多元线性回归公式:
y ^ = w 1 X 1 + w 2 X 2 . . . w n X n + b \hat y = w_1X_1 + w_2X_2 ... w_nX_n + b y^=w1X1+w2X2...wnXn+b
b是截距,也可以表示成:
y ^ = w 1 X 1 + w 2 X 2 . . . w n X n + w 0 \hat y = w_1X_1 + w_2X_2 ... w_nX_n + w_0 y^=w1X1+w2X2...wnXn+w0
使用向量来表示:
y ^ = W T X \hat y = W^TX y^=WTX
import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression # 转化矩阵 x1 = np.random.randint(-150, 150, size=(300, 1)) x2 = np.random.randint(0, 300, size=(300, 1)) # 斜率和截距,随机生成 w = np.random.randint(1, 5, size=2) b = np.random.randint(1, 10, size=1) # 根据二元一次方程计算目标值y,并加上"噪声" y = x1 * w[0] + x2 * w[1] + b + np.random.randn(300, 1) fig = plt.figure(figsize=(9, 6)) ax = plt.subplot(111, projection='3d') ax.scatter(x1, x2, y) # 三维散点图 ax.view_init(elev=10, azim=-20) # 调整视角 # X = np.concatenate([x1, x2], axis=1) model = LinearRegression() model.fit(X, y) w_ = model.coef_.reshape(-1) b_ = model.intercept_ print('一元一次方程真实的斜率和截距是:\n', w, b) print('通过scikit-learn求解的斜率和截距是:\n', w_, b_) x = np.linspace(-150, 150, 100) y = np.linspace(0, 300, 100) z = x * w_[0] + y * w_[1] + b_ ax.plot(x, y, z, color='green') plt.show()
y
y
y: 真实值(actual value)
y
^
\hat y
y^: 预测值(predicted value), 根据因变量
X
1
,
X
2
.
.
.
X_1,X_2...
X1,X2...和计算出来的参数w,b得到
e
r
r
o
r
error
error: 误差,预测值和真实值的差距(
ε
\varepsilon
ε)
最优解: 尽可能的找到一个模型使得整体的误差最小,通常叫做损失 Loss,通过损失函数Loss Function计算得到。
from sklearn.linear_model import LinearRegression X = np.linspace(0, 10, num=30).reshape(-1, 1) w = np.random.randint(1, 5, size=1) b = np.random.randint(1, 10, size=1) y = X * w + b + np.random.randn(30, 1) plt.scatter(X, y) model = LinearRegression() model.fit(X, y) w_ = model.coef_ b_ = model.intercept_ print('一元一次方程真实的斜率和截距是:\n', w, b) print('通过scikit-learn求解的斜率和截距是:\n', w_, b_) plt.plot(X, X.dot(w_) + b_, color='green') plt.show()
高斯密度函数(Gaussian Density Function)也被称为正态分布或钟形曲线,是统计学中最常用的概率分布之一。其概率密度函数(Probability Density Function, PDF)的表达式如下:
f ( x ; μ , σ 2 ) = 1 2 π σ exp ( − ( x − μ ) 2 2 σ 2 ) \ f(x; \mu, \sigma^2) = \frac{1}{\sqrt{2\pi}\sigma} \exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right) f(x;μ,σ2)=2π σ1exp(−2σ2(x−μ)2)
其中,(x) 是变量, μ \mu μ 是均值, σ 2 \sigma^2 σ2是方差。
高斯密度函数的特征包括:
钟形曲线形状: 高斯分布呈现出典型的钟形曲线,对称分布在均值周围。
68-95-99.7 规则: 大约68% 的数据在均值的一个标准差范围内,95% 在两个标准差范围内,99.7% 在三个标准差范围内。
均值和方差唯一决定分布: 高斯分布的均值和方差是唯一确定整个分布的两个参数。
是一种用于估计模型参数的统计方法。它基于概率论的观点,寻找使观测数据出现的概率最大的参数值。通常记为 L ( θ ∣ d a t a ) L(θ∣data) L(θ∣data),其中 θ 是待估计的参数,为了方便计算,通常取似然函数的对数,得到对数似然函数(Log-Likelihood),记为 ℓ ( θ ∣ data ) \ell(\theta | \text{data}) ℓ(θ∣data)
公式:
Likelihood Function:
L
(
θ
∣
data
)
=
∏
i
=
1
n
P
(
X
i
;
θ
)
\text{Likelihood Function: } L(\theta | \text{data}) = \prod_{i=1}^{n} P(X_i; \theta)
Likelihood Function: L(θ∣data)=∏i=1nP(Xi;θ)
Log-Likelihood Function:
ℓ
(
θ
∣
data
)
=
∑
i
=
1
n
log
P
(
X
i
;
θ
)
\text{Log-Likelihood Function: } \ell(\theta | \text{data}) = \sum_{i=1}^{n} \log P(X_i; \theta)
Log-Likelihood Function: ℓ(θ∣data)=∑i=1nlogP(Xi;θ)
其中, X i X_i Xi 表示每个观测数据点。
是一种用于拟合数据和估计模型参数的优化方法。其核心思想是通过最小化观测数据的残差平方和来找到最优的模型参数。这种方法常用于线性回归和其他模型拟合问题
J
(
θ
)
=
1
2
∑
i
=
1
n
(
h
θ
(
x
i
)
−
y
i
)
2
J(\theta) = \frac{1}{2} \sum_{i=1}^{n} (h_\theta(x_i) - y_i)^2
J(θ)=21∑i=1n(hθ(xi)−yi)2
其中, h θ ( x i ) h_\theta(x_i) hθ(xi) 是模型对样本 x i x_i xi 的预测 y ^ \hat y y^, y i y_i yi 是实际观测值。
正规方程是用于求解线性回归模型参数的一种解析方法(解方程的一种方法)
θ = ( X T X ) − 1 X T y \theta = (X^T X)^{-1} X^T y θ=(XTX)−1XTy
其中, ( X T X ) − 1 (X^T X)^{-1} (XTX)−1 是矩阵 X T X X^T X XTX 的逆矩阵, X T X^T XT是 X X X的转置矩阵, y y y 是实际观测值。
MSE是一个用于衡量模型预测与实际观测值之间的差异的指标。对于线性回归模型,MSE定义如下:
MSE = 1 n ∑ i = 1 n ( h θ ( x i ) − y i ) 2 \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (h_\theta(x_i) - y_i)^2 MSE=n1∑i=1n(hθ(xi)−yi)2
其中, h θ ( x i ) h_\theta(x_i) hθ(xi) 是模型对第 i 个样本的预测值, y i y_i yi是实际观测值,n 是样本数量。MSE计算的是平方误差的平均值,其值越小,表示模型对数据的拟合程度越好。
总结:
均方误差 (MSE):
最小二乘法 (Least Squares Method):
通俗理解:
MSE是评估模型好不好,预测准不准用的。最小二乘法是求解方程参数
w
1
,
w
2
.
.
.
w_1,w_2...
w1,w2...用的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。