机器学习中根据准确率进行网格搜索调参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/hg0x 著作权归作者所有。请勿转载和采集!