识别相似数据的算法?

Algorithm for recognizing similar data?

我得到了一个 YouTube 趋势数据集,任务是制作一个预测模型,该模型输出视频进入趋势的概率,准确率至少为 60%。

我有标题、频道、thumbnail_link、观看次数、喜欢、不喜欢、评论、日期...

我已经做了一些分析并确定重要的列是

类别、标签(以“|”分隔的列表)

问题是假设所有视频都有趋势,所以我不能使用分类器并将其与训练数据相匹配来预测趋势 yes/no 列或使用回归算法而不将目标更改为 "predict how liked will it be" 之类的。

所以听起来我正在寻找的是一个聚类算法,我研究了 KMeans,但据我所知它不会成功

我在想我可以逐个视频比较视频它包含哪些类别和标签,并根据它们的受欢迎程度对其进行评分,或者制作一个距离计算相似度函数,但这意味着我应该使用 scikit

这听起来像是一个 one-class classification 问题。一些选项是:

  • 拟合数据的代表性分布,然后对于新的观察(视频)检查它来自该分布的可能性有多大

  • 拟合一个分类器,该分类器基本上会找到数据的边界,然后对于新的观察,告诉您边界有多远 in/out-side,例如 scikit-learn.svm.OneClassSVM

  • 拟合聚类中心,或找到原型示例,然后对于新的观察,说明与训练数据中的平均观察相比,它离聚类中心有多远

只是一些想法,当然还有其他方法。 :)