天才一秒记住【畅想小说网】地址:http://www.cxtra.net
可以看到这个决策树在训练数据上的准确率是100%(1.0)。
这表明使用上述算法构建的决策树完全捕捉了训练数据的分类信息。
这也许是因为训练出的决策树确实具有很好的分类效果,但也有可能并不是真正的分类准确率,而是发生了过拟合现象。
为了更好地评估分类准确率,需要使用与训练数据不同的测试数据。
可以抽取全部数据中的一部分作为训练数据,另一部分作为测试数据,使用抽取出的训练数据来构建决策树,然后使用测试数据评估准确率。
这可以通过如下方式来实现。
In[30]fromsklearionimporttrai
In[31]:X_trairairai
(X,Y,test_size=0.2)
#这里将全部样本分成两部分,其中训练样本占80%,测试样本占20%,这
#里采用了随机分割样本的方法,所以读者的输出可能与下面的结果不同
Iree.DeTreeClassifier()
I(X_train,Y_train)
#利用训练数据来构建决策树
Out[33]:
&reeClassifier(class_weight=erion='gini',
max_depth=None,
max_features=None,max_leaf_nodes=None,
min_impurity_split=1e-07,min_samples_leaf=1,
mi=2,mi_fra_leaf=0.0,
&=False,random_state=er='best')
#返回新的决策树的参数
In[34]:Y_prediewclf.predict(X_test)
#注意,这里是将新训练的决策树用在测试样本的X上,并预测出对应Y
In[35]:accuracy_score(Y_test,Y_predict)
Out[35]:1.0
可以看到在测试集上的准确率仍然是100%,这说明这个分类器确实具有很高的准确率。
因为测试数据和训练数据是采用随机划分的方式获得的,读者最后获得的输出结果可能会与此不同。
从上述内容可以看出,决策树实现起来简单并且效果很好。
本书采用最简单的形式实现这个算法,scikit-learn的决策树有很多参数可以调整,读者可以尝试调整决策树的参数,观察分类性能会发生什么改变。
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!