我一直在尝试使用用户数据构建一个预测模型。模型的输入是文档的元数据(发布日期、标题等),文档标签是用户的偏好(喜欢/不喜欢)。我想问一些我遇到的问题,希望能得到一些答案:
- 喜欢的文档数量远多于不喜欢的。我在某处读到,如果某人使用一种标签的输入远多于另一种标签来训练模型,这会对性能产生不利影响(模型倾向于将所有内容分类为具有大多数输入的标签/结果)。
-
是否有可能将数字和文字混合作为机器学习算法(例如逻辑回归)的输入?如何实现,例如:
输入 = [18,23,1,0,’cryptography’],标签 = [‘喜欢’]
此外,我们可以使用一个向量(使用tfidf等表示一个词)作为输入特征吗(例如,50维向量)?
- 为了使用文本数据构建预测模型,唯一的方法是从文档中提取每个词的字典,然后构建一个二进制输入来指示某个术语是否被提及?但是,使用这种版本我们会失去术语在集合中的权重,对吗?我们可以使用word2vec向量作为监督学习模型的单一输入吗?
感谢您的宝贵时间。
回答:
-
您需要对较大的类别进行欠采样(随机抽取一个小样本以匹配较小类别的规模),对较小的类别进行过采样(自助样本),或者使用支持不平衡数据的算法——为此您需要阅读相关文档。
-
您需要将您的词转换为词向量。列是您语料库中所有独特的词。行是文档。单元格值可以是:词是否出现在文档中,出现的次数,出现的相对频率,或者其TFIDF得分。然后,您可以将这些列与您的其他非词列一起使用。
现在,您可能拥有的列数多于行数,这意味着在基于矩阵的算法中会出现奇异性,在这种情况下,您需要使用像SVM或朴素贝叶斯这样的算法。