一、机器学习导论
有监督学习 无监督学习 我们可以使用sklearn生成符合自身需求的数据集,下面我们用其中几个函数例子来生成无因变量的数据集: https://scikit-learn.org/stable/modules/classes.html?highlight=datasets#module-sklearn.datasets
回归:因变量是连续型变量,如:房价,体重等。 分类:因变量是离散型变量,如:是否患癌症,西瓜是好瓜还是坏瓜等。
二、使用sklearn构建完整的机器学习项目流程
一般来说,一个完整的机器学习项目分为以下步骤: 明确项目任务:回归/分类
1. 收集数据集并选择合适的特征。
2. 选择度量模型性能的指标。
- MSE均方误差:
MSE
(
y
,
y
^
)
=
1
n
samples
∑
i
=
0
n
samples
?
1
(
y
i
?
y
^
i
)
2
.
\text{MSE}(y, \hat{y}) = \frac{1}{n_\text{samples}} \sum_{i=0}^{n_\text{samples} - 1} (y_i - \hat{y}_i)^2.
MSE(y,y^?)=nsamples?1?∑i=0nsamples??1?(yi??y^?i?)2.
- MAE平均绝对误差:
MAE
(
y
,
y
^
)
=
1
n
samples
∑
i
=
0
n
samples
?
1
∣
y
i
?
y
^
i
∣
\text{MAE}(y, \hat{y}) = \frac{1}{n_{\text{samples}}} \sum_{i=0}^{n_{\text{samples}}-1} \left| y_i - \hat{y}_i \right|
MAE(y,y^?)=nsamples?1?∑i=0nsamples??1?∣yi??y^?i?∣
-
R
2
R^2
R2决定系数:
R
2
(
y
,
y
^
)
=
1
?
∑
i
=
1
n
(
y
i
?
y
^
i
)
2
∑
i
=
1
n
(
y
i
?
y
ˉ
)
2
R^2(y, \hat{y}) = 1 - \frac{\sum_{i=1}^{n} (y_i - \hat{y}_i)^2}{\sum_{i=1}^{n} (y_i - \bar{y})^2}
R2(y,y^?)=1?∑i=1n?(yi??yˉ?)2∑i=1n?(yi??y^?i?)2?
- 解释方差得分:
e
x
p
l
a
i
n
e
d
_
v
a
r
i
a
n
c
e
(
y
,
y
^
)
=
1
?
V
a
r
{
y
?
y
^
}
V
a
r
{
y
}
explained\_{}variance(y, \hat{y}) = 1 - \frac{Var\{ y - \hat{y}\}}{Var\{y\}}
explained_variance(y,y^?)=1?Var{y}Var{y?y^?}?
3. 选择具体的模型并进行训练以优化模型。
(1)线性回归模型
线性回归模型的最小二乘法表达。
线性回归假设目标值与特征之间线性相关,即满足一个多元一次方程。通过构建损失函数,来求解损失函数最小时的参数w : 假设:数据集
D
=
{
(
x
1
,
y
1
)
,
.
.
.
,
(
x
N
,
y
N
)
}
D = \{(x_1,y_1),...,(x_N,y_N) \}
D={(x1?,y1?),...,(xN?,yN?)},
x
i
∈
R
p
,
y
i
∈
R
,
i
=
1
,
2
,
.
.
.
,
N
x_i \in R^p,y_i \in R,i = 1,2,...,N
xi?∈Rp,yi?∈R,i=1,2,...,N,
X
=
(
x
1
,
x
2
,
.
.
.
,
x
N
)
T
,
Y
=
(
y
1
,
y
2
,
.
.
.
,
y
N
)
T
X = (x_1,x_2,...,x_N)^T,Y=(y_1,y_2,...,y_N)^T
X=(x1?,x2?,...,xN?)T,Y=(y1?,y2?,...,yN?)T 假设X和Y之间存在线性关系,模型的具体形式为
y
^
=
f
(
w
)
=
w
T
x
\hat{y}=f(w) =w^Tx
y^?=f(w)=wTx
最小化损失函数 我们需要衡量真实值
y
i
y_i
yi?与线性回归模型的预测值
w
T
x
i
w^Tx_i
wTxi?之间的差距,在这里我们和使用二范数的平方和L(w)来描述这种差距,即:
L
(
w
)
=
∑
i
=
1
N
∣
∣
w
T
x
i
?
y
i
∣
∣
2
2
=
∑
i
=
1
N
(
w
T
x
i
?
y
i
)
2
=
(
w
T
X
T
?
Y
T
)
(
w
T
X
T
?
Y
T
)
T
=
w
T
X
T
X
w
?
2
w
T
X
T
Y
+
Y
Y
T
因
此
,
我
们
需
要
找
到
使
得
L
(
w
)
最
小
时
对
应
的
参
数
w
,
即
:
w
^
=
a
r
g
m
i
n
??
L
(
w
)
为
了
达
到
求
解
最
小
化
L
(
w
)
问
题
,
我
们
应
用
高
等
数
学
的
知
识
,
使
用
求
导
来
解
决
这
个
问
题
:
?
L
(
w
)
?
w
=
2
X
T
X
w
?
2
X
T
Y
=
0
,
因
此
:
w
^
=
(
X
T
X
)
?
1
X
T
Y
L(w) = \sum\limits_{i=1}^{N}||w^Tx_i-y_i||_2^2=\sum\limits_{i=1}^{N}(w^Tx_i-y_i)^2 = (w^TX^T-Y^T)(w^TX^T-Y^T)^T = w^TX^TXw - 2w^TX^TY+YY^T\\ 因此,我们需要找到使得L(w)最小时对应的参数w,即:\\ \hat{w} = argmin\;L(w)\\ 为了达到求解最小化L(w)问题,我们应用高等数学的知识,使用求导来解决这个问题: \\ \frac{\partial L(w)}{\partial w} = 2X^TXw-2X^TY = 0,因此: \\ \hat{w} = (X^TX)^{-1}X^TY
L(w)=i=1∑N?∣∣wTxi??yi?∣∣22?=i=1∑N?(wTxi??yi?)2=(wTXT?YT)(wTXT?YT)T=wTXTXw?2wTXTY+YYT因此,我们需要找到使得L(w)最小时对应的参数w,即:w^=argminL(w)为了达到求解最小化L(w)问题,我们应用高等数学的知识,使用求导来解决这个问题:?w?L(w)?=2XTXw?2XTY=0,因此:w^=(XTX)?1XTY 推广:非线性模型 多项式回归、广义可加模型(GAM) 广义可加模型GAM实际上是线性模型推广至非线性模型的一个框架,在这个框架中,每一个变量都用一个非线性函数来代替,但是模型本身保持整体可加性。GAM模型不仅仅可以用在线性回归的推广,还可以将线性分类模型进行推广。具体的推广形式是: 标准的线性回归模型:
y
i
=
w
0
+
w
1
x
i
1
+
.
.
.
+
w
p
x
i
p
+
?
i
y_i = w_0 + w_1x_{i1} +...+w_px_{ip} + \epsilon_i
yi?=w0?+w1?xi1?+...+wp?xip?+?i? GAM模型框架:
y
i
=
w
0
+
∑
j
=
1
p
f
j
(
x
i
j
)
+
?
i
y_i = w_0 + \sum\limits_{j=1}^{p}f_{j}(x_{ij}) + \epsilon_i
yi?=w0?+j=1∑p?fj?(xij?)+?i? GAM模型的优点与不足: - 优点:简单容易操作,能够很自然地推广线性回归模型至非线性模型,使得模型的预测精度有所上升;由于模型本身是可加的,因此GAM还是能像线性回归模型一样把其他因素控制不变的情况下单独对某个变量进行推断,极大地保留了线性回归的易于推断的性质。 - 缺点:GAM模型会经常忽略一些有意义的交互作用,比如某两个特征共同影响因变量,不过GAM还是能像线性回归一样加入交互项
x
(
i
)
×
x
(
j
)
x^{(i)} \times x^{(j)}
x(i)×x(j)的形式进行建模;但是GAM模型本质上还是一个可加模型,如果我们能摆脱可加性模型形式,可能还会提升模型预测精度。 (2)回归树 (3)支持向量机回归(SVR)【KKT条件、对偶条件】
4.评估模型的性能并调参。
回顾近红外光谱分析建模。
|