Python代码示例:使用网格搜索调参并评估机器学习模型准确率
以下是使用网格搜索调参并根据准确率进行评估的 Python 代码示例:
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import accuracy_score
from sklearn.svm import SVC
from sklearn.datasets import load_iris
# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target
# 定义SVM模型
svm = SVC()
# 定义参数网格
param_grid = {'C': [0.1, 1, 10, 100],
'kernel': ['linear', 'rbf', 'poly', 'sigmoid'],
'gamma': ['scale', 'auto']}
# 使用网格搜索进行参数调优
grid_search = GridSearchCV(svm, param_grid, cv=5)
grid_search.fit(X, y)
# 输出最佳参数组合和准确率
print('Best parameters: ', grid_search.best_params_)
print('Best accuracy: ', grid_search.best_score_)
# 使用最佳参数组合进行预测
best_svm = grid_search.best_estimator_
y_pred = best_svm.predict(X)
# 输出预测准确率
print('Accuracy: ', accuracy_score(y, y_pred))
该代码使用了 sklearn 库中的 GridSearchCV 方法进行网格搜索调参,并使用 accuracy_score 方法对模型进行评估。首先加载鸢尾花数据集,定义 SVM 模型,以及参数网格(C、kernel 和 gamma)。
然后使用 GridSearchCV 方法对 SVM 模型进行参数调优,将数据集和参数网格作为参数传入,并指定 cv 参数为 5,表示使用 5 折交叉验证。GridSearchCV 方法会遍历所有参数组合,对每种参数组合进行交叉验证,并返回最佳参数组合和最佳准确率。
最后使用最佳参数组合进行预测,并使用 accuracy_score 方法对预测结果进行评估,输出预测准确率。
原文地址: https://www.cveoy.top/t/topic/oJWr 著作权归作者所有。请勿转载和采集!