我被分配了一个YouTube趋势数据集,任务是创建一个预测模型,以至少60%的准确率输出视频进入趋势的概率。
我有标题、频道、缩略图链接、观看次数、点赞数、点踩数、评论数、日期等数据…
我进行了一些分析,发现重要的列是
类别,标签(用“|”分隔的列表)
问题在于,假设所有视频都已进入趋势,所以我无法使用分类器并用训练数据来拟合以预测一个趋势是/否的列,或者使用回归算法,除非改变目标为“预测它会受到多少喜欢”或其他类似目标。
所以听起来我需要的是一个聚类算法,我研究过KMeans,但据我所知它并不适用
我在想我可以逐个视频比较它们包含的类别和标签,并根据它们的流行度来评分,或者创建一个计算相似度的距离函数,但这意味着我应该使用scikit
回答:
这听起来像是一个单类分类问题。一些选项包括:
-
拟合数据的代表性分布,然后对于一个新的观察(视频)检查它来自该分布的可能性有多大
-
拟合一个分类器,它基本上会找到数据的边界,然后对于一个新的观察告诉你它在边界内/外的程度,例如
scikit-learn.svm.OneClassSVM
-
拟合聚类中心,或找到原型示例,然后对于一个新的观察告诉你它与聚类中心的距离与训练数据中平均观察的距离相比如何
只是提供一些想法,肯定还有其他方法。:)