র্যান্ডমফোরস্টক্লাসিফায়ার ওওবি স্কোরিং পদ্ধতি


16

ব্যাগের বাইরে থাকা নমুনাগুলির সাথে জেনারালাইজেশন ত্রুটিটি অনুমান করার জন্য বৃত্তাকার অরণ্য বাস্তবায়ন কি স্কিকিট-লারিংয়ের স্কোরিং পদ্ধতি হিসাবে গড় যথার্থতা ব্যবহার করে? ডকুমেন্টেশনে এটি উল্লেখ করা হয়নি তবে স্কোর () পদ্ধতিটি গড় নির্ভুলতার প্রতিবেদন করে।

আমার অত্যন্ত ভারসাম্যহীন ডেটাসেট রয়েছে এবং আমি গ্রিড অনুসন্ধানে আমার স্কোরিং মেট্রিক হিসাবে আরওসি এর এউসি ব্যবহার করছি। ক্লাসিফায়ারকে ওওবি নমুনাগুলিতে একই স্কোরিং পদ্ধতিটি ব্যবহার করতে বলার উপায় আছে কি?


Oob_score এর প্যারামিটার RandomForestClassifier বর্গ কি আপনি করতে পারেন না?
পিয়েরে

আফাইক, oob_scoreনির্ভুলতার রিপোর্ট করুন report যদিও আমি আবার উত্স কোড তাকান প্রয়োজন।
darXider

আপনার গ্রিড অনুসন্ধানের সাথে আপনি কোন পরামিতিটি অনুমান করছেন?
JahKnows

^ দুঃখিত, তবে আমি এখন মনে করি না! আমি এই প্রশ্নটি 1.5 বছর আগে জিজ্ঞাসা করেছি।
darXider

উত্তর:


14

সাধারণভাবে, শ্রেণিবদ্ধের পারফরম্যান্স যথার্থতার সাথে ব্যবহার করে তুলনা করা হয়, এটি মোট উদাহরণগুলির সংখ্যার দ্বারা বিভক্তভাবে সঠিকভাবে শ্রেণিবদ্ধ দৃষ্টান্তগুলির একটি পরিমাপ। যাইহোক, প্রশিক্ষণ ডেটা থেকে আমরা যখন শ্রেণিবদ্ধ শেখার বা ব্যাগিং কৌশল ব্যবহার করি তখন আমাদের শ্রেণিবদ্ধের কাছ থেকে প্রত্যাশিত ত্রুটির আরও ভাল অনুমান করতে পারি।

ব্যাগের বাইরে ত্রুটি

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


4
ধন্যবাদ! আমি এলোমেলো বনাঞ্চলে ওওবি প্রক্রিয়া কীভাবে কাজ করে তা সম্পর্কে আমি সচেতন। আমি বিশেষভাবে জিজ্ঞাসা করছিলাম যে RandomForestClassifierকোনও ওওবি স্কোর যা সঠিকতা নয় , ফিরিয়ে দিতে পারে কিনা এবং আপনার উত্তরের দ্বিতীয় অংশটি কীভাবে এই সমস্যাটির কাছে যেতে পারে সে সম্পর্কে খুব ভাল ইঙ্গিত সরবরাহ করে। তবে, আমাকে জোর দিতে হবে যে আরওসি বক্ররেখার এউসি গণনা করার জন্য শ্রেণির লেবেলগুলি ব্যবহার করা উচিত নয়; বরং শ্রেণীর সম্ভাবনাগুলি সরাসরি ব্যবহার করা উচিত। সুতরাং, সঠিক সংজ্ঞা হবে pred_train = forest.oob_decision_function_[:, 1]
darXider

@ararider এই অদ্ভুত নয়, যেহেতু বন.oob_decision_function_. Shape [0] == এক্স_ট্রেইন.শ্যাপ [0], আমি আশা করব যখন এটি == ওওবি নমুনাগুলির সংখ্যা হবে, যা নমুনার সংখ্যার চেয়ে কম হওয়া উচিত এক্স_ট্রেইনে? এছাড়াও, ব্যক্তিগতভাবে আমি লগলস গণনা করতে আগ্রহী ছিলাম, অন্যরা যারা এটিও করতে চান তাদের জন্য, আমি মনে করি এর পরিবর্তে পূর্ব_ট্রেনটি = বনভূমি_সামগ্রী_নন্দন_ফান করা উচিত।
Sander Vanden Hautte
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.