গ্রিড অনুসন্ধানের আউটপুট কীভাবে ব্যবহার করবেন?


23

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

আমার পদ্ধতিটি হ'ল:

  1. প্রশিক্ষণ / পরীক্ষায় আমার ডেটা বিভক্ত করুন।
  2. হাইপার প্যারামিটারগুলির সর্বোত্তম সংমিশ্রণের সাথে সেরা অনুমানকারী পেতে আমার অনুমানকারীদের (র্যান্ডম ফরেস্ট, গ্রেডিয়েন্ট বুস্ট, এসভিসি) অন্যদের পরীক্ষার জন্য এবং পরীক্ষার জন্য 5 ফোল্ড ক্রস বৈধকরণের সাথে গ্রিড অনুসন্ধান ব্যবহার করুন।
  3. তারপরে আমি শ্রেণিবদ্ধার পূর্বাভাস দেওয়ার জন্য এবং আমার প্রকৃত শ্রেণির লেবেলের সাথে তাদের তুলনা করার জন্য আমার পরীক্ষার সেটটি ব্যবহার করে যথাযথতা, পুনর্বিবেচনা, এফম্যাসার এবং ম্যাথিউস সহসম্পাদন সহগের মতো প্রতিটি অনুমানের উপর মেট্রিক গণনা করি।

এই পর্যায়ে আমি অদ্ভুত আচরণ দেখি এবং কীভাবে এগিয়ে যাব সে সম্পর্কে আমি নিশ্চিত নই। আমি কি গ্রিড অনুসন্ধান থেকে .best_estimator_ নিচ্ছি এবং গ্রিড অনুসন্ধান থেকে এটি 'অনুকূল' আউটপুট হিসাবে ব্যবহার করব এবং এই অনুমানকটি ব্যবহার করে ভবিষ্যদ্বাণী করব? যদি আমি এটি করি তবে আমি দেখতে পাই যে স্টেজ 3 মেট্রিকগুলি সাধারণত সমস্ত প্রশিক্ষণের ডেটা এবং পরীক্ষার সেটটিতে পরীক্ষার জন্য প্রশিক্ষণ দেওয়ার চেয়ে অনেক কম lower বা, আমি কি সহজেই নতুন অনুমানকারী হিসাবে গ্রিডসন্ধান সিভি অবজেক্ট আউটপুট গ্রহণ করি ? যদি আমি এটি করি তবে আমি আমার মঞ্চ 3 মেট্রিকের জন্য আরও ভাল স্কোর পেয়েছি তবে এটি উদ্দিষ্ট শ্রেণিবদ্ধের (উদাহরণস্বরূপ একটি এলোমেলো বন) এর পরিবর্তে গ্রিডসন্ধান সিভি অবজেক্টটি ব্যবহার করা অদ্ভুত বলে মনে হচ্ছে ...

সম্পাদনা: সুতরাং আমার প্রশ্নটি হল যে গ্রিডসার্ক সিভি অবজেক্ট এবং .best_estimator_ বৈশিষ্ট্যের মধ্যে পার্থক্য কী? এর মধ্যে কোনটি আমি আরও মেট্রিক্স গণনার জন্য ব্যবহার করব? আমি কি এই আউটপুটটিকে নিয়মিত শ্রেণিবদ্ধের মতো ব্যবহার করতে পারি (উদাহরণস্বরূপ পূর্বাভাস ব্যবহার করে), না হলে আমি কীভাবে এটি ব্যবহার করব?

উত্তর:


27

দূরে গিয়ে আমার যে উত্তরগুলি পূরণ করবে এমন উত্তরগুলি খুঁজে বের করার সিদ্ধান্ত নিয়েছে এবং অন্য কারোর জন্যই এগুলি লিখে রাখবে wond

.Best_estimator_ বৈশিষ্ট্যটি নির্দিষ্ট মডেল প্রকারের একটি উদাহরণ, যা প্যারাম_গ্রিড থেকে প্রদত্ত পরামিতিগুলির 'সেরা' সংমিশ্রণ দেয়। এই দৃষ্টান্তটি কার্যকর কিনা তা নির্ভর করে রিফিট প্যারামিটারটি সত্যতে সেট করা আছে কিনা (এটি ডিফল্টরূপে)। উদাহরণ স্বরূপ:

clf = GridSearchCV(estimator=RandomForestClassifier(), 
                    param_grid=parameter_candidates,
                    cv=5,
                    refit=True,
                    error_score=0,
                    n_jobs=-1)

clf.fit(training_set, training_classifications)
optimised_random_forest = clf.best_estimator_
return optimised_random_forest

