利用网格搜索对超参数进行调节

简介: 【8月更文挑战第8天】利用网格搜索对超参数进行调节。

利用网格搜索对超参数进行调节

模型构建

'''
'kernel': 核函数
'C': SVR的正则化因子,
'gamma': 'rbf', 'poly' and 'sigmoid'核函数的系数,影响模型性能
'''
parameters = {
'kernel': ['linear', 'rbf'],
'C': [0.1, 0.5,0.9,1,5],
'gamma': [0.001,0.01,0.1,1]
}

使用网格搜索,以及交叉验证

model = GridSearchCV(SVR(), param_grid=parameters, cv=3)
model.fit(x_train, y_train)

输出:
GridSearchCV(cv=3, error_score='raise',
estimator=SVR(C=1.0, cache_size=200, coef0=0.0, degree=3, epsilon=0.1, gamma='auto',
kernel='rbf', max_iter=-1, shrinking=True, tol=0.001, verbose=False),
fit_params={}, iid=True, n_jobs=1,
param_grid={'kernel': ['linear', 'rbf'], 'C': [0.1, 0.5, 0.9, 1, 5], 'gamma': [0.001, 0.01, 0.1, 1]},
pre_dispatch='2*n_jobs', refit=True, return_train_score=True,
scoring=None, verbose=0)

获取最优参数

print ("最优参数列表:", model.bestparams)
print ("最优模型:", model.bestestimator)
print ("最优R2值:", model.bestscore)

输出:
最优参数列表: {'C': 5, 'gamma': 0.1, 'kernel': 'rbf'}
最优模型: SVR(C=5, cache_size=200, coef0=0.0, degree=3, epsilon=0.1, gamma=0.1,
kernel='rbf', max_iter=-1, shrinking=True, tol=0.001, verbose=False)
最优R2值: 0.797481706635164

可视化

ln_x_test = range(len(x_test))
y_predict = model.predict(x_test)

设置画布

plt.figure(figsize=(16,8), facecolor='w')

用红实线画图

plt.plot(ln_x_test, y_test, 'r-', lw=2, label=u'真实值')

用绿实线画图

plt.plot(ln_x_test, y_predict, 'g-', lw = 3, label=u'SVR算法估计值,$R^2$=%.3f' % (model.bestscore))

图形显示

plt.legend(loc = 'upper left')
plt.grid(True)
plt.title(u"波士顿房屋价格预测(SVM)")
plt.xlim(0, 101)
plt.show()

目录
相关文章
|
3月前
|
JSON API 数据格式
抖音商品详情API秘籍!轻松获取商品详情数据
抖音商品详情API由抖音开放平台提供,支持开发者获取商品基础信息、价格、销量、SKU等关键数据,适用于电商整合、导购平台及直播选品。接口基于HTTP协议,采用GET请求方式,返回JSON格式数据,便于解析处理。附Python请求示例代码,便于快速接入使用。
|
机器学习/深度学习 数据采集 前端开发
深入探讨模型泛化能力的概念、重要性以及如何通过交叉验证来有效评估和提升模型的泛化能力
【6月更文挑战第13天】本文探讨了机器学习中模型泛化能力的重要性,它是模型对未知数据预测的准确性。过拟合和欠拟合影响泛化能力,而交叉验证是评估模型性能的有效工具。通过K折交叉验证等方法,可以发现并优化模型,提高泛化能力。建议包括调整模型参数、选择合适模型、数据预处理、特征选择和集成学习。Python中可利用scikit-learn的cross_val_score函数进行交叉验证。
1632 7
|
12月前
|
机器学习/深度学习 计算机视觉 Python
图像数据的特征提取与预处理方法,涵盖图像数据的特点、主要的特征提取技术
本文深入探讨了图像数据的特征提取与预处理方法,涵盖图像数据的特点、主要的特征提取技术(如颜色、纹理、形状特征)及预处理步骤(如图像增强、去噪、分割)。同时介绍了Python中常用的OpenCV和Scikit-image库,并提供了代码示例,强调了预处理的重要性及其在提升模型性能中的作用。
1805 5
|
机器学习/深度学习 算法 数据处理
模型预测笔记(二):结合SMOTE来进行数据不均衡处理实操
这篇文章介绍了SMOTE算法,这是一种通过合成新样本来处理数据不均衡问题的技术,旨在提高模型对少数类别的识别能力。
847 1
|
算法 Java Go
深入了解堆排序算法
深入了解堆排序算法
245 1
|
机器学习/深度学习 Python
使用Python实现超参数调优
使用Python实现超参数调优
279 0
|
SQL HIVE Python
Window10 pyhive连接hive报错:Could not start SASL: b‘Error in sasl_client_start (-4) SASL(-4)
Window10 pyhive连接hive报错:Could not start SASL: b‘Error in sasl_client_start (-4) SASL(-4)
901 0
Window10 pyhive连接hive报错:Could not start SASL: b‘Error in sasl_client_start (-4) SASL(-4)
|
数据可视化 程序员 Linux
小白安装labelimg常见问题及其原因(带知识点理解)
小白安装labelimg常见问题及其原因(带知识点理解)
|
API 调度 Android开发
探索Android应用程序的后台运行机制
在移动应用开发中,了解和掌握Android应用程序的后台运行机制至关重要。本文将深入探讨Android平台上应用程序的后台运行原理及其影响因素,包括后台服务、广播接收器、JobScheduler等关键组件,以及如何有效管理后台任务以提升应用性能和用户体验。
1670 3
|
存储 Prometheus Kubernetes
使用loki和grafana展示ingress-nginx的日志
使用loki和grafana展示ingress-nginx的日志
使用loki和grafana展示ingress-nginx的日志