Scikit-learn提供了learning_curve类,方便获得和训练的可视化相关的数据。
例如,如果想要观察训练集使用不同样本数量和训练得分/测试得分的关系,可以使用learning_curve函数,在
Python机器学习可视化(一)sklearn.learning_curve
中介绍了训练样本数量——训练/测试得分曲线。
机器学习的方法中往往涉及到超参数的调整,本文利用validation_curve函数,以load_digit数据集和SGD分类为例,通过可视化的方式来考察不同超参数和性能之间的关系。实现结果如下图所示。
from sklearn.learning_curve import learning_curve, validation_curve
1.数据集选用load_digit数据集 简单介绍
from sklearn.datasets import load_digits
X = digits['data'] #(1797,64)
Y = digits['target'] #(1797,)
2.采用SGD分类器
from sklearn.linear_model import SGDClassifier
sgd = SGDClassifier(loss='log', shuffle=True, n_iter=5, penalty='l2', alpha=0.0001, random_state=3)
3.选择超参数区间:10的-2次方到10的5次方,共8个值
testing_range = np.logspace(-5,2,8) #自变量
train_scores, test_scores = validation_curve(sgd, X, Y, param_name='alpha',param_range=testing_range,
cv=10, scoring='accuracy', n_jobs=1)
解释:
1.输入
sgd:分类器
X: data
Y: 标签
cv: K折交叉验证,本文选择10
scoring: sklearn一般评估方法
机器学习中的precision, recall, accuracy, F值
param_name: 需要调整的超参数名称
param_range:超参数区间
2.输出:
train_scores:对于8个超参数的训练集,对10折交叉验证的10个训练得分,本文为(8,10)
test_scores:对于8个超参数的测试集,对10折交叉验证的10个测试得分,本文为(8,10)
1.对于8种不同参数的训练集,对10折交叉验证的10个训练/测试得分取平均值(即压缩列)。
2.得到得分范围的上下界
3.如果上下界区域太大,可以在np.std前乘以一个小于一的数
mean_train = np.mean(train_scores,1) #(8,)
# 得到得分范围的上下界
upper_train = np.clip(mean_train + np.std(train_scores,1),0,1)
lower_train = np.clip(mean_train - np.std(train_scores,1),0,1)
mean_test = np.mean(test_scores,1)
# 得到得分范围的上下界
upper_test = np.clip(mean_test + np.std(test_scores,1),0,1)
lower_test = np.clip(mean_test - np.std(test_scores,1),0,1)
然后就可以得到超参数——训练/测试得分曲线了。
plt.figure('Fig2')
plt.semilogx(testing_range,mean_train,'ro-',label='train')
plt.plot(testing_range,mean_test,'go-',label='test')
##填充上下界的范围
plt.fill_between(testing_range,upper_train,lower_train,alpha=0.2,#alpha:覆盖区域的透明度[0,1],其值越大,表示越不透明
color='r')
plt.fill_between(testing_range,upper_test,lower_test,alpha=0.2,#alpha:覆盖区域的透明度[0,1],其值越大,表示越不透明
color='g')
plt.grid()
plt.xlabel('alpha parameter')
plt.ylabel('accuracy')
plt.legend(loc='lower right')
plt.title('SGD')
plt.savefig('alpha_parameter.png')
plt.show()
完整代码:https://github.com/AsajuHuishi/examples_sklearn.learning_curve
参考文献:
《数据科学导论——Python语言实现》
首先安装:yarn add clipboardimport React, { useCallback, useState } from 'react';import ClipboardJS from 'clipboard';const Home = () => { const [text, setText] = useState('') // 选择一个按钮初始化一个Clipboard实例 new ClipboardJS('.btn') // 点击按钮请求接口数据复制.
这里J是目标函数,U是含有6个参数的函数,不过F和v可以通过试验的方式测出来,得到很多组一一对应的F和v的值,其余4个参数未知,想做的是其余4个参数的识别!求解答
kube-ovn-controller 逻辑职责是翻译 kubernetes 网络概念到 OVN,可以理解为 kube-ovn 的控制面功能,通过 kube-apiserver watch 所有网络相关事件,包括 Pod creation/deletion, Service/Endpoint modification, Networkpolicy changes 等等。然后翻译转为 OVN 逻辑网络的修改。也 watch kube-ovn 添加的 CRD,比如 VPC Subnet Vlan IP ...
(给前端大全加星标,提升前端技能)作者:浪里行舟https://github.com/ljianshu/Blog/issues/10前言ES6 虽提供了许多新特性,但我们...
一、安装unixODBC可以在 unixODBC 主页上获取:http://www.unixodbc.org/download.html。使用yum包管理器在基于 RedHat/Fedora 的系统上安装 unixODBC :yum -y install unixODBC unixODBC-devel使用zypper包管理器在基于 SUSE 的系统上安装 unixODBC :zypper in unixODBC-devel二、安装 unixODBC 驱动程序应..
转自http://blog.sina.com.cn/s/blog_891e6bdc0100v5g7.html,帮了我大忙,谢谢原博主!这两天写程序时发现打开eclipse后,出现“Failed to get the adb version: Cannot run program。。。”的报错提示,百度一下发现解决方案五花八门,经逐一尝试之后,竟然发现都是360惹的祸,坑爹的36
HBase is an open-source implementation of the GoogleBigTable architecture. That part is fairly easy to understand and grasp. What I personally feel is a bit more difficult is to understand how muc
1.最主要的一步,首先安装Windows server2008r2(现在网上流传的激活码基本都用不了了,所以就按着30天试用期来搭建网站,熟悉一下简要流程)2.打开菜单栏中的"服务管理器",然后点击里面的"添加角色"3.首先安装web服务器(IIS),选择后,按下一步4.继续下一步5.勾选:应用程序开发、日志、跟踪、性能全选、IIS6兼容性、FTP,然后下一步。如果不确定以后会用到哪些...
该案例是基于B站黑马上的ssm视频搭建的,是一个简单的form表单数据从前端jsp页面存储到数据库中,简单的实现了查询和添加操作,主要是用于理解SSM框架怎样才算整合完毕,话不多说,上代码!该案例是用Maven工程搭建,用的IDEA!目录结构如图:前端页面<%-- Created by IntelliJ IDEA. User: Cocowy Date: 2020/4/...
文章内容来自上面这篇pdfpdfpdf,如有错误,欢迎指正。简要介绍一下PhongPhongPhong和Blinn−PhongBlinn-PhongBlinn−Phong光照模型的特点。简要介绍一下问题,同时给出了N、L、V、PN、L、V、PN、L、V、P的意义(之后计算会用到)。第000步,此时最终颜色仅与物体本身的材质有关。第111步,我们可以加上环境光(它能将灯光均匀地照射在场景中每个物体上面)。这里对Ke、Ka、ILaK_e、K_a、I_{La}Ke、Ka、ILa进行了更.
检测方法1:1)使用Weblogic中间件JAVA反序列测试工具,输入端口号与ip点击connect按钮;2)若是结果出现connected!测试存在漏洞,出现connecting--测试不存在该漏洞检测方法2:1)打开DOS,输入java -jar weblogic_cmd.jar-H “127.0.0.1” –P 7001–C “ipconfig”;2)若能成功执行命令,则存在漏洞。解决方法:升级...
目录1. 环境变量切换1.1 建立各环境配置文件1.2 设置环境变量2. nacos配置中心动态切换2.1配置文件2.2 nacos配置2.3启动服务3.同一nacos环境下服务不同环境控制3.1 cloud方式3.1.1 引入依赖3.1.2添加配置3.1.3添加环境变量3.1.4启动服务4.Maven方式4.1创建配置文件4.2更改pom文件4.3maven打包常见问题1.读取不到配置多环境配置说明:...