নেস্টেড ক্রস বৈধকরণে হাইপার প্যারামিটারগুলি কীভাবে পাবেন?


17

নেস্টেড ক্রস বৈধকরণের জন্য আমি নিম্নলিখিত পোস্টগুলি পড়েছি এবং এখনও নেস্টেড ক্রস বৈধতা সহ মডেল নির্বাচনের জন্য আমি কী করব তা 100% নিশ্চিত নই:

আমার বিভ্রান্তি ব্যাখ্যা করার জন্য, আমাকে নেস্টেড ক্রস বৈধকরণ পদ্ধতিটি ধাপে ধাপে মডেল নির্বাচনের মধ্য দিয়ে চলার চেষ্টা করা যাক।

  1. কে-ভাঁজ সহ বাইরের সিভি লুপ তৈরি করুন। এটি প্রতিটি অভ্যন্তরের সিভি লুপগুলিকে "জিতেছে" হাইপার-প্যারামিটারগুলির পারফরম্যান্স অনুমান করতে ব্যবহার করা হবে।
  2. একটি অভ্যন্তরীণ সিভি লুপ তৈরি করতে গ্রিডসন্ধানসিভি ব্যবহার করুন যেখানে প্রতিটি অভ্যন্তরীণ লুপে জিএসসিভি প্যারামিটার স্পেসের সমস্ত সম্ভাব্য সংমিশ্রণগুলির মধ্য দিয়ে যায় এবং প্যারামিটারের সেরা সেট নিয়ে আসে।
  3. জিএসসিভি অভ্যন্তরীণ লুপের সেরা পরামিতিগুলি সন্ধান করার পরে, পারফরম্যান্সের একটি অনুমানের জন্য এটি বাহ্যিক লুপে পরীক্ষা সেট দিয়ে পরীক্ষা করা হয়।
  4. তারপরে বাইরের লুপটি পরের ভাঁজে পরীক্ষার সেট হিসাবে এবং বাকীটি প্রশিক্ষণ সেট হিসাবে আপডেট হয় এবং ১-২ পুনরাবৃত্তি হয়। মোট সম্ভাব্য "বিজয়ী" পরামিতিগুলি বাইরের লুপে মনোনীত ভাঁজগুলির সংখ্যা। সুতরাং যদি বাইরের লুপটি 5 ভাজ হয়, তবে আপনার কাছে হাইপার প্যারামিটারগুলির 5 টি বিভিন্ন সেট সহ একটি অ্যালগরিদমের পারফরম্যান্স অনুমান হবে , হাইপার প্যারামিটারগুলির একটি নির্দিষ্ট সেটের কার্যকারিতা নয়

এই পন্থাটি এসকেয়ার্নের উদাহরণ পৃষ্ঠায় চিত্রিত হয়েছে: http://scikit-learn.org/stable/auto_example/model_selection/plot_nested_cross_ માન્યকরণ_আইরিস html

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

যেকোন টিপসের জন্য আগাম ধন্যবাদ, বিশেষত @ ডিক্রান মার্সুপিয়াল এবং @ কেব্লাইটরা যদি এতে বাজায়!

সম্পাদনা: আপনি যদি পারেন তবে আপনার উত্তরটিতে "অ্যালগরিদম" এবং "হাইপার প্যারামিটার" এর মতো পদ ব্যবহার করুন। আমি মনে করি আমার জন্য বিভ্রান্তির একটি উত্স যখন লোকেরা "মডেল" বা "মডেল নির্বাচন" শব্দটি ব্যবহার করে। তারা কোন অ্যালগরিদম ব্যবহার করবেন বা কোন হাইপার পরামিতি ব্যবহার করবেন তা নির্বাচন করার বিষয়ে কথা বলছেন কিনা তা নিয়ে আমি বিভ্রান্ত হয়ে পড়ি।

