दूसरों द्वारा सूचीबद्ध संसाधन सभी निश्चित रूप से उपयोगी हैं, लेकिन मैं निम्नलिखित में झंकार करूंगा और जोड़ूंगा: "सर्वश्रेष्ठ" क्लासिफायर के संदर्भ और डेटा विशिष्ट होने की संभावना है। हाल ही में विभिन्न बाइनरी क्लासिफायर का आकलन करने के लिए मुझे एक बूस्टेड रिग्रेशन ट्री मिला, जिसके लिए मेरी पहुंच अन्य विधियों की तुलना में लगातार बेहतर थी। मेरे लिए प्रमुख बात यह थी कि ऑरेंज डेटा माइनिंग टूल्स का उपयोग कैसे किया जाए । आपके डेटा के साथ इन तरीकों की खोज शुरू करने के लिए उनके पास कुछ बेहतरीन दस्तावेज हैं । उदाहरण के लिए, यहां एक छोटी पायथन लिपि है, जिसे मैंने k- गुना सत्यापन सत्यापन का उपयोग करते हुए सटीकता के कई उपायों में कई सहपाठियों की गुणवत्ता का आकलन करने के लिए लिखा था।
import orange, orngTest, orngStat, orngTree , orngEnsemble, orngSVM, orngLR
import numpy as np
data = orange.ExampleTable("performance_orange_2.tab")
bayes = orange.BayesLearner(name="Naive Bayes")
svm = orngSVM.SVMLearner(name="SVM")
tree = orngTree.TreeLearner(mForPruning=2, name="Regression Tree")
bs = orngEnsemble.BoostedLearner(tree, name="Boosted Tree")
bg = orngEnsemble.BaggedLearner(tree, name="Bagged Tree")
forest = orngEnsemble.RandomForestLearner(trees=100, name="Random Forest")
learners = [bayes, svm, tree, bs, bg, forest]
results = orngTest.crossValidation(learners, data, folds=10)
cm = orngStat.computeConfusionMatrices(results,
classIndex=data.domain.classVar.values.index('1'))
stat = (('ClsAcc', 'CA(results)'),
('Sens', 'sens(cm)'),
('Spec', 'spec(cm)'),
('AUC', 'AUC(results)'),
('Info', 'IS(results)'),
('Brier', 'BrierScore(results)'))
scores = [eval("orngStat." + s[1]) for s in stat]
print "Learner " + "".join(["%-9s" % s[0] for s in stat])
print "-----------------------------------------------------------------"
for (i, L) in enumerate(learners):
print "%-15s " % L.name + "".join(["%5.3f " % s[i] for s in scores])
print "\n\n"
measure = orngEnsemble.MeasureAttribute_randomForests(trees=100)
print "Random Forest Variable Importance"
print "---------------------------------"
imps = measure.importances(data)
for i,imp in enumerate(imps):
print "%-20s %6.2f" % (data.domain.attributes[i].name, imp)
print '\n\n'
print 'Predictions on new data...'
bs_classifier = bs(data)
new_data = orange.ExampleTable('performance_orange_new.tab')
for obs in new_data:
print bs_classifier(obs, orange.GetBoth)
जब मैं अपने डेटा पर इस कोड को चलाता हूं तो मुझे आउटपुट मिलता है
In [1]: %run binary_predict.py
Learner ClsAcc Sens Spec AUC Info Brier
-----------------------------------------------------------------
Naive Bayes 0.556 0.444 0.643 0.756 0.516 0.613
SVM 0.611 0.667 0.714 0.851 0.264 0.582
Regression Tree 0.736 0.778 0.786 0.836 0.945 0.527
Boosted Tree 0.778 0.778 0.857 0.911 1.074 0.444
Bagged Tree 0.653 0.667 0.786 0.816 0.564 0.547
Random Forest 0.736 0.667 0.929 0.940 0.455 0.512
Random Forest Variable Importance
---------------------------------
Mileage 2.34
Trade_Area_QI 2.82
Site_Score 8.76
ऑरेंज वस्तुओं के प्रदर्शन को आत्मसात करने और तुलना करने के लिए आप बहुत कुछ कर सकते हैं। मैंने पाया कि यह पैकेज वास्तव में एक सुसंगत एपीआई और समस्या अमूर्तता के साथ मेरे डेटा के लिए तरीकों को लागू करने के लिए कोड की एक छोटी राशि लिखने में बेहद मददगार पाया गया है (यानी, मुझे छह अलग-अलग लेखकों से छह अलग-अलग पैकेजों का उपयोग करने की आवश्यकता नहीं है, प्रत्येक अपने स्वयं के साथ। एपीआई डिजाइन और प्रलेखन, आदि के लिए दृष्टिकोण)।