逻辑回归和线性回归的异同:
- 逻辑回归是分类问题、线性回归是回归问题。逻辑回归是算出样本属于正样本的期望,然后根据期望做判定;线性回归是求出线性方程的近似解甚至解析解 θ T x \theta^Tx θTx
- 逻辑回归的y是离散的,线性回归的y是连续的
- 逻辑回归最初对特征做线性组合时,类似于线性回归,sigmoid函数可以看着把数据压缩到区间[0,1]
- 逻辑回归可以整理为预测y为1的概率的对数几率的线性回归
- 都可以使用梯度下降方式求解
- 逻辑回归的代价函数是交叉熵,线性回归的是RMSE
- 逻辑回归具有平移不变性,即参数 θ \theta θ增加一个常数,不改变模型的结果
逻辑回归处理多标签分类任务
如果一个样本只属于有一个标签,则可以使用多项逻辑回归来处理。(多项逻辑回归是逻辑回归的一个推广,利用平移不变性可知二项逻辑回归等价于逻辑回归)
如果一个样本可能有多个标签,则训练k个二分类区,每个分类器分别把样本分类为0/1,然后k个分类结果的向量就是标签向量。
决策树
- 决策树就是一组if-then规则,这个规则是完备的
- 是一个概率模型
- 解释性强、符合很多商业决策过程的流程
- 不同的特征选择顺序、不同的特征取值都能构成不同的决策树,有的拟合能力强,有的泛化能力强。从所有决策树中选择最优的决策树是一个NP完全问题。通常通过启发式的方法来选择次最优解
- 辅助构造决策树的准则有:信息增益、信息增益比、Gini系数
信息增益(ID3模型):
K个类别的的数据集D的经验熵如下:
H
(
D
)
=
−
∑
k
=
1
K
∣
C
k
∣
∣
D
∣
log
∣
C
k
∣
∣
D
∣
H(D)=-\sum_{k=1}^K\frac{|C_k|}{|D|}\log\frac{|C_k|}{|D|}
H(D)=−k=1∑K∣D∣∣Ck∣log∣D∣∣Ck∣
特征A对于数据集D的经验熵如下:
H
(
D
∣
A
)
=
∑
i
n
∣
D
i
∣
∣
D
∣
H
(
D
i
)
H(D|A)=\sum_i^n\frac{|D_i|}{|D|}H(D_i)
H(D∣A)=i∑n∣D∣∣Di∣H(Di)
D
i
D_i
Di为类别为A=i的数据集
信息增益:
g
(
D
,
A
)
=
H
(
D
)
−
H
(
D
∣
A
)
g(D,A)=H(D)-H(D|A)
g(D,A)=H(D)−H(D∣A)
熵描述的是不确定性
信息增益比(C4.5模型):
g
R
(
(
D
,
A
)
)
=
g
(
D
,
A
)
H
(
D
)
g_R((D,A))=\frac{g(D,A)}{H(D)}
gR((D,A))=H(D)g(D,A)
Gini系数(CART模型):
描述数据的纯度
G
i
n
i
(
D
)
=
1
−
∑
k
=
1
K
(
∣
C
k
∣
∣
D
∣
)
2
Gini(D)=1-\sum_{k=1}^K(\frac{|C_k|}{|D|})^2
Gini(D)=1−k=1∑K(∣D∣∣Ck∣)2
对于特征A的Gini系数:
G
(
D
,
A
)
=
∑
i
n
∣
D
i
∣
∣
D
∣
G
i
n
i
(
D
)
G(D,A)=\sum_i^n\frac{|D_i|}{|D|}Gini(D)
G(D,A)=i∑n∣D∣∣Di∣Gini(D)
对比三种准则及对应模型:
- 信息增益(对应ID3模型)倾向于取值多的特征(信息增益反应了经过特征A后的不确定性的减少程度,取值多,确定性大,条件熵变小,信息增益变大)
- 信息增益是绝对意义上的大小,通常我们可以通过反应相对大小的信息增益率弥补信息增益的缺陷。能在一定程度上避免过拟合。
- ID3模型只能处理离散变量,C4.5和cart模型可以处理连续变量。C4.5处理方式:把特征排序,如果连续两个点的类别不同,则把他们的中点作为切分点,根据切分点把连续变量转换为离散变量。CART处理方式:cart树是二叉树,每次都会把数据二为两段,很方便转为为离散变量。
- cart可以做回归问题,id3、c4.5只能用于分类问题
- ID3不能处理缺失值,cart、c4.5可以处理缺失值
- cart是二叉树,同一特征可能在层级间多次复用;id3、c4.5多叉树,同一特征不会在层级间复用
- 剪枝方式不同:cart是生成完全树,选择其中的子树来对比选择树;id3、c4.5通过从小到上剪枝来选择树
决策树剪枝
剪枝有预剪枝和后剪枝
预剪枝:在树生长前就判断能否提供模型泛化能力,否则停止生长。能提前结算树的增长
- 简单、快速,在大数据集上有相当的优势
- 容易欠拟合,当前不能提高泛化能力,基于它的之后划分可能提高泛化能力
- 是一种贪心算法,可能离次最优解较远
后剪枝:树完全生成后才开始剪枝
- 需要消耗更多的内存、时间
- 通常泛化能力比预剪枝强
①剪枝比树的生成更重要,
②不同划分的过拟合决策树在剪枝后都能保留最重要的属性划分,最终性能差距不大
SVM
寻找一个胖胖的超平面,使数据分类正确并尽量远离超平面。
- SVM的超平面取决于支撑向量sv
- 超平面唯一且存在
- 通过核技巧,一定能找到完全正确分类的超平面
- 加入松弛因子后,也有可能不能完全正确分类(因为目标变为了最小化含有松弛变量的表达式,不再是使 E i n = 0 E_{in}=0 Ein=0。毕竟引入松弛变量就是允许模型犯错嘛)