Max-Min
X
n
o
r
m
=
X
−
X
m
i
n
X
m
a
x
−
X
m
i
n
X_{norm} = \frac{X-X_{min}}{X_{max}-X_{min}}
Xnorm=Xmax−XminX−Xmin
z-score
z
=
x
−
μ
σ
z = \frac{x-\mu}{\sigma}
z=σx−μ
归一化
x
′
=
x
∑
j
=
1
n
(
x
j
)
2
x^{'} = \frac{x}{\sqrt{\sum_{j=1}^{n}(x_j)^2}}
x′=∑j=1n(xj)2x
序列编码
序列转换成数字,保留优先级,如高中低 ==> 3、2、1
one-hot
序列转换成数字,不保留优先级,如血型A、B、O、AB分别对应(1,0,0,0)、(0,1,0,0)、(0,0,1,0)、(0,0,0,1)
维度太高的时候可以使用hash来降维,或者改成稀疏向量的形式
二进制编码
如血型A、B、O、AB分别对应(0,0,1)、(0,1,0)、(0,1,1)、(1,0,0)
特征选择的两个标准
按照发散性或者相关性对各个特征进行评分,选择特征
通过目标函数(AUC/MSE)来决定是否要新加入一个变量
先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。类似于Filter方法,但是是通过训练来确定特征的优劣
交叉验证矩阵
| 预测-假 | 预测-真 | |
|---|---|---|
| 真实-假 | True Negatives | False Positives |
| 真实-真 | False Negatives | True Positives |
所有的,都是在描述模型输出结果
P
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
P
Precision = \frac{TP}{TP+FP}
Precision=TP+FPTP
R
e
c
a
l
l
=
T
P
T
P
+
F
N
Recall = \frac{TP}{TP+FN}
Recall=TP+FNTP
F
1
=
2
1
P
+
1
R
=
2
P
R
P
+
R
F1 = \frac{2}{\frac{1}{P}+\frac{1}{R}}=\frac{2PR}{P+R}
F1=P1+R12=P+R2PR
A
c
c
u
r
a
t
e
=
T
P
+
T
N
T
N
+
F
N
+
F
P
+
T
P
Accurate = \frac{TP+TN}{TN+FN+FP+TP}
Accurate=TN+FN+FP+TPTP+TN
P-R曲线
横坐标:召回率
纵坐标:准确率
P-R曲线是通过将阈值从高到低移动而生成的
ROC曲线
横坐标:FPR 假阳性率(False Positive Rate)
纵坐标:TPR 真阳性率(True Positive Rate)召回率
ROC曲线是通过将阈值从高到低移动而生成的
随机分类算法的ROC曲线是一条直线
当正负样本的比例发生变化时,ROC曲线相比于P-R曲线会更为稳定
AUC
是ROC曲线的面积,表示任意取两个样本,正样本的score大于负样本的score的概率
A perfect classifier will have a ROC AUC equal to 1
A purely random classifier will have a ROC AUC equal to 0.5
increasing precision reduces recall, and vice versa
评估聚类随机程度 —— 霍普金斯统计量H
从所有样本中随机寻找n个点,P,再寻找离每个点最近的点x,计算px的距离x;
从所有样本中寻找n个点,q,再寻找最近点y,计算qy的距离y
H
=
∑
i
=
1
n
y
i
∑
i
=
1
n
x
i
+
∑
i
=
1
n
y
i
H = \frac{\sum_{i=1}^{n}y_i}{\sum_{i=1}^{n}x_i + \sum_{i=1}^{n}y_i}
H=∑i=1nxi+∑i=1nyi∑i=1nyi
随机分布H=0.5,H值越大聚类效果越好
评估聚类质量 —— 轮廊系数
a( p )表示p与同簇其他点之间的平均距离
b( p )表示离p最近的一个族中所有点到p的平均距离
轮廊系数可以衡量族与簇的距离、族自己的紧凑程度
s
(
p
)
=
b
(
p
)
−
a
(
p
)
m
a
x
{
b
(
p
)
,
a
(
p
)
}
s(p) = \frac{b(p)-a(p)}{max{\{ b(p),a(p) \}}}
s(p)=max{b(p),a(p)}b(p)−a(p)
均方根标准偏差
R方
Overfitting happens when the model is too complex relative to the amount and noisiness of the training data.
0-1损失函数
预测值和目标值不相等为1,否则为0
L
(
Y
,
f
(
X
)
)
=
{
1
,
Y
≠
f
(
x
)
0
,
Y
=
f
(
x
)
L(Y, f(X)) = \left\{1,Y≠f(x)0,Y=f(x)
绝对值损失函数
L
(
Y
,
f
(
X
)
)
=
∣
Y
−
f
(
x
)
∣
L(Y, f(X)) = | Y - f(x) |
L(Y,f(X))=∣Y−f(x)∣
log对数损失函数
L
(
Y
,
P
(
Y
∣
X
)
)
=
−
l
o
g
P
(
Y
∣
X
)
L(Y, P(Y|X)) = -logP(Y|X)
L(Y,P(Y∣X))=−logP(Y∣X)
平方损失函数
L
(
Y
∣
f
(
x
)
)
=
∑
(
Y
−
f
(
X
)
)
2
L(Y | f(x)) = \sum(Y-f(X))^2
L(Y∣f(x))=∑(Y−f(X))2
指数损失函数
L
(
Y
∣
f
(
x
)
)
=
e
x
p
[
−
y
f
(
X
)
]
L(Y | f(x)) = exp[-yf(X)]
L(Y∣f(x))=exp[−yf(X)]
Hinge损失函数
L
(
y
)
=
m
a
x
(
0
,
1
−
t
y
)
L(y) = max(0, 1-ty)
L(y)=max(0,1−ty)
Ridge Regression 岭回归 L2
a
1
2
∑
i
=
1
n
θ
i
2
a\frac{1}{2} \sum_{i=1}^{n}\theta_i^2
a21i=1∑nθi2
Lasso Regression 套索回归 L1
completely eliminate the weights of the least important features (i.e., set them to zero), 对重要性不高的特征打压比较重
a
∑
i
=
1
n
∣
θ
i
∣
a\sum_{i=1}^{n}|\theta_i|
ai=1∑n∣θi∣
Elastic Net 弹性网络
a middle ground between Ridge Regression and Lasso Regression
r
a
∑
i
=
1
n
∣
θ
i
∣
+
(
1
−
r
)
a
1
2
∑
i
=
1
n
θ
i
2
ra\sum_{i=1}^{n}|\theta_i| + (1-r)a\frac{1}{2} \sum_{i=1}^{n}\theta_i^2
rai=1∑n∣θi∣+(1−r)a21i=1∑nθi2
如何选择惩罚方式
Early Stopping
stop training as soon as the validation error reaches a minimum suspect,欠拟合和过拟合之间的拐点也就是验证集误差最小的点,毕竟训练误差会一直在下降
使用BGD时,遇到最低点就可以停止;使用SGD、MBGD就需要多观察一会儿看看会不会有更小值
假设函数:
h
θ
(
x
)
=
θ
T
X
=
∑
i
=
0
n
θ
i
x
i
=
θ
0
+
θ
1
x
1
+
⋯
+
θ
n
x
n
h_\theta(x) = \theta^TX = \sum_{i=0}^{n}\theta_ix_i = \theta_0 + \theta_1x_1 + \cdots + \theta_nx_n
hθ(x)=θTX=i=0∑nθixi=θ0+θ1x1+⋯+θnxn
损失函数:
J
(
θ
)
=
1
2
m
∑
i
=
1
m
(
h
(
x
(
i
)
)
−
y
(
i
)
)
2
J(\theta) = \frac{1}{2m}\sum_{i=1}^{m}(h(x^{(i)}) - y^{(i)})^2
J(θ)=2m1i=1∑m(h(x(i))−y(i))2
正规方程求解:
X
=
(
x
0
(
1
)
x
1
(
1
)
⋯
x
n
(
1
)
x
0
(
2
)
x
1
(
2
)
⋯
x
n
(
2
)
⋯
⋯
⋯
⋯
x
0
(
m
)
x
1
(
m
)
⋯
x
n
(
m
)
)
X = (x(1)0x(1)1⋯x(1)nx(2)0x(2)1⋯x(2)n⋯⋯⋯⋯x(m)0x(m)1⋯x(m)n)
θ
=
(
X
T
X
)
−
1
X
T
Y
\theta = (X^TX)^{-1}X^TY
θ=(XTX)−1XTY
梯度下降求解:
θ
j
:
=
θ
j
−
α
∂
∂
θ
j
J
(
θ
0
,
θ
1
,
.
.
.
)
(
s
i
m
u
l
a
t
e
−
f
o
r
j
=
0
,
1
,
2
,
.
.
.
)
\theta_j := \theta_j - \alpha \frac{\partial}{\partial \theta_j}J(\theta_0, \theta_1, ...) \qquad (simulate - for \quad j=0,1,2,...)
θj:=θj−α∂θj∂J(θ0,θ1,...)(simulate−forj=0,1,2,...)
开始梯度下降之前:
梯度下降中:
梯度下降后:
几种梯度下降方法:
{
θ
T
X
小
于
0
=
⇒
h
θ
(
x
)
<
0.5
=
⇒
y
=
0
θ
T
X
>
0
=
⇒
h
θ
(
x
)
>
0.5
=
⇒
y
=
1
θ
T
X
=
0
=
⇒
h
θ
(
x
)
=
0.5
=
⇒
决
策
边
界
{θTX小于0=⇒hθ(x)<0.5=⇒y=0θTX>0=⇒hθ(x)>0.5=⇒y=1θTX=0=⇒hθ(x)=0.5=⇒决策边界
线性回归的代价函数是平方损失函数,将逻辑回归的假设函数代入公式后的损失函数是一个非凸函数,有很多个局部最优解,没有办法快速的获得全局最优解,于是我们就用上了最大似然估计:
J
(
θ
)
=
{
if y=1 then
−
y
(
i
)
l
o
g
(
h
θ
(
x
(
i
)
)
if y=0 then
−
(
1
−
y
(
i
)
)
l
o
g
(
1
−
h
θ
(
x
(
i
)
)
)
J(\theta)={if y=1 then −y(i)log(hθ(x(i))if y=0 then −(1−y(i))log(1−hθ(x(i)))
J ( θ ) = 1 m ∑ i = 1 m ( − y ( i ) l o g ( h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ) J(\theta)=\frac{1}{m}\sum_{i=1}^{m}(-y^{(i)}log(h_\theta(x^{(i)})) - (1-y^{(i)})log(1-h_\theta(x^{(i)}))) J(θ)=m1i=1∑m(−y(i)log(hθ(x(i)))−(1−y(i))log(1−hθ(x(i))))
决策树损失函数
J
(
k
,
t
k
)
=
m
l
e
f
t
m
G
l
e
f
t
+
m
r
i
g
h
t
m
G
r
i
g
h
t
(
G
m
e
a
s
u
r
e
s
t
h
e
i
m
p
u
r
i
t
y
o
f
t
h
e
s
u
b
s
e
t
)
J(k, t_k)=\frac{m_{left}}{m}G_{left} + \frac{m_{right}}{m}G_{right} \;\; (G \; measures \; the \; impurity \; of \; the \; subset)
J(k,tk)=mmleftGleft+mmrightGright(Gmeasurestheimpurityofthesubset)
基尼指数
G
i
n
i
i
=
1
−
∑
k
=
1
n
p
i
,
k
2
Gini_i=1-\sum_{k=1}^{n}p_{i,k}^2
Ginii=1−k=1∑npi,k2
香农指数
H
i
=
−
∑
k
=
1
,
p
i
,
k
≠
0
n
p
i
,
k
l
o
g
(
p
i
,
k
)
H_i=-\sum_{k=1,p_{i,k}\neq 0}^{n}p_{i,k}log(p_{i,k})
Hi=−k=1,pi,k=0∑npi,klog(pi,k)
损失函数:
J
(
c
,
μ
)
=
∑
i
=
1
M
∣
∣
x
i
−
μ
c
i
∣
∣
2
J(c, \mu) = \sum_{i=1}^{M}||x_i-{\mu}_{c_i}||^2
J(c,μ)=i=1∑M∣∣xi−μci∣∣2
调优策略:
数据归一化、去除离群点噪声、合理的选择K值(手肘法)、采用核函数
缺点:
需要手动设置K值、受初始值影响比较大、受噪声影响大、样本只能被分到一个类别
优化算法:kmeans++
初始化第n+1个聚类中心的时候,尽可能的选择里0-n个点比较远的点
voting_clf = VotingClassifier(
estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)],
# 有两种投票方式
# voting='hard', 选出被投票次数最多的分类
# voting='soft', 选所有分类中预测概率最大的分类
voting='hard'
)
voting_clf.fit(X_train, y_train)
将弱模型组合起来成为更强大的模型
第j个模型的错误率,instance weight w(i) is initially set to 1/m
r
j
=
∑
i
=
1
,
y
(
i
)
^
≠
y
(
i
)
m
w
(
i
)
∑
i
=
1
m
w
(
i
)
r_j= \frac{\sum_{i=1,\hat{y^{(i)}} \neq y^{(i)}}^{m}w^{(i)}}{\sum_{i=1}^{m}w^{(i)}}
rj=∑i=1mw(i)∑i=1,y(i)^=y(i)mw(i)
第j个模型的权重,准确率越高,权重值越大,随机模型权重为0
α
j
=
η
l
o
g
r
j
1
−
r
j
\alpha_j=\eta log \frac{r_j}{1-r_j}
αj=ηlog1−rjrj
更新每一个样本的权重值
f
o
r
i
=
1
,
2
⋯
m
w
(
i
)
←
{
w
(
i
)
i
f
y
(
i
)
^
=
y
(
i
)
w
(
i
)
e
x
p
(
α
j
)
i
f
y
(
i
)
^
≠
y
(
i
)
fori=1,2⋯mw(i)←{w(i)if^y(i)=y(i)w(i)exp(αj)if^y(i)≠y(i)
归一化,然后训练下一个模型…
预测结果是由所有的N个模型投票,选出sum权重最高的分类
y
^
(
x
)
=
a
r
g
m
a
x
k
∑
y
j
^
(
x
)
=
k
j
=
1
N
α
j
\hat{y}(x) = \underset{k}{argmax}\sum_{\overset{j=1}{\hat{y_j}(x)=k}}^{N}\alpha_j
y^(x)=kargmaxyj^(x)=kj=1∑Nαj
学必求其心得,业必贵其专精