সম্পাদনা 2: আমি একটি নোটবুক তৈরি করেছি যা নেস্টেড ক্রস বৈধকরণের দুটি উপায় দেখায়। প্রথম উপায় হ'ল এসকেয়ার্ন উদাহরণে প্রদর্শিত একটি এবং আর একটি দীর্ঘতর পথ যা আমি লিখেছিলাম। এসকেয়ার্নে দেখানো পথটি "বিজয়ী" হাইপারপ্যারামিটারগুলি প্রকাশ করে না, তবে আমার দীর্ঘতর পথটি করে। তবে প্রশ্নটি একই রয়ে গেছে। আমি নেস্টেড ক্রস বৈধতা সম্পন্ন করার পরেও হাইপারপ্যারামিটারগুলি উন্মুক্ত করে দিয়েছি, এখন আমি কী করব? আপনি নোটবুকের শেষে হাইপারপ্যারামিটারগুলি থেকে দেখতে পাচ্ছেন যে এগুলি কিছুটা পৃথক হয়।


1
নোটবুকের জন্য +1। এই প্রশ্নটি আমার পক্ষেও আগ্রহী এবং তা অনুসরণ করবে।
আর্নল্ড ক্লেইন

উত্তর:


6

(আমি নিশ্চিত যে এরই মধ্যে বেশিরভাগ উত্তর আমি ইতিমধ্যে লিখেছি - তবে এখনই এটি খুঁজে পাচ্ছে না that যদি কেউ উত্তরটি ধরেই হোঁচট খায় তবে দয়া করে এটি লিঙ্ক করুন)। আমি এখানে 2 সামান্য ভিন্ন পন্থা দেখতে পাচ্ছি, যা আমি উভয়ই বোধগম্য বলে মনে করি।

তবে প্রথমে কিছু পরিভাষা:

  • প্রয়োগ ক্ষেত্র থেকে আগত, আমার জন্য একটি (লাগানো / প্রশিক্ষিত) মডেল একটি ব্যবহারের জন্য প্রস্তুত। অর্থাত মডেলটিতে নতুন ডেটার পূর্বাভাস তৈরি করার জন্য প্রয়োজনীয় সমস্ত তথ্য রয়েছে contains সুতরাং, মডেল রয়েছে এছাড়াও hyperparameters । আপনি দেখতে পাবেন, এই দৃষ্টিকোণ নীচে 2 পদ্ধতির সাথে নিবিড়ভাবে সম্পর্কিত।
  • ওটিওএইচ, আমার অভিজ্ঞতার প্রশিক্ষণ অ্যালগরিদম নিম্নলিখিত অর্থে সঠিকভাবে সংজ্ঞায়িত করা হয়নি: (লাগানো) মডেলটি পেতে কেবল - এটির "সাধারণ" মডেল পরামিতিগুলি করা দরকার - হাইপারপ্যারামিটারগুলিও ঠিক করা দরকার। আমার প্রয়োগের দৃষ্টিকোণ থেকে, প্যারামিটার এবং হাইপারপ্যামারগুলির মধ্যে আসলে খুব বেশি পার্থক্য নেই: উভয়ই মডেলের অংশ , এবং প্রশিক্ষণের সময় অনুমান / সিদ্ধান্ত নেওয়া দরকার।
    আমি অনুমান করি যে তাদের মধ্যে পার্থক্যটি নতুন প্রশিক্ষণের অ্যালগরিদম বিকাশের কারও মধ্যে পার্থক্যের সাথে সম্পর্কিত যারা সাধারণত কিছু স্টিয়ারিং প্যারামিটারের সাথে একত্রে প্রশিক্ষণ অ্যালগরিদমগুলির শ্রেণি বর্ণনা করেন ( হাইপারপ্যারামিটারগুলি) যা অ্যাপ্লিকেশন / ডোমেন জ্ঞান ছাড়াই (বা কমপক্ষে কীভাবে তাদের সিদ্ধান্ত নেওয়া উচিত / অনুমান করা উচিত তা ঠিক করা) ঠিক করা কঠিন / ইমপোসিবিব।

পদ্ধতির 1: স্থিতিশীল অপ্টিমাইজেশন ফলাফলের প্রয়োজন

