Feature Scaling (Normalization এবং Standardization)

ডেটা প্রি-প্রসেসিং - পাইথনে লজিস্টিক রিগ্রেশন (Logistic Regression in Python) - Machine Learning

354

Feature Scaling: এবং Standardization

Feature Scaling হল একটি গুরুত্বপূর্ণ ডেটা প্রিপ্রসেসিং টেকনিক যা মেশিন লার্নিং মডেল ট্রেনিংয়ের আগে ইনপুট ফিচারগুলিকে সমান স্কেলে আনার প্রক্রিয়া। এটি বিশেষভাবে গুরুত্বপূর্ণ যখন আপনি মেশিন লার্নিং অ্যালগরিদম ব্যবহার করেন যা ফিচারের স্কেল অনুসারে কাজ করে, যেমন কনটিনিউয়াস ডেটা, কন্যিক মেট্রিক ব্যবহারকারী মডেল (যেমন ক্নন nearest neighbors, SVM, Logistic Regression) ইত্যাদি।

ফিচার স্কেলিং এর মূল দুটি পদ্ধতি হল:

  1. Normalization (Min-Max Scaling)
  2. Standardization (Z-score Scaling)

1. Normalization (Min-Max Scaling)

Normalization হল ফিচারের মানকে একটি নির্দিষ্ট সীমার মধ্যে আনা, সাধারণত 0 থেকে 1 অথবা -1 থেকে 1। এটি ফিচারের সর্বনিম্ন এবং সর্বোচ্চ মান ব্যবহার করে একটি স্কেল তৈরি করে।

নিচে Min-Max Scaling এর সূত্র:

Xnorm=Xmin(X)max(X)min(X)X_{\text{norm}} = \frac{X - \text{min}(X)}{\text{max}(X) - \text{min}(X)}

এখানে:

  • XX হলো মূল ফিচারের মান
  • min(X)\text{min}(X) হলো ফিচারের সর্বনিম্ন মান
  • max(X)\text{max}(X) হলো ফিচারের সর্বোচ্চ মান

যখন ব্যবহার করবেন:

  • যখন ডেটা গেটওয়ে বা কিউটোরিক্যাল নয়, তখন ব্যবহার করা হয়।
  • এটি তখন ভালো যখন ডেটার মধ্যে কিছু বৈশিষ্ট্য খুব বড় বা ছোট স্কেলে থাকে (যেমন: আয়, উচ্চতা ইত্যাদি)।

Python এ Normalization (Min-Max Scaling) এর উদাহরণ:

from sklearn.preprocessing import MinMaxScaler
import numpy as np

# ডেটা
data = np.array([[10, 200], [15, 300], [20, 400]])

# Min-Max স্কেলিং
scaler = MinMaxScaler()
scaled_data = scaler.fit_transform(data)

print(scaled_data)

2. Standardization (Z-score Scaling)

Standardization বা Z-score Scaling হল একটি পদ্ধতি যা ফিচারের মানকে স্কেল করে এমনভাবে, যাতে তার মিডিয়ান 0 এবং স্ট্যান্ডার্ড ডেভিয়েশন 1 হয়। এতে সমস্ত ফিচার সমানভাবে গুরুত্বপূর্ণ হয়ে ওঠে এবং স্কেল ভিন্নতা কমে আসে।

নিচে Z-score Scaling এর সূত্র:

Xstand=XμσX_{\text{stand}} = \frac{X - \mu}{\sigma}

এখানে:

  • XX হলো মূল ফিচারের মান
  • μ\mu হলো ফিচারের গড় (mean)
  • σ\sigma হলো ফিচারের স্ট্যান্ডার্ড ডেভিয়েশন

যখন ব্যবহার করবেন:

  • যখন ডেটার মধ্যে আউটলায়ার বা খুব ভিন্ন ভিন্ন স্কেল থাকে।
  • যখন আপনি মডেল ব্যবহার করছেন যা গণনার ক্ষেত্রে গড় এবং ডেভিয়েশন নিয়ে কাজ করে (যেমন: লিনিয়ার রিগ্রেশন, SVM, k-means clustering)।

Python এ Standardization (Z-score Scaling) এর উদাহরণ:

from sklearn.preprocessing import StandardScaler
import numpy as np

# ডেটা
data = np.array([[10, 200], [15, 300], [20, 400]])

# Standardization
scaler = StandardScaler()
scaled_data = scaler.fit_transform(data)

print(scaled_data)

তুলনা: Normalization vs Standardization

বৈশিষ্ট্যNormalization (Min-Max Scaling)Standardization (Z-score Scaling)
স্কেল0 থেকে 1 অথবা -1 থেকে 1গড় 0 এবং স্ট্যান্ডার্ড ডেভিয়েশন 1
ফর্মুলাXnorm=Xmin(X)max(X)min(X)X_{\text{norm}} = \frac{X - \text{min}(X)}{\text{max}(X) - \text{min}(X)}Xstand=XμσX_{\text{stand}} = \frac{X - \mu}{\sigma}
ব্যবহারযোগ্যতাভালো যখন ডেটার স্কেল একরকম হয়ভালো যখন ডেটার স্কেল ভিন্ন ভিন্ন হয়
আউটলায়ার প্রভাবআউটলায়ার প্রভাবিত করে (কারণ সীমার মধ্যে স্কেল করা হয়)আউটলায়ার প্রভাবিত করে না (কারণ গড় এবং স্ট্যান্ডার্ড ডেভিয়েশন ব্যবহার করা হয়)

যখন কোনটি ব্যবহার করবেন?

  • Normalization (Min-Max Scaling) ব্যবহার করুন যখন ডেটার মান সুনির্দিষ্ট সীমার মধ্যে আনার প্রয়োজন হয় (যেমন: 0 থেকে 1) এবং আউটলায়ার খুব বড় প্রভাব ফেলবে না।
  • Standardization (Z-score Scaling) ব্যবহার করুন যখন ডেটার মধ্যে আউটলায়ার থাকে অথবা আপনি এমন মডেল ব্যবহার করছেন যা গড় এবং স্ট্যান্ডার্ড ডেভিয়েশন নিয়ে কাজ করে (যেমন: লিনিয়ার রিগ্রেশন, SVM)।

সারাংশ:

  • Normalization: ফিচারের মান 0 থেকে 1 বা -1 থেকে 1 এর মধ্যে আনতে ব্যবহৃত হয়।
  • Standardization: ফিচারের গড় 0 এবং স্ট্যান্ডার্ড ডেভিয়েশন 1 আনতে ব্যবহৃত হয়।
  • সঠিক স্কেলিং পদ্ধতি ব্যবহার করা মডেলটির পারফরম্যান্স এবং সঠিকতা বাড়াতে সাহায্য করে।
Content added By
Promotion

Are you sure to start over?

Loading...