机器学习算法中的网格搜索GridSearch实现(以k-近邻算法参数寻最优为例)

机器学习算法参数的网格搜索实现:

//2019.08.03
1、scikitlearn库中调用网格搜索的方法为:Grid search,它的搜索方式比较统一简单,其对于算法批判的标准比较复杂,是一种复合交叉批判方式,不仅仅是准确率。其具体的实现方式如下(以KNN算法的三大常用超参数为例):
#使用scikitlearn中的gridsearch来进行机器学习算法的超参数的最佳网格搜索方式
#1-1首先使用字典的方式对KNN算法中的不同超参数组合进行定义
param_grid=[{
"weights":["uniform"],
"n_neighbors":[i for i in range(1,11)]
},
{"weights":["distance"],
"n_neighbors":[i for i in range(1,11)],
"p":[i for i in range(1,6)]
}
] #首先定义机器学习算法的不同超参数组合,使用字典的方式,二对于具体的超参数采用列表的数据结构
#1-2其次定义一个所需要调参的机器学习算法
knn_clf=KNeighborsClassifier()
#1-3导入scikitlearn中的网格搜索函数GridSearchCV,并且定义相应网格搜索方式(输入初始化参数:1机器学习算法、2超参数组合列表、3n_jobs(选择并行内核数目,-1表示全部是用),4verbose=2表示输出相应搜索过程)
from sklearn.model_selection import GridSearchCV
grid_search=GridSearchCV(knn_clf,param_grid,n_jobs=-1,verbose=2)
#1-4使用训练数据集进行网格搜索过程
grid_search.fit(x_train,y_train)
#1-5输出相应胡玩网格搜索最佳参数组合结果和最佳参数组合时的准确率
print(grid_search.best_estimator_)
print(grid_search.best_params_)
print(grid_search.best_score_)

具体的实现代码及其结果如下:

转载于:https://www.cnblogs.com/Yanjy-OnlyOne/p/11294852.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,鸢尾花数据集是一个非常常用的机器学习数据集,可以用来进行分类任务。MLP算法是一种常用的神经网络算法,可以用来进行分类和回归任务。下面是一个使用MLP算法对鸢尾花数据集进行分类的示代码(Python): ```python from sklearn.neural_network import MLPClassifier from sklearn.datasets import load_iris from sklearn.model_selection import GridSearchCV, train_test_split # 加载数据集 iris = load_iris() X, y = iris.data, iris.target # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 定义模型 mlp = MLPClassifier() # 定义超参数搜索范围 param_grid = { 'hidden_layer_sizes': [(10,), (50,), (100,)], 'activation': ['relu', 'tanh', 'logistic'], 'alpha': [0.0001, 0.001, 0.01] } # 定义网格搜索 grid_search = GridSearchCV(mlp, param_grid=param_grid, cv=5) # 训练模型 grid_search.fit(X_train, y_train) # 输出最佳超参数和最佳得分 print("Best parameters: {}".format(grid_search.best_params_)) print("Best cross-validation score: {:.2f}".format(grid_search.best_score_)) # 在测试集上评估模型 print("Test set score: {:.2f}".format(grid_search.score(X_test, y_test))) ``` 这段代码使用了`sklearn`库的`MLPClassifier`类来定义模型,使用了`GridSearchCV`类来进行超参数搜索。`param_grid`指定了超参数搜索范围,包括隐藏层大小、激活函数和正则化系数。`cv`参数指定了交叉验证的折数。最后,输出了最佳超参数和最佳得分,并在测试集上评估了模型的性能。 需要注意的是,这只是一个示代码,实际使用时,应该根据具体情况进行调整和化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值