এই পদ্ধতির সাথে, "মডেল প্রশিক্ষণ" হ'ল "সাধারণ" মডেল পরামিতিগুলির ফিটিং এবং হাইপারপ্যারামিটারগুলি দেওয়া হয়। অভ্যন্তরীণ যেমন ক্রস বৈধকরণ হাইপারপ্যারমিটার অপ্টিমাইজেশনের যত্ন নেয়।

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

  1. সারোগেট মডেলগুলি এখনও তাদের মধ্যে সমান (বা সমতুল্য) তবে চূড়ান্ত মডেলের সাথে নয়, আমরা ক্রস বৈধতার সুপরিচিত হতাশাবাদী পক্ষপাতিত্ব সম্পর্কে কথা বলছি।

  2. এছাড়াও যদি সার্গেট মডেল একে অপরের সমান / সমতুল্য না হয় তবে অস্থিরতায় আমাদের সমস্যা রয়েছে ।

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

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

মনে রাখবেন যে সমস্ত মডেল যদি একই বিজয়ী প্যারামিটার সেটটি না দেয় তবে আপনার বাইরের লুপের প্রাক্কলনটিকে সাধারণকরণ ত্রুটি হিসাবে ব্যবহার করা উচিত নয়:

  • পি
  • তবে যতক্ষণ না কোনও সিদ্ধান্ত জড়িত না কারণ সমস্ত বিভাজন একই প্যারামিটারগুলি পেয়েছে, এটি বাইরের লুপের মধ্যে স্বাধীনতা ভেঙে দেবে: প্রতিটি বিভক্তির পরীক্ষার ডেটা ইতিমধ্যে সিদ্ধান্তে প্রবেশ করে যে কোন পরামিতি জিতবে কারণ এটি অন্যান্য সমস্ত স্প্লিটের ডেটা প্রশিক্ষণের জন্য ডেটা প্রশিক্ষণ করেছিল এবং এইভাবে ব্যবহৃত হয়েছিল পরামিতি অপ্টিমাইজ করতে।

পদ্ধতির 2: মডেল প্রশিক্ষণের অংশ হিসাবে হাইপারপ্যারামিটার টিউনিংকে চিকিত্সা করুন

এই পদ্ধতির "প্রশিক্ষণ অ্যালগরিদম বিকাশকারী" এবং প্রশিক্ষণ অ্যালগরিদমের প্রয়োগকারী ব্যবহারকারীর দৃষ্টিভঙ্গি ব্রিজ করে।

প্রশিক্ষণ অ্যালগরিদম বিকাশকারী একটি "নগ্ন" প্রশিক্ষণ অ্যালগরিদম সরবরাহ করে model = train_naked (trainingdata, hyperparameters)। প্রয়োগযুক্ত ব্যবহারকারীর যেমন tunedmodel = train_tuned (trainingdata)হাইপারপ্যারামিটারগুলি ঠিক করার ক্ষেত্রে যত্ন নেওয়া প্রয়োজন ।

train_tunedযেমন প্রয়োগ করা যেতে পারে যেমন নগ্ন প্রশিক্ষণ অ্যালগরিদমের চারপাশে ক্রস বৈধতা-ভিত্তিক অপ্টিমাইজারটি মোড়ানো train_naked

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

এটি আসলে আপনি যা করেন এবং নেস্টেড ক্রস বৈধকরণের মূল্যায়ন করেন যদি আপনি সমস্ত বিজয়ী মডেলগুলির স্বতন্ত্র প্যারামিটার সেট নির্বিশেষে গড় পারফরম্যান্স করেন।


পার্থক্য কি?

আমরা সম্ভবত 2 টি পদ্ধতির সাথে বিভিন্ন চূড়ান্ত মডেলগুলি নিয়ে শেষ করি:

  • 1 পদ্ধতির চূড়ান্ত মডেলটি হবে train_naked (all data, hyperparameters from optimization)
  • যেখানে অ্যাপ্রোচ 2 ব্যবহার করবে train_tuned (all data)এবং - যেহেতু বৃহত্তর ডেটা সেটে আবার হাইপারপ্যারমিটার অপ্টিমাইজেশন চালায় - এটি হাইপারপ্যারামিটারগুলির একটি আলাদা সেট দিয়ে শেষ হতে পারে।

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


আমার ধারণা আছে (এখানে সিভিতে অনুরূপ প্রশ্ন / বিভ্রান্তির সংখ্যা দেখেও) যে অনেক লোক নেস্টেড ক্রস বৈধকরণের কথা বলে মনে করে 1. চূড়ান্ত মডেল পাশাপাশি।


