CN110188978B - 一种基于深度学习的大学生专业推荐方法 - Google Patents

一种基于深度学习的大学生专业推荐方法 Download PDF

Info

Publication number
CN110188978B
CN110188978B CN201910293908.9A CN201910293908A CN110188978B CN 110188978 B CN110188978 B CN 110188978B CN 201910293908 A CN201910293908 A CN 201910293908A CN 110188978 B CN110188978 B CN 110188978B
Authority
CN
China
Prior art keywords
student
course
core
core course
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910293908.9A
Other languages
English (en)
Other versions
CN110188978A (zh
Inventor
朱全银
孙强
万瑾
李翔
季睿
周泓
丁瑾
金鹰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huaiyin Institute of Technology
Original Assignee
Huaiyin Institute of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huaiyin Institute of Technology filed Critical Huaiyin Institute of Technology
Priority to CN201910293908.9A priority Critical patent/CN110188978B/zh
Publication of CN110188978A publication Critical patent/CN110188978A/zh
Application granted granted Critical
Publication of CN110188978B publication Critical patent/CN110188978B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0639Performance analysis of employees; Performance analysis of enterprise or organisation operations
    • G06Q10/06393Score-carding, benchmarking or key performance indicator [KPI] analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/20Education
    • G06Q50/205Education administration or guidance
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Educational Administration (AREA)
  • Economics (AREA)
  • Tourism & Hospitality (AREA)
  • General Physics & Mathematics (AREA)
  • Educational Technology (AREA)
  • Marketing (AREA)
  • Theoretical Computer Science (AREA)
  • Development Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Game Theory and Decision Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本专利公开发明了一种基于深度学习的大学生专业推荐方法,先对学生的基本信息和核心课程信息进行数据预处理得到数据集Student、Course以及Rating;搭建深度学习神经网络模型;构建Tensorflow计算图;获取到学生信息特征和核心课程信息特征训练神经网络模型;生成学生信息特征矩阵和核心课程特征矩阵;给学生推荐专业。本发明利用大学生基本个人信息和在校大学生新生时期的核心课程成绩,分析这部分大学生的在这些核心课程上的学习态度和自身定位,从而对这部分大学生在“大类招生”或转专业时提供专业推荐,其结果可以辅助高校进行专业建设以及为人才培养方案的改进提供有效意见与信息。

Description

一种基于深度学习的大学生专业推荐方法
技术领域
本发明属于特征提取和相似度算法技术领域,特别涉及一种基于深度学习的大学生专业推荐方法。
背景技术
经过数十年的发展,中国大学生数目越来越多,而与此同时,众多大学为了更好地让大学生了解自己的专业方向,在高考招生阶段便实行“大类招生”,为的就是广大学子能够找到适合自己的专业。可即便学校实行了大类招生,每个院系里的专业依旧很多,专业选择存在盲区,为此本发明提出一种个性化推荐管理系统能预测学生的核心课程成绩,从而分析学生对不同课程的学习态度,为他们推荐合适的专业。而且此系统能够辅助高校进行专业建设以及为人才培养方案的改进提供有效意见与信息
朱全银等人已有的研究基础包括:朱全银,潘禄,刘文儒,等.Web科技新闻分类抽取算法[J].淮阴工学院学报,2015,24(5):18-24;李翔,朱全银.联合聚类和评分矩阵共享的协同过滤推荐[J].计算机科学与探索,2014,8(6):751-759;Quanyin Zhu,Sunqun Cao.ANovel Classifier-independent Feature Selection Algorithm for ImbalancedDatasets.2009,p:77-82;Quanyin Zhu,Yunyang Yan,Jin Ding,Jin Qian.The CaseStudy for Price Extracting of Mobile Phone Sell Online.2011,p:282-285;QuanyinZhu,Suqun Cao,Pei Zhou,Yunyang Yan,Hong Zhou.Integrated Price Forecast basedon Dichotomy Backfilling and Disturbance Factor Algorithm.InternationalReview on Computers and Software,2011,Vol.6(6):1089-1093;李翔,朱全银,胡荣林,周泓.一种基于谱聚类的冷链物流配载智能推荐方法.中国专利公开号:CN105654267A,2016.06.08;曹苏群,朱全银,左晓明,高尚兵等人,一种用于模式分类的特征选择方法.中国专利公开号:CN103425994A,2013.12.04;刘金岭,冯万利,张亚红.基于重新标度的中文短信文本聚类方法[J].计算机工程与应用,2012,48(21):146-150;朱全银,潘禄,刘文儒,等.Web科技新闻分类抽取算法[J].淮阴工学院学报,2015,24(5):18-24;李翔,朱全银.联合聚类和评分矩阵共享的协同过滤推荐[J].计算机科学与探索,2014,8(6):751-759;朱全银,辛诚,李翔,许康等人,一种基于K-means和LDA双向验证的网络行为习惯聚类方法.中国专利公开号:CN 106202480 A,2016.12.07。
神经网络算法:
人工神经网络就是模拟人思维的第二种方式。这是一个非线性动力学系统,其特色在于信息的分布式存储和并行协同处理。虽然单个神经元的结构极其简单,功能有限,但大量神经元构成的网络系统所能实现的行为却是极其丰富多彩的。
神经网络中的变量可以是神经元连接的权重(weights)和神经元的激励值(activities of the neurons)。
大部分神经网络模型具有一个短时间尺度的动力学规则,来定义神经元如何根据其他神经元的活动来改变自己的激励值。一般激励函数依赖于网络中的权重(即该网络的参数)。
CNN文本卷积神经网络算法:
卷积神经网络(CNN)在计算机视觉领域取得了极大的进展,但是除此之外CNN也逐渐在自然语言处理(NLP)领域攻城略地。卷积神经网络在情感分析中取得了很好的成果,相比于之前浅层的机器学习方法如NB、SVM效果更好,特别实在数据集较大的情况下,并且CNN不用我们手动去提取特征,原浅层ML是需要进行文本特征提取、文本特征表示、归一化、最后进行文本分类。
tahn函数:
这个函数和sigmoid相比收敛速度快,tanh在特征相差明显时的效果会很好,在循环过程中会不断扩大特征效果。
ReLU函数:
ReLU得到的SGD的收敛速度会比sigmoid/tanh快很多。除此之外,当x0时,则不存在饱和问题。所以,ReLU能够在x>0时保持梯度不衰减,从而缓解梯度消失问题。
Adam优化器:
Adam优化器结合AdaGrad和RMSProp两种优化算法的优点。对梯度的一阶矩估计(First Moment Estimation,即梯度的均值)和二阶矩估计(SecondMoment Estimation,即梯度的未中心化的方差)进行综合考虑,计算出更新步长。
参数的更新不受梯度的伸缩变换影响,超参数具有很好的解释性,且通常无需调整或仅需很少的微调,适用于不稳定目标函数,适用于梯度稀疏或梯度存在很大噪声的问题。
发明内容
发明目的:针对现有技术中存在的问题,本发明提出一种基于深度学习的大学生专业推荐方法,通过构建一种基于深度神经网络和文本卷积相结合的个性化推荐方法,利用这种个性化推荐管理系统能够辅助高校进行专业建设以及为人才培养方案的改进提供有效意见与信息。
技术方案:为解决上述技术问题,本发明提供一种基于深度学习的大学生专业推荐方法,具体步骤如下:
(1)对学生的基本信息和核心课程信息进行数据预处理得到数据集Student、Course以及Rating;
(2)搭建深度学习神经网络模型;
(3)构建Tensorflow计算图;
(4)获取到学生信息特征和核心课程信息特征训练神经网络模型;
(5)生成学生信息特征矩阵和核心课程特征矩阵;
(6)给学生推荐专业。
进一步的,所述步骤(1)中得到数据集Student、Course以及Rating的具体步骤如下:
(1.1)定义Student为学生信息数据集,Course为核心课程数据集,Rating为课程成绩数据集,定义StuID、Gender、EnterYear、Profession分别为学生学号、学生性别、学生入学年份以及学生所属院系;定义CourseID、KCMC、Genres、CJ为核心课程ID、核心课程名称、核心课程所属的一个或多个专业以及成绩;并且满足关系Student={StuID,Gender,EnterYear,Profession},Course={CourseID,KCMC,Genres},Rating={StuID,CourseID,CJ};
(1.2)读取Student中的Gender属性中的数据,将性别‘男’转换为数字1,性别‘女’转换为数字0;读取Course数据集中Genres属性中的数据,将其中属于文本数据类型的专业名称Pro1转换为数字字典D1,最后将D1转换为等长的数字列表D2,利用‘<PAD>’对应的数字填充空白部分,长度为18;同理,在处理Course数据集中KCMC属性中的数据时,将其中属于文本数据类型的核心课程名称Course1转换为数字字典D3,最后将D3转换为等长的数字列表D4,利用‘<PAD>’对应的数字填充空白部分,长度为15;
(1.3)合并数据集Student,Course以及Rating,得到Pandas对象Data;
(1.4)将Rating表拆分为X和Y两张表,X={StuID,CourseID},Y={CJ}。
进一步的,所述步骤(2)中搭建深度学习神经网络模型的具体步骤如下:
(2.1)设置嵌入矩阵的维度为embedim=32;
(2.2)设置StuID的个数为stu_max,性别Gender不同的个数为gender_max,入学年份EnterYear不同的个数为enteryear_max,院系Profession不同的个数为profession_max;
(2.3)设置核心课程的CourseID的个数为Courseid_max,核心课程名称KCMC的个数为KCMC_max;
(2.4)设置文本卷积的活动窗口每次滑动2,3,4,5个词语,卷积核数目filter_number=8;
(2.5)迭代次数为100次,批训练数目为256,正则化dropout为0.5,学习效率LearningRate为0.0001;
(2.6)搭建Student特征对象的神经网络模型
(2.7)在神经网络第一层运用了嵌入层,维度分别为(N,32)和(N,16);
(2.8)从嵌入层索引出特征之后,将各特征传入第一层全连接层,运用ReLU作为激活函数;
(2.9)将得到的特征传入第二层全连接层,输出200个单元个数,运用tanh作为激活函数;
(2.10)搭建核心课程Course特征对象的神经网络模型;
(2.11)在神经网络第一层运用了嵌入层,维度分别为(N,32);
(2.12)将核心课程所属的一个或多个专业的多个嵌入向量做加和,即对特征矩阵求和;
(2.13)对核心课程名KCMC进行文本卷积;
(2.14)从嵌入矩阵中得到核心课程名对应的各个词语的嵌入向量;
(2.15)选择不同尺寸的卷积核Window_size;
(2.16)2<=Window_size<=5;
(2.17)对文本嵌入层使用卷积核做卷积和最大池化;
(2.18)Window_size=Window_size+1,如果Window_size<=5则返回步骤(2.16),否则执行步骤(2.19);
(2.19)运用dropout层防止过拟合;
(2.20)将核心课程CourseID和核心课程所属专业Genres作第一层全连接,运用ReLU作为激活函数;
(2.21)由第一层全连接得到的特征与核心课程名KCMC作第二层全连接,运用tanh作为激活函数。
进一步的,所述步骤(3)中构建Tensorflow计算图的具体步骤如下:
(3.1)为Student数据集里的StuID,Gender,EnterYear以及Profession设置占位符;
(3.2)为Course数据集中的CourseID,KCMC以及Genres设置占位符;
(3.3)为目标预测成绩target,学习效率LearningRate以及正则化dropout设置占位符;
(3.4)获取输入的占位符、Student数据集中的4个嵌入向量以及Course数据集中的3个嵌入向量;
(3.5)得到学生Student和核心课程Course的特征;
(3.6)将学生信息特征和核心课程信息特征做矩阵乘法得到一个预测的成绩CJ;
(3.7)计算MSE损失;
(3.8)利用AdamOptimizer优化器优化损失值。
进一步的,所述步骤(4)中获取到学生信息特征和核心课程信息特征训练神经网络模型的具体步骤如下:
(4.1)搜索相关数据给tensorboard画图使用;
(4.2)跟踪数据的梯度值和稀疏性;
(4.3)定义循环变量g和损失值grandiens,循环变量g用来遍历损失值grandiens;
(4.4)如果g==none,则执行步骤(4.6),否则执行步骤(4.5);
(4.5)根据损失值grandiens绘出loss的直方图和显示标量信息;
(4.6)输出模型运行时间,训练损失值以及迭代次数;
(4.7)定义循环变量i,定义迭代次数为epochs,i用来遍历迭代次数epochs,初始变量i=0;
(4.8)如果i<=100,则执行步骤(4.9),否则执行步骤(4.40);
(4.9)将数据集分为训练集和测试集,测试集占0.2,训练集占0.8,随机种子不固定;
(4.10)批量读取数据,每次256条;
(4.11)训练迭代,定义循环变量i1,定义train_x为训练集,lentrain_x为训练集长度,i1循环遍历训练集train_x;
(4.12)如果0<=i1<=lentrain_x,则执行步骤(4.13),否则执行步骤(4.25);
(4.13)获取不同核心课程对应的专业矩阵,矩阵大小为256行,92列;
(4.14)定义循环变量i2,批训练数目为batch_size,i2循环遍历batch_size,初始变量i2=1;
(4.15)如果1<=i2<=256,则执行步骤(4.16),否则执行步骤(4.18);
(4.16)获取训练集中每个核心课程对应的Genres中的数字字典D5;
(4.17)i2=i2+1,执行步骤(4.15);
(4.18)定义循环变量i3,批训练数目为batch_size,i3循环遍历batch_size,初始变量i3=1;
(4.19)如果1<=i3<=256,则执行步骤(4.20),否则执行步骤(4.22);
(4.20)获取训练集中每个核心课程名KCMC中的数字字典D6;
(4.21)i3=i3+1,之后执行步骤(4.19);
(4.22)使用feed_dict字典作为计算图graph的输入值;
(4.23)保存每次的训练损失;
(4.24)i1=i1+1,之后执行步骤(4.12);
(4.25)定义循环变量i4,定义Test_x为训练集,lentest_x为训练集长度,i4循环遍历训练集Test_x;
(4.26)如果0<=i4<=lentest_x,则执行步骤(4.27);
(4.27)获取不同核心课程对应的专业矩阵,矩阵大小为256行,92列;
(4.28)定义循环变量i5,批训练数目为batch_size,i5循环遍历batch_size,初始变量i5=1;
(4.29)如果1<=i5<=256,则执行步骤(4.30),否则执行步骤(4.32);
(4.30)获取测试集中每个核心课程对应的Genres中的数字字典D7;
(4.31)i5=i5+1,之后执行步骤(4.29);
(4.32)定义循环变量i6,批训练数目为batch_size,i6循环遍历batch_size,初始变量i6=1;
(4.33)如果1<=i6<=256,则执行步骤(4.34),否则执行步骤(4.36);
(4.34)获取测试集每个核心课程名KCMC的数字字典D8;
(4.35)i6=i6+1,之后执行步骤(4.33);
(4.36)使用feed_dict字典作为计算图graph的输入值;
(4.37)保存每次测试的损失;
(4.38)i4=i4+1,之后执行步骤(4.26);
(4.39)i=i+1,之后执行步骤(4.08);
(4.40)保存模型。
进一步的,所述步骤(5)中生成学生信息特征矩阵和核心课程特征矩阵的具体步骤如下:
(5.1)从加载的神经网络模型中获取有关核心课程的张量;
(5.2)将训练好的核心课程特征组合成核心课程特征矩阵并且保存到本地;
(5.3)从加载的神经网络模型中获取有关学生信息的张量;
(5.4)将训练好的学生信息特征组合成学生信息特征矩阵并且保存到本地。
进一步的,所述步骤(6)中给学生推荐专业的具体步骤如下:
(6.1)计算当前所选的核心课程与整个核心课程特征矩阵的余弦相似度;
(6.2)取相似度最大的随机选择的top_k个核心课程;
(6.3)通过对所选的top_k个核心课程进行专业映射,得到每个核心课程所对应的多个专业;
(6.4)每次重复选择的专业就在此专业上加1个权重,最终得到top_x个专业。
与现有技术相比,本发明的优点在于:
本发明利用大学生基本个人信息和在校大学生新生时期的核心课程成绩,分析这部分大学生的在这些核心课程上的学习态度和自身定位,从而对这部分大学生在“大类招生”或转专业时提供专业推荐,其结果可以辅助高校进行专业建设以及为人才培养方案的改进提供有效意见与信息。
本发明通过构建一种基于深度神经网络和文本卷积相结合的个性化推荐方法,利用这种个性化推荐管理系统能够辅助高校进行专业建设以及为人才培养方案的改进提供有效意见与信息。
附图说明
图1为本发明的总体流程图;
图2为图1中对学生的基本信息和核心课程信息进行数据预处理的流程图;
图3为图1中搭建深度学习神经网络模型的流程图;
图4为图1中构建Tensorflow计算图的流程图;
图5为图1中获取到学生信息特征和核心课程信息特征训练神经网络模型的流程图;
图6为图1中生成学生信息特征矩阵和核心课程特征矩阵的流程图;
图7为图1中给学生推荐专业的流程图。
具体实施方式
下面结合附图和具体实施方式,进一步阐明本发明。
如图1-图7示,本发明包括如下步骤:
步骤1:对学生的基本信息和核心课程信息数据集Student、Course以及Rating;
进行数据预处理得到数据集Student、Course以及Rating,具体方法为:
步骤1.1:定义Student为学生信息数据集,Course为核心课程数据集,Rating为课程成绩数据集,定义StuID、Gender、EnterYear、Profession分别为学生学号、学生性别、学生入学年份以及学生所属院系。定义CourseID、KCMC、Genres、CJ为核心课程ID、核心课程名称、核心课程所属的一个或多个专业以及成绩。并且满足关系Student={StuID,Gender,EnterYear,Profession},Course={CourseID,KCMC,Genres},Rating={StuID,CourseID,CJ};
步骤1.2:读取Student中的Gender属性中的数据,将性别‘男’转换为数字1,性别‘女’转换为数字0。读取Course数据集中Genres属性中的数据,将其中属于文本数据类型的专业名称Pro1转换为数字字典D1,最后将D1转换为等长的数字列表D2,利用‘<PAD>’对应的数字填充空白部分,长度为18。同理,在处理Course数据集中KCMC属性中的数据时,将其中属于文本数据类型的核心课程名称Course1转换为数字字典D3,最后将D3转换为等长的数字列表D4,利用‘<PAD>’对应的数字填充空白部分,长度为15。
步骤1.3:合并数据集Student,Course以及Rating,得到Pandas对象Data。
步骤1.4:将Rating表拆分为X和Y两张表,X={StuID,CourseID},Y={CJ}。
步骤2:搭建深度学习神经网络模型,具体方法为:
步骤2.1:设置嵌入矩阵的维度为embedim=32;
步骤2.2:设置StuID的个数为stu_max,性别Gender不同的个数为gender_max,入学年份EnterYear不同的个数为enteryear_max,院系Profession不同的个数为profession_max;
步骤2.3:设置核心课程的CourseID的个数为Courseid_max,核心课程名称KCMC的个数为KCMC_max;
步骤2.4:设置文本卷积的活动窗口每次滑动2,3,4,5个词语,卷积核数目filter_number=8;
步骤2.5:迭代次数为100次,批训练数目为256,正则化dropout为0.5,学习效率LearningRate为0.0001;
步骤2.6:搭建Student特征对象的神经网络模型
步骤2.7:在神经网络第一层运用了嵌入层,维度分别为(N,32)和(N,16);
步骤2.8:从嵌入层索引出特征之后,将各特征传入第一层全连接层,运用ReLU作为激活函数;
步骤2.9:将得到的特征传入第二层全连接层,输出200个单元个数,运用tanh作为激活函数;
步骤2.10:搭建核心课程Course特征对象的神经网络模型;
步骤2.11:在神经网络第一层运用了嵌入层,维度分别为(N,32);
步骤2.12:将核心课程所属的一个或多个专业的多个嵌入向量做加和,即对特征矩阵求和;
步骤2.13:对核心课程名KCMC进行文本卷积;
步骤2.14:从嵌入矩阵中得到核心课程名对应的各个词语的嵌入向量;
步骤2.15:选择不同尺寸的卷积核Window_size;
步骤2.16:2<=Window_size<=5;
步骤2.17:对文本嵌入层使用卷积核做卷积和最大池化;
步骤2.18:Window_size=Window_size+1,如果Window_size<=5则返回步骤(2.16),否则执行步骤(2.19);
步骤2.19:运用dropout层防止过拟合;
步骤2.20:将核心课程CourseID和核心课程所属专业Genres作第一层全连接,运用ReLU作为激活函数;
步骤2.21:由第一层全连接得到的特征与核心课程名KCMC作第二层全连接,运用tanh作为激活函数;
步骤3:构建Tensorflow计算图,具体方法为:
步骤3.1:为Student数据集里的StuID,Gender,EnterYear以及Profession设置占位符;
步骤3.2:为Course数据集中的CourseID,KCMC以及Genres设置占位符;
步骤3.3:为目标预测成绩target,学习效率LearningRate以及正则化dropout设置占位符;
步骤3.4:获取输入的占位符、Student数据集中的4个嵌入向量以及Course数据集中的3个嵌入向量;
步骤3.5:得到学生Student和核心课程Course的特征;
步骤3.6:将学生信息特征和核心课程信息特征做矩阵乘法得到一个预测的成绩CJ;
步骤3.7:计算MSE损失;
步骤3.8:利用AdamOptimizer优化器优化损失值;
步骤4:通过处理步骤1,2,3获取到学生信息特征和核心课程信息特征训练神经网络模型,具体方法为:
步骤4.1:搜索相关数据给tensorboard画图使用;
步骤4.2:跟踪数据的梯度值和稀疏性;
步骤4.3:定义循环变量g和损失值grandiens,循环变量g用来遍历损失值grandiens;
步骤4.4:如果g==none,则执行步骤(4.6),否则执行步骤(4.5);
步骤4.5:根据损失值grandiens绘出loss的直方图和显示标量信息;
步骤4.6:输出模型运行时间,训练损失值以及迭代次数;
步骤4.7:定义循环变量i,定义迭代次数为epochs,i用来遍历迭代次数epochs,初始变量i=0;
步骤4.8:如果i<=100,则执行步骤(4.9),否则执行步骤(4.40);
步骤4.9:将数据集分为训练集和测试集,测试集占0.2,训练集占0.8,随机种子不固定;
步骤4.10:批量读取数据,每次256条;
步骤4.11:训练迭代,定义循环变量i1,定义train_x为训练集,lentrain_x为训练集长度,i1循环遍历训练集train_x;
步骤4.12:如果0<=i1<=lentrain_x,则执行步骤(4.13),否则执行步骤(4.25);
步骤4.13:获取不同核心课程对应的专业矩阵,矩阵大小为256行,92列;
步骤4.14:定义循环变量i2,批训练数目为batch_size,i2循环遍历batch_size,初始变量i2=1;
步骤4.15:如果1<=i2<=256,则执行步骤(4.16),否则执行步骤(4.18);
步骤4.16:获取训练集中每个核心课程对应的Genres中的数字字典D5;
步骤4.17:i2=i2+1,执行步骤(4.15);
步骤4.18:定义循环变量i3,批训练数目为batch_size,i3循环遍历batch_size,初始变量i3=1;
步骤4.19:如果1<=i3<=256,则执行步骤(4.20),否则执行步骤(4.22);
步骤4.20:获取训练集中每个核心课程名KCMC中的数字字典D6;
步骤4.21:i3=i3+1,之后执行步骤(4.19);
步骤4.22:使用feed_dict字典作为计算图graph的输入值;
步骤4.23:保存每次的训练损失;
步骤4.24:i1=i1+1,之后执行步骤(4.12);
步骤4.25:定义循环变量i4,定义Test_x为训练集,lentest_x为训练集长度,i4循环遍历训练集Test_x;
步骤4.26:如果0<=i4<=lentest_x,则执行步骤(4.27);
步骤4.27:获取不同核心课程对应的专业矩阵,矩阵大小为256行,92列;
步骤4.28:定义循环变量i5,批训练数目为batch_size,i5循环遍历batch_size,初始变量i5=1;
步骤4.29:如果1<=i5<=256,则执行步骤(4.30),否则执行步骤(4.32);
步骤4.30:获取测试集中每个核心课程对应的Genres中的数字字典D7;
步骤4.31:i5=i5+1,之后执行步骤(4.29);
步骤4.32:定义循环变量i6,批训练数目为batch_size,i6循环遍历batch_size,初始变量i6=1;
步骤4.33:如果1<=i6<=256,则执行步骤(4.34),否则执行步骤(4.36);
步骤4.34:获取测试集每个核心课程名KCMC的数字字典D8;
步骤4.35:i6=i6+1,之后执行步骤(4.33);
步骤4.36:使用feed_dict字典作为计算图graph的输入值;
步骤4.37:保存每次测试的损失;
步骤4.38:i4=i4+1,之后执行步骤(4.26);
步骤4.39:i=i+1,之后执行步骤(4.08);
步骤4.40:保存模型;
步骤5:生成学生信息特征矩阵和核心课程特征矩阵,具体方法为:
步骤5.1:从加载的神经网络模型中获取有关核心课程的张量;
步骤5.2:将训练好的核心课程特征组合成核心课程特征矩阵并且保存到本地;
步骤5.3:从加载的神经网络模型中获取有关学生信息的张量;
步骤5.4:将训练好的学生信息特征组合成学生信息特征矩阵并且保存到本地;
步骤6:给学生推荐专业,具体方法为:
步骤6.1:计算当前所选的核心课程与整个核心课程特征矩阵的余弦相似度;
步骤6.2:取相似度最大的随机选择的top_k个核心课程;
步骤6.3:通过对所选的top_k个核心课程进行专业映射,得到每个核心课程所对应的多个专业;
步骤6.4:每次重复选择的专业就在此专业上加1个权重,最终得到top_x个专业;
通过对351276条核心课程与专业的数据以及5000条学生基本信息处理,利用神经网络和文本卷积进行个性化专业推荐。最后向大学生推荐适合的专业,辅助高校进行专业建设以及为人才培养方案的改进提供有效意见与信息。

Claims (4)

1.一种基于深度学习的大学生专业推荐方法,其特征在于,具体步骤如下:
(1)对学生的基本信息和核心课程信息进行数据预处理得到数据集Student、Course以及Rating;
(2)搭建深度学习神经网络模型;
(2.1)设置嵌入矩阵的维度为embedim=32;
(2.2)设置StuID的个数为stu_max,性别Gender不同的个数为gender_max,入学年份EnterYear不同的个数为enteryear_max,院系Profession不同的个数为profession_max;
(2.3)设置核心课程的CourseID的个数为Courseid_max,核心课程名称KCMC的个数为KCMC_max;
(2.4)设置文本卷积的活动窗口每次滑动2,3,4,5个词语,卷积核数目filter_number=8;
(2.5)迭代次数为100次,批训练数目为256,正则化dropout为0.5,学习效率LearningRate为0.0001;
(2.6)搭建Student特征对象的神经网络模型
(2.7)在神经网络第一层运用了嵌入层,维度分别为(N,32)和(N,16);
(2.8)从嵌入层索引出特征之后,将各特征传入第一层全连接层,运用ReLU作为激活函数;
(2.9)将得到的特征传入第二层全连接层,输出200个单元个数,运用tanh作为激活函数;
(2.10)搭建核心课程Course特征对象的神经网络模型;
(2.11)在神经网络第一层运用了嵌入层,维度分别为(N,32);
(2.12)将核心课程所属的一个或多个专业的多个嵌入向量做加和,即对特征矩阵求和;
(2.13)对核心课程名KCMC进行文本卷积;
(2.14)从嵌入矩阵中得到核心课程名对应的各个词语的嵌入向量;
(2.15)选择不同尺寸的卷积核Window_size;
(2.16)2<=Window_size<=5;
(2.17)对文本嵌入层使用卷积核做卷积和最大池化;
(2.18)Window_size=Window_size+1,如果Window_size<=5则返回步骤(2.16),否则执行步骤(2.19);
(2.19)运用dropout层防止过拟合;
(2.20)将核心课程CourseID和核心课程所属专业Genres作第一层全连接,运用ReLU作为激活函数;
(2.21)由第一层全连接得到的特征与核心课程名KCMC作第二层全连接,运用tanh作为激活函数;
(3)构建Tensorflow计算图;
(3.1)为Student数据集里的StuID,Gender,EnterYear以及Profession设置占位符;
(3.2)为Course数据集中的CourseID,KCMC以及Genres设置占位符;
(3.3)为目标预测成绩target,学习效率LearningRate以及正则化dropout设置占位符;
(3.4)获取输入的占位符、Student数据集中的4个嵌入向量以及Course数据集中的3个嵌入向量;
(3.5)得到学生Student和核心课程Course的特征;
(3.6)将学生信息特征和核心课程信息特征做矩阵乘法得到一个预测的成绩CJ;
(3.7)计算MSE损失;
(3.8)利用AdamOptimizer优化器优化损失值;
(4)获取到学生信息特征和核心课程信息特征训练神经网络模型;
(5)生成学生信息特征矩阵和核心课程特征矩阵;
(6)给学生推荐专业;
(6.1)计算当前所选的核心课程与整个核心课程特征矩阵的余弦相似度;
(6.2)取相似度最大的随机选择的top_k个核心课程;
(6.3)通过对所选的top_k个核心课程进行专业映射,得到每个核心课程所对应的多个专业;
(6.4)每次重复选择的专业就在此专业上加1个权重,最终得到top_x个专业。
2.根据权利要求1所述的一种基于深度学习的大学生专业推荐方法,其特征在于,所述步骤(1)中得到数据集Student、Course以及Rating的具体步骤如下:
(1.1)定义Student为学生信息数据集,Course为核心课程数据集,Rating为课程成绩数据集,定义StuID、Gender、EnterYear、Profession分别为学生学号、学生性别、学生入学年份以及学生所属院系;定义CourseID、KCMC、Genres、CJ为核心课程ID、核心课程名称、核心课程所属的一个或多个专业以及成绩;并且满足关系Student={StuID,Gender,EnterYear,Profession},Course={CourseID,KCMC,Genres},Rating={StuID,CourseID,CJ};
(1.2)读取Student中的Gender属性中的数据,将性别‘男’转换为数字1,性别‘女’转换为数字0;读取Course数据集中Genres属性中的数据,将其中属于文本数据类型的专业名称Pro1转换为数字字典D1,最后将D1转换为等长的数字列表D2,利用‘<PAD>’对应的数字填充空白部分,长度为18;同理,在处理Course数据集中KCMC属性中的数据时,将其中属于文本数据类型的核心课程名称Course1转换为数字字典D3,最后将D3转换为等长的数字列表D4,利用‘<PAD>’对应的数字填充空白部分,长度为15;
(1.3)合并数据集Student,Course以及Rating,得到Pandas对象Data;
(1.4)将Rating表拆分为X和Y两张表,X={StuID,CourseID},Y={CJ}。
3.根据权利要求1所述的一种基于深度学习的大学生专业推荐方法,其特征在于,所述步骤(4)中获取到学生信息特征和核心课程信息特征训练神经网络模型的具体步骤如下:
(4.1)搜索相关数据给tensorboard画图使用;
(4.2)跟踪数据的梯度值和稀疏性;
(4.3)定义循环变量g和损失值grandiens,循环变量g用来遍历损失值grandiens;
(4.4)如果g==none,则执行步骤(4.6),否则执行步骤(4.5);
(4.5)根据损失值grandiens绘出loss的直方图和显示标量信息;
(4.6)输出模型运行时间,训练损失值以及迭代次数;
(4.7)定义循环变量i,定义迭代次数为epochs,i用来遍历迭代次数epochs,初始变量i=0;
(4.8)如果i<=100,则执行步骤(4.9),否则执行步骤(4.40);
(4.9)将数据集分为训练集和测试集,测试集占0.2,训练集占0.8,随机种子不固定;
(4.10)批量读取数据,每次256条;
(4.11)训练迭代,定义循环变量i1,定义train_x为训练集,lentrain_x为训练集长度,i1循环遍历训练集train_x;
(4.12)如果0<=i1<=lentrain_x,则执行步骤(4.13),否则执行步骤(4.25);
(4.13)获取不同核心课程对应的专业矩阵,矩阵大小为256行,92列;
(4.14)定义循环变量i2,批训练数目为batch_size,i2循环遍历batch_size,初始变量i2=1;
(4.15)如果1<=i2<=256,则执行步骤(4.16),否则执行步骤(4.18);
(4.16)获取训练集中每个核心课程对应的Genres中的数字字典D5;
(4.17)i2=i2+1,执行步骤(4.15);
(4.18)定义循环变量i3,批训练数目为batch_size,i3循环遍历batch_size,初始变量i3=1;
(4.19)如果1<=i3<=256,则执行步骤(4.20),否则执行步骤(4.22);
(4.20)获取训练集中每个核心课程名KCMC中的数字字典D6;
(4.21)i3=i3+1,之后执行步骤(4.19);
(4.22)使用feed_dict字典作为计算图graph的输入值;
(4.23)保存每次的训练损失;
(4.24)i1=i1+1,之后执行步骤(4.12);
(4.25)定义循环变量i4,定义Test_x为训练集,lentest_x为训练集长度,i4循环遍历训练集Test_x;
(4.26)如果0<=i4<=lentest_x,则执行步骤(4.27);
(4.27)获取不同核心课程对应的专业矩阵,矩阵大小为256行,92列;
(4.28)定义循环变量i5,批训练数目为batch_size,i5循环遍历batch_size,初始变量i5=1;
(4.29)如果1<=i5<=256,则执行步骤(4.30),否则执行步骤(4.32);
(4.30)获取测试集中每个核心课程对应的Genres中的数字字典D7;
(4.31)i5=i5+1,之后执行步骤(4.29);
(4.32)定义循环变量i6,批训练数目为batch_size,i6循环遍历batch_size,初始变量i6=1;
(4.33)如果1<=i6<=256,则执行步骤(4.34),否则执行步骤(4.36);
(4.34)获取测试集每个核心课程名KCMC的数字字典D8;
(4.35)i6=i6+1,之后执行步骤(4.33);
(4.36)使用feed_dict字典作为计算图graph的输入值;
(4.37)保存每次测试的损失;
(4.38)i4=i4+1,之后执行步骤(4.26);
(4.39)i=i+1,之后执行步骤(4.08);
(4.40)保存模型。
4.根据权利要求1所述的一种基于深度学习的大学生专业推荐方法,其特征在于,所述步骤(5)中生成学生信息特征矩阵和核心课程特征矩阵的具体步骤如下:
(5.1)从加载的神经网络模型中获取有关核心课程的张量;
(5.2)将训练好的核心课程特征组合成核心课程特征矩阵并且保存到本地;
(5.3)从加载的神经网络模型中获取有关学生信息的张量;
(5.4)将训练好的学生信息特征组合成学生信息特征矩阵并且保存到本地。
CN201910293908.9A 2019-04-12 2019-04-12 一种基于深度学习的大学生专业推荐方法 Active CN110188978B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910293908.9A CN110188978B (zh) 2019-04-12 2019-04-12 一种基于深度学习的大学生专业推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910293908.9A CN110188978B (zh) 2019-04-12 2019-04-12 一种基于深度学习的大学生专业推荐方法

Publications (2)

Publication Number Publication Date
CN110188978A CN110188978A (zh) 2019-08-30
CN110188978B true CN110188978B (zh) 2023-04-25

Family

ID=67714169

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910293908.9A Active CN110188978B (zh) 2019-04-12 2019-04-12 一种基于深度学习的大学生专业推荐方法

Country Status (1)

Country Link
CN (1) CN110188978B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11200591B2 (en) * 2018-05-30 2021-12-14 Paypal, Inc. Electronic content based on neural networks
CN113704610B (zh) * 2021-08-27 2024-03-05 华中师范大学 一种基于学习成长数据的学习风格画像生成方法及系统
CN117688248B (zh) * 2024-02-01 2024-04-26 安徽教育网络出版有限公司 一种基于卷积神经网络的在线课程推荐方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107180375A (zh) * 2017-05-04 2017-09-19 东华大学 一种基于多层神经网络的服装号型推荐系统
CN108335731A (zh) * 2018-02-09 2018-07-27 辽宁工程技术大学 一种基于计算机视觉的病人饮食推荐方法
CN108446302A (zh) * 2018-01-29 2018-08-24 东华大学 一种结合TensorFlow与Spark的个性化推荐系统
CN108960273A (zh) * 2018-05-03 2018-12-07 淮阴工学院 一种基于深度学习的贫困生认定方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107180375A (zh) * 2017-05-04 2017-09-19 东华大学 一种基于多层神经网络的服装号型推荐系统
CN108446302A (zh) * 2018-01-29 2018-08-24 东华大学 一种结合TensorFlow与Spark的个性化推荐系统
CN108335731A (zh) * 2018-02-09 2018-07-27 辽宁工程技术大学 一种基于计算机视觉的病人饮食推荐方法
CN108960273A (zh) * 2018-05-03 2018-12-07 淮阴工学院 一种基于深度学习的贫困生认定方法

Also Published As

Publication number Publication date
CN110188978A (zh) 2019-08-30

Similar Documents

Publication Publication Date Title
CN107480261B (zh) 一种基于深度学习细粒度人脸图像快速检索方法
Li et al. Heterogeneous ensemble for default prediction of peer-to-peer lending in China
CN109992779B (zh) 一种基于cnn的情感分析方法、装置、设备及存储介质
CN110059716B (zh) 一种cnn-lstm-svm网络模型的构建及mooc辍学预测方法
CN110188978B (zh) 一种基于深度学习的大学生专业推荐方法
CN110929164A (zh) 一种基于用户动态偏好与注意力机制的兴趣点推荐方法
CN107798349B (zh) 一种基于深度稀疏自编码机的迁移学习方法
CN109657780A (zh) 一种基于剪枝顺序主动学习的模型压缩方法
CN108734301A (zh) 一种机器学习方法和机器学习装置
CN106228185A (zh) 一种基于神经网络的通用图像分类识别系统及方法
CN107330514A (zh) 一种基于集成极限学习机的空气质量预测方法
Feng et al. One-dimensional VGGNet for high-dimensional data
CN112905891A (zh) 基于图神经网络的科研知识图谱人才推荐方法及装置
CN110991621A (zh) 一种基于通道数搜索卷积神经网络的方法
Li et al. A novel gaussian–bernoulli based convolutional deep belief networks for image feature extraction
CN106601235A (zh) 一种半监督多任务特征选择的语音识别方法
Zhang et al. Summary of convolutional neural network compression technology
Chen et al. Hot-starting the AC power flow with convolutional neural networks
Gao et al. Natural scene recognition based on convolutional neural networks and deep Boltzmannn machines
Saravi et al. Quantitative model of irrigation effect on maize yield by deep neural network
Du et al. Efficient network construction through structural plasticity
CN114861671A (zh) 模型训练方法、装置、计算机设备及存储介质
Zhang et al. Deep compression of probabilistic graphical networks
Zhang et al. Lifelong language learning with adaptive uncertainty regularization
Zhang et al. The Role of Knowledge Creation‐Oriented Convolutional Neural Network in Learning Interaction

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20190830

Assignee: Fanyun software (Nanjing) Co.,Ltd.

Assignor: HUAIYIN INSTITUTE OF TECHNOLOGY

Contract record no.: X2023980052895

Denomination of invention: A Deep Learning Based Professional Recommendation Method for College Students

Granted publication date: 20230425

License type: Common License

Record date: 20231219