অন্যদের দ্বারা তালিকাভুক্ত সংস্থানগুলি অবশ্যই কার্যকরভাবে ব্যবহারযোগ্য তবে আমি এইগুলিকে চিমে রেখে সংযোজন করব: "সেরা" শ্রেণিবদ্ধকারী সম্ভবত প্রসঙ্গ এবং ডেটা সুনির্দিষ্ট হতে পারে। বিভিন্ন বাইনারি শ্রেণিবদ্ধকারীদের মূল্যায়নের সাম্প্রতিক প্রবণতায় আমি আমার কাছে অ্যাক্সেস করা অন্যান্য পদ্ধতির চেয়ে ধারাবাহিকভাবে আরও ভালভাবে কাজ করার জন্য একটি বুস্টেড রিগ্রেশন ট্রি পেয়েছি। আমার জন্য মূল বিষয়টি ছিল কীভাবে কমলা ডেটা মাইনিং সরঞ্জামগুলি ব্যবহার করতে হয় তা শিখছি । এই পদ্ধতিগুলির সাথে অন্বেষণ শুরু করার জন্য তাদের কাছে কিছু দুর্দান্ত ডকুমেন্টেশন রয়েছেআপনার ডেটা । উদাহরণস্বরূপ, কে-ফোল্ড ক্রস বৈধতা ব্যবহার করে নির্ভুলতার একাধিক ব্যবস্থা জুড়ে একাধিক শ্রেণিবদ্ধের মানের মূল্যায়ন করতে আমি এখানে একটি ছোট পাইথন স্ক্রিপ্ট লিখেছি।
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
পারফরম্যান্সকে আত্মবিশ্বাসিত করতে এবং তুলনা করার জন্য কমলা রঙের জিনিসগুলি নিয়ে আপনি আরও অনেক কিছু করতে পারেন। আমি এই প্যাকেজটি একটি সামঞ্জস্যপূর্ণ এপিআই এবং সমস্যা বিমূর্ততার সাথে আমার ডেটাতে পদ্ধতি প্রয়োগ করতে খুব অল্প পরিমাণে কোড লেখার ক্ষেত্রে অত্যন্ত সহায়ক বলে মনে করেছি (যেমন, আমার নিজের ছয়টি আলাদা লেখকের ছয়টি আলাদা প্যাকেজ ব্যবহার করার দরকার নেই) এপিআই ডিজাইন এবং ডকুমেন্টেশন ইত্যাদির কাছে যান)।