机器学习面试必知:决策树

决策树(decision tree)是一种基本的分类与回归方法,主要优点时模型具有可读性,分类速度快,学习时利用训练数据根据损失函数最小化的原则建立决策树模型。预测时,对新的数据,利用决策树模型进行分类。决策树学习通常包括三个步骤:特征选择,决策树的生成和决策树的修剪。

决策树学习的损失函数通常是正则化的极大似然函数,决策树学习的策略是以损失函数为目标函数的最小化。确定了损失函数后,学习问题就变为在损失函数意义下选择最优决策树的问题,但这是个NP完全问题,一般采用启发式算法来近似求解这一最优化问题。

1. 信息增益(ID3算法)
特征 A A A对训练数据集 D D D信息增益 g ( D , A ) g(D,A) g(D,A),定义为集合 D D D的经验熵 H ( D ) H(D) H(D)与特征 A A A给定条件下 D D D的经验条件熵 H ( D ∣ A ) H(D|A) H(DA)之差,即 g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)H(DA)
假设训练数据集为 D D D,容量为 ∣ D ∣ |D| D。有 K K K C k C_{k} Ck类,个数为 ∣ C k ∣ |C_{k}| Ck。特征 A A A有n个不同的取值,根据这些取值会把 D D D划分为n个子集,样本个数是 ∣ D i ∣ |D_{i}| Di D i D_{i} Di子集中属于 C k C_{k} Ck类的样本个数是 ∣ D i k ∣ |D_{ik}| Dik。那么通过计算选择出信息增益最大的特征作为切分点。 H ( D ) = − ∑ k = 1 K ∣ C k ∣ ∣ D ∣ l o g ( ∣ C k ∣ ∣ D ∣ ) H(D)=-\sum_{k=1}^{K}\frac{|C_{k}|}{|D|}log(\frac{|C_{k}|}{|D|}) H(D)=k=1KDCklog(DCk) H ( D ∣ A ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ H ( D i ) = − ∑ i = 1 n ∣ D i ∣ ∣ D ∣ ∑ k = 1 K ∣ D i k ∣ ∣ D i ∣ l o g ( ∣ D i k ∣ ∣ D i ∣ ) H(D|A)=\sum_{i=1}^{n}\frac{|D_{i}|}{|D|}H(D_{i})=-\sum_{i=1}^{n}\frac{|D_{i}|}{|D|}\sum_{k=1}^{K}\frac{|D_{ik}|}{|D_{i}|}log(\frac{|D_{ik}|}{|D_{i}|}) H(DA)=i=1nDDiH(Di)=i=1nDDik=1KDiDiklog(DiDik)
2. 信息增益比(C4.5生成算法)

以信息增益作为划分训练数据的特征,存在偏向于选择取值较多的特征的问题,使用信息增益比可以解决这个问题。

g R ( D , A ) = g ( D , A ) H A ( D ) H A ( D ) = − ∑ i = 1 n ∣ D i ∣ ∣ D ∣ l o g ( ∣ D i ∣ ∣ D ∣ ) g_{R}(D,A)=\frac{g(D,A)}{H_{A}(D)}\qquad H_{A}(D)=-\sum_{i=1}^{n}\frac{|D_{i}|}{|D|}log(\frac{|D_{i}|}{|D|}) gR(D,A)=HA(D)g(D,A)HA(D)=i=1nDDilog(DDi)
3. 基尼指数(CART分类与回归树)
分类问题中,假设有K个类,样本点属于第 k k k类的概率为 p k p_{k} pk,则概率分布的基尼指数为 G i n i ( p ) = ∑ k = 1 K p k ( 1 − p k ) = 1 − ∑ k = 1 K p k 2 Gini(p)=\sum_{k=1}^{K}p_{k}(1-p_{k})=1-\sum_{k=1}^{K}p_{k}^{2} Gini(p)=k=1Kpk(1pk)=1k=1Kpk2对于给定的样本集合 D D D,基尼指数为 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)=1k=1K(DCk)2在特征 A A A(是否是A,所以只有两类情况)的条件下,集合 D D D的基尼指数定义为 G i n i ( D , A ) = ∣ D 1 ∣ ∣ D ∣ G i n i ( D 1 ) + ∣ D 2 ∣ ∣ D ∣ G i n i ( D 2 ) Gini(D,A)=\frac{|D_{1}|}{|D|}Gini(D_{1})+\frac{|D_{2}|}{|D|}Gini(D_{2}) Gini(D,A)=DD1Gini(D1)+DD2Gini(D2)

你可能感兴趣的:(机器学习,面试,统计学习)