依据小型测试集合的构建方法,我们构建了一个符合实验需求的小型测试集合。首先采用网络爬虫工具爬取了661845条新浪微博,所爬数据包括:微博的文本内容,微博的发布时间,微博用户及其关注的用户。然后在原始数据的基础上参照TREC的评测要求做出以下预处理:①去除已失效或不存在的微博;②去除长度小于40个字符的微博;③将微博中的繁体字转化为简体字。从中抽出100个话题,尝试对爬取用户中的10个用户进行不同情况下的推荐,分别是单独的XGB、GBDT、RF、LGBM算法和四者基于Stacking的集成算法,对于实验结果我们通过计算它们的AUC值进行性能比较。
表8-2 基于Stacking的热点话题集成推荐算法
AUC值的计算通常依据ROC曲线构成的曲线下面积计算,该曲线依据伪阳率(false positive rate)和真阳率(true positive rate)绘制,这两个指标的计算公式为[170]:
其中,TP表示正确分类的正例数目,FN表示错误分类的负例数目(即把负例预测为正例),TP+FN表示实际正例的数目。FP表示错误分类的正例数目,TN表示正确分类的负例数目,FP+TN表示实际负例的数目。
依据上述公式可以计算出某个算法在不同阈值下的真阳率和伪阳率,将不同阈值下的真阳率、伪阳率值对连线即可得到ROC曲线。ROC曲线的横轴为伪阳率,纵轴为真阳率,相同伪阳率下,最上面曲线对应算法的真阳率最高,故其性能较好,但有的时候两种算法的ROC曲线会有交叉、叠加。为了有效地量化不同算法的性能,可通过计算ROC曲线下的面积,即AUC值进行比较。
实验部分将采用ROC曲线和AUC值作为评价标准,比较四种基算法(XGB,GBDT,RF,LGBM)和新的集成算法(New Stacking Algorithm)的性能。AUC值的大小决定分类性能的优劣,其值越大,分类性能越好。
当AUC=1时,性能最优,此时的分类器为完美分类器,这是理想状态,因为不存在完美的分类器;(www.xing528.com)
当AUC=0.5时,分类器相当于随机猜测,没有预测价值;
当0.5<AUC<1时,分类器的性能优于随机预测,具有一定的预测价值;
当AUC<0.5时,分类器性能比随机预测还差,没有预测价值。
图8-10为四种基算法(XGB,GBDT,RF,LGBM)和新的集成算法(New Stacking Algorithm)的ROC曲线比较,观察图8-10可以发现,我们提出的新的集成算法的ROC曲线最靠上,即真阳率最高,故其性能最好。通过计算五种算法的ROC曲线下面积得到了各自的AUC值,比较结果如图8-11所示。图8-11中横轴表示AUC值,纵轴表示不同算法,从图中可以看到,五种算法的AUC值均大于0.5,即性能均优于随机分类器,但是集成后的新算法的AUC值可达0.8,与其他四种算法相比,AUC值最大提高15%(和RF算法对比),得到了较好的推荐效果。
图8-10 五种算法的ROC曲线
图8-11 不同算法的AUC值比较
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。