2023年电工杯数学建模B题人工智能对大学生学习影响的评价求解全过程论文及程序

news2024/11/26 16:51:29

2023年电工杯数学建模

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

原题再现:

  人工智能简称AI,最初由麦卡锡、明斯基等科学家于1956年在美国达特茅斯学院开会研讨时提出。
  2016年,人工智能AlphaGo 4:1战胜韩国围棋高手李世石,期后波士顿动力公司的人形机器人Atlas也展示了高超的感知和控制能力。2022年,人工智能绘画作品《太空歌剧院》获得了美国科罗拉多州博览会艺术比赛一等奖。2023年3月16日,百度公司推出人工智能新产品“文心一言”。
  为抢抓人工智能发展的重大战略机遇,国务院2017年发布《新一代人工智能发展规划》,指出科技强国要发挥人工智能技术的力量,部署构筑我国人工智能发展的先发优势,加快建设创新型国家和世界科技强国。教育部2018年发布《教育信息化2.0行动计划》,提出实现“智能化领跑教育信息化”行动指南,强调发展智能教育。
  人工智能的发展对社会各个层面均有不同程度的影响,也影响着大学生的学习。为了解人工智能在不同侧面对大学生学习的影响情况,我们设计了调查问卷,详见附件1,调查反馈结果详见附件2。
  请根据你们感兴趣的某个侧面,结合附件1和附件2所给出的数据,建立相应的数学模型,分析人工智能对大学生学习的影响,解决以下问题:
  1.对附件2中所给数据进行分析和数值化处理,并给出处理方法;
  2.根据你们对数据的分析结果选取评价指标,从优先级、科学性、可操作性等方面论述其合理性,并构建评价指标体系;
  3.建立数学模型,评价人工智能对大学生学习的影响,给出明确、有说服力的结论;
  4.根据调查问卷的数据,结合你们对人工智能的了解、认知和判断,以及对未来人工智能发展的展望,写一份人工智能对大学生学习影响的分析报告,可以包括但不限于积极或消极的影响。

  附件1.调查问卷
  附件2.调查数据

整体求解过程概述(摘要)

  随着科技的高速发展以及社会的进步,人工智能的迅速发展,正在对各个领域的发展产生深远的影响,并不断深入人们的工作以及生活中,在人们的工作与生活中扮演着不可或缺的角色。为了解人工智能在不同侧面对大学生学习的影响情况,通过问卷调查的形式获取大学生对人工智能工具的调查的一个情况,通过数字化处理得到了数据量化的一个情况,以此来选取人工智能相关的二级指标以及三级指标以此来选取评价指标,人工智能对大学生学习生活的影响指标,构建多综合评价体系,建立熵权法的方法确定各级指标的权重,并利用 AHP 计算以此来量化相应的数值,建立群决策模型对最终得分进行计算,最终总结人工智能对学生学习的影响。
  问题一:对附件 2 的数值按照学生的不同属性,如年级的不同以及专业的不同作为分类指标以此对数据进行统计,分别对各个类别的指标进行统计,从而得到各个指标的数据量化值,详见附件 3 中。通过处理后的数据可以得出,大多数学生对网络信息是愿意接受,并从使用时长来看大学生对人工智能的使用处于较为依赖的状态。
  问题二:题中要求评价人工智能对学生学习的影响,需先定义指标筛选原则中的优先级、科学性、可操作性,其次选择对网络的接触程度 A1,对于学习软件的接触程度A2,网络资料的接触熟悉程度 A3,对于人工智能学习工具的使用意愿 A4,对人工智能学习工具的认可度 A5,对人工智能学习工具与传统教学的对比和认可 A6 作为二级指标。随后使用皮尔逊相关性分析检验变量之间是否存在共线性,发现各指标并无相关性,六个指标可以使用
  问题三:根据上述综合评价体系,使用熵权法进行计算六个指标的六个熵权,其次利用层次分析法对指标进行赋权,结合两次赋权后的权重与量化政策的对应指标数值相乘得到各学生的得分,建立群决策模型,将权重及数据代入模型进行计算样本分数,求解不同类型学生综合分数平均值,根据最终结果进行判断所受人工智能影响大的因素,
  问题四:根据上述问题的结论,描述了当前人工智能对大学生的影响,并从附件 2的数据通过学生对人工智能的依赖性、期待、适用范围,是否有利学习以及优缺点等方面进行分析;并结合现有的信息对人工智能的利弊进行了一系列的阐述,最后根据利弊结合社会各方面提出干预意见,形成了人工智能对大学生学习影响的分析报告。

