python里实现一个简单的决策树

  统计/机器学习 监督式学习 Python    浏览次数: 829
3

才入门机器学习,对决策树只是知道概念,没有用python实现过。请问python里现成的函数或者工具包可以用决策树做分类问题吗?

 

擒贼先擒鱼   2017-02-28 10:51



   1个回答 
6

绝大部分机器学习的算法都可以在sklearn这个包里面找到,也包括你说到的决策树(DecisionTree)。代码很简单,如下:

>>>from sklearn import tree
>>>clf = tree.DecisionTreeClassifier(criterion='gini')
>>>clf.fit(X,y)
>>>y_test = clf.predict(X_test)

上面的criterion='gini'表示这个决策树是根据“Gini不纯性”准则建立的;如果criterion='entropy',意思说这个决策树是根据“熵增益准则”来构建的。

fit是训练拟合这个决策树的过程,X是训练集样本(注意:不含真实标签的那一列),y是训练样本的标签。

predict是用fit出来的树来进行预测。y_test是测试集X_test中每个样本的预测结果。这个结果是0,1两元的。

如果想要得到预测为0或者为1的概率,那么最后一句话要改成

>>>y_test = clf.predict_proba(X_test)



沛县李刚   2017-03-01 09:33

这个看起来比看sklearn的documentation好懂多了,那个太长了 - word哥   2017-03-01 13:46


  相关主题

python sklean中的决策树是用的哪一种决策树算法?   2回答

决策树算法ID3,C4.5和CART的特点、异同?   3回答

决策树怎么做增量学习或者online学习?   0回答

Extra Tree算法   1回答

决策树剪枝有什么策略或者注意事项?   2回答

决策树的深度和数据特征个数的关系   1回答

随机森林(random forest)和支持向量机(SVM)各有什么优劣   1回答

决策树的熵是什么?怎么用熵来选分叉?   1回答

Gradient tree boosting和random forest (随机森林) 有什么区别和联系   1回答

Adaboost里的树有没有可能权重是负数?   1回答

决策树是如何得到量化的概率,不只是0或1的标签?   2回答

剪枝是什么意思   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!