线上课程智能推荐策略分析

2020-06-15 22:01卿枫韩耀唐明凤田甜
科海故事博览·中旬刊 2020年4期
关键词:数据可视化

卿枫 韩耀 唐明凤 田甜

摘 要 由于近几年线上教学网课的盛行,所以通过对如何根据教育平台的线上用户信息和学习信息,提供精准的课程推荐服务就成为线上教育的热点问题。 本次我们使用了python中的pandas和numpy对数据进行了数据预处理,通过pyecharts对数据进行可视化分析,并且通过其不同的登录次数和登录时间制作了基于网课登录次数的世界地图和中国地图。并且根据各个课程的学生登录数据和各个课程的观看完成度进行了流失性分析和线上课程推荐分析最终对线上课程提出了综合策略与管理决策建议。

关键词 python pyecharts 数据可视化

中图分类号:G434;TP311.131 文献标识码:A 文章编号:1007-0745(2020)04-0022-06

1 问题描述

1.1 问题背景

近年来,随着互联网与通信技术的高速发展,学习资源的建设与共享呈现出新的发展趋势,各种网课、慕课、直播课等层出不穷,各种在线教育平台和学习 应用纷纷涌现。尤其是2020年春季学期,受新冠疫情影响,在教育部“停课不停学”的要求下,网络平台成为“互联网+教育”成果的重要展示阵地。因此,如何根据教育平台的线上用户信息和学习信息,通过数据分析为教育平台和用户提供精准的课程推荐服务就成为线上教育的热点问题。本赛题提供了某教育平台近两年的运营数据,希望参赛者根据这些数据,为平台制定综合的线上课程推荐策略,以便更好地服务线上用户。[1]

1.2 任务

1.分析平台用户的活跃情况,计算用户的流失率。

2.分析线上课程的受欢迎程度,构建课程智能推荐模型,为教育平台的线上 推荐服务提供策略。

1.3 具体任务

任务 1.1 应包含每个表中缺失值和重复值的记录数以及有效数据的记录数。

任务 1.2 应包含 recently_logged 字段的“--”值的记录数以及数据处 理的方法。

任务 2.1 应包含各省份与各城市的热力地图以及主要省份和主要城市的数据表格,并进行分析。

任务 2.2 应包含工作日与非工作日各时段的柱状图,并进行分析。

任务 2.3 应包含对流失率的定义,并给出流失率的结果。

任务 2.4 应根据计算结果给出合理的建议。

任务 3.1 应包含最受欢迎的前 10 门课程的参与人数、受欢迎程度及柱状图。

任务3.2应包含相应推荐算法的描述,并给出总学习进度最高的5个用户的课程推荐数据。

任务 3.3 应包含数据分析的方法、算法描述以及主要结果。

2 数据预处理

2.1 数据来源

数据时间:2020年11月14日

2.2 数据处理

数据处理是应用数据分析前极其重要的一步,通常包括了对异常数据的处理、缺失值的处理和重复值的处理。只有处理了才能够进行模型的建立与训练,最终得到相关的结果。

2.2.1 异常数据处理

针对附件所给数据的study_information文件,对其进行处理。

2.2.2 缺失数据处理

针对附件所给数据的study_information文件,首先读取原始数据(如下图1),然后再对其price一栏的缺失值进行處理,我们利用python的pands库的数据处理功能先将缺失价格的课程统计出来course_id中的课程51与课程96的价格数据缺失,且课程51缺失4011个,课程96缺失227个。针对study_information文件总数据数来说,这缺失值的占比不足2%,由此我们将其价格统一补0处理。

通过python的布尔索引找出有缺失值的某列数据,如下图2:

由此可见price列存在缺失值,由此利用fillina将缺失值的课程进行统计分析得到缺失值的课程id为课程51与课程96,在统计其缺失个数得到课程51缺失4011个,课程96缺失227个。得到图3:

再对缺失值进行补0操作得到如下图数据:

至此将study_information文件中的所有缺失值处理完成。

针对附件给出的users文件中的用户id栏存在缺失数据通过python的pandas库将缺失用户id的那一栏数据全部提取出来,提取图4:

由于此数据量占总数据量的比例小因此采取了剔除处理,将以上的67个缺失用户id全部移除。得到新的数据如图5:

由此文件users文件中的缺失用户id全部解决。

