มีห้องสมุดไพ ธ อนที่ดีสำหรับการฝึกอบรมต้นไม้ตัดสินใจหรือไม่
มีห้องสมุดไพ ธ อนที่ดีสำหรับการฝึกอบรมต้นไม้ตัดสินใจหรือไม่
คำตอบ:
อัปเดตคำตอบ
ภูมิทัศน์มีการเปลี่ยนแปลงมากมายและคำตอบก็ชัดเจนในปัจจุบัน:
อัปเดต 1
คุณสามารถใช้ไลบรารีแผนผังการตัดสินใจ R โดยใช้ Rpy (http://rpy.sourceforge.net/) ตรวจสอบบทความ "การสร้างแผนภูมิการตัดสินใจโดยใช้ python" (http: //onlamp.com/pub/a/python/2 ... )
นอกจากนี้ยังมี
ผมมีความสำเร็จที่ดีกับผู้เรียนที่มีต้นไม้ที่อยู่ในนม: เครื่องการเรียนรู้เครื่องมือสำหรับงูหลาม ดูเหมือนว่าจะอยู่ภายใต้การพัฒนาที่ใช้งานอยู่ แต่เอกสารนั้นค่อนข้างกระจัดกระจายเมื่อฉันใช้งาน ชุดทดสอบ (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
JBoostเป็นห้องสมุดที่ยอดเยี่ยม มันไม่ได้เขียนใน Python แน่นอน แต่มันเป็นภาษาที่ไม่เชื่อเรื่องพระเจ้าเพราะมันสามารถเรียกใช้งานจากบรรทัดคำสั่งและดังนั้นจึงสามารถ "ขับเคลื่อน" จาก Python ฉันเคยใช้มันในอดีตและชอบมันมากโดยเฉพาะเรื่องการสร้างภาพ
ฉันมีปัญหาเดียวกันในขณะนี้: ฉันเขียนโค้ดใน Python ทุกวันใช้ R นาน ๆ และต้องการอัลกอริทึมการถดถอยแบบเพิ่มขึ้นที่ดี ในขณะที่มีแพ็คเกจ Python ที่ยอดเยี่ยมมากมายสำหรับการวิเคราะห์ขั้นสูงการค้นหาของฉันไม่พบข้อเสนอที่ดีสำหรับอัลกอริทึมนี้โดยเฉพาะ ดังนั้นเส้นทางที่ฉันคิดว่าฉันจะได้รับในสัปดาห์ที่ผ่านมาคือการใช้แพคเกจ GBM ใน R มีกระดาษที่ดีที่แสดงให้เห็นปัญหาในทางปฏิบัติเกี่ยวกับการใช้มันที่สามารถพบได้คือที่นี่ ที่สำคัญแพคเกจ GBM ถูกใช้เป็นพื้น "ปิดการเก็บรักษา" เพื่อ W 2009 KDD ถ้วย ดังนั้นฉันอาจทำแบบจำลองก่อนและหลังทั้งหมดของฉันใน Python และใช้ RPy เพื่อกลับไปกลับมาด้วย R / GBM
ฉันเคยเจอสถานการณ์แบบเดียวกันกับคุณฉันพบว่าออเร้นจ์ยากที่จะปรับ (อาจเป็นปัญหาของฉัน) ในท้ายที่สุดฉันใช้รหัสของ Peter Norivig สำหรับหนังสือที่มีชื่อเสียงของเขาในนั้นเขาได้จัดทำกรอบรหัสที่เขียนขึ้นอย่างดีสำหรับต้นไม้สิ่งที่คุณต้องมีก็คือการเพิ่มการส่งเสริม ด้วยวิธีนี้คุณสามารถเขียนโค้ดอะไรก็ได้ที่คุณชอบ
Decision Trees - 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)