এলোমেলো বন কি শোভা পাচ্ছে?


19

আমি সাইকিট-শিখার সাথে এলোমেলো বন নিয়ে পরীক্ষা নিরীক্ষা করছি এবং আমি আমার প্রশিক্ষণের সেটটির দুর্দান্ত ফলাফল পাচ্ছি, তবে আমার পরীক্ষার সেটে তুলনামূলকভাবে খারাপ ফলাফল ...

এই সমস্যাটি (পোকার দ্বারা অনুপ্রাণিত) যা আমি সমাধান করার চেষ্টা করছি: এখানে দেওয়া খেলোয়াড় এ এর ​​গর্ত কার্ড, প্লেয়ার বি এর গর্ত কার্ড এবং একটি ফ্লপ (3 কার্ড), কোন খেলোয়াড়ের সেরা হাত আছে? গাণিতিকভাবে, এটি 14 ইনপুট (7 টি কার্ড - প্রত্যেকের জন্য একটি পদ এবং একটি স্যুট) এবং একটি আউটপুট (0 বা 1)।

এখন পর্যন্ত আমার কয়েকটি ফলাফল এখানে রয়েছে:

Training set size: 600k, test set size: 120k, number of trees: 25
Success rate in training set: 99.975%
Success rate in testing set: 90.05%

Training set size: 400k, test set size: 80k, number of trees: 100
Success rate in training set: 100%
Success rate in testing set: 89.7%

Training set size: 600k, test set size: 120k, number of trees: 5
Success rate in training set: 98.685%
Success rate in testing set: 85.69%

এখানে প্রাসঙ্গিক কোড ব্যবহৃত হয়:

from sklearn.ensemble import RandomForestClassifier
Forest = RandomForestClassifier(n_estimators = 25) #n_estimator varies
Forest = Forest.fit(inputs[:trainingSetSize],outputs[:trainingSetSize])
trainingOutputs = Forest.predict(inputs[:trainingSetSize])
testOutputs = Forest.predict(inputs[trainingSetSize:])

এটি ব্যবহার করা গাছের সংখ্যা নির্বিশেষে দেখা যায়, তুলনামূলকভাবে বড় প্রশিক্ষণের সেট এবং যুক্তিসঙ্গতভাবে সংখ্যক বৈশিষ্ট্য থাকা সত্ত্বেও প্রশিক্ষণ সংস্থার পারফরম্যান্স পরীক্ষার তুলনায় অনেক ভাল ...


2
আমি এলোমেলো বনের জন্য প্রায় এক ডজন 'ডায়াল' দেখছি না। ক্রস বৈধতা? বায়েশিয়ান প্রিয়ারস? পুনর্নির্মাণের প্রকৃতি? প্রতিটি গাছের জন্য প্রশিক্ষণ সেট? প্রতিটি গাছের সাবসেটের কত শতাংশ? ... আরও অনেকগুলি রয়েছে যা গণনা করা যেতে পারে তবে আমার বক্তব্যটি আপনার বিবেচনার জন্য অন্যান্য ইনপুট রয়েছে।
এনগ্রিস্টুডেন্ট - মনিকা

1
যাঁরা জুজু জানেন না তাদের জন্য কী আপনি সমস্যাটি ব্যাখ্যা করতে পারেন .. পোকার স্কোরের জন্য কি কোনও সহজ গণনা আছে? তারপরে আরএফ ব্যবহারে মূলত কিছু ভুল আছে কিনা তা বোঝা সহজ ... আমি জুজু জানি না, তবে আমার সন্দেহ হয় যে আরএফ সম্ভবত ভুল পদ্ধতির - অর্থাত্ আরএফের প্রথম পদক্ষেপটি কেবল ইনপুটগুলির একটি ভগ্নাংশ ব্যবহার করা, যদিও এটি আমার কাছে উপস্থিত হবে যে ইনপুটগুলির কেবলমাত্র একটি উপসেট ব্যবহার করে ভাল শ্রেণিবদ্ধকারী তৈরি করার কোনও উপায় নেই - সমস্ত ইনপুট প্রয়োজন।
seanv507

উত্তর:


45

আরএফ মডেলগুলি ব্যবহার করার সময় এটি একটি সাধারণ রোকি ত্রুটি perpet প্রশিক্ষণ সেটটি ব্যবহার করে আপনি যে বনটি তৈরি করেন তা সম্পূর্ণরূপে বিবেচনা করার পরে অনেক ক্ষেত্রে প্রশিক্ষণের ডেটা প্রায় পুরোপুরি ফিট করে (যেমন আপনি খুঁজে পাচ্ছেন)। যাইহোক, অ্যালগরিদম বনটি তৈরি করার সাথে সাথে এটি ব্যাগের বাইরে থাকা (ওওবি) পূর্বাভাস ত্রুটির কথা মনে রাখে, এটি সাধারণীকরণ ত্রুটির সর্বোত্তম অনুমান।

