파이썬에서 의사 결정 트리가 향상 되었습니까? [닫은]


13

강화 된 의사 결정 트리 훈련을위한 좋은 파이썬 라이브러리가 있습니까?


3
Rpy, 물론 ;-)

mbq에 동의합니다. 파이썬에서 그렇게 해야하는 이유가 있습니까? 그렇지 않으면 작업대 R을 백엔드로 사용합니다.
Joris Meys

유일하게 몇 년 전에 R을 사용했고 파이썬을 매일 사용하고있는 유일한 이유는 ...
Andre Holzner

2
Rpy는 정말 불쾌한 의존입니다. R에는 거대한 기능 세트가 있으므로 Rpy를 사용하여 파헤칠 수있는 것이 좋지만, 해당 작업을 공유해야하는 경우 동일한 실험실의 다른 컴퓨터에 있더라도 문제가 생길 수 있습니다. 실험실이 이기종 컴퓨팅 환경에있는 경우 이는 Rpy가 올바른 마이너 버전의 Python, numpy 및 R을 사용하는 데 달려 있기 때문입니다. 예를 들어, 주요 Linux 배포판에서는 계속 중단됩니다.
Gael Varoquaux

3
여기에 대한 답변은 구식 인 것 같습니다. scikit.learn이 시작될 때부터 온 것 같습니다. 누군가 지식이있는 사람이 업데이트 된 답변을한다면 독자와 사이트가 도움이 될 것이라고 생각합니다.
Pere

답변:


5

업데이트 된 답변

풍경이 많이 바뀌었고 요즘 대답은 분명합니다.

  • scikit-learn 은 Python 라이브러리이며 의사 결정 트리 강화를위한 몇 가지 훌륭한 알고리즘을 가지고 있습니다.
  • 파이썬에서 "최고의"부스트 결정 트리는 XGBoost 구현입니다.

업데이트 1

  • 한편, LightGBM는 하지만 여전히 아주 "새로운", 더 나은 다음 동등하게 좋은 또는 보인다 XGBoost

12

필자의 첫 번째 모습은 Orange 의 백엔드를 갖춘 ML 용 앱인 Orange 입니다. 예를 들어 orngEnsemble을 참조하십시오 .

다른 유망한 프로젝트는 mlpyscikit.learn 입니다.

내가 알고 PyCV는 하지만 분명히하지 쇼핑 카트에 담기 위해 여러 증폭 절차를 포함한다. MLboost 도 살펴보세요



6

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

4
나는 우유를 개발합니다. 둘 중 하나라도 문제가 발생하면 이메일 (lpc at cmu dot edu)로 알려주십시오. 버그 보고서는 일반적으로 24 시간 이내에 수정됩니다.
luispedro

한편, adaboost에 대한 약간의 문서를 추가했습니다 : packages.python.org/milk/adaboost.html 위의 주석은 이전보다 덜 유효 할 수 있습니다.
luispedro

4

scikit-learn은 이제 좋은 회귀 (및 분류) 트리와 임의 포리스트 구현을 갖습니다 . 그러나 부스트 트리는 여전히 포함되어 있지 않습니다. 사람들이 노력하고 있지만 효율적인 구현을 위해서는 시간이 걸립니다.

면책 조항 : 저는 scikit-learn 개발자입니다.


1

JBoost 는 멋진 라이브러리입니다. 파이썬으로 작성된 것은 아니지만 명령 행에서 실행될 수 있으므로 파이썬에서 "구동"될 수 있기 때문에 언어에 구애받지 않습니다. 나는 과거에 그것을 사용했고 특히 시각화 물건을 많이 좋아했습니다.


1

나는 지금 똑같은 문제가 있습니다. 매일 파이썬으로 코딩하고 가끔 R을 한 번 사용하면 좋은 부스트 ​​트리 알고리즘이 필요합니다. 고급 분석을위한 훌륭한 Python 패키지가 많이 있지만 검색에서이 특정 알고리즘에 적합한 제품을 찾지 못했습니다. 그래서 앞으로 몇 주 안에 걸릴 것이라고 생각하는 경로 는 R 에서 GBM 패키지 를 사용하는 것 입니다. 여기 에서 찾을 수있는 실제적인 문제를 보여주는 좋은 논문이 있습니다 . 중요하게, GBM 패키지는 기본적으로 2009 KDD 컵에서 "선반"으로 사용되었습니다 . 따라서 파이썬에서 사전 및 사후 모델링을 모두 수행하고 RPy를 사용하여 R / GBM과 앞뒤로 갈 것입니다.


0

나는 당신과 비슷한 상황을 겪었습니다. 오렌지는 조정하기 어렵다는 것을 알았습니다 (아마도 내 문제 일 것입니다). 결국, 나는 Peter Norivig의 유명한 책을 그의 유명한 책에 사용했으며, 거기에서 그는 나무를 위해 잘 작성된 코드 프레임 워크를 제공했습니다. 이런 식으로 원하는 것을 코딩 할 수 있습니다.


0

의사 결정 트리-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)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.