如何将 RandomForestClassifier 与字符串数据一起使用
Posted
技术标签:
【中文标题】如何将 RandomForestClassifier 与字符串数据一起使用【英文标题】:How to use RandomForestClassifier with string data 【发布时间】:2017-04-16 05:40:38 【问题描述】:我使用sklearn
构建了一个RandomForestClassifier
模型。
我的数据集中有一个字符串数据和一个叶数据。
它会显示
could not convert string to float
跑完之后
clf = RandomForestClassifier(n_jobs=100)
clf.fit(x1, y1)
如何构建包含混合数据的RandomForest
模型?
【问题讨论】:
检查这个:***.com/questions/24715230/… 【参考方案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。
【讨论】:
以上是关于如何将 RandomForestClassifier 与字符串数据一起使用的主要内容,如果未能解决你的问题,请参考以下文章