2023年第三届中国高校大数据挑战赛第二场赛题D题赛题:行业职业技术培训能力评价(成品论文 代码与思路 视频讲解)

赛题

中国是制造业大国,产业门类齐全,每年需要培养大量的技能娴熟的技术工人进入工厂。某行业在全国有多所不同类型(如国家级、省级等)的职业技术培训学校,进行 5 种技能培训。学员入校时需要进行统一的技能考核(称作“入校考核”),培训结束后再次进行统一考核(称作“离校考核”)并根据该考核成绩总分位次颁发级别不等的职业技术资格证和工作推荐 。与此同时,行业主管部门还需要根据考核成绩对培训学校的培训效果进行评价。

长期以来,该行业主管部门都是以学员离校考核成绩来评价培训学校的培训能力。这种评价制度显然有瑕疵,因为学员最终的考核成绩不仅仅是由于培训学校的培训能力导致的,还有学员的素质等其他因素,这使得部分培训学校不是把主要精力放在技能培训方法方式的改进上面,而是去抓生源质量。这样会最终加剧培训效果的不均衡, 并会挫伤大多数培训学校和培训教员的工作积极性,影响了学校改进培训教学管理的积极性,导致总体培训质量下降。因此,在对不同类型的培训学校进行公正合理的培训能力评价是一件很有意义的事情。附件数据给出了 6 个类型、160 个培训学校 32165 个学员的入学、离校的 5 种技能考核和总分成绩。为了便于比较和研究,所有数据已经进行数据标准化。

请你查阅相关文献,改造或独创性的运用大数据科学与技术方法,解决以下问题。

  1. 般而言,入学的各技能考核成绩与对应的离校考核成绩绩可能存在着或多或少或无的关联性。请你对此进行分析。

  2. 不同的培训学校有不同的生源质量、学校办学条件、学校师资水平等的差异,仅仅用离校考核成绩的高低无法真正有效的体现一个学校的真正的培训能力。请你运用附件数据,阐明什么类型的培训学校,具体哪些培训学校在培训能力上面有较高的水平?请给不同类型的培训学校培训能力进行排序,以及给出培训能力前 10 的学校编号。

  3. 每个培训学校有不同的特色,如有些培训学校技能 1 的培训能力很好,而有些学校可能是技能 2 的培训能力上有优势。请问, 哪些培训学校分别在哪种技能培训能力上有特色?每种技能列出前 5 名的学校编号。4.

4.假设行业主管部门计划给 10000 名学员颁发职业资格证书。请问,哪些因素对获取职业资格证书有着非常重要的影响?数据表中最后有 10 名学员的离校考核成绩被删除,请你判断他们能否获取职业资格证?如果职业资格证分为一级和二级(一、二级比例为 1:3),那这 10 名学员中谁能获取一级职业资格证书?

问题分析

问题 1 分析:使用相关性分析(如皮尔逊或斯皮尔曼相关系数)来建立入学和离校考核成绩之间的关系。
问题 2 分析:使用boost模型构建一个模型来衡量学校的培训效果,控制学员入学时的技能水平。
问题 3 分析:对于每个技能,使用问题 2 的方法分别评估学校的表现,识别每种技能培训能力最强的学校。
问题 4 分析:利用随机森林模型来预测学员是否能获得职业资格证书,以及其等级。

python代码

# 导入数据
file_path = '赛题数据.xlsx'

try:
    data_xlsx = pd.ExcelFile(file_path)
    
    sheet_names = data_xlsx.sheet_names
    
    data_preview = pd.read_excel(data_xlsx, sheet_name=sheet_names[0], nrows=5)
    
    (sheet_names, data_preview)
except Exception as e:
    str(e)
sheets_data = {}
for sheet_name in sheet_names:
    try:
        sheets_data[sheet_name] = pd.read_excel(data_xlsx, sheet_name=sheet_name, nrows=5)
    except Exception as e:
        sheets_data[sheet_name] = str(e)

sheets_data.keys(), {sheet_name: sheets_data[sheet_name].head() for sheet_name in sheets_data.keys()}

在这里插入图片描述

#皮尔逊相关性计算
data = pd.read_excel(data_xlsx, sheet_name='Sheet1')


correlations = data[['入学技能1考核成绩', '入学技能2考核成绩', '入学技能3考核成绩', '入学技能4考核成绩', '入学技能5考核成绩', '入学考核总分成绩',
                     '离校技能1考核成绩', '离校技能2考核成绩', '离校技能3考核成绩', '离校技能4考核成绩', '离校技能5考核成绩', '离校考核总分成绩']].corr()


correlations_select = correlations.loc[['入学技能1考核成绩', '入学技能2考核成绩', '入学技能3考核成绩', '入学技能4考核成绩', '入学技能5考核成绩', '入学考核总分成绩'],
                                       ['离校技能1考核成绩', '离校技能2考核成绩', '离校技能3考核成绩', '离校技能4考核成绩', '离校技能5考核成绩', '离校考核总分成绩']]


correlations_select

在这里插入图片描述

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

