学习资料
决策树是一种用于分类和回归的非参数监督学习方法。目标是创建一个模型,通过学习从数据特征推断的简单决策规则来预测目标变量的值。树可以看作是分段常数近似。
例如,在下面的例子中,决策树从数据中学习,用一组if-then-else决策规则来近似正弦曲线。树越深,决策规则就越复杂,模型就越适合。
DecisionTreeClassifier是一个能够在数据集上执行多类分类的类。与其他分类器一样,DecisionTreeClassifier采用两个数组作为输入:一个是稀疏或密集的形状(n_samples,n_features)数组X,用于保存训练样本,另一个是整数值形状(n_amples,)数组Y,用于保存训练样本的类标签:
from sklearn import tree X = [[0, 0], [1, 1]] Y = [0, 1] clf = tree.DecisionTreeClassifier() clf = clf.fit(X, Y) clf.predict([[2., 2.]])
array([1])
在存在具有相同和最高概率的多个类的情况下,分类器将预测这些类中具有最低索引的类。
作为输出特定类的替代方案,可以预测每个类的概率,该概率是叶中该类的训练样本的分数:
clf.predict_proba([[2., 2.]])
array([[0., 1.]])
DecisionTreeClassifier既能进行二进制(标签为[-1,1])分类,也能进行多类(标签为[0,…,K-1])分类。经过训练后,可以使用plot_tree函数绘制树:
tree.plot_tree(clf)
[Text(0.5, 0.75, 'X[1] <= 0.5\ngini = 0.5\nsamples = 2\nvalue = [1, 1]'), Text(0.25, 0.25, 'gini = 0.0\nsamples = 1\nvalue = [1, 0]'), Text(0.75, 0.25, 'gini = 0.0\nsamples = 1\nvalue = [0, 1]')]