验证曲线(validation_curve)项目实战

验证曲线 validation_curve

一、简介

validation_curve验证曲线,可确定不同参数值下的训练和测试分数
根据指定参数的不同值计算估计器的得分
这与使用一个参数的网格搜索类似。不过,这也会计算训练得分,只是一个用于绘制结果的工具。

二、官网API

官网API

sklearn.model_selection.validation_curve(estimator, X, y, *, param_name, param_range, groups=None, cv=None, scoring=None, n_jobs=None, pre_dispatch='all', verbose=0, error_score=nan, fit_params=None)

需要导包:from sklearn.model_selection import validation_curve

这里的参数还是比较多的,具体的参数使用,可以根据官网给的demo进行学习,多动手尝试;这里就以一些常用的参数进行说明。

参数

①estimator

一个该类型的对象,每次验证时都会被克隆。它还必须实现 “预测”,除非 scoring 是一个不依赖 "预测 "来计算分数的可调用对象。这里使用支持向量机分类模型进行测试,SVC(C=3.0,kernel='sigmoid’,gamma=‘auto’,random_state=42),详细参数可参考博文:三、支持向量机算法(SVC,Support Vector Classification)(有监督学习)

具体官网详情如下:
在这里插入图片描述

②X

训练向量,其中 n_samples 是样本数,n_features 是特征数。
说白了就是自变量

具体官网详情如下:
在这里插入图片描述

③y

分类或回归时,相对于 X 的目标值;无监督学习时,则为None。
说白了就是因变量

具体官网详情如下:
在这里插入图片描述

④cv

确定交叉验证分割策略
None”,默认5倍交叉验证
int,用于指定(分层)KFold 中的折叠数,即K值

具体官网详情如下:
在这里插入图片描述

返回值

①train_scores

训练集得分

具体官网详情如下:
在这里插入图片描述

②test_scores

测试集得分

具体官网详情如下:
在这里插入图片描述

三、项目实战

①导包

若导入过程报错,pip安装即可

import numpy as np
import pandas as pd 
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.model_selection import train_test_split
from sklearn.model_selection import validation_curve

②加载数据集

数据集可以自己简单整个,csv格式即可,我这里使用的是6个自变量X和1个因变量Y
在这里插入图片描述
通过pandas读入文本数据集,展示前五行数据

fiber = pd.read_csv("./fiber.csv")
fiber.head(5) #展示下头5条数据信息

在这里插入图片描述

③调用函数获取损失结果

获取测试结果

train_sizes,train_loss, val_loss = learning_curve(SVC(C=3.0,kernel='sigmoid’,gamma=‘auto’,random_state=42), X, Y, cv=10, scoring='neg_mean_squared_error',train_sizes=[0.1,0.25,0.5,0.75,1]  # 在整个过程中的10%取一次,25%取一次,50%取一次,75%取一次,100%取一次
)
print(train_sizes) 
print(train_loss)
print(val_loss)

④绘图

train_loss_mean = -np.mean(train_loss, axis=1)
val_loss_mean = -np.mean(val_loss,axis=1)
plt.plot(train_sizes, train_loss_mean, 'o-',color='r',label='Training')
plt.plot(train_sizes,val_loss_mean,'o-',color='g', label='Cross-validation')
plt.xlabel('Training examples')
plt.ylabel('Loss')
plt.legend(loc='best')
plt.show()

⑤完整代码

from sklearn.model_selection  import learning_curve
from sklearn.svm import SVC
import matplotlib.pyplot as plt
import numpy as npfiber = pd.read_csv("./fiber.csv")
fiber.head(5) #展示下头5条数据信息X = fiber.drop(['Grade'], axis=1)
Y = fiber['Grade']train_sizes,train_loss, val_loss = learning_curve(SVC(C=3.0,kernel='sigmoid’,gamma=‘auto’,random_state=42), X, Y, cv=10, scoring='neg_mean_squared_error',train_sizes=[0.1,0.25,0.5,0.75,1]  # 在整个过程中的10%取一次,25%取一次,50%取一次,75%取一次,100%取一次
)print(train_sizes) 
print(train_loss)
print(val_loss)train_loss_mean = -np.mean(train_loss, axis=1)
val_loss_mean = -np.mean(val_loss,axis=1)
plt.plot(train_sizes, train_loss_mean, 'o-',color='r',label='Training')
plt.plot(train_sizes,val_loss_mean,'o-',color='g', label='Cross-validation')
plt.xlabel('Training examples')
plt.ylabel('Loss')
plt.legend(loc='best')
plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/92900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【AI视野·今日Robot 机器人论文速览 第四十五期】Mon, 2 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Mon, 2 Oct 2023 Totally 42 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers Learning Decentralized Flocking Controllers with Spatio-Temporal Graph Neural Network Authors Siji Chen, Yanshen Sun, …

R语言中更改R包安装路径

看到这些包下载到我的C盘,我蛮不爽的: 所以决定毫不犹豫的改到D盘: 首先,我们需要在RStudio中新建一个初始启动文件: file.edit(~/.Rprofile) 然后去你喜欢的环境新建一个文件夹存放安装的包的位置,我喜欢…

uboot启动流程-涉及board_init_f 函数

一. uboot启动流程 _main 函数中会调用 board_init_f 函数,本文简单分析一下 board_init_f 函数。 二. board_init_f 函数 board_init_f 函数主要有两个工作: (1) 初始化一系列外设,比如串口、定时器,或者打印一些消息等。…

动态规划算法(2)--最大子段和与最长公共子序列

目录 一、最大子段和 1、什么是最大子段和 2、暴力枚举 3、分治法 4、动态规划 二、最长公共子序列 1、什么是最长公共子序列 2、暴力枚举法 3、动态规划法 4、完整代码 一、最大子段和 1、什么是最大子段和 子段和就是数组中任意连续的一段序列的和,而…

阿里云服务器方升架构、自研硬件、AliFlash技术创新

阿里云服务器技术创新:服务器方升架构及自研硬件、自研存储硬件AliFlash和阿里云异构计算加速平台,阿里云百科分享阿里云服务器有哪些技术创新: 目录 服务器技术创新 服务器方升架构及自研硬件 自研存储硬件AliFlash 阿里云异构计算加速…

【Excel】快速提取某个符号前面的数据内容

【问题描述】 在使用excel整理数据过程中,经常与需要调整数据后,进行使用。 例如凭证导出后,科目列是包含科目编码和科目名称的。 但由于要将数据复制到其他的导入模板上使用,对应的模板只需要科目编码,不需要科目名称…

常说的I2C协议是干啥的(电子硬件)

I2C(Inter-Integrated circuit)协议是电子传输信号中常用的一种协议。 它是一种两线式串行双向总线,用于连接微控制器和外部设备,也因为它所需的引脚数只需要两条(CLK和DATA),硬件实现简单&…

Acwing 906. 区间分组

Acwing 906. 区间分组 知识点题目描述思路讲解代码展示 知识点 贪心 题目描述 思路讲解 这段代码是用来维护一个最小堆,以确保右边界不相交的区间被正确地保留在堆中。让我详细解释这段代码: heap.empty():这个条件检查最小堆 heap 是否为…

【牛客网】JZ39 数组中出现次数超过一半的数字

题目 思路 思路1 将数组排序,再保证有结果的情况下,此时数组中间的数字就是想要的结果 思路2 在保证有结果的情况下,此时数组的的众数是数组长度的一半以上 所以我们可以通过抵消的做法来找到最终的结果 我们可以从头遍历这个数组,如果两个数不相同,则消去这两个数,最坏的…

Bug:elementUI样式不起作用、Vue引入组件报错not found等(Vue+ElementUI问题汇总)

前端问题合集:VueElementUI 1. Vue引用Element-UI时,组件无效果解决方案 前提: 已经安装好elementUI依赖 //安装依赖 npm install element-ui //main.js中导入依赖并在全局中使用 import ElementUI from element-ui Vue.use(ElementUI)如果此…

C++笔记之环形队列

C笔记之环形队列 code review! 文章目录 C笔记之环形队列1.概念I——摘自 https://mp.weixin.qq.com/s/HUn9TF09RZ-UJKYPR5ZXhA2.概念II——摘自 http://t.csdnimg.cn/72bng3.概念III—— 摘自https://mp.weixin.qq.com/s/9Ga502p1DLcc6o75JBQlDg4.概念IV—— 摘自https://mp…

基于SSM的网上药品售卖系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

Django之模板

一)模板(T) 什么时候会使用模板呢? 仅对于Django这个框架来说,因为其是默认前后端不分离的框架(前后端不分离值开发时前后端的代码在一起,不通过接口的方式连接,通过模板渲染的方式…

Ubuntu 20.04 安装部署 TiDB DM v7.3.0 集群【全网独家】

文章目录 测试环境说明TiDB 单机环境部署DM 集群部署1. 免密设置2. 组件下载3. DM 配置文件模板获取4.DM 配置文件设置5.部署与启动 DM 集群 前言: 放眼全网,我找不出一篇在 Ubuntu 里面搭建 DM 集群的文章,虽然 TiDB 官方推荐使用 CentOS 系…

多线程 - 阻塞式队列

阻塞队列 阻塞队列,也是一个队列 ~~ 先进先出 实际上有一些特殊的队列,不一定非得遵守先进先出的 ~~ 优先级队列(PriorityQueue) 阻塞队列,也是特殊的队列,虽然也是先进先出的,但是带有特殊的功能: 阻塞 如果队列为空,执行出队列操作,就会阻塞.阻塞到另一个线程往队列里添加元…

gitee 远程仓库操作基础(二)

(1)clone远端仓库,本地建立分支推送 (基于远程仓库版本库 本地建立分支开发新功能) git clone gitgitee.com:xxxxx/alsa_test.git git remote add origin gitgitee.com:xxxxx/alsa_test.git进入clone过后路径代码,查看本地分支,发现该项目远程仓库有很多分支 基于…

分布式文件存储系统Minio实战

分布式文件系统应用场景 互联网海量非结构化数据的存储需求电商网站:海量商品图片视频网站:海量视频文件网盘 : 海量文件社交网站:海量图片 1. Minio介绍 MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存…

【JVM】第四篇 垃圾收集器ParNewCMS底层三色标记算法详解

导航 一. 垃圾收集算法详解1. 分代收集算法2. 标记-复制算法3. 标记-清除算法4. 标记-整理算法二. 垃圾收集器详解1. Serial收集器2. Parallel Scavenge收集器3. ParNew收集器4. CMS收集器三. 垃圾收集底层三色标记算法实现原理1. 垃圾收集底层使用三色标记算法的原因?2. 垃圾…

[Linux 基础] 一篇带你了解linux权限问题

文章目录 1、Linux下的两种用户2、文件类型和访问权限(事物属性)2.1 Linux下的文件类型2.2 基本权限2.3 文件权限值的表示方法(1)字符表示方法(2)8进制数值表示方法 2.4 文件访问权限的相关设置方法(1) chm…

javaee SpringMVC中json的使用

jsp <%--Created by IntelliJ IDEA.User: 呆萌老师:QQ:2398779723Date: 2019/12/6Time: 15:55To change this template use File | Settings | File Templates. --%> <% page contentType"text/html;charsetUTF-8" language"java" %> <%St…