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

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


  相关主题

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

Extra Tree算法   1回答

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

lightgbm使用自定义损失函数后,二分类的预测结果不再是【0,1】区间   0回答

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

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

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

剪枝是什么意思   1回答

关于knn算法中kd树的问题   1回答

请教lightGBM中的level wise具体计算步骤是怎样的?   1回答

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

请问针对Adaboost、GBDT等集成学习同一个特征是否可以入模多次?   1回答



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

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

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

我们谢绝答非所问。

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

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