একটি র‌্যান্ডমফোরস্ট ক্লাসিফায়ার ফিরিয়ে দেবে। এই সব থেকে সুন্দর স্পষ্ট ডকুমেন্টেশন । ডকুমেন্টেশন থেকে যা পরিষ্কার নয় তা হল বেশিরভাগ উদাহরণ কেন নির্দিষ্টভাবে .best_estimator_ ব্যবহার করে না এবং পরিবর্তে এটি করে:

clf = GridSearchCV(estimator=RandomForestClassifier(), 
                    param_grid=parameter_candidates,
                    cv=5,
                    refit=True,
                    error_score=0,
                    n_jobs=-1)

clf.fit(training_set, training_classifications)
return clf

এই দ্বিতীয় পদ্ধতির গ্রিডসার্চসিভি যেমন .best_estimator_, .best_params, ইত্যাদির মতো সমস্ত ঘণ্টা এবং হুইসেল সহ একটি গ্রিডসন্ধান সিভি উদাহরণ দেয়, যা নিজেই প্রশিক্ষিত শ্রেণিবদ্ধের মতো ব্যবহার করা যেতে পারে:

Optimised Random Forest Accuracy:  0.916970802919708
[[139  47]
 [ 44 866]]
GridSearchCV Accuracy:  0.916970802919708
[[139  47]
 [ 44 866]]

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


আপনার ড্যান @ ড্যানের জন্য ধন্যবাদ, এটি খুব সহায়ক। আমি আপনাকে একটি স্পষ্টতার জন্য জিজ্ঞাসা করতে চেয়েছিলাম। পরেরটির ক্ষেত্রে, আমি যদি refit=Falseতারপর clf.fitসেরা ক্লাসিফায়ার সঙ্গে সম্পন্ন করা হবে না?
কবি মওদিত

@ পোয়েটমাউডিট রিফিট প্যারামিটার গ্রিডসন্ধান সিভি ফাংশনকে পাওয়া সেরা পরামিতিগুলি নিতে এবং পুরো ডাটাবেসে সেই পরামিতিগুলি ব্যবহার করে মডেলটিকে পুনরায় প্রশিক্ষণ করতে বলে। যদি রিফিট = মিথ্যা, তবে ডকুমেন্টেশন অনুসারে সেরা_পরিচয়কারী উপলব্ধ নেই: সাইকিট
ড্যান কার্টার

0

গ্রিডসন্ধানসিভি আপনাকে হাইপার-প্যারামিটারগুলি টিউন করার জন্য গ্রিড অনুসন্ধান উপস্থাপকের সাথে একটি অনুমানকারীকে একত্রিত করতে দেয়। পদ্ধতিটি গ্রিড অনুসন্ধান থেকে সর্বোত্তম প্যারামিটারটি বাছাই করে এবং এটি ব্যবহারকারী দ্বারা নির্বাচিত অনুমানকারীর সাথে ব্যবহার করে। গ্রিডসার্চসিভি শ্রেণিবদ্ধের কাছ থেকে পদ্ধতিগুলির উত্তরাধিকার সূত্রে প্রাপ্ত, সুতরাং হ্যাঁ, আপনি সরাসরি গ্রিডসার্চসিভি ইন্টারফেসের মাধ্যমে .score, .Predict ইত্যাদি ব্যবহার করতে পারেন। আপনি যদি গ্রিড অনুসন্ধান দ্বারা চিহ্নিত সেরা হাইপার-পরামিতিগুলি বের করতে চান তবে আপনি .best_params_ ব্যবহার করতে পারেন এবং এটি সেরা হাইপার-প্যারামিটারটি ফিরিয়ে দেবে। তারপরে আপনি এই হাইপার-প্যারামিটারটি পৃথকভাবে আপনার অনুমানের কাছে পাস করতে পারেন।

.Predict সরাসরি ব্যবহার করা .best_param_ এর মাধ্যমে সর্বোত্তম হাইপার-প্যারামিটার পাওয়ার এবং তারপরে এটি আপনার মডেলটিতে ব্যবহার করার মতো একই ফলাফল অর্জন করবে। গ্রিড অনুসন্ধানের আন্ডারলাইনিং কার্যগুলি বোঝার মাধ্যমে আমরা দেখতে পাচ্ছি যে কেন এটি ঘটনা।


গ্রিড অনুসন্ধান

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

হাইপার-প্যারামিটারগুলি কে-নিকটবর্তী নিকটবর্তী অঞ্চলে (কে-এনএন) এর মতো। k-NN দূরত্ব গণনার সময় কোন প্রতিবেশীকে বিবেচনা করতে হবে তা নির্বাচন করার জন্য ব্যবহারকারীর প্রয়োজন। এরপরে অ্যালগরিদম একটি প্যারামিটার, একটি প্রান্তিকের টিউন করে এটি দেখার জন্য যে কোনও অভিনব উদাহরণটি শিখানো বিতরণের মধ্যে পড়ে কিনা, এটি ডেটা দিয়ে করা হয়।