模型假设:

  1.假设所有调查问卷样本结果真实有效
  2.假设样本之间存在相互独立性

问题分析:

  问题一问题分析
  当今社会,人工智能的不断发展对社会各个层面均有不同程度的影响,也影响着大学生的学习。人工智能的飞速发展之下,不断的深入学习,可以培养许多传统教育上不能学习到的东西,不同的方面对于大学生学习有不一样的影响。由于个体的不同可能会对研究结果产生相对的影响。对于问卷调查结果回收后,首先应需要对题目中附件 2 中所收集的问卷调查结果进行整体的数据分析以及判断数据的合理性,可信性,如是否存在异常值或者有缺失值出现,亦或是出现了存在问卷调查结果中出现了全为单一选项的问卷或出现随意答卷和一人多卷或者多人同一答案问卷的情况出现。
  综合上述的分析,对于数据的预处理操作如下:
  1.缺失值的处理方法
  通过使用 Excel 软件对题目附件 2 中的各项数据进行缺失值的数据统计。对于缺失值而言,在本文中附件来自于学校学生的情况调查,不同于社会性调查结果存在差异性过大的情况。考虑的数据可能会对整体数据的影响并不采用直接将数据进行删除的方法,本文采用众数法进行处理,相对于各项指标相似的同学而言,缺失值对应的指标大概率是相同的情况,使用相同的指标进行填充为众数法。由于大数据统计调查结果为学生的可靠性更高,在此使用众数法来进行补充缺失值使其完整,避免删除样本数据和避免破坏数据的完整性,降低误差,使得数据的其他指标更具有意义。
  2.异常值的处理方法
  通过使用 Excel 软件对题目附件 2 中进行异常值的判断,对附件 2 中每行数据进行逻辑分析,对于调查问卷的结果中是否存在前后逻辑矛盾的数据视为异常值认为该数据失真,对于该数据的处理采用与缺失值相同的方法众数法进行处理,避免删除样本数据和避免破坏数据的完整性,降低误差,使得数据的其他指标更具有意义。通过上述方法进行完成对于题中数据的预处理操作,完成操作后,数据经检验无异常。

  问题二问题分析
  由于需要构建一个关于人工智能对大学生学习的影响的评价体系, 所以需要对不同数据样本做区分处理, 才能做出不同的评价结果。
  首先, 我们需要把原始问卷中所有的题目进行分类, 30 个题目主要属于如下四个方面的考察:
  1. 基础信息了解:
  题号:1、2、3、4、25.
  2. 上网习惯了解:
  题号: 5、6、7、8、9、10、11、23.
  3. 对人工智能的了解程度:
  题号: 12、13、14、15、16、24.
  4. 对人工智能的未来建议:
  题号: 17、18、19、20、21、22、26、27、28、29、30
  上述所有问题的问卷调查结果均不具有正向化的特征, 也不具有标准化的性质. 无法直接通过使用上面的问卷调查结果之间构建评价模型。因此, 接下来将利用上述调查结果进行新的指标构造。
  指标的筛选方式
  考虑到需要从优先级、科学性、可操作性等方面, 进行指标的筛选操作, 并论述选取的合理性,首先需进行对上述三个方面的相关定义。
  优先级:定义优先级为选择的评价指标应当与大学生学习和人工智能的影响密切相关,并且具有重要性和优先级,以反映人工智能对学习的关键影响因素。
  科学性:我们定义科学性为评价指标应基于科学理论或已有研究的基础上选取,以确保评价体系的科学性和可信度。
  可操作性:评价指标应具有可操作性,即可以通过收集数据进行量化和测量,以便进行定量分析和比较。

  问题三问题分析
  为了能够对被量化的人工智能对大学生学习的影响进行评价,需要对各项指标的重要程度做出分析,即给出各个指标的权重。本文采用群决策方法,先使用熵权法对各个指标进行赋权,再利用层次分析法对指标赋权,最后结合两次赋权的权重与量化政策的对应指标数值相乘得到各学生的得分。

  问题四问题分析
  根据上诉评价模型并从多角度书写一份人工智能对大学生学习影响的分析报告。首先进行对人工智能在多领域的发展和应用背景的介绍,阐述人工智能对大学生学习的相对影响。接着说明调查问卷数据的分析,分别阐述人工智能对大学生学习的积极性和消极性,并结合现有信息以及对于人工智能的认知说明对于未来人工智能的看法。

