sklearn svm 调参_sklearn调参(验证曲线,可视化不同参数下交叉验证得分)

一 、 原始方法:

思路:

1. 参数从 0+∞ 的一个 区间 取点, 方法如: np.logspace(-10, 0, 10) , np.logspace(-6, -1, 5)

2. 循环调用cross_val_score计算得分。

在SVM不同的惩罚参数C下的模型准确率。

import matplotlib.pyplot as plt

from sklearn.model_selection import cross_val_score

import numpy as np

from sklearn import datasets, svm

digits = datasets.load_digits()

x = digits.data

y = digits.target

vsc = svm.SVC(kernel='linear')

if __name__=='__main__':

c_S = np.logspace(-10, 0, 10)#在范围内取是个对数

# print ("length", len(c_S))

scores = list()

scores_std = list()

for c in c_S:

vsc.C = c

this_scores = cross_val_score(vsc, x, y, n_jobs=4)#多线程 n_jobs,默认三次交叉验证

scores.append(np.mean(this_scores))

scores_std.append(np.std(this_scores))

plt.figure(1, figsize=(4, 3))#绘图

plt.clf()

plt.semilogx(c_S, scores)#划线

plt.semilogx(c_S, np.array(scores)+np.array(scores_std), 'b--')

plt.semilogx(c_S, np.array(scores)-np.array(scores_std), 'b--')

locs, labels = plt.yticks()

plt.yticks(locs, list(map(lambda X: "%g" % X, locs)))#阶段点

plt.ylabel('CV score')

plt.xlabel('parameter C')

plt.ylim(0, 1.1)#范围

plt.show()

效果:

二、高级方法(validation_curve)

思路:

直接用validation_curve获得模型在不同参数下,每次训练得分和测试得分。

from sklearn import svm

from sklearn.model_selection import validation_curve

from sklearn.datasets import load_digits

import numpy as np

import matplotlib.pyplot as plt

digits = load_digits()

X = digits.data

y = digits.target

param_range = np.logspace(-6, -1, 5)

vsc = svm.SVC()

train_score, test_score = validation_curve(vsc, X, y, param_name='gamma', param_range=param_range, cv=10, scoring="accuracy", n_jobs=1)

train_score_mean = np.mean(train_score, axis=1)

train_score_std = np.std(train_score, axis=1)

test_score_mean = np.mean(test_score, axis=1)

test_score_std = np.std(test_score, axis=1)

plt.title("validation curve with SVM")

plt.xlabel("$\gamma%")

plt.ylabel("Score")

plt.ylim()

lw = 2

plt.semilogx(param_range, train_score_mean,label="training score", color="darkorange", lw=lw)

plt.fill_between(param_range, train_score_mean-train_score_std, train_score_mean+train_score_std, alpha=0.2, color="navy", lw=lw)

plt.semilogx(param_range, test_score_mean,label="test score", color="blue", lw=lw)

plt.fill_between(param_range, test_score_mean-test_score_std, test_score_mean+test_score_std, alpha=0.2, color="navy", lw=lw)

plt.legend(loc="best")

plt.show()

结果:

普通交叉验证(OCV)和广义交叉验证(GCV)

普通交叉验证OCV OCV是由Allen(1974)在回归背景下提出的,之后Wahba和Wold(1975)在讨论 了确定多项式回归中多项式次数的背景,在光滑样条背景下提出OCV. Craven和Wa ...

机器学习基础:(Python)训练集测试集分割与交叉验证

在上一篇关于Python中的线性回归的文章之后,我想再写一篇关于训练测试分割和交叉验证的文章.在数据科学和数据分析领域中,这两个概念经常被用作防止或最小化过度拟合的工具.我会解释当使用统计模型时,通常 ...

Spark2.0机器学习系列之2:基于Pipeline、交叉验证、ParamMap的模型选择和超参数调优

