আর এ কার্ট প্যাকেজে পিসিএ এবং কে-ফোল্ড ক্রস-বৈধকরণ


16

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

যাইহোক, caretআর প্যাকেজে, আপনি train()ফাংশনে যে প্রশিক্ষণ ডেটাটি পাস করবেন তা ইতিমধ্যে পিসিএ দ্বারা প্রক্রিয়াজাত করা হয়েছে। সুতরাং যখন অ্যালগরিদম সঞ্চালিত ক্রস বৈধতা K-ভাঁজ, ক্রস বৈধতা সেট ইতিমধ্যে পিসিএ সঙ্গে মাধ্যমে প্রক্রিয়াকরণ করা হয়েছে preProcess()এবং predict()এবং পিসিএ "ঝুলানো" ব্যবহৃত আসলে।

পরিস্থিতি সম্পর্কে আমার বোঝা কি সঠিক? পিসিএর সাথে ক্রস-বৈধকরণের জন্য আই-ক্যারেটের পদ্ধতিটি (বা বাস্তবে কোনও উদ্ধার / কেন্দ্রিক পদ্ধতি সহ) "ভুল" কারণ ডেটা প্রাক প্রসেসিং ক্রস-বৈধকরণ সেট পাশাপাশি প্রশিক্ষণের সেটটিতে সঞ্চালিত হয়? এবং যদি তা হয় তবে এর ফলাফলগুলিতে কতটা বড় প্রভাব ফেলবে?


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

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

আমি মনে করি আপনি পিসিএ এবং এমডিএস গুলিয়ে ফেলছেন তবে উভয় পদ্ধতিতে আপনি পছন্দসই রক্ষণশীল বৈকল্পিক সেট করেন না। তবে কে-এর মাত্রা কমাতে তারা যে পরিবর্তন এনেছে তা থেকে আপনি এটি গণনা করতে পারেন। আপনার এটি ফিট করার দরকার নেই কারণ প্রথম মাত্রা সর্বদা দ্বিতীয়টির চেয়ে বেশি বৈচিত্রকে কমিয়ে দেবে, এবং দ্বিতীয়টি তৃতীয়টির চেয়ে বেশি ...
llrs

উত্তর:


18

আমি বক্তৃতাটি দেখিনি, তাই যা বলা হয়েছিল তা নিয়ে আমি মন্তব্য করতে পারি না can't

আমার $ 0.02: আপনি যদি পুনরায় মডেলিং ব্যবহার করে পারফরম্যান্সের ভাল অনুমান পেতে চান তবে আপনার পুনরায় মডেলিংয়ের সময় সমস্ত অপারেশনগুলি পূর্বের পরিবর্তে করা উচিত। এটি বৈশিষ্ট্য নির্বাচনের ক্ষেত্রে সত্যই সত্য [1] পাশাপাশি পিসিএর মতো অ-তুচ্ছ কাজগুলি। যদি এটি ফলাফলগুলিতে অনিশ্চয়তা যোগ করে তবে তা পুনর্নির্মাণে অন্তর্ভুক্ত করুন।

মূল উপাদানগুলির রিগ্রেশন সম্পর্কে চিন্তা করুন: পিসিএ এর পরে কিছু উপাদানগুলিতে লিনিয়ার রিগ্রেশন হয়। পিসিএ অনুমান করে প্যারামিটারগুলি (গোলমাল সহ) এবং উপাদানগুলির সংখ্যাটিও অবশ্যই চয়ন করতে হবে (বিভিন্ন মান বিভিন্ন ফলাফলের ফলে => আরও শব্দ হবে)।

বলুন আমরা স্কিম 1 এর সাথে 10 গুণ সিভি ব্যবহার করেছি:

conduct PCA
pick the number of components
for each fold:
   split data
   fit linear regression on the 90% used for training
   predict the 10% held out
end:

বা স্কিম 2:

