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

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

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

 

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



   1个回答 
7

绝大部分机器学习的算法都可以在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)
SofaSofa数据科学社区DS面试题库 DS面经

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

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


  相关主题

怎么得到randomforestregressor里每棵树的预测结果?   1回答

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

Extra Tree算法   1回答

随机森林警告:A column-vector y was passed when a 1d array was expected   1回答

决策树可以做多元分类吗?   1回答

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

怎么理解RandomForest中的max_features?   1回答

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

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

如果采用非等权重的方法集成一个随机森林,会表现得更好嘛?   1回答

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

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



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

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

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

我们谢绝答非所问。

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

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