决策树学习算法,通常是递归地根据某一准则(信息增益或基尼系数)选择最优切分点/特征,并根据该特征对训练数据集进行分割,使得对各个子数据集有一个最好的分类的过程。
这一过程对应着特征空间的划分,也对应着决策树的构建,在子数据集上循环切割过程,直到所有训练数据子集被基本正确分类,或者没有合适的特征为止。
代码示例
构建测试数据
from sklearn.datasets import make_moons data, target = make_moons(n_samples=2000, noise=0.3, random_state=42)
数据可视化
from matplotlib import pyplot as plt plt.scatter(data[:,0], data[:,1], c=target) plt.show()
拆分数据集
from sklearn.model_selection import train_test_split x_train, x_test, y_train, y_test = train_test_split(data, target, test_size=0.3)
训练模型
from sklearn.tree import DecisionTreeClassifier classifier = DecisionTreeClassifier() classifier.fit(x_train, y_train)
测试准确率
score_train = classifier.score(x_train, y_train) print(score_train) score_test = classifier.score(x_test, y_test) print(score_test)
output
1.0 0.8783333333333333
该分类模型的训练集准确率为1.0,说明过拟合了。下一篇文章,介绍通过剪枝,来抑制过拟合问题。
本文为 陈华 原创,欢迎转载,但请注明出处:http://ichenhua.cn/read/254
- 上一篇:
- 分治算法和汉诺塔问题
- 下一篇:
- 顺序查找算法和二分查找算法