আইরিস উদাহরণ

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

অ্যাপ্লিকেশন দৃষ্টিকোণ থেকে, তবে উপসংহারটি হল যে আপনি যে 4 টি প্যারামিটার সেট বেছে নিয়েছেন তা বিবেচ্য নয় - যা সব খারাপ খবর নয়: আপনি প্যারামিটারগুলির তুলনামূলক স্থিতিশীল মালভূমি পেয়েছেন। টিউন করা মডেলের যথাযথ নেস্টেড বৈধতার সুবিধাটি এখানে আসে: আপনি যে এটি সর্বোত্তম মডেল দাবি করতে সক্ষম হন না, তবুও আপনি এখনও দাবি করতে সক্ষম হন যে অ্যাপ্রোচ 2 ব্যবহার করে পুরো ডেটাতে নির্মিত মডেলটি থাকবে প্রায় 97% নির্ভুলতা (150 টি পরীক্ষার মামলার মধ্যে 145 টির জন্য 95% আত্মবিশ্বাসের বিরতি: 92 - 99%)

নোট করুন যে 1 টি দেখতেও যতটা দূরে লাগে তেমন দূরে নয় - নীচে দেখুন: আপনার অপ্টিমাইজেশনের কারণে সম্পর্কের কারণে ঘটনাক্রমে তুলনামূলকভাবে পরিষ্কার "বিজয়ী" মিস হয়েছে (এটি আসলে নমুনা আকারের সমস্যাটির আরও একটি স্পষ্টত লক্ষণ)।

যদিও আমি এসভিএমগুলিতে "দেখার" জন্য পর্যাপ্ত গভীর নই যে সি = 1 এখানে একটি ভাল পছন্দ হওয়া উচিত, আমি আরও প্রতিরোধী লিনিয়ার কার্নেলটি নিয়ে যেতে চাই। এছাড়াও, আপনি করেনি অপ্টিমাইজেশান, সেখানে বিজয়ী প্যারামিটার সেট এমনকি যদি আপনি সচেতন যে সব প্যারামিটার সেট কার্যত সমান কর্মক্ষমতা হতে হয় নির্বাচন সঙ্গে কিছুই ভুল।

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

দীর্ঘ সংস্করণ:

যেমন irisতথ্য সেট উপর ফলাফল । iris150 টি কেস রয়েছে, 2 x 2 প্যারামিটারের গ্রিড সহ এসভিএমের (2 কর্নেল, জরিমানার জন্য 2 টি আকারের অর্ডার C) বিবেচনা করা হয়।

অভ্যন্তরীণ লুপটিতে 129 (2x) এবং 132 (6x) ক্ষেত্রে বিভাজন রয়েছে। "বেস্ট" প্যারামিটারটি সেট, = 1. তবে ভেতরের পরীক্ষা accuracies হয় রৈখিক বা rbf কার্নেল মধ্যে অমীমাংসিত হয় সি সঙ্গে উভয় সব 98.5% পর্যবেক্ষিত সঠিকতা - 94 মধ্যে (সবসময় loosing সি = 10 সহ)। বিভাজনের একটিতে আমাদের সবচেয়ে বড় পার্থক্যটি সি = 1 বনাম 10 এর সাথে আরবিএফের 3 টি বনাম 8 ত্রুটি।

এটির কোনও তাত্পর্যপূর্ণ উপায় নেই way সিভিতে স্বতন্ত্র কেসগুলির জন্য কীভাবে পূর্বাভাস পাওয়া যায় তা আমি জানি না, তবে এমনকি ধরে নেওয়াও যে 3 টি ত্রুটি ভাগ করা হয়েছিল এবং সি = 10 মডেল অতিরিক্ত 5 ত্রুটি করেছে:

> table (rbf1, rbf10)
         rbf10
rbf1      correct wrong
  correct     124     5
  wrong         0     3

> mcnemar.exact(rbf1, rbf10)

    Exact McNemar test (with central confidence intervals)

data:  rbf1 and rbf10
b = 5, c = 0, p-value = 0.0625
alternative hypothesis: true odds ratio is not equal to 1

মনে রাখবেন যে 2 এক্স 2 গ্রিডে 6 টি জুটিযুক্ত তুলনা রয়েছে, সুতরাং আমাদেরও একাধিক তুলনার জন্য সংশোধন করতে হবে।


