🧑 博主简介:曾任某智慧城市类企业
算法总监
,目前在美国市场的物流公司从事高级算法工程师
一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907
)
💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。
【数据可视化-23】学生习惯与学习成绩之间的关系可视化
一、引言
在当今社会,了解学生的学习习惯与学习成绩之间的关系对于提高教育质量至关重要。通过分析学生的学习习惯,我们可以找出影响成绩的关键因素。本文将通过一系列图表和数据分析,展示学生的生活习惯、学习习惯以及家庭环境等如何影响他们的考试成绩。
二、数据探索
2.1导入必要的库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
plt.style.use('ggplot')
plt.rcParams.update({'font.family': 'sans-serif', 'font.size': 10})
2.2 加载数据
我们将使用一个包含学生习惯和考试成绩数据集的CSV文件。数据集包括学生的ID、年龄、性别、每日学习时间、社交媒体使用时间、Netflix观看时间、是否兼职、出勤率、睡眠时间、饮食品质、运动频率、父母教育水平、网络质量、心理健康评分、课外活动参与情况以及考试成绩等信息。
df = pd.read_csv('/kaggle/input/student-habits-vs-academic-performance/student_habits_performance.csv')
df.head(10)
2.3 数据的基本信息
浏览数据的基本信息,可以了解到每个变量的非空值数量、数据类型以及内存使用情况。
df.info()
数据集包含1000条记录,16个特征,其中以数值类型为主,包括int64
和float64
,也有几个object
类型的分类数据。
2.3 描述性统计
通过描述性统计,我们可以快速了解数值型变量的分布情况,如平均值、中位数、标准差、最大值和最小值等。
df.describe()
我们观察到学生的学习时间、社交媒体使用时间、Netflix观看时间以及考试成绩的分布情况。
2.4 缺失值分析
检查数据集中每个变量的缺失值情况。
df.isnull().sum()
我们发现数据集中无缺失值存在。
2.5 数据分布情况
sns.pairplot(data=df)
三、可视化分析
接下来我们将使用各种可视化技术来探索学生习惯与学习成绩之间的关系。
3.1 考试成绩分布
plt.figure(figsize=(10,6))
sns.histplot(x='exam_score', data=df, color='skyblue')
plt.title('Distribution of Exam Scores')
plt.xlabel('Exam Score')
plt.ylabel('Frequency')
plt.show()
该直方图显示了考试成绩的分布情况,大多数学生的考试成绩集中在某个区间内。
3.2 社交媒体使用时间与考试成绩的关系
sns.scatterplot(data=df, x='social_media_hours', y='exam_score', color='Red')
plt.title('Social Media Hours vs Exam Scores')
plt.xlabel('Social Media Hours per Day')
plt.ylabel('Exam Score')
plt.show()
从散点图可以看出,社交媒体使用时间与考试成绩之间可能存在一定的负相关关系。
3.3 学习时间对考试成绩的影响
plt.figure(figsize=(10,6))
sns.lineplot(data=df, x='study_hours_per_day', y='exam_score')
plt.title('Study Hours per Day vs Exam Scores')
plt.xlabel('Study Hours per Day')
plt.ylabel('Exam Score')
plt.show()
从折线图可以看出,随着学习时间的增加,考试成绩有上升的趋势。
3.4 性别与考试成绩的比较
avg_score_by_gender = df.groupby('gender')['exam_score'].mean()
gender_counts = df['gender'].value_counts()
plt.figure(figsize=(6, 6))
plt.pie(avg_score_by_gender, labels=gender_counts.index)
plt.title('Average Exam Scores by Gender')
plt.axis('equal')
plt.show()
从条形图可以看出不同性别学生的平均考试成绩,而饼图则显示了不同性别的学生分布情况。
3.5 父母教育水平与考试成绩
plt.figure(figsize=(10,6))
sns.barplot(data=df, x='parental_education_level', y='exam_score')
plt.title('Parental Education Level vs Exam Scores')
plt.xlabel('Parental Education Level')
plt.ylabel('Average Exam Score')
plt.show()
条形图展示了父母教育水平对学生考试成绩的影响。
3.6 心理健康评分与考试成绩
plt.figure(figsize=(10,6))
sns.barplot(data=df, x='mental_health_rating', y='exam_score')
plt.title('mental_health_rating vs Exam Scores')
plt.xlabel('mental_health_rating')
plt.ylabel('Average Exam Score')
plt.show()
条形图展示了心理健康评分越高的学生考试成绩的越高,心理健康评分和学生考试成绩呈现正相关。
我们还可以从其它的维度对学生的考试成绩进行相关性分析,进一步的提升对数据的理解。
四、总结
通过上述可视化分析,我们可以更深入地了解学生的生活和学习习惯与学习成绩之间的关系。这些发现可以帮助教育工作者和家长更好地指导学生,提高他们的学习效果。该数据集和代码为理解学生习惯与学习成绩之间的关系提供了一个良好的起点。