# 选择特征和标签
X = data[['入学技能1考核成绩', '入学技能2考核成绩', '入学技能3考核成绩', '入学技能4考核成绩', '入学技能5考核成绩']]
y = data['离校考核总分成绩']

# 标准化特征数据
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 分割数据集为训练集和测试集,测试集大小设置为20%
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)

X_train.shape, X_test.shape, y_train.shape, y_test.shape

在这里插入图片描述

from sklearn.ensemble import GradientBoostingRegressor
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
# 填充目标变量中的缺失值
y_filled = data['离校考核总分成绩'].fillna(data['离校考核总分成绩'].median())

# 选择特征和已填充缺失值的目标变量
X = data[['入学技能1考核成绩', '入学技能2考核成绩', '入学技能3考核成绩', '入学技能4考核成绩', '入学技能5考核成绩']]
y = y_filled

# 标准化特征数据
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 分割数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)

# 训练梯度提升回归模型
gbrt = GradientBoostingRegressor(n_estimators=200, learning_rate=0.01, max_depth=6, random_state=42)
gbrt.fit(X_train, y_train)

# 进行预测
y_pred_train = gbrt.predict(X_train)
y_pred_test = gbrt.predict(X_test)

# 计算训练集和测试集的均方误差
mse_train = mean_squared_error(y_train, y_pred_train)
mse_test = mean_squared_error(y_test, y_pred_test)

print(f"Training MSE: {mse_train}")
print(f"Test MSE: {mse_test}")

# 绘制实际值与预测值的比较图
plt.figure(figsize=(10, 6))
plt.scatter(y_test, y_pred_test, alpha=0.6)
plt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], 'k--', lw=4)
plt.title('实际值 vs. 预测值')
plt.xlabel('实际值')
plt.ylabel('预测值')
plt.show()

在这里插入图片描述

import matplotlib.pyplot as plt

feature_importances = rfc.feature_importances_
features = X.columns

# 排序特征重要性
sorted_idx = np.argsort(feature_importances)[::-1]

plt.figure(figsize=(10, 6))
plt.title("特征重要性")
plt.bar(range(X.shape[1]), feature_importances[sorted_idx], align="center")
plt.xticks(range(X.shape[1]), features[sorted_idx], rotation=45)
plt.xlim([-1, X.shape[1]])
plt.show()

from sklearn.metrics import confusion_matrix
import seaborn as sns

# 计算混淆矩阵
cm = confusion_matrix(y_test, y_pred)

plt.figure(figsize=(8, 6))
sns.heatmap(cm, annot=True, fmt="d", cmap="Blues", xticklabels=['不获得', '二级证书', '一级证书'], yticklabels=['不获得', '二级证书', '一级证书'])
plt.ylabel('实际类别')
plt.xlabel('预测类别')
plt.title('混淆矩阵')
plt.show()

在这里插入图片描述
在这里插入图片描述

from sklearn.metrics import classification_report

report = classification_report(y_test, y_pred, target_names=['不获得', '二级证书', '一级证书'])
print(report)

在这里插入图片描述

B站附上详细视频讲解

在这里插入图片描述

在这里插入图片描述

完整论文限量销售(限量销售,足够一二等奖)

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

node管理器 nvm

需求背景:如果出现多个项目 不同项目使用的node版本不一致 需要切换node版本 如果每次单独下载对应的node版本太过于麻烦,使用nvm可以下载多个node版本,通过nvm切换控制使用哪个node版本 nvm下载地址:https://github.com/coreybut…

0-13 - 准备:智能指针类和异常类

---- 整理自狄泰软件唐佐林老师课程 文章目录 1. 智能指针示例1.1 内存泄漏(臭名昭著的Bug )1.2 当代 C 软件平台中的智能指针1.3 智能指针的设计方案1.4 智能指针的使用军规1.5 编程实验:智能指针示例 2. 异常类构建2.1 现代 C 库必然包含充…

蜂窝物联:智慧畜牧养殖解决方案

我国是一个畜牧大国,在实现畜牧业发展的过程中,面临着企业生产管理水平低、政府监管薄弱、环境污染、行业数据资源分散等问题,阻碍了现代畜牧业的快速发展。 近年来,蜂窝物联针对畜牧业的发展现状,借助新一代物联网和…

华为OD七日集训第2期 - 按算法分类,由易到难,循序渐进,玩转OD

目录 一、适合人群二、本期训练时间三、如何参加四、七日集训第 2 期五、精心挑选21道高频100分经典题目,作为入门。第1天、逻辑分析第2天、字符串处理第3天、矩阵第4天、深度优先搜索dfs算法第5天、回溯法第6天、二分查找第7天、双指针 大家好,我是哪吒…

新闻媒体软文发布,提升企业宣传效果的最佳方法!

在新闻媒体上发布宣传效果确实很高,可以帮助企业提高宣传效果,为企业打开知名度。迅推客新闻媒体软文发布有很多优势。如果写软文推广公司,可以有很多方法,比如用软文推广公司产品,介绍公司产品的亮点,其实…

