是否有一个好的Python库用于训练增强型决策树?
是否有一个好的Python库用于训练增强型决策树?
Answers:
我的第一眼看到的是Orange,它是ML的全功能应用程序,具有Python后端。参见例如orngEnsemble。
其他有前途的项目是mlpy和scikit.learn。
您可以通过Rpy(http://rpy.sourceforge.net/)使用R决策树库。还要检查文章“使用python构建决策树”(http://onlamp.com/pub/a/python/2 ...)。
也有
在Milk:针对Python的机器学习工具包中,基于树的学习者取得了不错的成绩。它似乎正在积极开发中,但是当我使用它时,文档却很少。测试套件(github.com/luispedro/milk/blob/master/tests/test_adaboost.py)包含一个“增强的树桩”,可以使您快速入门:
import numpy as np
import milk.supervised.tree
import milk.supervised.adaboost
def test_learner():
from milksets import wine
learner = milk.supervised.adaboost.boost_learner(milk.supervised.tree.stump_learner())
features, labels = wine.load()
features = features[labels < 2]
labels = labels[labels < 2] == 0
labels = labels.astype(int)
model = learner.train(features, labels)
train_out = np.array(map(model.apply, features))
assert (train_out == labels).mean() > .9
scikit学习现在具有良好的回归(和分类)树和随机森林实现。但是,升压树仍不包括在内。人们正在努力,但是要花一些时间才能有效地实施。
免责声明:我是一个scikit学习开发人员。
决策树-Ada提升
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import AdaBoostClassifier
from sklearn.metrics import accuracy_score
无助推的决策树
clf_entropy_no_ada = DecisionTreeClassifier(criterion = "entropy", random_state = 100,
max_depth=5, min_samples_leaf=5)
clf_entropy_no_ada.fit(X_train, y_train)
具有Ada Boosting的决策树
clf_entropy_ada = AdaBoostClassifier(base_estimator= clf_entropy_no_ada,n_estimators=400,learning_rate=1)
clf_entropy_ada.fit(X_train, y_train)
拟合模型和计算精度
y_predict_no_ada = clf_entropy_no_ada.predict(X_test)
print ("Accuracy is ", accuracy_score(y_test,y_predict_no_ada)*100)
y_predict_ada = clf_entropy_ada.predict(X_test)
print ("Accuracy is ", accuracy_score(y_test,y_predict_ada)*100)