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

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


  相关主题

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

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

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

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

剪枝是什么意思   1回答

随机森林的模型一般都很大么?   1回答

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

随机森林中增加树的数量对于偏差和方差的影响   2回答

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

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

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

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



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

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

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

我们谢绝答非所问。

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

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