Feature Engineering কৌশল

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

356

Feature Engineering হল একটি গুরুত্বপূর্ণ পদক্ষেপ যা মডেল তৈরির আগে ডেটার ফিচার (বা বৈশিষ্ট্য) গুলিকে এমনভাবে পরিবর্তন এবং উন্নত করা, যাতে মডেল সেগুলি ভালোভাবে শিখতে পারে এবং সঠিক ভবিষ্যদ্বাণী করতে পারে। এটি মডেলের পারফরম্যান্স উন্নত করার জন্য একটি অত্যন্ত কার্যকর কৌশল।

নিচে Feature Engineering এর বিভিন্ন কৌশল এবং তাদের ব্যবহারযোগ্যতা সম্পর্কে আলোচনা করা হলো:


1. Missing Values Handling (অনুপস্থিত মানের হ্যান্ডলিং)

ডেটাসেটে missing values (অনুপস্থিত মান) থাকা একটি সাধারণ সমস্যা। এই মানগুলি মডেল ট্রেনিং প্রক্রিয়ায় সমস্যা সৃষ্টি করতে পারে। সাধারণত, এই missing values গুলির জন্য বিভিন্ন কৌশল ব্যবহার করা হয়:

কৌশল:

  • Mean, Median, Mode দিয়ে পূরণ করা:
    • Numerical data এর জন্য mean বা median ব্যবহার করা যায়।
    • Categorical data এর জন্য mode ব্যবহার করা যায়।
import pandas as pd
# Missing values পূরণ
df['column_name'] = df['column_name'].fillna(df['column_name'].mean())
  • Drop Rows or Columns: কখনও কখনও একটি ফিচার বা রেকর্ডে অত্যধিক missing values থাকলে, সেটি বাদ দেওয়া যেতে পারে।
# ডেটাসেট থেকে রো বাদ দেওয়া
df = df.dropna(subset=['column_name'])

# ডেটাসেট থেকে কলাম বাদ দেওয়া
df = df.dropna(axis=1)
  • Imputation Techniques: Advanced imputation methods ব্যবহার করা যায়, যেমন KNN Imputation বা regression-based imputation।

2. Categorical Data Encoding (ক্যাটেগরিকাল ডেটা এনকোডিং)

Categorical variables (যেমন: লিঙ্গ, শহর, স্টেট) মডেলের জন্য সরাসরি ব্যবহার করা যায় না। এই ধরনের ডেটাকে numerical ডেটাতে রূপান্তর করতে হয়।

কৌশল:

  • Label Encoding: একক মানকে সংখ্যা দিয়ে উপস্থাপন করা।
from sklearn.preprocessing import LabelEncoder

encoder = LabelEncoder()
df['column_name'] = encoder.fit_transform(df['column_name'])
  • One-Hot Encoding: প্রতিটি ক্যাটেগরি জন্য একটি নতুন বাইনরি কলাম তৈরি করা।
df = pd.get_dummies(df, columns=['column_name'])
  • Ordinal Encoding: যেখানে কিছু ক্যাটেগরি একটি নির্দিষ্ট অর্ডারে থাকে (যেমন: ছোট, মাঝারি, বড়), সেখানে এই পদ্ধতি ব্যবহার করা হয়।

3. Feature Scaling (ফিচার স্কেলিং)

ফিচার স্কেলিং হল ডেটার বৈশিষ্ট্যগুলির মানকে একই স্কেলে রূপান্তর করার প্রক্রিয়া। এটি বিশেষত distance-based algorithms যেমন KNN, SVM, এবং Logistic Regression মডেলের জন্য গুরুত্বপূর্ণ।

কৌশল:

  • Standardization (Z-score Normalization): ডেটার মানকে গড় ০ এবং স্ট্যান্ডার্ড ডিভিয়েশন ১ এ নিয়ে আসা।
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
df_scaled = scaler.fit_transform(df)
  • Normalization: ডেটাকে একটি নির্দিষ্ট স্কেলে (যেমন 0 থেকে 1) রূপান্তর করা।
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
df_scaled = scaler.fit_transform(df)
  • Robust Scaling: যখন ডেটাতে আউটলাইয়ার থাকে, তখন RobustScaler ব্যবহার করা হয়, যা median এবং interquartile range ব্যবহার করে স্কেলিং করে।