পদ্ধতির ঘ

4 টির মধ্যে 3 বাহ্যিক বিভাজন যেখানে rbf লিনিয়ার কার্নেলের উপর দিয়ে "জিতেছে", তাদের আসলে একই আনুমানিক নির্ভুলতা ছিল (আমার মনে হয় বন্ধনের ক্ষেত্রে নূন্যতম প্রথম উপযুক্ত সূচক ফেরত দেয়)।

গ্রিডকে params = {'kernel':['linear', 'rbf'],'C':[1,10]} ফলন হিসাবে পরিবর্তন করা হচ্ছে

({'kernel': 'linear', 'C': 1}, 0.95238095238095233, 0.97674418604651159)
({'kernel': 'rbf', 'C': 1}, 0.95238095238095233, 0.98449612403100772)
({'kernel': 'linear', 'C': 1}, 1.0, 0.97727272727272729)
({'kernel': 'linear', 'C': 1}, 0.94444444444444442, 0.98484848484848486)
({'kernel': 'linear', 'C': 1}, 0.94444444444444442, 0.98484848484848486)
({'kernel': 'linear', 'C': 1}, 1.0, 0.98484848484848486)
({'kernel': 'linear', 'C': 1}, 1.0, 0.96212121212121215)

পদ্ধতির 2:

এখানে, clfআপনার চূড়ান্ত মডেল। সাথে random_state = 2, সিবি 1 জিতে আরবিএফ জিতে:

In [310]: clf.grid_scores_
[...snip warning...]
Out[310]: 
[mean: 0.97333, std: 0.00897, params: {'kernel': 'linear', 'C': 1},
 mean: 0.98000, std: 0.02773, params: {'kernel': 'rbf', 'C': 1},
 mean: 0.96000, std: 0.03202, params: {'kernel': 'linear', 'C': 10},
 mean: 0.95333, std: 0.01791, params: {'kernel': 'rbf', 'C': 10}]

(5 বারের মধ্যে প্রায় 1 টি, 6 বারের মধ্যে 1 linearএবং এর rbfসাথে C = 11 র‌্যাঙ্কে আবদ্ধ থাকে)


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

@ হ্যাভি ব্রথিং আমি উত্তরটি পড়েছি, এবং 'সিভি নেস্ট করার পরে আমি কী করব' সে সম্পর্কে এখনও পরিষ্কার নয়। আপনি কি পরিষ্কারভাবে বুঝতে পেরেছেন?
stackunderflow

0

আমি আপনার প্রশ্ন এবং উত্তর 2 বার উপরে পড়েছি (প্রথমবার 3 মাস আগে)। আমি আগ্রহী এবং আমার ডেটার জন্য ক্রস-বৈধকরণের নিখুঁত উপযুক্ত উপায়টিও খুঁজতে চাই। অনেক চিন্তাভাবনা ও পড়ার পরেও মনে হচ্ছে যে আমি গর্তগুলি পেয়েছি এবং এখানেই আমার স্থিরিত্ব রয়েছে:

