摘要
近年来,随着互联网与通信技术的高速发展,学习资源共享与建设呈现出新的发展趋势,多样化的线上教育平台如雨后春笋般争相涌入大众视野。尤其是在今年年初,受新冠肺炎疫情的冲击下,学生返校进行线下授课收到严重阻碍,由此,网络线上平台由此成为“互联网+教育”成果的重要发展领地,如何根据教育平台把握用户信息,掌握用户课程偏好并提供精准的远程课程推荐服务成为了线上教育的热点话题。因此,利用数据分析技术对教育平台的线上信息和用户学习信息进行研究具有重大意义。
针对任务一,对所给数据集进行缺失值、异常值、重复值等 方面的处理。首先利用 python 对数据进行初步的描述性统计分析,使用 pandas 中的 info 函数进行缺失值计数,对不同的数据缺失情况采用不同的处理方式。其次,在填补缺失值的基础上对 数据集进行异常值处理,对于重要性较高的数据,结合上下数据 或者其余数据进行填补处理。进一步地,对于重要性相对较低, 或者对实际分析过程产生的影响较小的数据进行删除处理。最后, 使用 pandas 中的 drop_duplicates 函数,对于每一行中完全相同的数据进行删除处理,删除重复项。
针对任务二,首先,对该教育平台用户进行海外和国内使用情况分布分析,重点对中国内所有省市地区进行数量统计,并利用 python 对全国各个省份的用户数量分布绘制热力图,进一步对重点省份用户分布情况进行分析。其次,根据日期信息和国务院各年份法定节假日文件,对工作日和非工作日进行区分处理, 统计 24 小时各个时段的用户活跃度并进行具体整体分析,绘制相应的柱形图实现对该教育平台用户进行活跃度分析。最后,通过查询相关文献给出用户流失概念,计算用户流失率并对未流失客户流失风险等级进行分类。最终结合上述用户分布、用户活跃度以及用户流失率分析,为该教育平台提供线上管理决策建议。
针对任务三,首先根据用户参与学习的记录,对每门课程的参与人数进行统计并计算出每门课程的受欢迎程度。其次根据相关数据,选出用户 ID 和课程列,进行用户-课程关系表的排布, 并基于物品的协同过滤算法计算课程间相似情况,并对总学习进度最高的五名用户推荐相似的课程。最后对课程收费差异与用户学习进度进行相关性分析,并在此基础上给出线上课程的综合推荐策略。
目录
1、问题分析
2、任务一
2.1缺失值处理
2.1.1缺失情况说明
2.1.2缺失数据处理过程描述
2.2异常值处理
2.2.1异常情况说明
2.2.2异常数据处理过程描述
2.3重复值处理
2.3.1重复情况说明
2.3.2重复数据处理过程描述
3、任务二
3.1用户分布分析
3.1.1海内外用户分布分析
3.1.2省份用户平台登陆次数分析
3.1.3省份用户分布情况分析——基于热力图
3.1.4重点省份用户平台登陆次数分析
3.1.5重点省份用户分布情况分析——基于玫瑰饼图
3.2用户活跃度分析
3.2.1日期数据预处理
3.2.2用户活跃度整体情况分析
3.2.3工作日用户活跃时间段分析
3.2.4非工作日日用户活跃时间段分析
3.3用户流失率分析
3.3.1流失情况说明
3.3.2用户总体情况分析
3.3.3流失天数及流失率分析
3.3.4未流失客户流失风险等级分类分析
3.4线上管理决策建议
3.4.1宣传方面
3.4.2活跃度方面
3.4.3流失方面
4、任务三
4.1用户参与课程情况分析
4.1.1用户课程选择分析
4.1.2课程受欢迎程度分析
4.2用户选择课程情况
4.2.1用户-课程关系表
4.2.2协同过滤算法概述
4.2.3课程间相似度情况——基于协同过滤法
4.2.4重点用户课程推荐结果
4.3课程收费差异与用户学习进度相关性分析
4.3.1课程价格与学习进度关系
4.3.2相关性分析结果
4.4线上课程综合推荐策略制定
4.4.1课程角度
4.4.2用户角度
5、参考文献
1、问题分析
1.分析平台用户的活跃情况,计算用户的流失率。
2.分析线上课程的受欢迎程度,构建课程智能推荐模型,为教育平台的线上推荐服务提供策略
2、任务一
2.1缺失值处理
2.1.1缺失情况说明
在本次数据分析过程中,缺失数据将被进一步划分成为三个部分,一类数据是数据为 0 的情况,一类是数据为空值的情况,一类是数据为特殊符号,例如“–”的数据。
针对不同的数据缺失情况,本次分析将会采用不同的处理方式:
1、针对数值为 0 的情况,需要进行实际的分析,回归到原始数据中去,判断该数据为 0 时是否具有实际意义。如果没有就将其作为缺失值做删除处理。
2、针对数据为空值的情况,如果该特征数据缺失情况低于 10%,则结合该特征的重要性进行综合判断。如果字段重要性较低,则考虑直接删除,如果字段重要性较高,则进行插值法或者采用数据均值进行填补。
3、针对数据为特殊符号的情况,需要结合原始数据判断该数据为缺失值还是异常值。如果是缺失值则如 1 操作进行处理。如果为异常值,则进行异常值处理,具体异常值处理过程将在下文中进行阐述。
2.1.2缺失数据处理过程描述
考虑到数据的体量较大,因此使用 python 中的 pandas 对数据进行初步的描述性统计分析。使用 pandas 中的 info 函数进行缺失值计数。对具体的缺失数据删除使用 dropna 函数。
如图所示,login 数据表不存在数据缺失值问题。Study_information 数据表中user_id 字段和 school 字段存在一定的缺失情况。考虑到该字段数据缺失情况不明显,因此对 user_id 进行删除处理。而 school 字段数据缺失明显,且为非重要字段,因此对该字段采取保留措施,不进行任何的相关操作。Users 数据表中 price 字段存在一定的数据缺失情况。其中对于数据为 0 的字段本次分析判定为免费课程,数值有效。而针对空值部分的数据则考虑采取以下措施:对于其余用户出现过程的课程,则采用均值代替,对于之前从未出现过程的课程而言,则做删除处理。最终删除后数据如表所示。
图 1 login 数据表信息描述
图 2 study_information 数据表信息描述
图 3 users 数据表信息描述
表 1 缺失值处理情况描述表
2.2异常值处理
2.2.1异常情况说明
在本次数据分析过程中,针对已经进行完数据缺失值处理之后的数据进行异常值处理。异常值数据只是在数据表中存在特殊符号的数据。
对于已经被判定成为异常值的数据,将根据数据的重要程度进行以下操作:
1、针对重要性较高的数据,结合上下数据或者其余数据进行填补处理。
2、针对重要性相对较低,或者对实际分析过程产生的影响较小的数据进行删除处理。
2.2.2异常数据处理过程描述
在实际数据处理过程中,发现 users 数据中 recently_logged 字段存在异常符号“–”(共计 5376 条),具体分析来看。该数据可能为缺失值,可能为用户注册后为登录的正常数据。结合后续分析与其余表格的可关联性,对“–”进行分类处理。对于在 study_information 中出现的选课信息的用户,采用其选课的最后时间来替换“–”。与此同时,考虑到后续分析中流失值的计算,以及实际过程中确实存在注册后不再进行登录的可能性存在,因此剩余的“–”异常值将采用注册时间替换,也可以理解为将用户注册的时间视为用户最后一次使用该软件的时间。
表 2 异常值处理情况描述表
2.3重复值处理
2.3.1重复情况说明
在完成缺失数据和异常数据处理之后,对数据进行重复值的删除处理。此处的重复值是指在数据表中用于分析的各个字段均一致。
2.3.2重复数据处理过程描述
使用 pandas 中的 drop_duplicates 函数,对于每一行中完全相同的数据进行删除处理。其中对于 study_information 中的 school 做忽略处理。
表 3 重复值处理情况描述表
3、任务二
3.1用户分布分析
3.1.1海内外用户分布分析
由数据可以得出,该线上教育平台海外分布相对较少,大部分业务集中在中国地区。其中,在海外部分地区,英国占比相对较高,占比海外用户量的 66%。具体分布情况如下图表所示。
表 4 海内外用户数量分布表
3.1.2省份用户平台登陆次数分析
海内外用户分布条形图
进一步的,对中国内所有省市地区进行数量统计,具体结果如全国省份用户分布图表所示。
由地理分布来看,该平台主要的服务人群是在华中和华南地区为主,代表的城市为广东,浙江,上海等省市,而相对比较偏远的西部地区分布较少,例如内蒙古、西藏、云南等地。当前重点地区的分布与我国目前互联网发展的情况大体一致,这与线上平台依托于互联网发展密切相关。
表 5 全国省份用户登录人数分布占比统计表
全国省份用户分布条形图
3.1.3省份用户分布情况分析——基于热力图
根据全国各个省份的用户分布绘制热力图,有图可以清晰的感知到,该线上平台地区分布较为广泛,覆盖了我国所有的省市。
全国省份用户分布热力图
3.1.4重点省份用户平台登陆次数分析
其中,分布最为广泛的省市为广东、湖北、贵州、河南三地。其用户登录量分别为 120887,33149,18786,18550。四个地点累计的用户登录数量超过全国数量半数以上,累计占比 50.44%。
图 7 分布前十省份占比情况明细图
3.1.5重点省份用户分布情况分析——基于玫瑰饼图
对于排名前 4 的重点省份地区,本研究将进一步挖掘出省份内各个地区的分布情况。通过对于各个地区的研究,为后续找出线上平台的用户画像提供参考。
由各个重点省市地区的分布情况来看,可以看出各个省市中都存在一个或两个重点地区,如武汉、贵阳、广州、周口和郑州等地。该地区的存在使得省份的占比数据大幅提升。因此,后续在进一步的细分研究中,可以对以上地区进行重点调查。例如进行问卷分析,面对面访谈等方式。
图 8 湖北省各地区用户分布占比图
图 9 贵州各地区用户分布占比图
图 10 广东各地区用户分布占比图
图 11 河南各地区用户分布占比图
3.2用户活跃度分析
3.2.1日期数据预处理
在任务 2.2 中,工作日与非工作日需根据日期进行预先的区分,本文中将星期一到星期五定义为工作日,星期六和星期天定义为非工作日。进一步地,全面考虑到国家法定节假日的调休日期,在日期处理过程中本文利用国务院发布的2018-2020 年法定节假日通知对工作日和非工作日日进行调整,以确保工作日日期的准确性。综上所述,任务 2.2 主要步骤如下所示。
步骤 1.利用 login 数据集,将 login_time 进行日期和具体时间的分列处理, 以此区别日期和各天的时间段,如“2020/3/20 0:00:00”分为“2020/3/20”,“0:00:00”。分别将其命名为“login_data”和“login_time”;
步骤 2.根据分割得到的日期和时间点,对应相应年份的日期设置相对应的星期,如“2020/3/20”对应“星期五”;
步骤 3.基于步骤 2,将星期一到星期五统一编码为工作日,星期六和星期天编码为休息日,该列命名为login_workingday1;
步骤 4.针对国家法定节假日,本文从国务院官网确定法定节假日日期和相应工作日日期,进行统一识别,更正该时间段的工作日和休息日编码,调整后该列命名为 login_workingday2,具体节假日信息如表所示。
表 6 2018 年 9 月-2019 年 6 月节假日分布表
步骤 5.在工作日与非工作日编码结束后,本文将一天的时间按照每小时进行时间分段,共分为 24 个时间段,并对其进行编码。具体时间段分布表如表所示。
表 7 时间段编码表
步骤 6.统计工作日与非工作日各个时间段用户登录总频次,分别命名为workday_fre 和 holidayday_time,进一步计算各个时间段每分钟用户登录的次数workday_fre_min 和 holidayday_fre_min。
基于上述六个步骤,最终得出用户活跃度统计表与用户登录频次统计图,具体变量描述如下表所示。
表 8 变量描述
3.2.2用户活跃度整体情况分析
本任务中的工作日主要为星期一到星期五,以及国务院公布公布的调休工作日。非工作日主要包括星期六和星期日,以及国务院发布的法定节假日。经过数据预处理,本文已经对工作日和非工作日进行了科学地区分,进一步地,将时间段根据 24 小时分为 24 个时间段,为了更科学地描述登陆频次,在本任务中不仅展示了各个时间段的登录总频次,也统计了各时间段单位时间的登陆频次。工作日和非工作日的分布图具体如图所示(绿色柱形表示工作日计数,折线表示非工作日计数)。
整体来看,工作日和非工作日的登陆频次基本一致,均在上午 9:00-11:00, 下午 14:00-17:00,晚上 20:00-21:00 出现三个高峰,波动趋势基本一致。对比来看,各个时间段的登陆频次远高于非工作日的登陆频次,夜间的登陆频次基本一致。具体频次分布表分析在下面部分展开。
图 12 工作日和非工作日各时间段总频次分布图
图 13 工作日和非工作日各时间段单位时间频次分布图
3.2.3工作日用户活跃时间段分析
根据分析图表来看,工作日各时间段的总登陆频次在[217,23066]区间内上下浮动,同时,各时间段单位时间登陆频次区间为[4,353]。整体来看,一天内呈现波浪式的波动分布,。从早上七点开始,用户登陆频次开始逐渐攀升,在 7: 00 到 9:00 期间呈现“陡坡式”攀升,上升幅度达到一天中地最大值。其中,用户登录高峰时间段在上午 8:00 到晚上 23:00,在 10:00-11:00 期间达到最高峰值,登录总频次达到23066 次,相应地在该时间段内每分钟登陆频次达到384 次。另一个小高峰主要出现在下午 15:00-16:00,登录总频次达到 21191 次,每分钟登陆频次为 353 次。总体来看,正常上班时间(8:00-17:00)的登录总频次均高于 14000 次,每分钟登陆频次高于 240 次。夜间 1:00-早上 7:00 为登陆的低谷期,各时间段总频次在 300 次上下浮动,单位时间登陆次数不高于 30 次。
一天中有登录频次有三次明显下降的时间,一是,在中午午休时间段(11: 00-13:00)有所用户登录频次有所下降;第二次主要在下午 17:00 之后,该时间段为工作人员的下班时间;第三次出现在晚上 21:00 之后,该时间段大部分人结束一天的工作,进入休息时间。上述结果表明各个时间段登录频次的分布符合正常工作日的时间分布。具体分布频次表如表所示,各时间段总频次分布和单位时间频次分布统计图分别如图所示。
表 9 工作日各时间段登陆总频次分布表
图 14 工作日各时间段登陆总频次分布图
图 15 工作日各时间段单位时间登陆频次分布图
3.2.4非工作日日用户活跃时间段分析
根据分析图表来看,非工作日各时间段的总登陆频次在[95,8110]区间内上下浮动,同时,各时间段单位时间登陆频次区间为[2,127],显然非工作日的整体登陆频次远远低于工作日的登陆频次。和工作日相同,从早上七点开始,用户登陆频次开始逐渐攀升,在 7:00 到 9:00 期间逐步攀升,上升幅度亦为一天中的最大幅度,在 10:00-11:00 期间达到第一个峰值,登录总频次达到 7520 次, 相应地在该时间段内每分钟登陆频次达到 125 次。另一个小高峰主要出现在下午15:00-16:00,登录总频次达到 7641 次,每分钟登陆频次为 127 次。不同于工作日的是,在非工作日登陆频次最高峰出现在 20:00-21:00,登录总频次最高达到 8110 次,单位时间登陆频次达到 135 次。一天中有登录频次有明显大幅度下降的时间段主要集中在晚上 21:00-次日 1:00。总体来看,非工作日中,登录总频次明显低于工作日,且登陆的最高峰峰值出现时间点不尽相同。具体分布频次表如表所示,各时间段总频次分布和单位时间频次分布统计图分别如图所示。
表 10 非工作日各时间段登陆总频次分布表
图 16 非工作日各时间段登陆总频次分布图