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

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

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

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

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

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

随机森林预测问题

关于knn算法中kd树的问题

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

怎么理解RandomForest中的max_features?

Extra Tree算法

  随便看看

pandas.DataFrame里的loc和iloc什么区别?

T检验的effect size是什么?有什么含义吗?

线性回归或者逻辑回归中常提到的AIC和BIC是什么意思?

除了PCA,还有什么降维的方法?

dropout rate一般设置多大?