from sklearn.preprocessing import RobustScaler
scaler = RobustScaler()
df_scaled = scaler.fit_transform(df)

4. Feature Creation (ফিচার সৃষ্টি)

নতুন ফিচার তৈরি করা ডেটা থেকে আরও তথ্য বের করার একটি কৌশল। এটি নতুন ফিচার তৈরি করে মডেলের পারফরম্যান্স উন্নত করতে সাহায্য করতে পারে।

কৌশল:

  • Mathematical Operations: দুটি বা ততোধিক ফিচারের উপর গাণিতিক অপারেশন (যেমন গুণ, ভাগ, যোগ, বিয়োগ) করে নতুন ফিচার তৈরি করা।
df['new_feature'] = df['feature1'] * df['feature2']
  • Domain-Specific Features: কোনো নির্দিষ্ট ডোমেইন জ্ঞান ব্যবহার করে নতুন ফিচার তৈরি করা (যেমন, একটি দোকানের বিক্রির জন্য "দিনের সময়" ফিচার তৈরি করা)।
  • Time-Based Features: টাইম সিরিজ ডেটাতে সময়ভিত্তিক ফিচার যেমন মাস, সপ্তাহের দিন, বা বছরে সময় তৈরি করা।
df['month'] = df['date'].dt.month
df['day_of_week'] = df['date'].dt.dayofweek

5. Dimensionality Reduction (ডাইমেনশনালিটি রিডাকশন)

Dimensionality reduction হল অনেক সংখ্যক ফিচারের মধ্যে সবচেয়ে গুরুত্বপূর্ণ ফিচারগুলো নির্বাচন বা কমানো। এটি মডেলের ট্রেনিং সময় এবং অতিরিক্ত ফিচারের কারণে হওয়া overfitting কমাতে সাহায্য করে।

কৌশল:

  • Principal Component Analysis (PCA): PCA একটি জনপ্রিয় পদ্ধতি যা ডেটার ভেরিয়েন্স অনুযায়ী সবচেয়ে গুরুত্বপূর্ণ ফিচারগুলো নির্বাচন করে।
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
df_pca = pca.fit_transform(df)
  • Feature Selection: কিছু অপ্রয়োজনীয় বা অপ্রভাবিত ফিচার বাদ দেওয়ার মাধ্যমে ডেটার মাত্রা কমানো।
from sklearn.feature_selection import SelectKBest, f_classif
selector = SelectKBest(f_classif, k=5)
df_selected = selector.fit_transform(df, target)

6. Outlier Detection and Removal (আউটলাইয়ার সনাক্তকরণ এবং সরানো)

আউটলাইয়ারগুলো হল ডেটাতে এমন কিছু মান, যা বাকী মানের তুলনায় অনেক বাইরে থাকে। এই আউটলাইয়ারগুলো মডেলের পারফরম্যান্সকে নেতিবাচকভাবে প্রভাবিত করতে পারে।

কৌশল:

  • Z-Score Method: যদি কোনো মান 3 স্ট্যান্ডার্ড ডিভিয়েশনের বাইরে থাকে, তাহলে সেটি আউটলাইয়ার হিসেবে চিহ্নিত করা হয়।
from scipy import stats
df_clean = df[(np.abs(stats.zscore(df)) < 3).all(axis=1)]
  • IQR Method: IQR (Interquartile Range) এর মাধ্যমে আউটলাইয়ার সনাক্ত করা হয়।
Q1 = df.quantile(0.25)
Q3 = df.quantile(0.75)
IQR = Q3 - Q1
df_clean = df[~((df < (Q1 - 1.5 * IQR)) | (df > (Q3 + 1.5 * IQR))).any(axis=1)]

সারাংশ

Feature Engineering মডেল ট্রেনিংয়ের আগে ডেটা পরিস্কার এবং উন্নত করার প্রক্রিয়া। এটি missing values handling, categorical encoding, scaling, feature creation, dimensionality reduction, এবং outlier detection ইত্যাদি কৌশল ব্যবহার করে ডেটাকে আরও কার্যকরী এবং মডেলিং এর জন্য উপযুক্ত করে তোলে।

এটি একটি অত্যন্ত গুরুত্বপূর্ণ পদক্ষেপ, যেহেতু সঠিকভাবে তৈরি করা ফিচার মডেলের পারফরম্যান্সকে উল্লেখযোগ্যভাবে উন্নত করতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...