Python数据分析-学生表现预测

news2024/10/12 2:21:17

一、研究背景

随着教育水平的不断提升,学生的学习成绩和综合素质得到了越来越多的关注。除了传统的学术成绩外,课外活动、家长支持等因素也在很大程度上影响着学生的学习表现和未来发展。现代社会中,家长、教师、学校和研究人员都在努力寻找能够帮助学生提升成绩和综合素质的关键因素。因此,研究学生的课外活动参与情况、家长支持程度以及学习时间等因素与其学业表现之间的关系具有重要意义。

在教育研究领域中,已有诸多文献表明,课外活动不仅能够培养学生的社交能力、领导力和团队协作能力,还对他们的学习成绩产生了积极影响。同样,家长的支持不仅在情感上给予学生动力,还在物质和智力支持方面提供了坚实的基础。此外,学生的学习时间和出勤率作为学业表现的直接变量,也与其最终成绩紧密相关。然而,这些因素如何在不同性别群体中表现,以及各个变量之间是否存在交互作用,仍然值得深入探讨。

二、研究意义

本研究旨在探讨多种因素对学生最终学业成绩的影响,尤其是性别、课外活动参与、家长支持、学习时间和出勤率之间的相互作用。这项研究的意义主要体现在以下几个方面:

  1. 丰富教育研究理论:通过分析多种影响学生成绩的因素,可以为教育研究领域提供新的理论依据,帮助我们更全面地理解学生学业表现背后的复杂因素。

  2. 提供实践指导:本研究的结果可以为教育工作者、学校管理人员和家长提供实质性建议。例如,如何有效鼓励学生参与课外活动、提高家长的支持力度,以及合理规划学生的学习时间等。

  3. 关注性别差异:研究中性别维度的引入可以帮助教育者了解男性和女性学生在课外活动、学习方式和家长支持方面的差异,从而提供更有针对性的教育方案。

  4. 政策制定参考:研究成果还可以为教育政策的制定者提供依据,推动更具包容性和灵活性的教育政策,为不同背景的学生提供公平的发展机会。

三、实证分析

导入数据分析基础包

代码和数据集

import pandas as pd
import numpy as np

 读取数据集

df=pd.read_csv(r"student_performance.csv")
df

 

 查看数据基本信息

接下来进行数据可视化

 

import seaborn as sns
import matplotlib.pyplot as plt
tdf=df['Gender'].value_counts().reset_index()
tdf.columns=['Gender','count']
tdf1=df['ExtracurricularActivities'].value_counts().reset_index()
tdf1.columns=['ExtracurricularActivities','count']
tdf2=df['ParentalSupport'].value_counts().reset_index()
tdf2.columns=['ParentalSupport','count']
fig,axs=plt.subplots(1,3,figsize=(13,13),dpi=200)
axs[0].set_title("性别分布")
axs[0].pie(x=tdf['count'],labels=tdf['Gender'],autopct='%.2f%%')
axs[0].legend(tdf['Gender'])
axs[1].set_title("课外活动分配")
axs[1].pie(x=tdf1['count'],labels=tdf1['ExtracurricularActivities'],autopct='%.2f%%')
axs[1].legend(tdf1['ExtracurricularActivities'])
axs[2].set_title("分配家长抚养费")
axs[2].pie(x=tdf2['count'],labels=tdf2['ParentalSupport'],autopct='%.2f%%')
axs[2].legend(tdf2['ParentalSupport'])
plt.tight_layout()
plt.show()

 