আমরা কীভাবে নির্বাচন করব?

কিছু লোক কেবল ডেটা ধরণের অতীত অধ্যয়নের উপর ভিত্তি করে সুপারিশ নিয়ে যায়। অন্যরা গ্রিড অনুসন্ধান ব্যবহার করে। এই পদ্ধতিটি সর্বোত্তমভাবে নির্ধারণ করতে সক্ষম করবে যে কোনটি আপনার ডেটার জন্য ব্যবহার করার উপযুক্ত is

এটা কিভাবে কাজ করে?

[1,2,3,...,10]

এটি পরীক্ষার ডেটা ব্যবহার না করার নীতির বিরুদ্ধে যায় !!

nnn1n

নির্বাচিত হাইপার-প্যারামিটার মানটি হ'ল এন-ভাঁজগুলি জুড়ে সর্বোচ্চ গড় কর্মক্ষমতা অর্জন করে। একবার আপনি আপনার অ্যালগরিদম থেকে সন্তুষ্ট হয়ে গেলে, আপনি এটি টেস্টিং সেটটিতে পরীক্ষা করতে পারেন। আপনি যদি সরাসরি টেস্টিং সেটে যান তবে আপনি ওভারফিটিংয়ের ঝুঁকি নিয়ে যাচ্ছেন।


হাই জে, এটি একটি ভাল উত্তর তবে আমি এখনও আমার প্রশ্নের উত্তর হিসাবে বুদ্ধিমান কেউ নই। আমি আরও কিছু পরিষ্কার করার জন্য প্রশ্নের শিরোনাম এবং প্রশ্নটি নিজেই আপডেট করেছি।
ড্যান কার্টার

আপনার নিজের গ্রিড অনুসন্ধান লিখুন। এটি আক্ষরিক অর্থে একটি অ্যারে তৈরি করুন, তারপরে আপনার মডেলের চারপাশে লুপের জন্য যুক্ত করুন। তারপরে লুপের শেষে আপনার ফলাফলগুলি একটি অ্যারেতে রেকর্ড করুন। আপনার গ্রিডে সমস্ত সম্ভাব্য মানগুলি অতিক্রম করার পরে, পারফরম্যান্সের অ্যারেগুলি দেখুন এবং সেরাটি চয়ন করুন। এটি আপনার হাইপার-প্যারামিটারের অনুকূল মান value প্রাথমিক বিজ্ঞানের জন্য অন্তর্নির্মিত ফাংশনগুলির উপর নির্ভর করা ডেটা সায়েন্সের পক্ষে উচ্চ প্রস্তাবিত নয়। ডেটা এত বন্যভাবে পরিবর্তিত হয় এবং এটি নিয়ন্ত্রণের জন্য আপনার সেরা!
জাহাহ্নোস

এটি যদি আমার কাছে কেবল অনুকূল করার জন্য একটি হাইপারপ্যারমিটার থাকে তবে এটি একটি ভাল পরামর্শ হতে পারে তবে আমার 4 টি আছে? 5? লুপের জন্য 4/5 বার নেস্ট করা কুৎসিত এবং আমি এখানে চাকাটি পুনর্বিবেচনার প্রয়োজন দেখছি না, এটি সময় নষ্ট হবে এবং এই কারণেই এই প্যাকেজগুলির উপস্থিতি রয়েছে।
ড্যান কার্টার

গ্রিডসন্ধানসিভি আপনাকে গ্রিডসন্ধান সিভি সেটিংয়ের সাথে একটি অনুমানকারীকে একত্রিত করতে দেয়। সুতরাং এটি ঠিক যা আমরা সবেমাত্র আলোচনা করেছি। এরপরে এটি সর্বোত্তম প্যারামিটারটি বাছাই করে এবং এটি আপনার নির্বাচিত অনুমানকারীর সাথে ব্যবহার করে। গ্রিডসার্চসিভি শ্রেণিবদ্ধের কাছ থেকে পদ্ধতিগুলির উত্তরাধিকার সূত্রে প্রাপ্ত, সুতরাং হ্যাঁ, আপনি সরাসরি গ্রিডসার্চসিভি ইন্টারফেসের মাধ্যমে .score, .Predict ইত্যাদি ব্যবহার করতে পারেন। আমি তবে এটি করার পরামর্শ দিচ্ছি না, সহজ সরঞ্জামগুলির অর্থ কম নিয়ন্ত্রণ। গ্রিড অনুসন্ধান হিসাবে এত সহজ কিছু জন্য এটি নিজের কোড করুন।
জাহাহ্নোস

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