for each fold:
   split data
   conduct PCA on the 90% used for training
   pick the number of components
   fit linear regression
   predict the 10% held out
end:

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

আমি সমস্ত অপারেশন ডাব্লু / রিসম্পলিংয়ে সর্বদা না করার জন্য আমি দোষী, তবে কেবল তখনই যখন আমি সত্যিকার অর্থে পারফরম্যান্সের প্রাক্কলনগুলি যত্ন করি না (যা অস্বাভাবিক)।

দুটি প্রকল্পের মধ্যে কি অনেক পার্থক্য রয়েছে? এটি ডেটা এবং প্রাক প্রক্রিয়াজাতকরণের উপর নির্ভর করে। আপনি যদি কেবল কেন্দ্রিক এবং স্কেলিং করে থাকেন তবে সম্ভবত তা নয়। আপনার যদি এক টন ডেটা থাকে তবে সম্ভবত না। প্রশিক্ষণের সেট আকারটি কমার সাথে সাথে, খারাপ অনুমানের ঝুঁকি বেড়ে যায়, বিশেষত যদি এন পি এর কাছাকাছি থাকে।

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

@ মঞ্চগুন: আমি মনে করি যে উপাদানগুলির সংখ্যাটি একটি টিউনিং প্যারামিটার এবং আপনি সম্ভবত এটি সাধারণকরণযোগ্য পারফরম্যান্সের প্রাক্কলন ব্যবহার করে বেছে নিতে চাইবেন। আপনি স্বয়ংক্রিয়ভাবে কে কে বেছে নিতে পারেন যে কমপক্ষে X% বৈকল্পিক ব্যাখ্যা করা হয়েছে এবং পুনরায় মডেলিংয়ের মধ্যে সেই প্রক্রিয়াটি অন্তর্ভুক্ত করা যায় যাতে আমরা সেই প্রক্রিয়াটিতে গোলমালের জন্য দায়বদ্ধ।

ম্যাক্স

[1] এমব্রয়েজ, সি।, এবং ম্যাকলাচলান, জি। (2002)। মাইক্রোয়ারে জিন-এক্সপ্রেশন ডেটার ভিত্তিতে জিন নিষ্কাশনে নির্বাচনের পক্ষপাতিত্ব। ন্যাশনাল একাডেমি অফ সায়েন্সেসের কার্যক্রম, 99 (10), 6562–6566।


21

trainফাংশনটি চালানোর আগে ডেটা প্রি-প্রসেস করবেন না ! ব্যবহার করুন preProcess যুক্তি ট্রেন ফাংশন জন্য, এবং প্রাক প্রক্রিয়াকরণ প্রতিটি পুনরায় স্যাম্পলিং পুনরাবৃত্তির প্রয়োগ করা হবে।

যেমন এটি করবেন না :

library(caret)
dat <- iris
pp <- preProcess(dat[,-5], method="pca")
dat[,-5] <- predict(pp, dat[,-5])
knnFit1 <- train(Species~., dat, method = "knn", preProcess=c("pca"), 
    trControl = trainControl(method = "cv"))

এটা কর!

dat <- iris
knnFit2 <- train(Species~., dat, method = "knn", preProcess=c("pca"), 
    trControl = trainControl(method = "cv"))

1
আপনার প্রস্তাব অনুসারে যদি আমি প্রস্রোসেসটি করি তবে আমি কী পূর্বাভাসের জন্য মডেলটি ব্যবহার করতে চাই যখন নতুন ডেটা প্রি প্রসেস করা দরকার? এই মুহুর্তে আমি কেবল এটিই করি: pred <- predict(knnFit2, newdata) যেখানে newdataস্কেল করা হয় না। ক্যারেট কি newdataভবিষ্যদ্বাণীগুলির জন্য এটি ব্যবহারের আগে প্রাক প্রসেস প্রয়োজন তা জানতে যথেষ্ট স্মার্ট ?
মিছনগুন

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