溫馨提示×

Scikit-learn中怎么實(shí)現(xiàn)模型微調(diào)

小億
86
2024-05-10 18:42:00
欄目: 編程語言

在Scikit-learn中,可以使用GridSearchCV或RandomizedSearchCV來實(shí)現(xiàn)模型微調(diào)。這兩個(gè)方法可以幫助我們自動(dòng)地搜索最優(yōu)的超參數(shù)組合,從而提高模型的性能。

  1. 使用GridSearchCV進(jìn)行模型微調(diào):
from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier

# 定義要調(diào)優(yōu)的參數(shù)網(wǎng)格
param_grid = {
    'n_estimators': [100, 200, 300],
    'max_depth': [None, 10, 20],
    'min_samples_split': [2, 5, 10]
}

# 初始化隨機(jī)森林分類器
rf = RandomForestClassifier()

# 使用GridSearchCV進(jìn)行模型微調(diào)
grid_search = GridSearchCV(estimator=rf, param_grid=param_grid, cv=5)
grid_search.fit(X_train, y_train)

# 輸出最佳參數(shù)組合和最佳得分
print("Best parameters found: ", grid_search.best_params_)
print("Best score found: ", grid_search.best_score_)
  1. 使用RandomizedSearchCV進(jìn)行模型微調(diào):
from sklearn.model_selection import RandomizedSearchCV
from scipy.stats import randint
from sklearn.ensemble import RandomForestClassifier

# 定義要調(diào)優(yōu)的參數(shù)分布
param_dist = {
    'n_estimators': randint(100, 1000),
    'max_depth': [None, 10, 20, 30],
    'min_samples_split': randint(2, 20)
}

# 初始化隨機(jī)森林分類器
rf = RandomForestClassifier()

# 使用RandomizedSearchCV進(jìn)行模型微調(diào)
random_search = RandomizedSearchCV(estimator=rf, param_distributions=param_dist, n_iter=100, cv=5)
random_search.fit(X_train, y_train)

# 輸出最佳參數(shù)組合和最佳得分
print("Best parameters found: ", random_search.best_params_)
print("Best score found: ", random_search.best_score_)

通過以上步驟,我們可以使用GridSearchCV或RandomizedSearchCV來實(shí)現(xiàn)模型微調(diào),并找到最優(yōu)的超參數(shù)組合。

0