【2023年电工杯竞赛】B题 人工智能对大学生学习影响的评价 数学建模方案和python代码

简介: 本文介绍了2023年电工杯竞赛B题的数学建模方案和Python代码实现,详细阐述了如何分析调查问卷数据,建立评价指标体系,构建数学模型评估人工智能对大学生学习的影响,并提供了数据预处理、特征编码、可视化分析等代码示例。

在这里插入图片描述

1 题目

B题 人工智能对大学生学习影响的评价

人工智能简称AI,最初由麦卡锡、明斯基等科学家于1956年在美国达特茅斯学院开会研讨时提出。

2016年,人工智能AlphaGo 4:1战胜韩国围棋高手李世石,期后波士顿动力公司的人形机器人Atlas也展示了高超的感知和控制能力。2022年,人工智能绘画作品《太空歌剧院》获得了美国科罗拉多州博览会艺术比赛一等奖。2023年3月16日,百度公司推出人工智能新产品“文心一言”。

为抢抓人工智能发展的重大战略机遇,国务院2017年发布《新一代人工智能发展规划》,指出科技强国要发挥人工智能技术的力量,部署构筑我国人工智能发展的先发优势,加快建设创新型国家和世界科技强国。教育部2018年发布《教育信息化2.0行动计划》,提出实现“智能化领跑教育信息化”行动指南,强调发展智能教育。

人工智能的发展对社会各个层面均有不同程度的影响,也影响着大学生的学习。为了解人工智能在不同侧面对大学生学习的影响情况,设计了调查问卷,详见附件1,调查反馈结果详见附件2:调查数据.xlsx。

请根据你们感兴趣的某个侧面,结合附件1和附件2:调查数据.xlsx所给出的数据,建立相应的数学模型,分析人工智能对大学生学习的影响,解决以下问题:

1.对附件2:调查数据.xlsx中所给数据进行分析和数值化处理,并给出处理方法;

2.根据你们对数据的分析结果选取评价指标,从优先级、科学性、可操作性等方面论述其合理性,并构建评价指标体系;

3.建立数学模型,评价人工智能对大学生学习的影响,给出明确、有说服力的结论;

4.根据调查问卷的数据,结合你们对人工智能的了解、认知和判断,以及对未来人工智能发展的展望,写一份人工智能对大学生学习影响的分析报告,可以包括但不限于积极或消极的影响。

附件1.调查问卷

附件2:调查数据.xlsx.调查数据

2 建模思路

这是一个数据分析、数据挖掘的题目了,这一类题目的赛题,做好可视化,从多个角度去分析。

2.1 问题一

对附件2:调查数据.xlsx中的数据,可以按照以下步骤进行分析和数值化处理:

(1)对每个单选题进行计数,统计每个选项的人数和所占比例,以直方图或饼图展示。
(2)对每个多选题进行计数,统计每种组合的人数和所占比例,以多重条形图或热力图展示。
(3)对于第6列,将其进行数值化处理,可以将每个选项的时间转化为小时数,再计算平均上网时长和标准差,以及各个时间段的人数和所占比例。
(4)对于第22列和第30列,可以将每个选项进行编码,转化为数字,方便后续分析。
(5)对于第9列、第10列、第11列、第12列和第21列,可以按照二元变量的方式进行编码,转化为0或1,表示是否选中。
(6)对于第16列、第17列、第18列、第19列、第20列和第21列,可以将选项进行分类,然后采用类别变量的方式进行编码。
(7)对于第23列到第29列,可以将每个选项进行编码,然后采用类别变量的方式进行分析。
(8)最后可以进行相关性分析和因素分析,探索各个变量之间的关系和影响。可以采用回归分析、聚类分析、主成分分析等方法进行模型建立和预测。

2.2 问题二

评价指标体系应可以包含以下方面:

