以下是使用网格搜索根据AUC值为SVM调参的Python代码示例:

from sklearn.svm import SVC
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import roc_auc_score
from sklearn.datasets import load_breast_cancer

# 加载数据集
X, y = load_breast_cancer(return_X_y=True)

# 定义SVM模型
svm = SVC(probability=True)

# 定义参数网格
param_grid = {
    'kernel': ['linear', 'poly', 'rbf', 'sigmoid'],
    'C': [0.01, 0.1, 1, 10],
    'gamma': [0.001, 0.01, 0.1, 1]
}

# 使用网格搜索进行交叉验证
grid_search = GridSearchCV(svm, param_grid=param_grid, cv=5, scoring='roc_auc')
grid_search.fit(X, y)

# 输出最佳参数和AUC值
print('Best parameters: ' + str(grid_search.best_params_))
print('Best AUC score: {:.2f}'.format(grid_search.best_score_))

# 在测试集上评估模型性能
y_pred = grid_search.predict(X)
auc = roc_auc_score(y, y_pred)
print('Test AUC score: {:.2f}'.format(auc))

在上述代码中,我们首先加载了乳腺癌数据集。然后,我们定义了一个SVM模型,并使用参数网格来定义可能的参数组合。接下来,我们使用GridSearchCV函数进行交叉验证,并将scoring参数设置为'roc_auc',以便在每个参数组合上计算AUC值。最后,我们输出最佳参数和AUC值,并在测试集上评估模型性能。

SVM调参:使用网格搜索优化AUC值 (Python代码)

原文地址: https://www.cveoy.top/t/topic/oJMr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录