机器学习(八):模型选择与调优

机器学习(八):模型选择与调优

机器学习(八):模型选择与调优

1、为什么需要交叉验证

交叉验证目的: 为了让被评估的模型更加准确可信

2、什么是交叉验证(cross validation)

交叉验证:将训练数据分成训练集和验证集。下图为例:将数据分成五部分,其中一部分用作验证集。然后在5个测试(组)之后,每次替换不同的验证集。即得到五组模型的结果,取平均值作为最终结果。也称为50%折扣交叉验证。

[En]

Cross-validation: divide the training data into * training and verification sets * . The following figure is an example: divide the data into five parts, one of which is used as a verification set. Then after 5 tests (groups), each time a different verification set is replaced. That is, the results of five groups of models are obtained, and the average value is taken as the final result. Also known as 50% discount cross-validation.

2.1 分析

我们过去知道数据分为训练集和测试集,但为了从训练中得到更准确的模型结果。执行以下操作

[En]

We used to know that the data is divided into training set and test set, but in order to get more accurate model results from training. Do the following

  • 训练集:训练集+验证集
  • 测试集:测试集

机器学习(八):模型选择与调优

3、超参数搜索-网格搜索(Grid Search)

机器学习(八):模型选择与调优

3.1 模型选择与调优

sklearn.model_selection.GridSearchCV(estimator, param_grid=None,cv=None)

  • 详细搜索估计器的指定参数值
    [En]

    conduct a detailed search for the specified parameter values of the estimator*

  • estimator:估计器对象
  • param_grid:估计器参数(dict){“n_neighbors”:[1,3,5]}
  • cv:指定几折交叉验证
  • fit:输入训练数据
  • score:准确率
  • 结果分析: 最佳参数:best_params_ print(“最佳参数:\n”, estimator.best_params_) 最佳结果:best_score_ print(“最佳结果:\n”, estimator.best_score_) 最佳估计器:best_estimator_ print(“最佳估计器:\n”, estimator.best_estimator_) 交叉验证结果:cv_results_ print(“交叉验证结果:\n”, estimator.cv_results_)

3.2鸢尾花案例增加K值调优

def knn_iris_gscv():"""    用KNN算法对鸢尾花进行分类,添加网格搜索和交叉验证    :return:"""    # 1)获取数据    iris = load_iris()    # 2)划分数据集    x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, random_state=22)    # 3)特征工程:标准化    transfer = StandardScaler()    x_train = transfer.fit_transform(x_train)    x_test = transfer.transform(x_test)    # 4)KNN算法预估器    estimator = KNeighborsClassifier()    # 加入网格搜索与交叉验证    # 参数准备    param_dict = {"n_neighbors": [1, 3, 5, 7, 9, 11]}    estimator = GridSearchCV(estimator, param_grid=param_dict, cv=10)    estimator.fit(x_train, y_train)    # 5)模型评估    # 方法1:直接比对真实值和预测值    y_predict = estimator.predict(x_test)    print("y_predict:\n", y_predict)    print("直接比对真实值和预测值:\n", y_test == y_predict)    # 方法2:计算准确率    score = estimator.score(x_test, y_test)    print("准确率为:\n", score)    # 最佳参数:best_params_    print("最佳参数:\n", estimator.best_params_)    # 最佳结果:best_score_    print("最佳结果:\n", estimator.best_score_)    # 最佳估计器:best_estimator_    print("最佳估计器:\n", estimator.best_estimator_)    # 交叉验证结果:cv_results_    print("交叉验证结果:\n", estimator.cv_results_)    return None

机器学习(八):模型选择与调优

