sklearn获得某个参数的不同取值在训练集和测试集上的表现的曲线刻画
2024-08-28 00:15:38
from sklearn.svm import SVC
from sklearn.datasets import make_classification
import numpy as np X,y = make_classification() def plot_validation_curve(estimator,X,y,param_name="gamma",
param_range=np.logspace(-6,-1,5),cv=5,scoring="accuracy"):
"""
描述:获得某个参数的不同取值在训练集和测试集上的表现
"""
from sklearn.model_selection import validation_curve
import matplotlib.pyplot as plt train_scores,test_scores = validation_curve(estimator=estimator,
X=X,
y=y,
cv=cv,
scoring=scoring,
param_name=param_name,
param_range=param_range) train_scores_mean = np.mean(train_scores, axis=1)
train_scores_std = np.std(train_scores, axis=1)
test_scores_mean = np.mean(test_scores, axis=1)
test_scores_std = np.std(test_scores, axis=1) plt.title("Validation Curve")
plt.xlabel("$\gamma$")
plt.ylabel("Score")
plt.ylim(0.0, 1.1) plt.semilogx(param_range,train_scores_mean,label="Training score",color="darkorange", lw=2)
plt.fill_between(param_range,
train_scores_mean-train_scores_std,
train_scores_mean+train_scores_std,
alpha=0.2,
color="darkorange",
lw=2) plt.semilogx(param_range, test_scores_mean, label="Cross-validation score",color="navy", lw=2)
plt.fill_between(param_range,
test_scores_mean - test_scores_std,
test_scores_mean + test_scores_std,
alpha=0.2,
color="navy",
lw=2) plt.legend(loc="best")
plt.show() plot_validation_curve(estimator=SVC(),
X=X,y=y,
param_name="gamma",
param_range=np.logspace(-6,-1,5),cv=5,scoring="accuracy")
最新文章
- PowerDesigner16 基本使用教程
- 使用dom4j创建和解析xml文件
- 堆内存指针的管理类(禁,引数(指针copy),值copy,移)
- 五大要求让BPM与企业对接
- 1562: [NOI2009]变换序列 - BZOJ
- hbase 取多个版本数据
- start mysqld on Mac server
- mxnet运行时遇到问题及解决方法
- linux配置yum源
- MySQL对于有大量重复数据表的处理方法
- MYSQL管理----数据库删除恢复
- MariaDB10自动化安装部署
- bug单的生命周期
- 图解MySQL索引--B-Tree(B+Tree)
- ReentrantLock学习
- C#语言不常用语法笔记
- wget 下载命令
- [日常] Go语言圣经--作用域,基础数据类型,整型
- js原型鏈與js繼承解析
- Android自己定义View之仪表盘