chelseaNB1 2023-01-26 08:39 采纳率: 75.7%
浏览 37
已结题

请问cross_val_score的scoring参数获得的r2得分是训练集还是测试集的分数

最近在复习python数据建模。请问交叉验证cross_val_score的scoring参数获得的r2得分是训练集还是测试集的分数?我看讲解就说是模型的得分。
还有一个就是GridSearchCV网格搜索后获得模型最优分数,同上,是训练集分数还是测试集分数?代码附在下方。有帮助必采纳!
1.cross_val_score

#交叉验证01⽰例:K折叠交叉验证
import numpy as np
import sklearn.model_selection as ms
import sklearn.naive_bayes as nb
x, y = [], [] #输⼊,输出
#读取数据⽂件
with open("D:\\pythonProject3\\learning\\resource\\multiple1.txt", "r") as f:
    for line in f.readlines():
        data = [float(s) for s in line.split(",")]
        x.append(data[:-1]) #输⼊样本:取从第⼀列到导数第⼆列
        y.append(data[-1]) #输出样本:取最后⼀列
train_x = np.array(x)
train_y = np.array(y, dtype=int)
#划分训练集和测试集
#train_x, test_x, train_y, test_y = ms.train_test_split(x, y, test_size=0.25, random_state=7)
#创建⾼斯朴素⻉叶斯分类器对象
model = nb.GaussianNB()
#先做交叉验证,如果得分结果可以接受,再执⾏训练和预测
pws = ms.cross_val_score(model, x, y,
                                cv=5,  #折叠数量
                                scoring='precision_weighted') #查准率
print("precision:", pws.mean())
rws = ms.cross_val_score(model, x, y, cv=5,
                                    scoring='recall_weighted') #召回率
print("recall:", rws.mean())
f1s = ms.cross_val_score(model, x, y, cv=5,
                                    scoring='f1_weighted') #F1得分
print("f1:", f1s.mean())
acc = ms.cross_val_score(model, x, y,cv=5,
                                    scoring='accuracy') #准确率
print("acc:", acc.mean())

2.GridSearchCV

#⽹格搜索⽰例
import numpy as np
import sklearn.model_selection as ms
import sklearn.svm as svm
x, y = [], []
with open("D:\\pythonProject3\\learning\\resource\\multiple2.txt", "r") as f:
    for line in f.readlines():
        data = [float(s) for s in line.split(",")]
        x.append(data[:-1]) #输⼊
        y.append(data[-1]) #输出
x = np.array(x)
y = np.array(y, dtype=int)
#通过⽹格搜索确定最优参数组合
#定义参数字典
params = [
          {"kernel": ["linear"],
           "C": [1, 10, 100, 1000]
          },
          {"kernel": ["poly"],
           "C": [1],
           "degree": [2, 3]
          },
          {"kernel": ["rbf"],
           "C": [1, 10, 100, 1000],
           "gamma": [1, 0.1, 0.01, 0.001]
          }
]
model = ms.GridSearchCV(svm.SVC(), params, cv=5) #创建⽹格搜索对象
model.fit(x, y) #训练
print("best_score_:", model.best_score_) #最优分数
print("best_params_:\n", model.best_params_) #最优参数组合

展开全部

  • 写回答

2条回答 默认 最新

  • 快撑死的鱼 2023-01-26 11:07
    关注

    回答不易,求求您采纳点赞哦

    cross_val_score函数中的scoring参数获得的R2得分是测试集的分数。交叉验证(cross-validation)是一种评估模型泛化能力的方法,它将训练集分成若干个互不重叠的部分,每次使用其中一部分作为测试集,其余部分作为训练集,计算模型在测试集上的表现。因此cross_val_score在计算R2得分时,一般是基于测试集上的表现来得出的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    chelseaNB1 2023-01-26 11:56

    奥奥 那下面那个网格搜索也是测试集的分数吗

    回复
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 2月2日
  • 已采纳回答 1月26日
  • 创建了问题 1月26日

悬赏问题

  • ¥15 已知手指抓握过程中掌指关节、手指各关节和指尖每一帧的坐标,用贝塞尔曲线可以拟合手指抓握的运动轨迹吗?
  • ¥50 libwebsockets 如何添加其他socket事件回调
  • ¥50 实现画布拖拽算子排布,通过flink实现算子编排计算,请提供思路
  • ¥15 esium自定义材质拉伸问题
  • ¥15 cmake+mingw使用<mysqlx/xdevapi.h>报错
  • ¥15 eNSP中防火墙的使用
  • ¥15 不能对数据库增删改但是可以查询
  • ¥15 关于#mlnet#的问题:mlnet相关请求(语言-c#)
  • ¥15 lvgl7.11怎么做出文字被选中的效果
  • ¥50 如何快速查看手机目标app的主要服务器ip
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部