Original: https://blog.51cto.com/u_15492594/5636320
Author: 是Dream呀
Title: 机器学习(八):模型选择与调优

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/500232/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Python知识:实用程序模块基础——OS模块

    Python中的OS模块提供了与操作系统交互的功能。 OS属于Python的标准实用程序模块。该模块提供了一种使用操作系统相关功能的可移植方式。 _os_和 _os.path_模块…

    Python 2023年9月21日
    070
  • yolov7训练自己的数据集及报错处理

    ################1 D:\Anaconda3\envs\py38torch_gpu\python.exe D:\needed\yolov7-main\train.p…

    Python 2023年8月1日
    0109
  • 大数据Kudu(二):Kudu架构

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

    Python 2023年9月15日
    0105
  • 机器学习——奇异值分解

    奇异值分解的计算过程 我们知道奇异值分解的表达式为:A = U Σ V T A=U\Sigma V^{\mathrm{T}}A =U ΣV T那如何求解U U U、Σ \Sigma…

    Python 2023年8月27日
    094
  • day25-Listener监听器

    Listener监听器 1.Listener监听器介绍 Listener监听器是JavaWeb三大组件之一。JavaWeb三大组件分别是:Servlet程序,Listener监听器…

    Python 2023年10月14日
    083
  • Python条件语句的用法

    python条件语句使用 if 表达式,难度不高,需要注意的是嵌套用法,以及如何设置对应的条件。 if 条件判断语句 python 语句是按固定顺序执行的,先执行前面的语句,再执行…

    Python 2023年10月23日
    094
  • Kafka学习(十四) api讲解篇(转载)

    python 发送kafka大体有三种方式 1 发送并忘记(不关注是否正常到达,不对返回结果做处理) 2 同步发送(通过get方法等待Kafka的响应,判断消息是否发送成功) 3 …

    Python 2023年6月12日
    0124
  • 抖音”凶猛”的幕后英雄,火山引擎 DataTester 累计做过 150 万次 A/B 测试

    在国内互联网领域,字节跳动是最为推崇 A/B 测试的公司,旗下”抖音”、”今日头条”两大最著名产品,连 APP 的名字都是来源于 A…

    Python 2023年10月24日
    077
  • 贪吃蛇代码

    import pygame, sys, randomfrom pygame.locals import *import copy WIDTH = 400HEIGHT = 400su…

    Python 2023年9月24日
    086
  • Matplotlib数据可视化高级

    目录 前言 1.多图布局 * 1.1 子视图 1.2 嵌套 1.3 多图布局分格显示 – 1.3.1 均匀布局 1.3.2 不均匀分布 1.4 双轴显示 2.文本、注释…

    Python 2023年9月2日
    0121
  • pytest 常用场景

    pytest常用用法 先走在跑起飞 * 文件夹的方式执行 – pytest 文件夹名 pytest 提供转测试打回 pytest 执行过滤用例(关键字) –…

    Python 2023年9月13日
    079
  • PHP将PDF转图片-实战

    Windows环境下 一、开启 Imagick 扩展 1、安装PHP扩展:Imagick,下载地址 https://pecl.php.net/package/imagick 注意和…

    Python 2023年9月28日
    0100
  • Python matplotlib 绘制散点图 还不收藏起来

    复习回顾 我们在往前几期中对matplotlib模块学习,对常用的反映数据变化的折线图,对比数据类型差异的柱状图和反应数据频率分布情况的直方图。 往前内容快速查看 超详细的Pyth…

    Python 2023年9月6日
    066
  • cookie中各参数含义

    XName:该Cookie的名称。一旦创建,该名称便不可更改。 Value:该Cookie的值。如果值为Unicode字符,需要为字符编码。如果值为二进制数据,则需要使用BASE6…

    Python 2023年5月24日
    0106
  • pytest文档79 – 内置 fixtures 之 cache 写入和读取缓存数据

    前言 pytest测试用例之间的参数如何传递?如在前置操作中生成了一个数据id,在测试用例需要引用,或者用例执行完成后需要在后置操作中删除。还有很多同学经常问到的case1 生成了…

    Python 2023年9月12日
    078
  • LabVIEW如何减少下一代测试系统中的硬件过时 1

    LabVIEW如何减少下一代测试系统中的硬件过时 1 许多测试系统的问题是,整个系统运行的时间必须超过单个系统组件的支持时间。有时被测试的设备有几十年的有效使用寿命,而许多测试仪器…

    Python 2023年9月27日
    083
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球