APP下载

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

2020-06-13唐明凤

科海故事博览 2020年11期
关键词:柱状图流失率工作日

卿 枫 韩 耀 唐明凤 田 甜

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

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 处理。

图1

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

图2

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

图3

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

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

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

图4

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

图5

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

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

图6

2.2.3 重复数据处理

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

图7

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

图8

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

3 数据分析与可视化

3.1 数据分析可视化简介

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

图9

图10

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:

图11

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

5 总结

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

猜你喜欢

柱状图流失率工作日
基于Unity3D 的冒泡排序算法动态可视化设计及实现
对于马克思关于工作日的思考
关于休闲的量的问题的考察
酒店内部营销探讨
寿险公司个人代理人流失的对策研究
高中地理图像图表题解析技巧之管窥
由科研论文中一个柱状图引发的编辑思考
美国OTT服务用户流失率达19%
基于Android平台的柱状图组件的设计实现
对《资本论》中工作日问题的哲学思考