机器学习 --- 模型评估、选择与验证

Java实训代码、答案,如果能够帮到您,希望可以点个赞!!! 

如果有问题可以csdn私聊或评论!!!感谢您的支持

第1关:为什么要有训练集与测试集

1、下面正确的是?( D

A、将手头上所有的数据拿来训练模型,预测结果正确率最高的模型就是我们所要选的模型。

B、将所有数据中的前百分之70拿来训练模型,剩下的百分之30作为测试集,预测结果正确率最高的模型就是我们所要选的模型。

C、将所有数据先随机打乱顺序,一半用来训练模型,一半作为测试集,预测结果正确率最高的模型就是我们所要选的模型。

D、将所有数据先随机打乱顺序,百分之80用来训练模型,剩下的百分之20作为测试集,预测结果正确率最高的模型就是我们所要选的模型。

2、训练集与测试集的划分对最终模型的确定有无影响?( A )

A、有

B、无

第2关:欠拟合与过拟合

1、请问,图中A与B分别处于什么状态?( B

A、欠拟合,欠拟合

B、欠拟合,过拟合

C、过拟合,欠拟合

D、过拟合,过拟合

2、如果一个模型在训练集上正确率为99%,测试集上正确率为60%。我们应该怎么做?( ABD )

A、加入正则化项

B、增加训练样本数量

C、增加模型复杂度

D、减少模型复杂度

第3关:偏差与方差

如果一个模型,它在训练集上正确率为85%,测试集上正确率为80%,则模型是过拟合还是欠拟合?其中,来自于偏差的误差为?来自方差的误差为?( B

A、欠拟合,5%,5%

B、欠拟合,15%,5%

C、过拟合,15%,15%

D、过拟合,5%,5%

第4关:验证集与交叉验证

1、假设,我们现在利用5折交叉验证的方法来确定模型的超参数,一共有4组超参数,我们可以知道,5折交叉验证,每一组超参数将会得到5个子模型的性能评分,假设评分如下,我们应该选择哪组超参数?( D

A、子模型1:0.8 子模型2:0.7 子模型3:0.8 子模型4:0.6 子模型5:0.5

B、子模型1:0.9 子模型2:0.7 子模型3:0.8 子模型4:0.6 子模型5:0.5

C、子模型1:0.5 子模型2:0.6 子模型3:0.7 子模型4:0.6 子模型5:0.5

D、子模型1:0.8 子模型2:0.8 子模型3:0.8 子模型4:0.8 子模型5:0.6

2、下列说法正确的是?( BCD )

A、相比自助法,在初始数据量较小时交叉验证更常用。

B、自助法对集成学习方法有很大的好处

C、使用交叉验证能够增加模型泛化能力

D、在数据难以划分训练集测试集时,可以使用自助法

第5关:衡量回归的性能指标

下列说法正确的是?( AB )

A、相比MSE指标,MAE对噪声数据不敏感

B、RMSE指标值越小越好

C、R-Squared指标值越小越好

D、当我们的模型不犯任何错时,R-Squared值为0

第6关:准确度的陷阱与混淆矩阵

import numpy as npdef confusion_matrix(y_true, y_predict):'''构建二分类的混淆矩阵,并将其返回:param y_true: 真实类别,类型为ndarray:param y_predict: 预测类别,类型为ndarray:return: shape为(2, 2)的ndarray'''#********* Begin *********#def TN(y_true, y_predict):return np.sum((y_true == 0) & (y_predict == 0))def FP(y_true, y_predict):return np.sum((y_true == 0) & (y_predict == 1))def FN(y_true, y_predict):return np.sum((y_true == 1) & (y_predict == 0))def TP(y_true, y_predict):return np.sum((y_true == 1) & (y_predict == 1))return np.array([[TN(y_true, y_predict), FP(y_true, y_predict)],[FN(y_true, y_predict), TP(y_true, y_predict)]])#********* End *********#

第7关:精准率与召回率 

import numpy as npdef precision_score(y_true, y_predict):'''计算精准率并返回:param y_true: 真实类别,类型为ndarray:param y_predict: 预测类别,类型为ndarray:return: 精准率,类型为float'''#********* Begin *********#def TP(y_true, y_predict):return np.sum((y_true ==1)&(y_predict == 1))def FP(y_true,y_predict):return np.sum((y_true ==0)&(y_predict==1))tp =TP(y_true, y_predict)fp =FP(y_true, y_predict)try:return tp /(tp+fp)except:return 0.0#********* End *********#def recall_score(y_true, y_predict):'''计算召回率并召回:param y_true: 真实类别,类型为ndarray:param y_predict: 预测类别,类型为ndarray:return: 召回率,类型为float'''#********* Begin *********#def FN(y_true, y_predict):return np.sum((y_true ==1)&(y_predict == 0))def TP(y_true,y_predict):return np.sum((y_true ==1)&(y_predict==1))fn =FN(y_true, y_predict)tp =TP(y_true, y_predict)try:return tp /(tp+fn)except:return 0.0#********* End *********#

第8关:F1 Score 

import numpy as npdef f1_score(precision, recall):'''计算f1 score并返回:param precision: 模型的精准率,类型为float:param recall: 模型的召回率,类型为float:return: 模型的f1 score,类型为float'''#********* Begin *********#try:return 2*precision*recall / (precision+recall)except:return 0.0#********* End ***********#

第9关:ROC曲线与AUC 

import numpy as npdef calAUC(prob, labels):'''计算AUC并返回:param prob: 模型预测样本为Positive的概率列表,类型为ndarray:param labels: 样本的真实类别列表,其中1表示Positive,0表示Negtive,类型为ndarray:return: AUC,类型为float'''#********* Begin *********#a= list(zip(prob,labels))rank =[values2 for values1,values2 in sorted(a, key=lambda x:x[0])]rankList=[i+1 for i in range(len(rank))if rank[i] ==1]posNum =0negNum =0for i in range(len(labels)):if(labels[i]==1):posNum+=1else:negNum+=1auc= (sum(rankList)-(posNum*(posNum+1))/2)/(posNum*negNum)return auc       #********* End *********#

第10关:sklearn中的分类性能指标 

from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_auc_scoredef classification_performance(y_true, y_pred, y_prob):'''返回准确度、精准率、召回率、f1 Score和AUC:param y_true:样本的真实类别,类型为`ndarray`:param y_pred:模型预测出的类别,类型为`ndarray`:param y_prob:模型预测样本为`Positive`的概率,类型为`ndarray`:return:'''#********* Begin *********#return accuracy_score(y_true, y_pred),precision_score(y_true, y_pred),recall_score(y_true, y_pred),f1_score(y_true, y_pred),roc_auc_score(y_true, y_prob)#********* End *********#

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

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

相关文章

HBase分布式数据库的原理和架构

一、HBase简介 HBase是是一个高性能、高可靠性、面向列的分布式数据库,它是为了在廉价的硬件集群上存储大规模数据而设计的。HBase利用Hadoop HDFS作为其文件存储系统,且Hbase是基于Zookeeper的。 二、HBase架构 *图片引用 Hbase采用Master/Slave架构…

气压计LPS25HB开发(1)----轮询获取气压计数据

气压计LPS25HB开发----1.轮询获取气压计数据 概述视频教学样品申请源码下载产品特性通信模式速率生成STM32CUBEMX串口配置IIC配置SA0地址设置串口重定向参考程序SA0设置模块地址获取ID复位操作BDU设置设置速率轮询读取数据演示 概述 本文将介绍如何使用 LPS25HB 传感器来读取数…

Unity Timeline学习笔记(1) - 创建TL和添加动画片段

Timeline在刚出的时候学习了一下,但是因为一些原因一直都没用在工作中使用。 版本也迭代了很久不用都不会用了,抽时间回顾和复习一下,做一个笔记后面可以翻出来看。 创建Timeline 首先我们创建一个场景,放入一个Plane地板&#…

中间件漏洞(redis)

目录 1.Redis服务器被挖矿案例 2.redis常见用途 3.redis环境配置 4.redis的持久化机制 5.redis动态修改配置 6.webshell提权案例 7.定时任务bash反弹连接提权案例 8.SSH Key提权案例 9.redis安全加固分析 1.Redis服务器被挖矿案例 我没有体验过,那就看看别…

CompletableFuture原理与实践-外卖商家端API的异步化

背景 随着订单量的持续上升,美团外卖各系统服务面临的压力也越来越大。作为外卖链路的核心环节,商家端提供了商家接单、配送等一系列核心功能,业务对系统吞吐量的要求也越来越高。而商家端API服务是流量入口,所有商家端流量都会由…

【论文笔记合集】LSTNet之循环跳跃连接

本文作者: slience_me LSTNet 循环跳跃连接 文章仅作为个人笔记 论文链接 文章原文 LSTNet [25] introduces convolutional neural networks (CNNs) with recurrent-skip connections to capture the short-term and long-term temporal patterns. LSTNet [25]引入…

AJAX 03 XMLHttpRequest、Promise、封装简易版 axios

AJAX 学习 AJAX 3 原理01 XMLHttpRequest① XHR 定义② XHR & axios 关系③ 使用 XHR④ XHR查询参数案例:地区查询(URLSearchParams)⑤ XHR数据提交 POST 02 PromisePromise 使用Promise - 三种状态案例:使用Promise XHR 获取…

海外媒体宣发套餐推广:如何选择最佳方案-华媒舍

在信息时代,传播和宣传已经成为各个行业发展的关键部分。尤其对于拓展国际市场的企业来说,海外媒体宣发更是至关重要。由于各种原因,很多企业在选择海外媒体宣发套餐时感到困惑。本文将为您介绍如何选择最佳的海外媒体宣发方案。 1.了解目标市…

C# Onnx C2PNet 图像去雾 室内场景

目录 介绍 效果 模型信息 项目 代码 下载 C# Onnx C2PNet 图像去雾 室内场景 介绍 github地址:GitHub - YuZheng9/C2PNet: [CVPR 2023] Curricular Contrastive Regularization for Physics-aware Single Image Dehazing [CVPR 2023] Curricular Contrasti…

【2023蓝桥杯】刷题笔记(C语言)

1、字符串包含最多的字符及其个数 #include<stdio.h> int main() {int i;char arr[1000] { 0 };//定义字符串数组arr&#xff0c;初始化为0gets(arr);//从键盘输入字符串给arr// printf("%s\n",arr);//输出字符串数组// for(i0;i<5;i){// printf("%…

让el-input与其他组件能够显示在同一行

让el-input与其他组件能够显示在同一行 说明&#xff1a;由于el-input标签使用会默认占满一行&#xff0c;所以在某些需要多个展示一行的时候不适用&#xff0c;因此需要能够跟其他组件显示在同一行。 效果&#xff1a; 1、el-input标签内使用css属性inline 111<el-inp…

GPT-5:人工智能的下一个前沿即将到来

当我们站在人工智能新时代的门槛上时&#xff0c;GPT-5即将到来的呼声愈发高涨且迫切。作为革命性的GPT-3的继任者&#xff0c;GPT-5承诺将在人工智能领域迈出量子跃迁式的进步&#xff0c;其能力可能重新定义我们与技术的互动方式。 通往GPT-5之路 通往GPT-5的旅程已经标记着…