(1)用户特征
包括性别、专业、年级、性格、上网方式和上网时长等选项,这些信息可以用来对不同的用户群体进行分析。
(2)使用学习软件的情况
包括是否使用过学习软件工具、使用时间、传输资料的偏好、是否想获取全国各高校的学习资源、老师是否推荐过使用等选项,这些信息有助于了解大学生使用学习软件的情况。
(3)人工智能学习工具选择
包括对人工智能学习工具的看法、选择使用人工智能学习工具的原因、使用人工智能学习工具的想法和使用人工智能学习工具的限制等选项,这些信息有助于分析学生对人工智能学习工具的态度。
(4)使用人工智能学习工具的效果和问题
包括个人使用人工智能学习工具的意愿、最想得到的效果、是否赞同大学生使用人工智能学习工具等选项以及对使用人工智能学习工具的安全和重要方面的关注等,这些信息有助于了解学生使用人工智能学习工具带来的影响。
(5)在网络中的活动和学习困扰
包括网络中的活动、学习软件与传统教学相比的优势、在学习中困扰的问题以及使用学习软件进行学习的形式等选项,这些信息有助于确定学习软件在大学生学习中的作用和存在的问题。
(6)对人工智能学习工具的期望
包括心目中的人工智能学习工具应该具备的功能、人工智能学习工具应该融合到哪个学习环节等选项,这些信息有助于了解学生对未来人工智能学习工具的期望和需求。

注意可能需要考虑到不同选项之间的关系,进行综合分析和评估。

2.3 问题三

就是数据清洗和建模

(1)数据清洗和处理
首先需要对附件2:调查数据.xlsx.csv进行数据清洗和处理,包括去除脏数据、缺失值填充等操作。

(2)数据分析
对于单选题,可以使用频数分析、比例分析等方法对每个选项出现的次数进行统计,了解大学生对学习软件以及人工智能学习工具的使用情况、态度等。对于多选题,可以使用多元频数分析等方法探究各个选项之间的相关性。

(3)统计分析
可以使用因子分析、聚类分析等方法对不同的影响因素进行分析。例如,可以通过因子分析将不同的选项归纳为几个维度,如使用频率、功能需求、安全性等维度;也可以通过聚类分析将同一特征下的数据分为不同类别,如使用频率较高、偏好某一类型功能等。

(4)建立数学模型
综合前面的数据分析和统计分析结果,建立多元回归模型、决策树模型等进行预测和评估,进一步探究人工智能对大学生学习的影响情况。

(5)结论
根据所建立的数学模型,得出明确、有说服力的结论,判断人工智能学习工具对于大学生学习的影响程度、以及对于现有学习方式的优势和不足等方面进行评价,并提出相应的建议和改进。

3 代码实现

3.1 问题一

(1)进行特征编码

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import MultiLabelBinarizer

# 加载数据文件
data = pd.read_excel("data/附件2:调查数据.xlsx")

# 前22列采用类别变量进行编码

# 第23列之后的列采用类别变量进行one-hot编码
df = data.iloc[:,23:]
# 对每一列进行多标签二值化编码
mlb = MultiLabelBinarizer()
cols = df.columns
for col in df.columns:
    # 将每一列的数据按照分隔符进行分割
    df[col] = df[col].apply(lambda x: x.split('┋') if isinstance(x, str) else x)
    mlb.fit_transform(df[col])
#     # 将编码结果按照列名展开为新的列
    for i, label in enumerate(mlb.classes_):
        data[f'{col}_{label}'] = df[col].apply(lambda x: 1 if label in x else 0)
data.drop(columns=df.columns,inplace=True)

(2)分析数据

# 设置中文字体
。。。略,请下载完整代码
# 单选题1~22统计每个选项的人数和所占比例
for i in range(1, 23):

    print("题目{}选项人数:\n{}\n".format(i, counts))
    print("题目{}选项比例:\n{}\n".format(i, percentages))

    # 绘制各题目的直方图和饼图
    plt.subplot(2, 1, 1)
    plt.bar(counts.index, counts.values)
    plt.title(cols[i])
    plt.ylabel("Counts")

    plt.subplot(2, 1, 2)
    plt.pie(percentages.values, labels=percentages.index, autopct="%1.1f%%")
    plt.title(cols[i])

    plt.tight_layout()
    plt.show()

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

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

