如何将 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 与字符串数据一起使用的主要内容,如果未能解决你的问题,请参考以下文章

如何将CString转换成wstring

如何将Ios文件上传到

Qt如何将文字变成图片?

如何将Bitmap保存为本地图片文件?

在MATLAB中如何将图导出

ASP如何将SQLSERVER数据导出到DBF(VF)