此数据集中的男生和女生数量相等 对于课外活动,大约 80% 的学生参加了课外活动,其中 20% 的学生参加了 3 种课外活动 大约 70% 的学生受益于中高家长支持。而其余 30% 的不幸者试图从低父母支持:(中受益 总体而言,数据显示,学生群体总体上是积极的,他们强烈倾向于参与课外活动,并且有相当多的学生受益于支持性的家长关系。 

fig,axs=plt.subplots(1,2,figsize=(15,6),dpi=200)
sns.countplot(x=df['ExtracurricularActivities'],hue=df['Gender'],ax=axs[0])
sns.countplot(x=df['ParentalSupport'],hue=df['Gender'],ax=axs[1])
plt.tight_layout()
plt.show()

 

与女性相比,男性不参加课外活动(类别 0)的学生人数更高,这非常令人担忧 与男性相比,女性对 1 项和 2 项课外活动的参与度更高。 男女对 3 项课外活动的参与率几乎相等,总体人数略低。 结论:女学生总是参加很棒的课外活动,而男学生更有可能不参加任何活动。

父母支持与性别 (右图):获得家长高支持的男女学生分布相等。 女学生在中等父母支持类别中占主导地位,表明该群体中更倾向于中等程度的支持。 男学生是唯一属于低父母抚养费类别的学生,没有女性代表。

按性别划分的最终成绩:与男性相比,女性的最终成绩往往更高,分数的可变性较小。 女性的中位等级高于男性。 女性群体中有一些异常值,但总体而言,女性的平均表现优于男性。

课外活动的最终成绩:参与更多课外活动的学生(尤其是那些有 3 项活动的学生)往往具有较高的最终成绩,他们的分数差距较小。 箱线图显示,随着课外活动数量的增加,成绩呈增加趋势。 没有课外活动的学生的最终成绩中位数最低,而参与 3 项活动的学生最高。

家长支持的最终成绩:父母支持较高的学生往往有更好的最终成绩。 父母支持与最终成绩之间存在明显的正相关关系,父母支持率高导致成绩中位数最高,而父母支持率低。

plt.figure(figsize=(15, 4),dpi=200)
sns.scatterplot(data=df, x='StudyHoursPerWeek', y='PreviousGrade', label='Previous Grade')
sns.scatterplot(data=df, x='StudyHoursPerWeek', y='FinalGrade', label='Final Grade')
plt.title("每周学习时间与期末和前期成绩")
plt.legend()
plt.show()

每周更多的学习时间与更高的学习成绩呈正相关,无论是在以前的成绩还是最终成绩方面。 也可以推断出前期成绩和期末成绩之间的一致性,因为之前成绩好的学生往往在有足够的学习时间的情况下继续表现良好。 

 

fig, axs = plt.subplots(1, 3, figsize=(18, 6))

sns.scatterplot(x=df['StudyHoursPerWeek'], y=df['FinalGrade'], ax=axs[0],hue=df['Gender'])
axs[0].set_title('学习时间与最终成绩')
axs[0].set_xlabel('Study Hours Per Week')
axs[0].set_ylabel('Final Grade')


sns.scatterplot(x=df['AttendanceRate'], y=df['FinalGrade'], ax=axs[1],hue=df['Gender'])
axs[1].set_title('出勤率与最终成绩')
axs[1].set_xlabel('Attendance Rate')
axs[1].set_ylabel('Final Grade')


sns.scatterplot(x=df['ExtracurricularActivities'], y=df['FinalGrade'], ax=axs[2],hue=df['Gender'])
axs[2].set_title('课外活动与最终成绩')
axs[2].set_xlabel('Extracurricular Activities')
axs[2].set_ylabel('Final Grade')

plt.tight_layout()
plt.show()

 相关系数热力图

plt.figure(figsize=(12,4),dpi=200)
tdf=df.select_dtypes(include=['int64'])
sns.heatmap(tdf.corr(),annot=True)
plt.show()

 建模前数据预处理

df.drop(columns=['StudentID','Name'],inplace=True,axis=1)
print(df['Gender'].value_counts())

df['Gender']=df['Gender'].apply(lambda x: 1 if x=='Male' else 0)
print(df['ParentalSupport'].value_counts())

df['ParentalSupport']=df['ParentalSupport'].apply(lambda x: 2 if x=='High' else 1 if x=='Medium' else 0)
print(df.info())

plt.figure(figsize=(12,4),dpi=200)
sns.heatmap(df.corr(),annot=True)
plt.show()

 建立模型

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score,mean_squared_error,mean_absolute_error

数据准备和标准化

x_t,x_te,y_t,y_te=train_test_split(x,y,test_size=0.25,random_state=20)
ss=StandardScaler()
x_t=ss.fit_transform(x_t)
x_te=ss.transform(x_te)

 # Linear Regression

reg=LinearRegression()
reg.fit(x_t,y_t)
pred1=reg.predict(x_te)
pred2=reg.predict(x_t)

print("Training Metrics")
print('R2 Score: ',r2_score(y_t,pred2))
print('Mean Squared Error: ',mean_squared_error(y_t,pred2))
print('Mean Absolute Error: ',mean_absolute_error(y_t,pred2))

print("Testing Metrics")
print('R2 Score: ',r2_score(y_te,pred1))
print('Mean Squared Error: ',mean_squared_error(y_te,pred1))
print('Mean Absolute Error: ',mean_absolute_error(y_te,pred1))

 

可视化残差

residuals=y_te-pred1
sns.displot(residuals, kind='kde', height=5, aspect=3)
plt.title("Residuals")
plt.show()

 

四、研究结论

通过对数据的实证分析,本研究得出了以下关键结论:

  1. 性别差异:研究表明,女性学生在学术成绩上往往表现优于男性,尤其是在期末成绩上,女性的成绩中位数较高,且分数的波动较小。与男性相比,女性学生更积极参与课外活动,尤其是在参加一项或两项课外活动时表现更为突出。此外,男性学生更可能不参加任何课外活动,这一现象需要引起关注,因为课外活动与学术成绩呈现正相关关系。

  2. 课外活动的影响:参与更多课外活动的学生(特别是参与三项活动的学生)表现出了较高的学术成绩,其期末成绩的中位数明显高于没有参加课外活动的学生。课外活动不仅丰富了学生的校园生活,还对学生的学术发展起到了促进作用。

  3. 家长支持的作用:家长支持对学生的最终成绩有显著影响,父母支持程度越高,学生的学业表现越好。高水平的家长支持不仅体现在经济和物质上,还包括情感上的鼓励和智力上的帮助。研究显示,性别与家长支持之间也存在一定的差异,男性学生在低支持水平中占主导地位,而女性学生则更多处于中等支持水平。

  4. 学习时间和出勤率:每周的学习时间与学生的期末成绩和之前的成绩都呈现正相关关系。更多的学习时间帮助学生取得更高的学术成就。此外,出勤率也是影响学生学术表现的重要因素,高出勤率的学生往往能取得更好的成绩。

  5. 模型分析结果:在回归模型中,课外活动、家长支持、学习时间等变量与学生的学业表现之间的关系得到了验证。最终的模型结果显示,这些变量能够较好地解释学生成绩的变化,尤其是课外活动和家长支持对成绩的贡献显著。

综上所述,本研究揭示了多种因素对学生学业成绩的影响,尤其是课外活动和家长支持的重要性。未来的研究可以进一步探讨这些因素在不同文化背景和教育体制下的表现,帮助优化教育资源的分配,推动学生全面发展。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Boot课程问答:技术难题轻松解决

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1系统工作原理…

如何将长链接缩短

在我们平时的网络活动中,经常会遇到需要将长链接缩短的情况。有细心的小伙伴会发现,平时收到的短信里面都会携带一个很短的链接,这就是将长链接缩短之后的效果。长链接不仅不美观,而且在社群、各种网络平台、短信等场景推送时&…

安装SNMP并zabbix监控

windos server 安装SNMP 通过server manage ,add roles and features 选择features-SNMP service,选择next或者install等待安装完成后,server manage-tools-component service进入service管理窗口选择service-SNMP service,并将服务状态改为自动启动和运…

【宽字节注入】

字符编码 url 编码 GBK编码 utf8 编码 宽字节注入 php中的转译函数 宽字节注入介绍 练习 正常输入没有回显: 没有回显 usernameadmin&passwordadmin 闭合单引号,依旧没有回显 usernameadmin and 11%23&passwordadmin利用宽字节尝试闭合,依旧…

嵌入式C语言中链表的插入实现方法

大家好,今天主要给大家分享一下,如何使用链表插入功能。 第一:嵌入式中链表具体实现 链表查找思路:从链表的a0起,判断是否为第i结点,若是则返回该结点的指针,否则查找下一结点,依次类推。 具体代码的链表插入实现: linklist Locate(linklist_t h, data_t x) { …

基于差分进化灰狼混合优化的SVM(DE-GWO-SVM)数据预测算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 DE优化 4.2 GWO优化 5.完整程序 1.程序功能描述 基于差分进化灰狼混合优化的SVM(DE-GWO-SVM)数据预测算法matlab仿真,对比SVM和GWO-SVM。 2.测试软件版本以及运行结果展示…

VMwareWorkstation安装KylinV10sp3(银河麒麟)系统教程

版本说明 VMware版本如下 OS版本如下 创建虚拟机 点击创建新的虚拟机 按图下所示选择,点击下一步 按照图下所示选择,点击下一步 按照图下所示选择,点击下一步 按照图下所示选择,点击下一步 设置虚拟机名称,点击下一步…

【RabbitMQ高级——过期时间TTL+死信队列】

1. 过期时间TTL概述 过期时间TTL表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取;过了之后消息将自动被删除。RabbitMQ可以对消息和队列设置TTL。 目前有两种方法可以设置。 第一种方法是通过队列属性设置,队列中所有消…

Ubuntu安装Apache教程

系统版本:Ubuntu版本 23.04 Ubuntu是一款功能强大且用户友好的操作系统,而Apache是一款广泛使用的Web服务器软件。在Ubuntu上安装Apache可以帮助用户搭建自己的网站或者进行Web开发。为大家介绍如何在Ubuntu上安装Apache,并提供详细的教程和操…

青云AI算力创新:直击AI落地痛点 打造企业数智化基石

在当今这个数字化、智能化的时代,企业数字化转型、智能化升级应用实践在加速,AI算力已经成为企业数字化转型和智能化升级的重要基石,而AI算力在推动技术创新和业务增长中起到了关键作用。青云科技近日举办的AI算力发布会,标志着AI…

Numpy模块中的ndarray对象属性、数组的重塑、合并、分割

一、ndarray对象属性介绍 说明:ndim属性返回数组的维度,即数组有多少个轴。例如,一维数组的ndim为1,二维数组的ndim为2,以此类推。 示例1: # coding:utf-8 import numpy as np wnp.array([[1,2,3],[4,5,6…

Java如何保证线程T1,T2,T3 顺序执行?

文章目录 方案 1:使用 Thread.join()方案 2:使用 Lock 和 Condition方案 3:使用 CyclicBarrier方案 4:使用 Semaphore总结 博主介绍:全网粉丝10w、CSDN合伙人、华为云特邀云享专家,阿里云专家博主、星级博主…

初始操作系统篇(1)—— 操作系统的概念与分类

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: 操作系统 目录 操作系统的基本概念 操作系统的概念 操作系统的特征 并发 共享 虚拟 异步 操作系统的目标和功能 操作系统的发展与分…

T11:优化器对比实验

T11周:优化器对比实验 **一、前期工作**1.设置GPU,导入库 **二、数据预处理**1.导入数据2.检查数据3.配置数据集4.数据可视化 **三、构建模型****四、训练模型****五、模型评估**六、总结 🍨 本文为🔗365天深度学习训练营 中的学习记录博客&a…

QT实现Opencv图像处理

案例 基于QT的人脸识别 pro文件需要加以下代码 INCLUDEPATH E:/opencv/opencv3.4-qt-intall/install/include INCLUDEPATH E:/opencv/opencv3.4-qt-intall/install/include/opencv INCLUDEPATH E:/opencv/opencv3.4-qt-intall/install/include/opencv2 LIBS E:/opencv/o…

Linux go语言配置

首先安装go语言 先从go官方下载源码 解压: tar -xzvf go1.23.1.linux-amd64.tar.gz 移动go到 /usr/local/ mv go /usr/local 设置环境变量 vi ~/.bashrc source ~/.bashrc 重新获取文件 输入 go version 查看版本

STM32 A/D转换器

目录 模拟量输入通道 A/D转换器简介 模拟量输入信号类型与量程自动转换 量程自动转换 STM32F103ZET6集成的ADC模块 STM32的ADC的主要特征 STM32的ADC模块结构 ADC中断事件主要有以下3个: 模拟量输入通道 模拟量输入通道一般由信号处理、模拟开关、放大器、采…

MES管理系统解决方案常见的应用场景

在现代制造业的浪潮中,车间管理的效率与智能化水平成为了企业竞争力的关键因素。许多车间管理者都耳闻MES管理系统解决方案能够显著优化生产执行流程,但由于缺乏亲身体验,往往对此持保留态度。那么,MES管理系统究竟能否如传闻般发…

po框架的了解和应用

https://www.cnblogs.com/xiaolehong/p/18458470 笔记 任务:1、通过po框架输入测试报告 2、编写自动化测试框架 3、总结测试讲解稿 自动化测试框架概念: 自动化测试框架是一个集成体系,这个体系中包含测试功能的函数、测试数据源、测试对以及重要的模块。 作用:用于解决或…

MIDIPLUS 50周年丨中国国际乐器展览会首日盛况

10月10日,由中国乐器协会、上海国展展览中心有限公司、法兰克福展览(上海)有限公司共同主办的中国(上海)国际乐器展览会在上海新国际博览中心(上海市浦东新区龙阳路2345号)盛大开幕。 2024上海…