通过已经进行了缺失值和重复值处理的文件users,再将login文件中的最近登陆时间的那一列数据进行时间戳类型转化,找到最近的时间,再通过用户id匹配users文件中的相同的用户id上将最近登陆的时间补为login文件找到的最近的时间。但是经过此种方式进行匹配后依然未完全补全。由此确定某些用户再注册后并没有使用,故将其最近的登陆时间修改为注册的时间。最后补全数据如图6所示:

2.2.3 重复数据处理

通过对已经进行过数据缺失处理的users文件进行数据分析,发现文件users的某些行存在重复的数据如图7所示:

在经过python的将user的重复值删除保留其中的一行有用的数据,处理后如图8所示:

由此解决了文件user中的数据重复的问题。

3 数据分析与可视化

3.1 数据分析可视化简介

数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息。但是,这并不就意味着数据可视化就一定因为要实现其功能用途而令人感到枯燥乏味,或者是为了看上去绚丽多彩而显得极端复杂。[2]为了有效地传达思想概念,美学形式与功能需要齐头并进,通过直观地传达关键的方面与特征,从而实现对于相当稀疏而又复杂的数据集的深入洞察。然而,设计人员往往并不能很好地把握设计与功能之间的平衡,从而创造出华而不实的数据可视化形式,无法达到其主要目的,也就是传达与沟通信息。[3]

3.2 平台用户活跃度分析

3.2.1 热力地图

统计login文件中不同的登陆地点的登陆次数然后通过python的pyecharts库进行热力地图的绘制。通过对数据的分析及处理,得到不同登陆地点的登陆次数。

3.2.2 登陆次数柱状图

通过对users文件中的最近访问时间那一列数据进行时间戳转化然后通过匹配星期的方式将每个时间进行分类,将为工作日的数据标记为0,非工作日的标记为1。然后再将统计的数据进行分类处理,在划分时间段统计登陆次数,最后利用python的matplotlib库绘制成柱状图。

3.2.3 流失率分析

先统计users文件中的最近登陆时间与2020年6月18日的时间差,当时间差大90天的时间时将此项标记为1,将时间差小于等于90天的标记为0,最后将标记栏求和就得到流失的人数为22474,在于总人数相比得到最后的流失率为51.18%。

3.3 线上课程推荐分析

3.3.1 受欢迎程度分析

根据用户参与学习的记录,统计每门课程的参与人数,计算每门课 程的受欢迎程度,列出最受欢迎的前 10 门课程,并绘制相应的柱状图。通过数据处理过后的study_information文件用python提取出每一个课程的選人数量然后在对他的选课人数进行排序。

3.3.2 相似度分析

根据用户选择课程情况,构建用户和课程的关系表(二元矩阵),使用基于物品的协同过滤算法计算课程之间的相似度。[4]通过数据预处理study_information的文件,利用python的pandas库得到:得到协同过滤后的数据如图9所示:

4 线上课程的综合策略与管理决策建议

通过数据分析得到的活跃程度的柱状图,然后柱状图表明非工作日时早上8:00点到晚上20:00的活跃度最高,由此可以建议在工作日时将课程开放时间调整在早上8:00到晚上20:00。然而非工作日活跃度有延长的趋势,所以在非工作日时把课程开放时间可以适当延长。

通过对课程之间的相似度分析与付费和免费课程统计得到图10、图11:

由此得到付费课程的学习人数较多,而免费课程的学习人数较少。由此,为促进学习可以适当将一部分课程进行收费,同时来提高课程的学习率。

5 总结

通过对附件所给的数据进行预处理,对缺失数据和重复数据的处理,再到对问题的分析以及对各个任务的处理,其中运用了python的pandas库、datetime库、matplotlib库、numpy库、pyecharts库,最后得到的线上课程的综合策略与管理决策建议。

参考文献:

[1] 马辉.基于python 的数据分析可视化研究与实现[J].理论前沿技术,2020,09(11):289.

[2] 李天辉.基于python的数据分析可视化研究与实现[J].电子测试,2020(20):78-79.

[3] 孙东伟,刘滨.数据可视化研究与技术实现[J].产业与科技论坛,2020,19(19):40-42.

[4] 杨露,葛文谦.基于Python的制造业数据分析可视化平台设计[J].信息化研究,2018,44(05):56-61.

(西华大学 电气与电子信息学院,四川 成都 610039)

猜你喜欢
数据可视化
移动可视化架构与关键技术综述
大数据时代背景下本科教学质量动态监控系统的构建
可视化:新媒体语境下的数据、叙事与设计研究
我国数据新闻的发展困境与策略研究
基于R语言的大数据审计方法研究