【QT+QGIS跨平台编译】之七十一:【QGIS_Analysis跨平台编译】—【qgsrastercalclexer.cpp生成】

文章目录 一、Flex二、生成来源三、构建过程一、Flex Flex (fast lexical analyser generator) 是 Lex 的另一个替代品。它经常和自由软件 Bison 语法分析器生成器 一起使用。Flex 最初由 Vern Paxson 于 1987 年用 C 语言写成。 “flex 是一个生成扫描器的工具,能够识别文本中…

一口气看完西汉210年历史

1、刘邦建国 公元前202,刘邦在垓下之战中击败楚王项羽,终结了历时7年的秦末大乱,建立西汉王朝。 西汉全盛时期地图 公元前201年,匈奴单于冒顿引兵攻打太原,异姓诸侯王之一的汉王信战败投降,刘邦被迫亲自率…

Python·算法·每日一题(3月12日) 删除链表的倒数第 N 个结点

题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2: 输入:head [1], n 1 输出:[]示例…

server win搭建apache网站服务器+php网站+MY SQL数据库调用电子阅览室

一、适用场景: 1、使用开源的免费数据库Mysql; 2、自己建网站的发布; 3、使用php代码建网站; 4、使用windows server作为服务器; 5、使用apache作为网站服务器。 二、win server 中apache网站服务器搭建 &#xff0…

【v4l2】V4L2框架-videobuf2(二)

系列文章目录 【V4L2】V4L2框架简述 【V4L2】V4L2框架之驱动结构体 【V4L2】V4L2子设备 【V4L2】V4L2框架-media device 【V4L2】V4L2框架-videobuf2 文章目录 系列文章目录用户空间的操作/dev/video 节点与 videobuf2 联系编程注意事项 用户空间的操作 用户空间 stream 操作 …

【rk3229 android7.1.2 替换默认输入法】

问题平台描述 问题描述解决方法 郑重声明:本人原创博文,都是实战,均经过实际项目验证出货的 转载请标明出处:攻城狮2015 Platform: Rockchip CPU:rk3229 OS:Android 7.1.2 Kernel: 3.10 问题描述 国内客户,觉得安卓自带的输入法不好用&#x…

C语言从入门到熟悉------第二阶段

printf的用法 printf的格式有四种: (1)printf("字符串\n"); 其中\n表示换行的意思。其中n是“new line”的缩写,即“新的一行”。此外需要注意的是,printf中的双引号和后面的分号必须是在英文输入法下。双引…

如何选择满足业务需求的CRM系统?六大评估标准全解析!

任何企业在最终部署CRM管理系统前,都会经历一系列决断环节,例如是否要使用CRM、选择什么样的系统、前期投入是多少、预期的投资回报率等等。在挑选CRM系统这个环节,企业更是面临着大量的选择。市场上CRM厂商数量众多,产品宣传让人…

【Python】一文带你了解如何获取 Python模块 安装路径

【Python】一文带你了解如何获取 Python模块 安装路径 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅…

ICC2:function eco / premask eco参考脚本

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 相关文章链接: ICC2:修short参考脚本 eco_netlist -by_verilog -file eco.v -write_changes eco.tcl source eco tcl place_eco_cells -eco_change_cells -no_legalize place_eco_cells -eco_cha…

c++: 引用能否替代指针? 详解引用与指针的区别.

文章目录 前言1. 引用和指针的最大区别:引用不能改变指向2. 引用和指针在底层上面是一样的3. 引用和指针在sizeof面前大小不同4. 有多级指针,没有多级引用5.引用是引用的实体,指针会向后偏移同一个类型的大小 总结 前言 新来的小伙伴如果不知道引用是什么?可以看我的上一篇文…

应用方案 | D78040场扫描电路

一 描 述 D78040是一款场扫描电路,偏转电流可达1.7Ap-p,可用于中小型显示器。 二 特 点 1、有内置泵电源 2、垂直输出电路 3、热保护电路 4、偏转电流可达1.7Ap-p 三 基本参数 四 应用电路图 1、应用线路 2、PIN5脚输出波形如下&#…

java中数组的定义与使用

Java中的数组跟c语言的数组几乎不一样,我们要区分对待。在之后你就能理解到我为什么说这句话了。 1.java中数组的创建与初始化 数组的创建 如下,皆为数组的创建。 double[] a; int[] b; 创建时的[]里面绝对不能填数字。 数组的初始化 主要分为动态…

Javaweb之Maven高级分模块设计与开发的详细解析

1. 分模块设计与开发 1.1 介绍 所谓分模块设计,顾名思义指的就是我们在设计一个 Java 项目的时候,将一个 Java 项目拆分成多个模块进行开发。 1). 未分模块设计的问题 如果项目不分模块,也就意味着所有的业务代码是不是都写在这一个 Java 项…

如何使用最大努力通知实现分布式事务?与本地消息表区别?

什么是最大努力通知? 最大努力通知(Best-Effort Notification)是一种在分布式系统中处理分布式事务的方法之一,它强调尽力而为,不保证完全的事务一致性,但可以通过一定的机制来提供部分保证。在最大努力通…