sklearn交叉验证函数cross_val_score用法及参数解释

article/2025/9/9 14:59:41

文章目录

  • 一 、使用示例
  • 二、参数含义
  • 三、常见的scoring取值
    • 1.分类、回归和聚类scoring参数选择
    • 2.f1_micro和f1_macro区别
    • 3.负均方误差和均方误差

一 、使用示例

import numpy as np
from sklearn.model_selection import train_test_split
from sklearn import svm
from sklearn.model_selection import cross_val_score
target=odata["target"]
X=odata.drop(columns="target")
clf = svm.SVC(kernel='linear', C=1)
scores = cross_val_score(clf,X,target, cv=5,scoring = "neg_mean_squared_error")
cross_val_score(estimator, X, y,, scoring=None, cv=None, n_jobs=None, verbose=0, fit_params=None, pre_dispatch="2*n_jobs")

二、参数含义

参数解释取值
estimator使用的模型实例实例化模型(SVM,XGBoost,DBDT)
X, y自变量,标签值数据集
soring评估效果取值下表详述
cv交叉验证时迭代次数整数
n_jobs同时工作的cpu个数(-1代表全部)[-1,1,2…]
verbose日志冗长度-
int冗长度0:不输出训练过程,1:偶尔输出,>1:对每个子模型都输出
fit_params传递给估计器的拟合方法的参数-
pre_dispatch控制并行执行期间调度的作业数量。减少这个数量对于避免在CPU发送更多作业时CPU内存消耗的扩大是有用的。“2*n_jobs”/数值

三、常见的scoring取值

下两个网址可以帮助理解
https://zhuanlan.zhihu.com/p/509437755
https://scikit-learn.org/stable/modules/model_evaluation.html#scoring-parameter

取值含义
‘accuracy’准确度
‘precision’精度
‘f1’f1_score对于二进制目标
‘f1_micro’微观F1
‘f1_macro’宏F1,二分类使用Accuracy和F1-score,多分类使用Accuracy和宏F1。
‘recall’召回率
‘roc_auc’AUC值
neg_log_lossneg_log_loss损失,结果越接近0,表示损失越小,模型效果越好,对数似然函数 Log_loss是一种直接根据概率预测结果衡量损失的函数,和逻辑回归中的损失函数类似。对数似然函数直接指向模型最优化方向,对于那些以最优化为目的求解模型的算法来说,会天然有较好的得分。比如逻辑回归、svm等,其中逻辑回归的损失函数就是对数似然。
‘r2’R方,越大越好,R^2可以为负
neg_mean_squared_error负均值平方误差,负数,越小越好,均方误差MSE的数值,其实就是neg_mean_squared_error去掉负号的数字
neg_mean_absolute_error负绝对均值误差,MAE的负取值,现实中MSE和MAE选一个来使用就好了

1.分类、回归和聚类scoring参数选择

 分类问题一般选择‘roc_auc’、‘neg_log_loss’、‘f1’等,根据实际需求选择。回归问题一般选择‘neg_mean_absolute_error、neg_mean_squared_error、‘r2’等 ,根据实际需求选择。聚类:adjusted_rand_score、completeness_score等

2.f1_micro和f1_macro区别

在这里插入图片描述

3.负均方误差和均方误差

虽然均方误差永远为正,但是sklearn中的参数scoring下,均方误差作为评判标准时,却是计算”负均方误差“(neg_mean_squared_error)。这是因为sklearn在计算模型评估指标的时候,会考虑指标本身的性质,均方误差本身是一种误差,所以被sklearn划分为模型的一种损失(loss)。在sklearn当中,所有的损失都使用负数表示,因此均方误差也被显示为负数了。真正的均方误差MSE的数值,其实就是neg_mean_squared_error去掉负号的数字。


http://chatgpt.dhexx.cn/article/TV5Pk6cs.shtml

相关文章

java val_Java中是否有val()函数?

慕尼黑的夜晚无繁华 很少有实际用例能够评估String作为Java代码的一个片段是必要的或可取的。也就是说,询问如何做到这一点实际上是XY问题:你实际上有一个不同的问题,可以用不同的方法来解决。先问问自己,这是怎么回事String你想要…

c语言val函数用法,函数VAL()什么意思怎么用啊?/

