决策树算法是根据数据的属性采用树状结构建立的一种决策模型,通过该决策体系,决策树算法既可以求解分类问题,即对应的目标值是类别型数据,也可以应用于回归预测问题多的求解,其输出值是连续的实数值。决策树分类则是采用归纳学习的方法,它通过信息论的相关原理将数据集的类别差异进行归纳,然后建立类别标准。
信息熵就是决策树方法中分支产生的衡量标准之一。对于每个节点,在每一次选择分列属性时,计算这种分类所带来的信息熵的变化(也就是信息增益),并比较不同分类下的信息增益的大小。
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
iris = load_iris()
X=iris.data
y=iris.target
#这里设置criterion为entropy为ID3算法
X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, random_state=42)
tree = DecisionTreeClassifier(random_state=0)
tree.fit(X_train, y_train)
print("Accuracy on training set: {:.3f}".format(tree.score(X_train, y_train)))
print("Accuracy on test set: {:.3f}".format(tree.score(X_test, y_test)))