সাধারণভাবে, শ্রেণিবদ্ধের পারফরম্যান্স যথার্থতার সাথে ব্যবহার করে তুলনা করা হয়, এটি মোট উদাহরণগুলির সংখ্যার দ্বারা বিভক্তভাবে সঠিকভাবে শ্রেণিবদ্ধ দৃষ্টান্তগুলির একটি পরিমাপ। যাইহোক, প্রশিক্ষণ ডেটা থেকে আমরা যখন শ্রেণিবদ্ধ শেখার বা ব্যাগিং কৌশল ব্যবহার করি তখন আমাদের শ্রেণিবদ্ধের কাছ থেকে প্রত্যাশিত ত্রুটির আরও ভাল অনুমান করতে পারি।
ব্যাগের বাইরে ত্রুটি
xi
স্কলারনে oob প্রয়োগ করতে আপনার এলোমেলো বনভূমি হিসাবে তৈরি করার সময় আপনাকে এটি নির্দিষ্ট করতে হবে
from sklearn.ensemble import RandomForestClassifier
forest = RandomForestClassifier(n_estimators = 100, oob_score = True)
তারপরে আমরা মডেলটিকে প্রশিক্ষণ দিতে পারি
forest.fit(X_train, y_train)
print('Score: ', forest.score(X_train, y_train))
স্কোর: 0.979921928817
যেমনটি প্রত্যাশিত হিসাবে প্রশিক্ষণের সেটটি মূল্যায়ন করার সময় মডেলের যথার্থতা খুব বেশি। যাইহোক, এটি অর্থহীন কারণ আপনি খুব ভালভাবে আপনার ডেটাকে উপভোগ করতে পারেন এবং এভাবে আপনার মডেলটি আবর্জনা। তবে আমরা ব্যাগের বাইরে স্কোরটি ব্যবহার করতে পারি
print(forest.oob_score_)
0,86453272101
প্রশিক্ষণ সেটে কেবলমাত্র সেই গাছগুলিকে বাদ দেওয়া হয়েছে সেগুলি ব্যবহার করে আমাদের উদাহরণগুলি মূল্যায়ন করার সময় এটি যথার্থতা। এখন পরীক্ষা হিসাবে সেট স্কোর গণনা করা যাক
print('Score: ', forest.score(X_test, y_test))
স্কোর: 0.86517733935
আমরা দেখতে পাচ্ছি যে oob দ্বারা পরিমাপ করা নির্ভুলতা টেস্টিং সেটটির সাথে প্রাপ্ত similar এটি এই তত্ত্বের মাধ্যমে অনুসরণ করে যে oob যথার্থতা একটি ভাল মেট্রিক যা দ্বারা কেবলমাত্র স্কোরের পরিবর্তে আপনার মডেলের পারফরম্যান্সকে মূল্যায়ন করতে পারে। এটি ব্যাগিং মডেলগুলির একটি পরিণতি এবং অন্যান্য ধরণের শ্রেণিবদ্ধের সাথে করা যায় না।
বিভিন্ন মেট্রিক ব্যবহার করে oob গণনা করা হচ্ছে
হ্যাঁ, আপনি এটা করতে পারেন! তবে এটি আপনার কোডটি কীভাবে কাঠামোবদ্ধ তা নির্ভর করে। আমি নিশ্চিত না যে কীভাবে আপনি cross_val_score
ফাংশনটির সাথে আউব এবং এওসি সমস্তকে অন্তর্ভুক্ত করতে পারেন । যাইহোক, আপনি যদি ক্রস বৈধতা ম্যানুয়ালি ভাঁজগুলি করে থাকেন তবে আপনি নিম্নলিখিতটি করতে পারেন, স্কেলারনে এলোমেলো অরণ্য অ্যালগরিদম আপনাকে oob এর সিদ্ধান্ত ফাংশন সরবরাহ করে
print(forest.oob_decision_function_)
ক্লাসটি তখন ব্যবহার করে পাওয়া যায়
from sklearn import metrics
pred_train = np.argmax(forest.oob_decision_function_,axis=1)
তারপরে আমরা নিম্নলিখিতটি ব্যবহার করে AUC গণনা করতে পারি
metrics.roc_auc_score(y_train, pred_train)
0,86217157846471204