💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ محمد وفامند
نحوه پیشبینی نتایج برای ورودی‌های جدید
جامعه هوش مصنوعی ایجاد شده در ۲۳ شهریور ۱۴۰۳

سلام

در صورتی که در الگوریتم xgb از روش cv و dmatrix برای آموزش استفاده بشود. بعدا برای پیشبینی بر مبنای داده‌های جدید از چه تابع برای predict باید استفاده شود. 

در فیلم آموزشی در مورد تابع predic و شئ xgb_clf توضیح داده شده ولی در مورد وقتی که از cv استفاده می‌شود تا مرحله آموزش و بررسی دقت خروجی صحبت شد. 

سلام

داده‌های جدید رو هم باید با به dmatrix تبدیل کنید و به الگوریتمی که قبلا fit شده بدهید. نمونه کد زیر همین کار را انجام می‌دهد:

import xgboost as xgb
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# Generate some sample data
np.random.seed(42)
X = np.random.rand(100, 10)  # 100 samples, 10 features
y = np.random.randint(2, size=100)  # Binary target variable
# Split data into train and test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Convert the data to DMatrix format (XGBoost's optimized data structure)
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test, label=y_test)
# Set parameters for the XGBoost model
params = {
    'objective': 'binary:logistic',  # Binary classification
    'eval_metric': 'logloss',        # Evaluation metric for classification
    'max_depth': 3,                  # Maximum depth of a tree
    'eta': 0.1,                      # Learning rate
    'seed': 42
}
# Train the model
bst = xgb.train(params, dtrain, num_boost_round=100)
# Predict on the test set
y_pred_proba = bst.predict(dtest)  # Output probabilities
y_pred = np.round(y_pred_proba)    # Convert probabilities to binary output (0 or 1)
# Evaluate the model
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy * 100:.2f}%")
# Predict on new data
new_data = np.random.rand(5, 10)  # New samples with 10 features
dnew = xgb.DMatrix(new_data)
new_predictions = bst.predict(dnew)
new_predictions_rounded = np.round(new_predictions)
print("Predictions for new data:")
print(new_predictions_rounded)
مسعود کاویانی ۰۶ مهر ۱۴۰۳، ۲۲:۱۷