پاکسازی و آماده سازی داده ها با scikit-learn
مقدمه
کتابخانه scikit-learn طیف گستردهای از ابزارها را برای پاکسازی و آمادهسازی دادهها ارائه میدهد که نقشی اساسی در ارتقای عملکرد مدلهای یادگیری ماشین ایفا میکند. در این نوشتار، به معرفی برخی از ابزارهای کاربردی این کتابخانه در راستای پاکسازی و آمادهسازی دادهها میپردازیم.
۱. حذف مقادیر گمشده:
SimpleImputer
: این کلاس برای جایگزینی مقادیر گمشده با مقادیر ثابت (مانند میانگین، میانه یا مد) یا با استفاده از استراتژیهای مختلف مانند “پر کردن نزدیکترین همسایه” (nearest neighbor imputation) به کار میرود.
Python
from sklearn.impute import SimpleImputer
# جایگزینی مقادیر گمشده با میانگین
imputer = SimpleImputer(missing_values=np.nan, strategy='mean')
data_imputed = imputer.fit_transform(data)
Imputer
: این کلاس امکان جایگزینی مقادیر گمشده با مقادیر پیشبینیشده توسط مدلهای یادگیری ماشین را فراهم میکند.
Python
from sklearn.experimental import impute
# جایگزینی مقادیر گمشده با مقادیر پیشبینیشده توسط رگرسیون خطی
imputer = impute.Imputer(estimator=LinearRegression())
data_imputed = imputer.fit_transform(data)
۲. مدیریت ناهنجاریها:
IQRRange
: این کلاس برای شناسایی نقاط پرت بر اساس دامنه بین چارک اول و سوم (IQR) به کار میرود.
Python
from sklearn.feature_selection import IQRRange
# شناسایی نقاط پرت
outlier_detector = IQRRange()
is_outlier = outlier_detector.fit_predict(data)
RobustScaler
: این کلاس برای استانداردسازی دادهها با تمرکز بر کاهش اثر نقاط پرت به کار میرود.
Python
from sklearn.preprocessing import RobustScaler
# استانداردسازی داده ها با تمرکز بر کاهش اثر نقاط پرت
scaler = RobustScaler()
data_scaled = scaler.fit_transform(data)
۳. استانداردسازی و مقیاسگذاری:
StandardScaler
: این کلاس برای استانداردسازی دادهها به گونهای که میانگین آنها صفر و واریانس آنها یک شود، به کار میرود.
Python
from sklearn.preprocessing import StandardScaler
# استانداردسازی داده ها
scaler = StandardScaler()
data_scaled = scaler.fit_transform(data)
MinMaxScaler
: این کلاس برای مقیاسگذاری دادهها به یک محدوده مشخص (مانند [۰, ۱]) به کار میرود.
Python
from sklearn.preprocessing import MinMaxScaler
# مقیاس گذاری داده ها به محدوده [۰, ۱]
scaler = MinMaxScaler(feature_range=(۰, ۱))
data_scaled = scaler.fit_transform(data)
۴. کدگذاری دادههای دستهای:
OneHotEncoder
: این کلاس برای تبدیل دادههای دستهای به ماتریسهای کدگذاری شده برچسب گرم (one-hot encoding) به کار میرود.
Python
from sklearn.preprocessing import OneHotEncoder
# تبدیل داده های دستهای به کدگذاری برچسب گرم
encoder = OneHotEncoder(handle_unknown='ignore')
data_encoded = encoder.fit_transform(data_categorical)
LabelBinarizer
: این کلاس برای تبدیل دادههای دستهای به بردارهای دودویی (binary vectors) به کار میرود.
Python
from sklearn.preprocessing import LabelBinarizer
# تبدیل داده های دستهای به بردارهای دودویی
encoder = LabelBinarizer()
data_encoded = encoder.fit_transform(data_categorical)
نکات:
- انتخاب روش مناسب برای پاکسازی و آماده سازی داده ها به نوع داده ها، وظیفه و الگوریتم یادگیری ماشین مورد استفاده بستگی دارد.
- کتابخانه scikit-learn مجموعه ای از ابزارهای دیگر برای پیش پردازش داده ها مانند حذف ویژگی های کم اهمیت، انتخاب ویژگی ها و تبدیل نوع داده ها ارائه می دهد.
- مستندات scikit-learn شرح دقیقی از هر ابزار و نحوه استفاده از آن را ارائه می دهد.
منابع:
- [مستندات scikit-learn](https://scikit-learn.org/