《Python数据分析与机器学习》 课件 第14章 超参数调优与模型.pptx

《Python数据分析与机器学习》 课件 第14章 超参数调优与模型.pptx

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Python数据分析与机器学习第14章 超参数调优与模型选择 《Python数据分析与机器学习》■在机器学习过程中,可以通过调整超参数或选择不同的算法来寻找更加合适的模型。■超参数是指用算法拟合学习样本数据之前需要指定的参数,如迭代次数、训练过程中的正则化方式等。这些超参数通常需要根据经验来设置。更 合理的方式是通过多次调整超参数,比较模型性能,确定合理的超参数,从而达到选择较优模型的目的。■在选择某种算法来训练模型时,通常也依赖于对数据的直观判断和经验。因此,也可以结合网格搜索和轨道来搜索轨道中使用的不同算法,比较 不同算法得到的模型性能,从而选择较优的模型。 《Python数据分析与机器学习》14.1 搜索超参数来选择模型■通过搜索超参数,比较不同超参数下的模型性能,可以找到在特定数据集下采用何种超参数组合来取得较好的机器学习模型。Scikit-learn中的搜索方式主要有基于循环语句的网格搜索、使用GridSearchCV进行带交 叉验证的网格搜索、使用RandomizedSearchCV进行带交叉验证的随机搜 索。 《Python数据分析与机器学习》14.1.1 基于循环语句的网格搜索可以通过嵌套循环来实现多个超参数的搜索。每一个循环对应一个超参数的迭代搜索。这里以支持向量机分类器SVC对鸢尾花数据集进行分类为例,说明利用循环来搜索超参数的过程。【例14-1】用SVC对鸢尾花数据集进行分类,以测试集预测准确率为判断标准,利用循环语句寻找较优的超参数kernel和C的组合。程序如example14_1.py所示。#example14_1.py #coding=utf-8from sklearn.svm import SVCfrom sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_split iris = load_iris()X=iris.data y=iris.target 《Python数据分析与机器学习》X_train,X_test,y_train,y_test = train_test_split( X,y,test_size=0.2,stratify=y,random_state=0)best_score=0best_param={"kernel":None,"C":None} best_model=Nonefor kernel in {"linear", "poly", "rbf", "sigmoid"}:for C in (0.001,0.01,0.1,0.5,1,5,10,100):cls = SVC(C=C,kernel=kernel,random_state=0) cls.fit(X_train,y_train)test_score = cls.score(X_test,y_test)if test_score>best_score: best_score=test_score best_param["kernel"]=kernel best_param["C"]=C best_model=cls #保存最佳模型 《Python数据分析与机器学习》#循环找到的最佳超参数组合及在此组合下的测试集预测准确率 print(f"最佳超参数组合为:{best_param}")print(f"对应的测试集最佳准确率:{best_score}")#利用最佳模型best_model进行预测 y_test_pred = best_model.predict(X_test)print(f"测试集前5个样本的预测标签:{y_test_pred[:5]}")程序执行结果如下:最佳超参数组合为:{"kernel": "poly", "C": 0.1}对应的测试集最佳准确率:1.0测试集前5个样本的预测标签:[0 1 0 2 0]从结果可以看出,采用rbf内核、C值取0.5时获得最佳的预测准确率。 《Python数据分析与机器学习》14.1.2 划分验证集避免过拟合■机器学习可以通过调整超参数来提高对未见过数据的预测能力。这一过程称为模型选择,也就是针对给定的问题选择最优的超参数。如果在选择模型过程中,反复使用相同的测试集,模型将逐渐倾向于选择更好地拟合测试集的超参数,更容易引起模型的过拟合。■进行模型选择时,更好的方式是将数据划分为训练集、验证集和测试集。训练集用于拟合不同的超参数下的模型,验证集用于模型选择过程中的 性能验证。使用模型选择过程中没有见过的测试集来评价最终选择的模 型泛化能力,可以得到更加客观的评价结果。划分方法是:在原来将数 据集划分为训练集和测试集的基础上,进一步将训练集划分为新的训练 集和验证集

文档评论(0)

151****7306 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档