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

  统计/机器学习 监督式学习 Python    浏览次数:2244        分享
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


  相关主题

随机森林是如何计算测试样本的概率的?   1回答

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

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

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

剪枝是什么意思   1回答

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

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

Extra Tree算法   1回答

gbdt为什么需要泰勒公式展开进行节点分裂计算   2回答

决策回归树   2回答

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

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



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

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

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

我们谢绝答非所问。

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

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