模型的建立与求解整体论文缩略图

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

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:

部分程序如下:
import math
import random
random.seed(0)
def rand(a,b): #随机函数
    return (b-a)*random.random()+a
 
def make_matrix(m,n,fill=0.0):#创建一个指定大小的矩阵
    mat = []
    for i in range(m):
        mat.append([fill]*n)
    return mat
 
#定义sigmoid函数和它的导数

def sigmoid(x):
    return 1.0/(1.0+math.exp(-x))
def sigmoid_derivate(x):
    return x*(1-x) #sigmoid函数的导数
 
class BPNeuralNetwork:
    def __init__(self):#初始化变量
        self.input_n = 0
        self.hidden_n = 0
        self.output_n = 0
        self.input_cells = []
        self.hidden_cells = []
        self.output_cells = []
        self.input_weights = []
        self.output_weights = []
        self.input_correction = []
        self.output_correction = []
    #三个列表维护:输入层,隐含层,输出层神经元
    def setup(self,ni,nh,no):
        self.input_n = ni+1 #输入层+偏置项
        self.hidden_n = nh  #隐含层
        self.output_n = no  #输出层
 
        #初始化神经元
        self.input_cells = [1.0]*self.input_n
        self.hidden_cells= [1.0]*self.hidden_n
        self.output_cells= [1.0]*self.output_n
 
        #初始化连接边的边权
        self.input_weights = make_matrix(self.input_n,self.hidden_n) #邻接矩阵存边权:输入层->隐藏层
        self.output_weights = make_matrix(self.hidden_n,self.output_n) #邻接矩阵存边权:隐藏层->输出层
 
        #随机初始化边权:为了反向传导做准备--->随机初始化的目的是使对称失效
        for i in range(self.input_n):
            for h in range(self.hidden_n):
                self.input_weights[i][h] = rand(-0.2 , 0.2) #由输入层第i个元素到隐藏层第j个元素的边权为随机值
 
        for h in range(self.hidden_n):
            for o in range(self.output_n):
                self.output_weights[h][o] = rand(-2.0, 2.0) #由隐藏层第i个元素到输出层第j个元素的边权为随机值
        #保存校正矩阵,为了以后误差做调整
        self.input_correction = make_matrix(self.input_n , self.hidden_n)
        self.output_correction = make_matrix(self.hidden_n,self.output_n)
 
    #输出预测值
    def predict(self,inputs):
        #对输入层进行操作转化样本
        for i in range(self.input_n-1):
            self.input_cells[i] = inputs[i] #n个样本从0~n-1
        #计算隐藏层的输出,每个节点最终的输出值就是权值*节点值的加权和
        for j in range(self.hidden_n):
            total = 0.0
            for i in range(self.input_n):
                total+=self.input_cells[i]*self.input_weights[i][j]
            # 此处为何是先i再j,以隐含层节点做大循环,输入样本为小循环,是为了每一个隐藏节点计算一个输出值,传输到下一层
            self.hidden_cells[j] = sigmoid(total) #此节点的输出是前一层所有输入点和到该点之间的权值加权和
 
        for k in range(self.output_n):
            total = 0.0
            for j in range(self.hidden_n):
                total+=self.hidden_cells[j]*self.output_weights[j][k]
            self.output_cells[k] = sigmoid(total) #获取输出层每个元素的值
        return self.output_cells[:]  #最后输出层的结果返回
 
    #反向传播算法:调用预测函数,根据反向传播获取权重后前向预测,将结果与实际结果返回比较误差
    def back_propagate(self,case,label,learn,correct):
        #对输入样本做预测
        self.predict(case) #对实例进行预测
        output_deltas = [0.0]*self.output_n #初始化矩阵
        for o in range(self.output_n):
            error = label[o] - self.output_cells[o] #正确结果和预测结果的误差:0,1,-1
            output_deltas[o]= sigmoid_derivate(self.output_cells[o])*error#误差稳定在0~1内
 
        #隐含层误差
        hidden_deltas = [0.0]*self.hidden_n
        for h in range(self.hidden_n):
            error = 0.0
            for o in range(self.output_n):
                error+=output_deltas[o]*self.output_weights[h][o]
            hidden_deltas[h] = sigmoid_derivate(self.hidden_cells[h])*error
        #反向传播算法求W
        #更新隐藏层->输出权重
        for h in range(self.hidden_n):
            for o in range(self.output_n):
                change = output_deltas[o]*self.hidden_cells[h]
                #调整权重:上一层每个节点的权重学习*变化+矫正率
                self.output_weights[h][o] += learn*change + correct*self.output_correction[h][o]
        #更新输入->隐藏层的权重
        for i in range(self.input_n):
            for h in range(self.hidden_n):
                change = hidden_deltas[h]*self.input_cells[i]
                self.input_weights[i][h] += learn*change + correct*self.input_correction[i][h]
                self.input_correction[i][h] =  change
        #获取全局误差
        error = 0.0
        for o in range(len(label)):
            error = 0.5*(label[o]-self.output_cells[o])**2 #平方误差函数
        return error
 
    def train(self,cases,labels,limit=10000,learn=0.05,correct=0.1):
        for i in range(limit): #设置迭代次数
            error = 0.0
            for j in range(len(cases)):#对输入层进行访问
                label = labels[j]
                case = cases[j]
                error+=self.back_propagate(case,label,learn,correct) #样例,标签,学习率,正确阈值
 
    def test(self): #学习异或
        cases = [
            [0, 0],
            [0, 1],
            [1, 0],
            [1, 1],
        ] #测试样例
        labels = [[0], [1], [1], [0]] #标签
        self.setup(2,5,1) #初始化神经网络:输入层,隐藏层,输出层元素个数
        self.train(cases,labels,10000,0.05,0.1) #可以更改
        for case in  cases:
            print(self.predict(case))
 
