通过网络平台学习,选课是其中一个难题。一般,我会先去搜索是否有相关课程的经验分享,或者看看公众号没有有相关课程推荐,又或者,到一些网络学习平台上看它们的排行榜。但是,这样会有两个问题,一是个人的经验更具有个性化,不一定适合自己,并且不是每个人上了课都会在网上写经验推荐的,所以能做出选择的范围比较窄;二是平台上的排行榜,排列依据比较单一,参加排列的课程也比较少,有些好的课程也不容易发现。
于是,我尝试用数据抓取软件,将一个学习平台上所有课程的数据都抓取出来,用统计的方法做一个简单计算和排序。目的,是想得到一个比较全面、客观的课程选择信息。方便自己也方便他人。
这里选择的是【网易云课堂】这个平台,针对里头的免费课程做一个排序。为什么是【网易云课堂】?因为上面的课程有评分、学习人数这样的量化指标,容易计算。另外,云课堂里头有收费课程和免费课程,为什么只选择免费课程做统计?为的是剔除价格因素的影响,还有,我抠门的本性,首先就想看看有哪些免费好课。
这部分只是对我所有的方法有个交代,如想看结果请直接下拉到第二、三部分。
云课堂上的课程分为6大类,分别是编程开发、办公效率、产品和设计、生活方式、职业发展和市场营销。每门课程都有评分和学习人数,评分越高代表课程质量越好,学习人数越多说明课程越受欢迎。
现在想要做的就是将评分和学习人数作为两个变量,放在一个公式里,计算出一个数,这个数越大越好,表明课程既口碑好又热门。我给这个数起了名字,叫口碑热门指数。
所以,我的初步想法是:
然而,评分最高是5分,学习最多有30几万人,它们俩不是一个单位且不在同一量级,不可进行同一水平的比较和计算。所以,对它们进行标准化:
x'=(x-min)/(max-min)
其中max为样本数据的最大值,min为样本数据的最小值。
评分的标准化过程,就是用每门课程的评分减去所有评分中最低的那个分数,再除以最高评分与最低评分之差。这样就相当于计算了评分在总体中的相对位置,结果总是在0-1之间。学习人数也是一样处理。通过这样的计算后,就有了【评分标准数】和【学习人数标准数】。
于是,最终的计算方法就是:
接下来,在云课堂界面上选择免费课程,通过数据抓取软件,采集每门免费课程的课程名称、评分和学习人数,最终得到了3000组数据(课程名称、评分和学习人数视为一组),也就是云课堂上免费课程一共有3000门(图中序号排列到3001,是因为第一行是标题行)。
以上是所有课程的排名,下面请看分类的排名,排序方法不变。
编程开发
办公效率
产品和设计
生活方式
职业发展
市场营销
另外,网易云课堂网站首页的课程学习人数和单独的课程页面上的学习人数是不一致的,不知道为什么会不一致,我采集的是网站首页的数据。但是,差距不大,仍然不影响排名。
还有,我用的数据抓取软件叫集搜客。以上提及的网络学习平台、课程和软件都与我没有任何利益关系,只为内容需要。