از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
خط لوله رگرسیون XGBoost End-to-End با Scikit-Learn
رگرسیون تکنیکی در آمار و یادگیری ماشینی است که در آن ارزش یک متغیر مستقل از طریق رابطه آن با سایر متغیرها پیشبینی میشود.
چارچوبهایی مانند 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