আমার বিভ্রান্তি ব্যাখ্যা করার জন্য, আমাকে নেস্টেড ক্রস বৈধকরণ পদ্ধতিটি ধাপে ধাপে মডেল নির্বাচনের মধ্য দিয়ে চলার চেষ্টা করা যাক।

  1. কে-ভাঁজ সহ বাইরের সিভি লুপ তৈরি করুন। এটি প্রতিটি অভ্যন্তরের সিভি লুপগুলিকে "জিতেছে" হাইপার-প্যারামিটারগুলির পারফরম্যান্স অনুমান করতে ব্যবহার করা হবে।
  2. অভ্যন্তরীণ সিভি লুপ তৈরি করতে গ্রিডসন্ধানসিভি ব্যবহার করুন যেখানে প্রতিটি অভ্যন্তরীণ লুপে জিএসসিভি প্যারামিটার স্পেসের সমস্ত সম্ভাব্য সংমিশ্রণগুলির মধ্য দিয়ে যায় এবং প্যারামিটারের সেরা সেট নিয়ে আসে। (দ্রষ্টব্য: এখানে আমি ধরে নিই: বহিরাগত লুপের জন্য অভ্যন্তরীণ লুপের জন্য ডেটা = প্রশিক্ষণের ডেটা ask আপনি জিজ্ঞাসা করতে পারেন: কেন? উত্তর: /programming/42228735/scikit-learn-gridsearchcv-with- মাল্টিপল- পুনরাবৃত্তি / 42230764 # 42230764 বিবেক কুমার উত্তর বিভাগটি পড়ুন 4 ধাপ)
  3. জিএসসিভি অভ্যন্তরীণ লুপে "সেরা পরামিতিগুলি" খুঁজে পাওয়ার পরে (আসুন একে অভ্যন্তরীণ বিজয়ী বলুন) পারফরম্যান্সের অনুমানের জন্য এটি বাহ্যিক লুপে পরীক্ষা সেট দিয়ে পরীক্ষা করা হয় (আসুন এটি আউটডোর_ফোল্ড_স্কোর 1 বলুন)।
  4. তারপরে বাইরের লুপটি পরের ভাঁজে পরীক্ষার সেট হিসাবে এবং বাকিটি প্রশিক্ষণের সেট হিসাবে আপডেট হয় (বাইরের লুপের "অভ্যন্তরীণ বিজয়ী" মূল্যায়ন করতে), "অভ্যন্তরীণ বিজয়ী" নতুন পরীক্ষার সেট (আউটআর_ফোল্ড_স্কোর 2) দিয়ে আবার পরীক্ষা করা হয়। তারপরে আবার বাইরের লুপটি লুপটি শেষ না হওয়া পর্যন্ত পরবর্তী ভাগে আপডেট হয়। প্রতিটি ভাঁজ (আউটআর_ফোল্ড_স্কোর 1,2 ..) থেকে প্রাপ্ত স্কোরগুলি বাইরের লুপের জন্য "অভ্যন্তরীণ বিজয়ী" এর স্কোর পাওয়ার জন্য গড় হবে (আউটডোরস্কোর)
  5. তারপরে বাইরের লুপটি পরের ভাঁজে পরীক্ষার সেট হিসাবে এবং বাকিটি প্রশিক্ষণের সেট হিসাবে আপডেট হয় (পরবর্তী "অভ্যন্তরীণ বিজয়ী" সন্ধান করতে এবং 1- 4 পুনরাবৃত্তি করে (লক্ষ করুন যে আমরা যখন 1 পুনরাবৃত্তি করি তখন আমরা নতুন কে- তৈরি করি না ভাঁজ করুন তবে আমরা প্রতিবার একই বহিরাগত কেফল্ড ব্যবহার করি) । 1-4 চক্রের প্রত্যেকের সাথে আমরা একটি "সর্বোত্তম পরামিতি" (বা "অভ্যন্তরীণ বিজয়ী") পাই একটি বহিরাগত_কোসরের সাথে। বিজয়ীদের

রিজনিং:

  • মূলত আপনার প্রশ্নের উদ্বেগ যে বহিরাগত লুপের জন্য অনেকগুলি "উইনিং পরামিতি" রয়েছে। জিনিসটি আপনি "বাহ্যিক বিজয়ী" মূল্যায়নের জন্য এবং বহিরাগত লুপটি সম্পূর্ণ করেন নি। আপনার চতুর্থ পদক্ষেপটি কেবলমাত্র বাইরের লুপের 1 ভাগে "অভ্যন্তরীণ বিজয়ী" মূল্যায়ন করে তবে আপনি "লুপটি করেননি"। সুতরাং আমার এটি আমার চতুর্থ ধাপের সাথে প্রতিস্থাপন করতে হবে - বাইরের লুপের মূল্যায়ন ধাপটি "লুপ" করে এবং বাইরের স্কোরটি পেতে (গড় দিয়ে)
  • আপনার 5 তম পদক্ষেপটি বাইরের লুপে "লুপিং" কাজটি করেছে তবে এটি কেবল অন্য "অভ্যন্তরীণ বিজয়ী" তৈরির জন্য। এটি বাইরের লুপের "অভ্যন্তরীণ বিজয়ী" এর "মূল্যায়ন" লুপ করেনি

এটি কি সত্যই প্রশ্নের উত্তর দেয়?
মাইকেল আর চেরনিক

0


ডি প্রিপ্রোসেসিং ট্রান্সফর্মেশনস, বৈশিষ্ট্য এবং পরিশেষে হাইপার প্যারামিটার মানগুলির সেট।

এক্স,Y
এক্সএক্সY

এক্স',Y'এক্স,Y

সমস্ত ডেটা ব্যবহার করার জন্য বৈশিষ্ট্যগুলি নির্বাচন করতে। অতএব আপনি দ্বিতীয় ধাপে ক্রস বৈধকরণটি করার পরেও বৈশিষ্ট্যগুলি ইতিমধ্যে প্রতিটি ক্রস বৈধতা চালানোর সময় পরীক্ষার ভাগে উপস্থিত কিছু তথ্য দেখে এবং মনে রাখবে। ফলাফলটি পরীক্ষার ত্রুটির একটি অতিরিক্ত আশাবাদী অনুমান হবে এবং এটিকে বৈশিষ্ট্য নির্বাচন পক্ষপাত বলে । আপনার অনুমানের জন্য এটি হিসাব করার জন্য আপনাকে ধাপ ২ এর ক্রস বৈধকরণ লুপের মধ্যে বৈশিষ্ট্য নির্বাচনের পদক্ষেপটি রাখা দরকার
Ok ঠিক আছে, এখন আমরা কি ভাল আছি? লুপের ভিতরে বৈশিষ্ট্য নির্বাচনের ধাপ সহ ক্রস বৈধকরণের মধ্যে সেরা ত্রুটিটি কি সাধারণীকরণ ত্রুটির ন্যায্য অনুমানের পাওয়া যায়?
তত্ত্বগতভাবে উত্তর এখনও নেই, সমস্যাটি হ'ল আপনার হাইপার প্যারামিটারগুলি আপনার নির্ধারিত নির্দিষ্ট ডেটাশেটের ক্রস বৈধতা ত্রুটিটি হ্রাস করার জন্য বেছে নেওয়া হয়েছে , সুতরাং একটি নির্দিষ্ট অর্থে আপনি অতিরিক্ত উপাত্তের ঝুঁকির সাথে আপনার ডেটাতে হাইপার প্যারামিটারগুলি ফিট করছেন এবং এটি মডেল নির্বাচন পক্ষপাত বলা হয় । তবে এটি কি বাস্তবে উদ্বেগজনক? এটি নির্দিষ্ট অ্যাপ্লিকেশনটির মাধ্যমে নির্ভর করে: এটি আরও তীব্র হওয়ার সম্ভাবনা রয়েছে, কারণ প্রশিক্ষণে অত্যধিক মানানসই, যখন ডেটাসেট ছোট এবং হাইপার প্যারামিটারগুলির সংখ্যাটি তুলনামূলকভাবে বড়। জেনারালাইজেশন ত্রুটির প্রাক্কলন করার জন্য এটির জন্য অ্যাকাউন্ট হিসাবে আপনি বর্ণিত হিসাবে নেস্টেড ক্রস বৈধতা প্রয়োগ করবেন, এটি আপনাকে তখন আপনার সাধারণীকরণ ত্রুটির সঠিক অনুমান দেবে।
অবশেষে আপনার শেষ প্রশ্নের উত্তর দেওয়ার জন্য, আপনার "মডেল বিল্ডিং পদ্ধতি" একটি নেস্টেড ক্রস যাচাইকরণের সাথে জেনারালাইজেশন ত্রুটি সম্পর্কে যথাযথ অনুমানের পরে, আপনি কেবলমাত্র একটি নির্দিষ্ট সেট সহ একটি মডেল অর্জন করতে আপনার সম্পূর্ণ ডেটাসেটটিতে পদ্ধতিটি (পদক্ষেপ 1 + 2) প্রয়োগ করবেন would বৈশিষ্ট্য এবং হাইপার প্যারামিটার মান সেট করে, তবে আমরা মনে করি না যে এই মডেলটি অপ্রদর্শিত ডেটাতে রাখার জন্য আমরা যে ত্রুটিটি আশা করি তা হল নেস্টেড ক্রস বৈধকরণের প্রাক্কলন

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