if __name__ == '__main__':
    nn = BPNeuralNetwork()
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

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

相关文章

【亚马逊云科技产品测评】活动征文|亚马逊云科技AWS之EC2详细测评

引言 (授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道) 在当前的数字化时代,云服务已…

小饭店点餐系统,小餐馆点餐怎么方便,操作简单的酒店点单软件

小饭店点餐系统,小餐馆点餐怎么方便,操作简单的酒店点单软件 今天给大家分享是 佳易王酒店点餐管理系统软件V16.0版本,点餐界面如下图, 1、开台的桌子醒目显示,结账后或没有开台的桌子为灰色显示。 2、多种点餐方式…

Pytho入门教程之Python运行的三种方式

文章目录 一、交互式编程二、脚本式编程三、方式三关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python兼职渠道 一、交互式编…

AMD老电脑超频及性能提升方案及实施

收拾电子元件的时候找到了若干古董的CPU 其中有一个X3 440 是原来同学主板烧了之后给我的,我从网上配了AM2 昂达主板,然后又买了AMD兼容内存,组成了win7 64位电脑,用起来非常不错,我把硬件配置和升级过程说明下&#x…

C++对象模型

思考:对于实现平面一个点的参数化。C的class封装看起来比C的struct更加的复杂,是否意味着产生更多的开销呢? 实际上并没有,类的封装不会产生额外的开销,其实,C中在布局以及存取上的额外开销是virtual引起的…

unittest 通过loadTestsFromName执行多个测试case

这段代码是一个使用unittest模块编写的测试运行程序。它的主要功能是加载其他Python文件中的测试用例并运行这些测试用例。 首先,定义了一个主测试类MainTestCase,该类继承自unittest.TestCase。在这个类中,可以添加各种测试方法来测试不同的…

产品经理入门学习(四):项目立项

参考引用 黑马-产品经理入门基础课程 1. 项目方案 1.1 主要阶段 立项阶段 基本方案:要做个什么项目,为什么要做这个项目,这个项目的作用和价值分别有哪些 上线阶段 设计阶段 运营阶段 开发阶段 总结阶段 测试阶段 2. 可行性分析 可…

