وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

خط لوله رگرسیون XGBoost End-to-End با Scikit-Learn

0 4
زمان لازم برای مطالعه: < 1 دقیقه


رگرسیون تکنیکی در آمار و یادگیری ماشینی است که در آن ارزش یک متغیر مستقل از طریق رابطه آن با سایر متغیرها پیش‌بینی می‌شود.

چارچوب‌هایی مانند Scikit-Learn و XGBoost انجام رگرسیون با مدل‌های متنوع را آسان‌تر از همیشه می‌کنند – یکی از مدل‌هایی که اخیراً به خوبی پذیرفته شده است. افزایش گرادیان و نوع XGBoost، افزایش گرادیان شدید مدل ها.

XGBoost با Scikit-Learn به خوبی کار می کند، API مشابهی دارد و در بیشتر موارد می تواند درست مانند یک مدل Scikit-Learn استفاده شود – بنابراین طبیعی است که بتوان با هر دو کتابخانه خطوط لوله ایجاد کرد.

با خطوط لوله Scikit-Learn، می توانید یک خط لوله سرتاسر در 4 خط کد ایجاد کنید: یک مجموعه داده را بارگیری کنید، مقیاس بندی ویژگی ها را انجام دهید، و سپس داده ها را به یک مدل رگرسیونی وارد کنید:

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
from sklearn.pipeline import Pipeline

from xgboost import XGBRegressor

X, y = datasets.fetch_california_housing(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y)

pipeline = Pipeline((('scaler', MinMaxScaler()), ('regressor', XGBRegressor())))
pipeline.fit(X_train, y_train)

r2 = pipeline.score(X_test, y_test)
print(f"XGBoost regressor r2: {r2}")

از طرف دیگر، می توانید مراحل خارج از خط لوله را که کمی پرمخاطب تر و در عین حال انعطاف پذیرتر است، جدا کنید:

X, y = datasets.fetch_california_housing(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y)

scaler = MinMaxScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

xbg_reg = XGBRegressor().fit(X_train_scaled, y_train)

r2 = xbg_reg.score(X_test_scaled, y_test)
print(f"XGBoost Regressor: {r2}")


(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-05 13:42:04

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید