机器学习六 决策树

来源:互联网 发布:替代windows cmd 编辑:程序博客网 时间:2024/06/07 02:11

决策树(Decision Tree)

是一种非常常用的分类算法,也是一种预测模型。在已知各种情况发生概率的情况下,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,它代表的是对象属性与对象值之间的一种映射关系。

缺点:容易出现过拟合(overfitting)的情况,要在适当的时机停止决策树的生长。


from sklearn import treeclf = tree.DecisionTreeClassifier()clf.fit(features_train,labels_train)pred = clf.predict(feature_test)from sklearn.metrics import accuracy_scoreacc = accuracy_score(pred, labels_test)
备注:在决策树算法中可以通过为决策树分类器添加参数(例如:min_samples_split)减少算法的复杂度。


熵(Entropy)

对于数据杂质存在而言,熵就是一种衡量数据中存在杂质程度的方法。在使用决策树时,很少需要处理对数底的细节,较低的熵指向更有条理的数据,而且决策树将此用作事件分类方式。

熵公式:Entropy = i(pi)log2(pi)


信息增益(Information Gain)

非对称,用于衡量两种概率分布的差异。衡量标准是看特征能够为分类系统带来多少信息,带来的信息越多,该特征越重要。对于一个特征而言,系统有它和没它时信息量将发生变化,而前后信息量的差值就是这个特征给系统带来的信息量(熵)。

在其他所有方面都相等的情况下,特征数量越多会使决策树的复杂性更高。

缺点:信息增益只能考察特征对整个系统的贡献,而不能具体到某个类别上,这就使得它只适合用来做所谓“全局”的特征选择(指所有的类都使用相同的特征集合),而无法做“本地”的特征选择(每个类别有自己的特征集合,因为有的词,对这个类别很有区分度,对另一个类别则无足轻重)。


information gain = entropy(parent) - sum(entropy(children))


偏差(Bias)、误差(Error)、方差(Variance)

Error = Bias + Variance
Error反映的是整个模型的准确度,Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,
Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。


备注: 数据被整理成一个 numpy 数组后,行数是数据点数,列数是特征数;要提取特征数,只需运行代码 len(features_train[0])


原创粉丝点击