Spark中的CrossValidation Spark中采用是k折交叉验证 (k-fold cross validation).举个例子,例如10折交叉验证(10-fold cross valida ...

python 机器学习中模型评估和调参

在做数据处理时,需要用到不同的手法,如特征标准化,主成分分析,等等会重复用到某些参数,sklearn中提供了管道,可以一次性的解决该问题 先展示先通常的做法 import pandas as pd f ...

k-近邻算法采用for循环调参方法

//2019.08.02下午#机器学习算法中的超参数与模型参数1.超参数:是指机器学习算法运行之前需要指定的参数,是指对于不同机器学习算法属性的决定参数.通常来说,人们所说的调参就是指调节超参数.2. ...

sklearn交叉验证-【老鱼学sklearn】

交叉验证(Cross validation),有时亦称循环估计, 是一种统计学上将数据样本切割成较小子集的实用方法.于是可以先在一个子集上做分析, 而其它子集则用来做后续对此分析的确认及验证. 一开始 ...

GridsearchCV调参

在利用gridseachcv进行调参时,其中关于scoring可以填的参数在SKlearn中没有写清楚,就自己找了下,具体如下: parameters = {'eps':[0.3,0.4,0.5,0. ...

LSTM调参经验

0.开始训练之前先要做些什么? 在开始调参之前,需要确定方向,所谓方向就是确定了之后,在调参过程中不再更改 1.根据任务需求,结合数据,确定网络结构. 例如对于RNN而言,你的数据是变长还是非变长:输 ...

Python中Gradient Boosting Machine(GBM)调参方法详解

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

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

相关文章

php json获取get请求,PHP简单的Curl的Get请求和Curl的Post请求和file_get_contents的Get请求获取接口JSON数据...

PHP携带Cookie用Curl进行Post或Get请求获取数据简单的curl请求(Get请求)function hansCurl($url){$url"https://www.yyob.com";$ip rand(0, 255) . . . rand(0, 255) . . . rand(0, 255) . . . rand(0, 255);$header[] "accept: application/json";$head…

聊聊代码整洁之道

摘要: Any fool can write code that a computer can understand. Good programmers write code that humans can understand. 普通的工程师堆砌代码,优秀的工程师优雅代码,卓越的工程师简化代码。Any fool can write code that a computer c…

负载均衡SLB新功能介绍

摘要: 随着网络的各个核心部分业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。通过负载均衡扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、…

架构师必备技能:教你画出一张合格的技术架构图

戳蓝字“CSDN云计算”关注我们哦!当我们想用一张或几张图来描述我们的系统时,是不是经常遇到以下情况:对着画布无从下手、删了又来?如何用一张图描述我的系统,并且让产品、运营、开发都能看明白?画了一半的…

ios键盘done中文_IOS_IOS关闭键盘的方法,首先输入完成后按键盘上的done - phpStudy...

IOS关闭键盘的方法首先输入完成后按键盘上的done关闭键盘首先在Interface Builder中选择TextFields,然后在Text Field Attributes中找到Text Input Traits,选择Return Key为done。OK定义方法- (IBAction) textFieldDoneEditing:(id)sender; //按下Don…

php 显示对像编码,PHP面向对象之旅:类型提示

PHP是弱类型语言,向方法传递参数时候也不太区分类型。这样的使用会引起很多的问题,PHP开发者认为,这些问题应该是由代码书写者在书写代码时进行检验以避免。没有类型提示很危险下面的代码可能会出现问题。class NormalUser{/** 其它相关代码.…

java.net.SocketException: 权限不够

java.net.SocketException: 权限不够 一切问题的根源都是缺乏常识 0.0… 背景:今天部署一个spring cloud服务,tanainaide 服务的端口为80,然后我建了个tomcat用户来启动,但是死活起不来,搞了好久还以为是环境问题都重…

人工智能让边缘计算更有价值!

摘要: 继云计算之后,边缘计算这把火你了解多少?来了解一下吧。3月28日,在2018云栖大会深圳峰会上,阿里云宣布2018年将战略投入到边缘计算技术领域,并推出了首个IOT边缘计算产品Link Edge,将阿里云在云计算、…

硬件测试工程师之EMC项目-电磁干扰-谐波测试的引文

1: 介绍EMC项目-谐波测试 1.1引入文章 硬件测试工程师所面对的测试产品,尤其对于EMC来说,测试的种类很多,都是电器居多,例如电磁炉,USB适配器,空调,开关驱动,智能挂壁式…

儿童节,5岁宝宝写给程序员爸爸的一封信!萌翻了!

摘要: 六一儿童节到了,云栖社区特别采访了几位可爱的宝宝,来分享他们眼中的程序员爸爸妈妈。六一儿童节到了,云栖社区特别采访了几位可爱的宝宝,来分享他们眼中的程序员爸爸妈妈。最后一位宝宝的回答,萌翻了…

外部jar包_大数据系列之PySpark读写外部数据库

本文以MySQL和HBASE为例,简要介绍Spark通过PyMySQL和HadoopAPI算子对外部数据库的读写操作1、PySpark读写MySQLMySQL环境准备参考“数据库系列之MySQL主从复制集群部署”部分1.1 PyMySQL和MySQLDB模块PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库&#x…

Vue + Spring Boot 项目实战(二):使用 CLI 搭建 Vue.js 项目

文章目录一、安装 Vue CLI二、构建前端项目2.1.创建一个基于 webpack 模板的项目2.2. 安装图解2.3. 项目结构总览2.4. 运行项目2.5. 浏览器验证项目GitHub 地址: https://github.com/Antabot/White-Jotter在动手操作之前,我希望大家已经清楚什么是 “前后…

人工智能与大数据的完美结合

摘要: 人工智能是一种在大数据世界中指引方向和获取规律的方法。人工智能(AI)已经存在几十年了。然而,最近随着“大数据”的出现,它得到了越来越多的关注。维基百科对人工智能的释义如下:在计算机科学中,人…

这本销量突破70W+的 Python 插画式书籍,凭什么这么火?

戳蓝字“CSDN云计算”关注我们哦!最近不管我在互联网看新闻、看视频或者看公众号文章,甚至我在淘宝的时候都会看到一个词,那就是“Python”,我也不知道我对它做了什么,为什么老是给我推送Python?甚至我和程…

【人脸识别终结者】多伦多大学反人脸识别,身份欺骗成功率达99.5%

摘要: 多伦多大学研究人员设计新算法,通过动态地干扰人脸识别工具来保护用户的隐私。结果表明,他们的系统可以将原本可检测到的人脸比例从接近100%降低到0.5%。在一些社交媒体平台,每次你上传照片或视频时,…

快速运行python虚拟环境_快速入门Python 最新最流行的pipenv虚拟环境

2018的PyCon把最新型最先进的Python虚拟环境pipenv吵得火热。看了下介绍感觉真的很好用,它在virtualenv的基础上包装了一些更便捷的功能,解决了很多很多virtualenv欠缺的事情。简单说,pipenv就是把pip和virtualenv包装起来的一个便携工具。它…

php中$stu_by,PHP基础案例二:计算学生年龄

一、需求分析为了方便、准确、快捷的展示学的年龄,系统通常根据学生的出生日期进行自动计算。下面请利用PHP变量分别保存学生的年月日,并通过PHP中的data函数获取当前年月日,最后计算出学生的年龄。例如:出生年月日为:…

1273 - Unknown collation: 'utf8mb4_0900_ai_ci'

使用navicate12运行sql文件出错 报错: [ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci’ 1 报错原因: 生成转储文件的数据库版本为8.0,要导入sql文件的数据库版本为5.6,因为是高版本导入到低版本,引起1273错误 解决方法&#xff1…

iPhone11首批用户评价实属翻车现场;据悉,谷歌宣布投资30亿欧元扩大欧洲数据中心……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 微软说:杀手机器…

阿里七层流量入口 Tengine硬件加速探索之路

摘要: Tengine在软件层面已经有了深度的调试和优化经验,但是在硬件层面,通用处理器(CPU)已经进入了摩尔定律,有了瓶颈。而在业务量突飞猛进的当下,如何利用硬件来提升性能,承载双11等…