为什么这很重要?
假设博主只在周一发布力量训练,而且她的视频在周一的播放量总是更高。那么分析播放量时,应该归因它们发布在周一,还是因为它们是力量训练呢?为了获得真实的答案,作者必须确保特征之间没有强共线性。
成对相关(pairwisecorrelations)是常用的方法,但当出现多个特征(多于一对)时,可能会同时存在共线性。
因此,作者使用了一种更复杂的方法——k折交叉验证(K-fold cross-validation)来达到目的。
详细过程如下:
-
根据判断,选择一组关键特征来测试共线性。
作者选择了对于YouTube视频播放量至关重要的特征,同时还添加了三个由随机数组成的特征:rand0,rand1,rand2。当比较特征之间的关系时,它们充当anchor。如果一个特征与这些随机特征相比不太重要或不太相似时,那么它就不是目标特征的重要自变量。
-
为k折交叉验证准备这些特征。
在此过程中,他们转换分类特征(categorical features):area和workout_type。这种转换确保每个类别级别至少有K个值。
-
使用其中一个特征作为目标,其余特征作为自变量,来训练预测模型。
接下来,作者遍历每个特征,并使用其他特征拟合一个模型来预测它,他们用了一个简单的梯度提升模型(Gradient Boosting Model ,GBM)和K折验证,并且根据目标特征是数字的还是分类的,应用不同的模型和分数(模型预测能力评估指标)。
当目标特征是数字时,作者使用Gradient Boosting Regressor模型和均方根误差(RMSE);当目标特征是分类特征时,则使用Gradient Boosting Classifier模型和Accuracy(精度)。
对于每个目标,他们打印出K折验证分数(平均分)和最重要的5个自变量。
-
研究得分和每个目标特征的重要自变量。
作者试图研究每个目标特征及其与自变量的关系。当然本文不会列举整个过程,将举两个例子。
作者发现length(视频长度)和calories特征是相关的。这个发现很直观,因为健身的时间越长,消耗的卡路里就越多。
这种关系不难理解。
length和calories之间存在正相关,但这种强度还不足以将它们直接归到一块。因为40-45分钟的视频消耗的热量与30-35分钟、50-55分钟,甚至与60多分钟的视频,都有重叠部分。因此,两个特征都保留。
此外,作者发现num_same_area和area_full,两个特征也是相关的,这个发现有点令人惊讶,接下来开始解密。
下图显示了num_same_area和area之间的关系。
num_same_area特征,统计的是在过去30天内发布的针对于同一部位视频(包括当前视频)的数量。area_ful代表全身锻炼,这是Sydney视频中最常见的类型。因此,当num_same_area很大时,那么这些视频就是针对全身的锻炼。
假设我们发现更高的num_same_area(>=10)确实会导致更高的YouTube浏览量,但我们无法知道这是因为area_full还是因为num_same_area。因此,作者放弃了num_same_area特征,也因为相同的逻辑放弃相num_same_workouts特征。