چطور مدل را به صورت kfold ارزیابی کنم. - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

چطور مدل را به صورت kfold ارزیابی کنم.

0 امتیاز

سلام.

قصد دارم یک دیتاست ساده مثل iris را با DecisionTree به صورت kfold ارزیابی کنم.کسی همچین کاری کرده؟

سوال شده شهریور 25, 1402  بوسیله ی Lori3 (امتیاز 857)   11 36 105
دوباره تگ گذاری شد شهریور 25, 1402

1 پاسخ

0 امتیاز
from sklearn.datasets import load_iris
from sklearn.model_selection import KFold
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
import numpy as np

# Load the iris dataset
iris = load_iris()
X = iris.data
y = iris.target

# Define the K-fold Cross Validator
kfold = KFold(n_splits=5, shuffle=True, random_state=1)

# List to save each fold accuracy
accuracies = []

# K-fold Cross Validation model evaluation
for train_index, test_index in kfold.split(X):
    # Split train-test
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]
    
    # Train the model
    model = DecisionTreeClassifier()
    model.fit(X_train, y_train)
    
    # Append to accuracy_model the accuracy of the model
    accuracies.append(accuracy_score(y_test, model.predict(X_test), normalize=True)*100)

# Print the accuracy    
print("accuracy: %.2f%% (+/- %.2f%%)" % (np.mean(accuracies), np.std(accuracies)))

 

به صورت ساده بگم مدل k بار آموزش داده میشه و تست میشه و هر بار هم از کل دیتاست استفاده می کنه .انتخاب دیتاست آموزش و تست هم به این صورته که دیتاست هر بار به k بخش تقسیم میشه و 1 قسمت برای تست و مابقی برای آموزش استفاده میشه. هر بار هم با index های تصادفی همین.

پاسخ داده شده شهریور 25, 1402 بوسیله ی farnoosh (امتیاز 8,362)   20 44 59
...