PS.完整决策树算法原理及实现请戳☞[传送门]
一、基于树的方法
将特征空间划分成一系列长方形,然后对每个长方形拟合简单的模型(常数)
拟合的模型为:
f
^
(
x
)
=
∑
(
m
=
1
)
5
c
m
I
{
X
1
,
X
2
∈
R
m
}
\hat f(x)=\sum_{(m=1)}^5c_m I\{X_1,X_2∈R_m\}
f^(x)=∑(m=1)5cmI{X1,X2∈Rm}
二、 回归树的生成
(一个回归树对应着输入空间的一个划分以及在划分单元上的输出)
假设将输入空间划分为M个单元,
R
1
R_1
R1,
R
2
R_2
R2,⋯,
R
m
R_m
Rm,那么每个区域输出值为
c
m
=
a
v
e
(
y
i
∣
x
i
∈
R
m
)
c_m=ave(y_i |x_i∈R_m)
cm=ave(yi∣xi∈Rm)(即区域内所有点的均值),由输入和输出得最小二乘的回归树。
注:损失函数为:
l
(
y
,
f
(
x
)
)
=
(
f
(
x
)
−
y
)
2
l(y,f(x))=(f(x)-y) ^2
l(y,f(x))=(f(x)−y)2 目标:
m
i
n
s
m
(
s
)
=
m
i
n
[
m
i
n
c
1
l
(
y
i
−
c
1
)
+
m
i
n
c
2
l
(
y
j
−
c
2
)
]
min_s m(s)=min [min_{c_1} l(y_i-c_1 )+min_{c_2 }l(y_j-c_2 ) ]
minsm(s)=min[minc1l(yi−c1)+minc2l(yj−c2)]
得到,分割点s=6.5时得到最小损失函数,此时分割区域为:
R
1
=
{
1
,
2
,
3
,
4
,
5
,
6
}
R_1=\{1,2,3,4,5,6\}
R1={1,2,3,4,5,6},
R
2
=
{
7
,
8
,
9
,
10
}
R_2=\{7,8,9,10\}
R2={7,8,9,10}
输出值为
c
1
c_1
c1=6.24,
c
2
c_2
c2=8.91
对两个区域调用上述步骤,最终回归树为:
τ
(
x
)
=
{
5.72
,
x
≤
3.5
6.75
,
3.5
<
x
≤
6.5
8.91
,
x
>
6.5
\tau(x)=\begin{cases}5.72, x≤3.5\\6.75,3.5<x≤6.5\\8.91,x>6.5\end{cases}
τ(x)=⎩⎪⎨⎪⎧5.72,x≤3.56.75,3.5<x≤6.58.91,x>6.5
三、CART回归树的分裂准则——最小方差法
对每个变量、根据不同的分割点计算二叉树两边分裂的数值均值,计算其方差,方差最小的分裂点为其最终分裂点,各个变量方差值对比,选择最小方差的变量作为分裂属性。