강화 된 의사 결정 트리 훈련을위한 좋은 파이썬 라이브러리가 있습니까?
강화 된 의사 결정 트리 훈련을위한 좋은 파이썬 라이브러리가 있습니까?
답변:
필자의 첫 번째 모습은 Orange 의 백엔드를 갖춘 ML 용 앱인 Orange 입니다. 예를 들어 orngEnsemble을 참조하십시오 .
다른 유망한 프로젝트는 mlpy 및 scikit.learn 입니다.
내가 알고 PyCV는 하지만 분명히하지 쇼핑 카트에 담기 위해 여러 증폭 절차를 포함한다. MLboost 도 살펴보세요
Rpy (http://rpy.sourceforge.net/)를 사용하여 R 의사 결정 트리 라이브러리를 사용할 수 있습니다. 또한 "파이썬을 사용하여 의사 결정 트리 작성"(http : //onlamp.com/pub/a/python/2 ...) 기사를 확인하십시오.
도 있습니다
Milk : Machine Learning Toolkit for Python 의 트리 기반 학습자와 함께 성공했습니다 . 활발한 개발 중이지만 문서를 사용할 때 문서가 약간 희박했습니다. 테스트 스위트 (github.com/luispedro/milk/blob/master/tests/test_adaboost.py)에는 "boostted stump"가 포함되어있어 매우 빠르게 진행할 수 있습니다.
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
나는 지금 똑같은 문제가 있습니다. 매일 파이썬으로 코딩하고 가끔 R을 한 번 사용하면 좋은 부스트 트리 알고리즘이 필요합니다. 고급 분석을위한 훌륭한 Python 패키지가 많이 있지만 검색에서이 특정 알고리즘에 적합한 제품을 찾지 못했습니다. 그래서 앞으로 몇 주 안에 걸릴 것이라고 생각하는 경로 는 R 에서 GBM 패키지 를 사용하는 것 입니다. 여기 에서 찾을 수있는 실제적인 문제를 보여주는 좋은 논문이 있습니다 . 중요하게, GBM 패키지는 기본적으로 2009 KDD 컵에서 "선반"으로 사용되었습니다 . 따라서 파이썬에서 사전 및 사후 모델링을 모두 수행하고 RPy를 사용하여 R / GBM과 앞뒤로 갈 것입니다.
의사 결정 트리-Ada Boosting
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)