满意答案 Dickyshe 2013.03.22 采纳率:50% 等级:12 已帮助:12551人 将一个数据行变量转换成数字长整型变量如 text1.text "10" text2.text "11" text3.text text1.texttext2.text 按道理应该得到10+11(…

mysql中val是什么意思_val是什么函数

val是将由数字符号组成的字符型数据转换成相应的数值型数据的函数,其语法是“Val(S,V,Code)”,若字符串内出现非数字字符,那么只转换非数字字符前面的部分;若字符串的首字符不是数字符号,则返回数值零,但忽…

抽象方法的访问修饰符

抽象方法不能使用private修饰符,也不宜使用默认修饰符(default) (1)如果使用private修饰符 public abstract class SuperClass {/** The abstract method test in type SuperClass can only set a visibility modifi…

Java之访问修饰符

1.访问修饰符 java提供四种访问修饰符,用于控制方法和属性(成员变量)的访问权限 四种分别是 公开级别:public,对外公开 受保护级别:protected,对子类和同一个包的类公开 默认级别&#xff…

Java-访问修饰符

目录 一、private(私有权限) 二、default(默认权限) 三、protected(受保护权限) ​四、public(公共权限) 五、总结 示意图 private(default)protectedpublic本类YesYesYesYes同包的类NoYesYesYes不同包的父子关系NoNoYesYes不同包的非父子关系NoNoNoYes 注意点&#xf…

C# 的访问修饰符

访问修饰符的作用域分为三种: 类的访问修饰符方法的访问修饰符属性的访问修饰符 访问修饰符主要分为: public (公共的)protected (保护的)internal (内部的)private (私有的) 一,类的访问修饰符 默认的是 internal 二,方法的…

c# 访问修饰符

C# 中提供了 6 种访问修饰符:public、private、protected、internal、protected internal、private protected。   访问修饰符 在所有的类型和类型成员中都具有可访问性级别,用于控制是否可以从程序集或其他程序集中对其他代码的访问控制。 访问修饰符…

访问控制修饰符

定义理解 对类、变量、方法、接口的访问范围限制。一.类修饰符 1.直接声明 class 类名{ },即不加修饰符的时候 这种情况下,只可访问同一包中的类,不可访问不同包中的类。2.public,公共类的修饰符 这种情况下,既可访…

Java访问修饰符全面详细介绍

Java中有四种权限修饰符,其在同一项目中所对应的访问权限如下: 注意:默认不写即是default,而不是自己还特意加上default关键字。 Java语言有4种访问权限修饰符,下面按照权限从小到大的顺序对4种访问权限分别介绍: 1、…

Java基础:Java中四种访问修饰符

一、背景。 这篇文章主要介绍了Java中四种访问修饰符详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下。放假在家里休息,闲来无事,想巩固巩固自己的基础知识…

C#的5种访问修饰符

C#的5种访问修饰符 1、public 公共的 public 允许一个类将其成员变量和成员函数暴露给其他的函数和对象。任何公有成员都可以被外部的类访问。 class Person {public string name;public int age;public void SayHello(){Console.WriteLine("大家好,我叫{0}&a…

C#访问修饰符

C#中的访问修饰符有以下六种: public:同一程序集和和引用该程序集的所有代码都可访问。public成员可访问级别由该类型本身的级别决定。private:只有同一类中的成员可以访问protected:同一类和派生类中的代码可以访问internal&…

java的四个访问修饰符_Java中的四种访问修饰符

Java中修饰符分为两种:访问修饰符和非访问修饰符。修饰符中,有一些修饰符可以既可以修饰类,也可以修饰方法,但是有一些修饰符只能修饰符方法。 今天这篇文章先介绍一下四种访问修饰符。 1、private修饰符 private表示私有的。既然…

四种访问修饰符详解

有四种访问修饰符规定了定义的属性和方法能访问的区域 private关键字 用private关键字修饰的属性和方法只能在该类的大括号内访问,出了这个类就不能被访问了。当一个子类继承一个父类的属性和方法时,若父类的属性或方法被private修饰,那么子…

Java中的访问修饰符

JAVA中的访问修饰符,主要用于设置类、属性、方法的访问级别,有以下四种: 在编写代码的时候,如果没有特殊的考虑,建议这样使用权限: 成员变量使用private,隐藏细节构造方法使用public&#xff0…

java四种访问修饰符

访问修饰符 public,private,protected,以及不写(默认)时的区别: 定义:Java中,可以使用访问修饰符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。 分类: private : 在同一类内…

访问修饰符 [详解]

可能一下子会想到private、default、protected、public这四个,但如果问"static、abstract等是不是访问修饰符呢?" 这就不清楚了,所以下面研究前四个及再补充其他的 1、当前已知的 过一眼就行,毕竟后面会重新研究 1.1 范围从大到小排序是:public>protected>默…

四种访问修饰符

Java中修饰符分为两种:访问修饰符和非访问修饰符。修饰符中,有一些修饰符可以既可以修饰类,也可以修饰方法,但是有一些修饰符只能修饰符方法。 今天这篇文章先介绍一下四种访问修饰符。 1、private修饰符 private表示私有的。既…