【问题标题】:Classification with array of strings as input vector以字符串数组作为输入向量的分类
【发布时间】:2015-09-24 23:33:18
【问题描述】:

我有一个与机器学习任务相关的问题。问题是根据字符串向量预测一个值。想到的最直接的想法是使用线性回归。然而,由于我的输入是非数字的,我想我会使用我的字符串的哈希码,但我在这里的某个地方读到结果将毫无意义。另一个想法是使用字母表中的字母位置以 26 为基数对我的字符串进行编码,但我尚未对其进行测试,因此寻求建议。

有人可以推荐一种好的(有意义的)编码字符串的方法,以便它们可以用于线性回归算法吗?或者建议另一种适合该任务的机器学习算法。

总结一下:分类器的输入将由一个固定大小的字符串数组组成(数组是固定长度的,不是字符串),输出应该是一个 0-100 范围内的整数。训练数据将由此类输入数组(x 值)和相应数字(y 值)的集合组成。

【问题讨论】:

  • 马尔可夫链?如果你不能按照作业的要求计算出含义,你将如何实现一些有用的东西?
  • 感谢您的回复。这不是作业,这是我自己的项目
  • 输出类的这个整数值代表什么?它与输入数据有何关联?
  • 输入是从文本中提取的一组关键词,值是文本的分数。这个想法是找出分数如何与文本中的关键字集相关联。分数是客观分配的。

标签: string algorithm hash machine-learning linear-regression


【解决方案1】:

我用字符串做了类似的项目。我建议你可以实现它的一种方式。 在机器学习中,“朴素贝叶斯分类器”将使您的问题变得简单。这适用于概率论。因此,如果您正在使用 python,则有 NLTK(工具包)和 Textblob(NLTK 上的库),它们会对您有很大帮助。
您的问题非常笼统,因此我无法在这里描述所有内容,但请随时提出您遇到的任何问题,我很乐意回答。

【讨论】:

    【解决方案2】:

    使用word2vecGloVe 等向量空间模型将每个M 字符串转换为N 维向量。然后将这些向量连接到一个带有M*N 分量的向量。可选地将每个组件标准化为例如0-1。然后,您应该能够对结果运行任何回归(或分类)算法,例如逻辑回归。

    您也可以尝试聚类方法,将词汇表中的所有单词聚类到 N 聚类中,例如在词向量上使用 k-means 或使用 brown clustering。然后,您可以用一个热向量表示输入数组中的每个单词(即N-1 零和该单词簇索引处的单个 1)。然后再次连接它们并对结果运行回归。

    【讨论】:

    • 感谢您的回复。考虑到我为一组文档生成了一个固定长度的关键字列表,使用词袋方法将文本编码为数字就足够了吗?由于我的所有文档都在同一个主题上,因此它们的关键字列表很可能是相似的,因此生成的字典会相对较小
    • 如果你的词序不重要,那么词袋似乎是一个不错的首选尝试。你也可以看看TF-IDF然后(即,如果关键字出现在文档中并且很少出现在其他文档中,则给予更高的权重)。
    猜你喜欢
    • 2016-11-29
    • 2011-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 2012-02-15
    • 1970-01-01
    相关资源
    最近更新 更多