আপনি যদি প্রশিক্ষণ ডেটাটিকে পূর্বাভাস পদ্ধতিতে ফেরত পাঠান (আপনি যেমন করছেন) আপনি সঠিক ওওবি ত্রুটির পরিবর্তে প্রায় নিখুঁত ভবিষ্যদ্বাণীটি (যা বুনো আশাবাদী) পেয়েছেন। এটি করবেন না। পরিবর্তে, প্রশিক্ষিত ফরেস্ট অবজেক্টের মধ্যে এটির মধ্যে OOB ত্রুটি মনে রাখা উচিত ছিল। আমি সাইকিট-লার বাস্তবায়নের সাথে অপরিচিত তবে এখানে ডকুমেন্টেশনটি দেখে মনে হচ্ছে oob_score=Trueফিটের পদ্ধতিটি কল করার সময় আপনাকে নির্দিষ্ট করা দরকার , এবং সাধারণীকরণ ত্রুটি হিসাবে সংরক্ষণ করা হবেoob_score_প্রত্যাবর্তিত অবজেক্টে আর প্যাকেজ "র্যান্ডমফোরস্ট" এ, পূর্বাভাস পদ্ধতিটি কল করে প্রত্যাবর্তিত বস্তুটিতে কোনও যুক্তি ছাড়াই কল করা প্রশিক্ষণ সংস্থায় ওওবি পূর্বাভাস ফিরিয়ে দেবে। এটি আপনাকে অন্য কিছু পরিমাপ ব্যবহার করে ত্রুটিটি সংজ্ঞায়িত করতে দেয়। পূর্বাভাস পদ্ধতিতে প্রশিক্ষণ সেট করে পাঠানো আপনাকে আলাদা ফলাফল দেয়, কারণ এটি সমস্ত গাছ ব্যবহার করবে। আমি জানি না scikit-learnবাস্তবায়ন এটি করবে কি না।

যথার্থতা পরীক্ষা করতে প্রশিক্ষণের ডেটা পূর্বাভাস পদ্ধতিতে ফেরত পাঠানো ভুল a যদিও এটি খুব সাধারণ ভুল, তাই চিন্তা করবেন না।


1
ধন্যবাদ! তবে, আমার এখনও একটি উদ্বেগ রয়েছে: 400 কে প্রশিক্ষণের উদাহরণ এবং 50 টি গাছের সাহায্যে আমি 89.6% সঠিক পেয়েছি, যেখানে অনেকগুলি ডেটা এবং দ্বিগুণ গাছের সাথে আমি 89.7% সঠিক পেয়েছি ... এটি কি প্রস্তাব দেয় যে আরএফটি ভাল নয়? এর জন্য পদ্ধতি? আমি অতীতে একটি এমএলপি নিউরাল নেটওয়ার্ক ব্যবহার করেছি এবং পরীক্ষার সেটটিতে 98.5%
ডলার যথাযথতায় পৌঁছেছি

5
এটি সম্ভব, যদিও দেখে মনে হচ্ছে আপনি যথেষ্ট পরিমাণে গাছ ব্যবহার করছেন না। সাধারণত আপনার হাজার হাজার প্রয়োজন। নোট করুন যে গাছগুলির সংখ্যা আরএফ অ্যালগরিদমে সুর করার মতো প্যারামিটার নয়, আরও বেশি ভাল তবে একবার আপনার যথেষ্ট পরিমাণে (অভিজ্ঞতার সাথে নির্ধারিত হওয়ার পরে) আরও গাছের সাথে ওওবি ত্রুটি উন্নতি হয় না। এমনকি ছোট সাধারণ ডেটা সেটগুলির জন্যও, 500 টিরও কম গাছ প্রায় যথেষ্ট নয়।
বোগদানোভিস্ট 5'13

1
গাছের সংখ্যার জন্য 'আরও ভাল সবসময়ই ভাল' রয়েছে এমন কিছু ছোটখাটো সাবধানবাণী রয়েছে, তবে এটি আমার বোঝার যে আপনি পারফরম্যান্স হিট করা শুরু করার আগে গাজিলিয়ন মিলিয়ন গাছের প্রয়োজন। আমার অভিজ্ঞতায়, আপনার যতগুলি গাছ সিপিইউ রিসোর্স এবং আরও ভাল উত্পাদন করার জন্য ধৈর্য রয়েছে, একবারে ওবিবি (এনটিআরএস) বক্ররেখার পাঠ্যক্রমগুলি হ্রাস পাওয়ার পরেও কমবে returns
বোগদানোভিস্ট

12

আমি মনে করি উত্তরটি সর্বোচ্চ_ফেসার্স পরামিতি: ইনট, স্ট্রিং বা কোনও নয়, optionচ্ছিক (ডিফল্ট = "অটো") প্যারামিটার। মূলত এই সমস্যার জন্য আপনার এটির জন্য কোনওটি সেট করা উচিত নয়, যাতে প্রতিটি গাছ সমস্ত ইনপুট দিয়ে তৈরি হয়, যেহেতু পরিষ্কারভাবে আপনি কেবল কার্ডগুলির একটি ভগ্নাংশ ব্যবহার করে একটি সঠিক শ্রেণিবদ্ধ তৈরি করতে পারবেন না (ডিফল্ট "অটো" স্কয়ারটি (এনফিয়াচার) নির্বাচন করছে প্রতিটি গাছের জন্য ইনপুট)


1
ঐটা এটা ছিল! 50 টি গাছ এবং 600 কে প্রশিক্ষণের উদাহরণ সহ 95% নির্ভুলতা।
উওয়াত

2
মনে রাখবেন যে এই মুহুর্তে আপনি খুব সহজেই এলোমেলো বন ব্যবহার করছেন তবে অন্যান্য উত্তর হিসাবে যেমনটি বলা হয়েছে, এটি সঠিক সমস্যার জন্য আদর্শ শ্রেণিবদ্ধ নয়।
রিচার্ড রাস্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.