训练机器学习预测器

我一直在尝试使用用户数据构建一个预测模型。模型的输入是文档的元数据(发布日期、标题等),文档标签是用户的偏好(喜欢/不喜欢)。我想问一些我遇到的问题,希望能得到一些答案:

  1. 喜欢的文档数量远多于不喜欢的。我在某处读到,如果某人使用一种标签的输入远多于另一种标签来训练模型,这会对性能产生不利影响(模型倾向于将所有内容分类为具有大多数输入的标签/结果)。
  2. 是否有可能将数字和文字混合作为机器学习算法(例如逻辑回归)的输入?如何实现,例如:

    输入 = [18,23,1,0,’cryptography’],标签 = [‘喜欢’]

    此外,我们可以使用一个向量(使用tfidf等表示一个词)作为输入特征吗(例如,50维向量)?

  3. 为了使用文本数据构建预测模型,唯一的方法是从文档中提取每个词的字典,然后构建一个二进制输入来指示某个术语是否被提及?但是,使用这种版本我们会失去术语在集合中的权重,对吗?我们可以使用word2vec向量作为监督学习模型的单一输入吗?

感谢您的宝贵时间。


回答:

  1. 您需要对较大的类别进行欠采样(随机抽取一个小样本以匹配较小类别的规模),对较小的类别进行过采样(自助样本),或者使用支持不平衡数据的算法——为此您需要阅读相关文档。

  2. 您需要将您的词转换为词向量。列是您语料库中所有独特的词。行是文档。单元格值可以是:词是否出现在文档中,出现的次数,出现的相对频率,或者其TFIDF得分。然后,您可以将这些列与您的其他非词列一起使用。

现在,您可能拥有的列数多于行数,这意味着在基于矩阵的算法中会出现奇异性,在这种情况下,您需要使用像SVM或朴素贝叶斯这样的算法。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注