স্ট্যান্ডার্ডস্কেলার ডেটা বিভক্ত করার আগে এবং পরে


20

যখন আমি ব্যবহার সম্পর্কে পড়ছিলাম StandardScaler, বেশিরভাগ সুপারিশই বলেছিল যে ডেটা ট্রেন / পরীক্ষায় বিভক্ত করার StandardScaler আগে আপনার ব্যবহার করা উচিত , তবে যখন আমি অনলাইনে পোস্ট করা কিছু কোড (স্কলারান ব্যবহার করে) পরীক্ষা করছিলাম তখন দুটি বড় ব্যবহার ছিল।

1- StandardScalerসমস্ত ডেটা ব্যবহার করে। যেমন

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_fit = sc.fit(X)
X_std = X_fit.transform(X)

অথবা

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X = sc.fit(X)
X = sc.transform(X)

বা সহজভাবে

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_std = sc.fit_transform(X)

2- StandardScalerবিভক্ত ডেটা ব্যবহার করে।

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform (X_test)

আমি আমার ডেটা মানক করতে চাই, তবে কোন পদ্ধতিটি সবচেয়ে ভাল তা আমি বিভ্রান্ত!

উত্তর:


25

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

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


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

হাই - এটি সঠিক, কেবল
ট্রেনেই

0

নিম্নলিখিতগুলি সম্পর্কে কীভাবে:

from sklearn.preprocessing import StandardScaler

sc = StandardScaler()

X_train = sc.fit_transform(X_train)

X_test = sc.fit_transform (X_test)

কারণ যদি X_test = sc.transform(X_test)এটি ফিরিয়ে দেয় ত্রুটিটি X_testএখনও ফিট করা হয় না। নাকি আমি এখানে কিছু মিস করেছি?



0

পরীক্ষার ডেটাতে আপনার ফিট_ ট্রান্সফর্ম (এক্স_স্টেস্ট) করা উচিত নয়।
ফিট ইতিমধ্যে উপরে ঘটেছে।

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform (X_test)

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