Python语言_single_color_共140种--全平台可用

Python语言_single_color_共140种–全平台可用

3、Dockerfile 深入与其他细节

Dockerfile 在 Docker 中创建镜像最常用的方式,就是使用 Dockerfile。Dockerfile 是一个 Docker 镜像 的描述文件,我们可以理解成火箭发射的 A、B、C、D…的步骤。Dockerfile 其内部包含了一 条条的指令,每一条指令构建一层,因此每…

045_第三代软件开发-U盘监测

第三代软件开发-U盘监测 文章目录 第三代软件开发-U盘监测项目介绍U盘监测原理解释源代码 关键字: Qt、 Qml、 USB、 Disk、 文件 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QML(Qt Meta-Object Language)和…

1.如何实现统一的API前缀-web组件篇

文章目录 1. 问题的由来2.实现原理3. 总结 1. 问题的由来 系统提供了 2 种类型的用户,分别满足对应的管理后台、用户 App 场景。 两种场景的前缀不同,分别为/admin-api/和/app-api/,都写在一个controller里面,显然比较混乱。分开…

storm安装手册及笔记

图解Storm相关概念 图解storm的并发机制 安装Storm的步骤 1、安装一个zookeeper集群 2、上传storm的安装包,解压 3、修改配置文件storm.yaml #所使用的zookeeper集群主机 storm.zookeeper.servers: - "weekend05" - "weekend06"…

亚马逊 JDK下载地址

下载地址 https://docs.aws.amazon.com/corretto/选择版本 选择操作系统 比如 windows64 位 可以选择安装包或者解压版本 msi 的为安装版 zip 的为解压版

微积分第一章函数与极限

1.正反三角函数的导数 2.常用等价无穷小 3.正反三角函数转化: 1.secx1/cosx 2.cecx1/sinx 3.cotx1/tanx 4.基本数学思想: 1.有限式子与无限式子:在面对无限个式子运算时,大体思路为两个方面,第一个为放缩&#xff…

静态、友好、内在:解析C++中的这些特殊元素和对象复制的优化

W...Y的主页 😊 代码仓库分享💕 🍔前言: 前面我们学习了C中关于类与对象的许多知识点,今天我们继续学习类与对象,最后再总结一下类与对象中的一些关键字内容,以及需要注意的细节。满满的干货…

【H.264】RTP h264 码流 实例解析分析 3 : webrtc

【srs】SRS检测IBMF还是annexb 【H.264】RTP h264 码流 实例解析分析 2 : mediasoup收包 mediasoup 并没完整解析rtp包的内容,可能与mediasoup 只需要转发,不需要解码有关系。 webrtc 本身都是全的。 m98代码,先说关键: webrtc的VideoRtpDepacketizer 第一:对RTPVideoType…

年终述职技巧

一个共识 给个交代 复盘 给自己的交代 展示 给公司的交代 三维构思法 认知与成长 以己为师 萃取与迭代 以事为师 响应与前瞻 以人为师(“作者视角”转变为“观众视角”,听懂、感兴趣、认可、有收获) 六点通关术 论证价值点 工作成果&#x…

从《lc114. 二叉树展开为链表》到《lc-LCR 155二叉搜索树转化为排序的双向链表》

1 lc114. 二叉树展开为链表 1.1 描述 进阶:你可以使用原地算法(O(1) 额外空间)展开这棵树吗? 1.2 解法一: 先序遍历这棵树并且将节点加入到一个list中,随后按顺序将list中的每一个元素的left指针置换为…

AGV 导航方法总体设计与分析

导航方案设计 导航方法分为三个部分——路径规划、实时定位、轨迹纠正。 视觉定位模块 主要有三个工作任务:利用二维码定位对 AGV 初始位姿 进行矫正,保证 AGV 初始运动时其运动轨迹能够与道路平行;利用 ORBSLAM 定位能够实时的获得 AGV 在…

LeetCode热题100——链表

链表 1. 相交链表2. 反转链表3. 回文链表4. 环形链表5. 合并两个有序链表 1. 相交链表 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 // 题解:使用A/B循环遍…