【问题标题】:How to use RandomForestClassifier with string data如何将 RandomForestClassifier 与字符串数据一起使用
【发布时间】:2017-04-16 05:40:38
【问题描述】:

我使用sklearn 构建了一个RandomForestClassifier 模型。

我的数据集中有一个字符串数据和一个叶数据。

它会显示

could not convert string to float

跑完之后

clf = RandomForestClassifier(n_jobs=100)  
clf.fit(x1, y1)

如何构建包含混合数据的RandomForest 模型?

【问题讨论】:

标签: python scikit-learn


【解决方案1】:

这是 scikit-learn 的约定:估计器接受数字矩阵,而不是字符串或其他数据类型。这使它们不受数据类型的影响——每个估算器都可以处理表格、文本数据、图像等。但这意味着您需要将数据(在您的情况下为文本)转换为数字。

有很多方法可以将文本转换为数字。一个最简单的方法称为“词袋”——对于每个可能的词都有一列,如果文档中存在单词,则文档的列中有 1(或字数),否则为 0。 scikit-learn 为此提供了 CountVectorizer(以及其他一些矢量化器):

from sklearn.feature_extraction.text import CountVectorizer
vec = CountVectorizer()
X = vec.fit_transform(docs)
clf = RandomForestClassifier()  
clf.fit(X, y) 

有关完整示例,请参阅 http://scikit-learn.org/stable/auto_examples/text/document_classification_20newsgroups.html,有关文本矢量化的更多信息,请参阅 http://scikit-learn.org/stable/modules/feature_extraction.html#text-feature-extraction

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 2017-09-02
    • 1970-01-01
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    相关资源
    最近更新 更多