from collections import Counter, defaultdict
from itertools import chain
import numpy as np


cols = df.columns
i = 1
for col in df.columns:
    # 将每一列的数据按照分隔符进行分割
    df[col] = df[col].apply(lambda x: x.split('┋') if isinstance(x, str) else x)
    element_count_dict = defaultdict(int)
    for row in df[col]:
        element_count = Counter(row)
        for element, count in element_count.items():
            element_count_dict[element] += count
    # 将 defaultdict 转换为普通字典
    。。。略,请下载完整代码
    percentages = [i/ np.sum(counts) * 100 for i in counts]
    # 绘制各题目的直方图和饼图
    plt.subplot(2, 1, 1)
    plt.bar(element_count_dict.keys(), element_count_dict.values())
    plt.title(col)
    plt.ylabel("Counts")

    plt.subplot(2, 1, 2)
    plt.pie(percentages, labels=element_count_dict.keys(), autopct="%1.1f%%")


    plt.tight_layout()
    plt.savefig(f'img/{i+23}.png',dpi=300)
    i+=1
    plt.show()

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

3.2 问题二

持续更新中

3.3 问题三

持续更新中

4 完整下载

查看知乎文章底部,或者私信我

目录
相关文章
|
18天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
81 4
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
1月前
|
开发框架 数据建模 中间件
Python中的装饰器:简化代码,增强功能
在Python的世界里,装饰器是那些静悄悄的幕后英雄。它们不张扬,却能默默地为函数或类增添强大的功能。本文将带你了解装饰器的魅力所在,从基础概念到实际应用,我们一步步揭开装饰器的神秘面纱。准备好了吗?让我们开始这段简洁而富有启发性的旅程吧!
49 6
|
24天前
|
Python
课程设计项目之基于Python实现围棋游戏代码
游戏进去默认为九路玩法,当然也可以选择十三路或是十九路玩法 使用pycharam打开项目,pip安装模块并引用,然后运行即可, 代码每行都有详细的注释,可以做课程设计或者毕业设计项目参考
63 33
|
1月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
199 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
25天前
|
JavaScript API C#
【Azure Developer】Python代码调用Graph API将外部用户添加到组,结果无效,也无错误信息
根据Graph API文档,在单个请求中将多个成员添加到组时,Python代码示例中的`members@odata.bind`被错误写为`members@odata_bind`,导致用户未成功添加。
45 10
|
26天前
|
机器学习/深度学习 Rust 算法
Python环境管理的新选择:UV和Pixi,高性能Python环境管理方案
近期Python生态系统在包管理领域发生了重要变化,Anaconda调整商业许可证政策,促使社区寻找更开放的解决方案。本文介绍两款新一代Python包管理工具:UV和Pixi。UV用Rust编写,提供高性能依赖解析和项目级环境管理;Pixi基于Conda生态系统,支持conda-forge和PyPI包管理。两者分别适用于高性能需求和深度学习项目,为开发者提供了更多选择。
111 2
|
1月前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
87 8
|
1月前
|
Python
探索Python中的装饰器:简化代码,增强功能
在Python的世界里,装饰器就像是给函数穿上了一件神奇的外套,让它们拥有了超能力。本文将通过浅显易懂的语言和生动的比喻,带你了解装饰器的基本概念、使用方法以及它们如何让你的代码变得更加简洁高效。让我们一起揭开装饰器的神秘面纱,看看它是如何在不改变函数核心逻辑的情况下,为函数增添新功能的吧!
|
1月前
|
程序员 测试技术 数据安全/隐私保护
深入理解Python装饰器:提升代码重用与可读性
本文旨在为中高级Python开发者提供一份关于装饰器的深度解析。通过探讨装饰器的基本原理、类型以及在实际项目中的应用案例,帮助读者更好地理解并运用这一强大的语言特性。不同于常规摘要,本文将以一个实际的软件开发场景引入,逐步揭示装饰器如何优化代码结构,提高开发效率和代码质量。
63 6
|
1月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!