Python 2.7 Scikit学习-使用数据集

Python 2.7 Scikit学习-使用数据集,python-2.7,numpy,machine-learning,scipy,scikit-learn,Python 2.7,Numpy,Machine Learning,Scipy,Scikit Learn,读了一些stackoverflow的问题,我找不到我想要的,至少,当我读到各种帖子时,我不认为是这样 我有一些训练数据,如前所述 因此,我使用sklearn.datasets.load_文件来读取这些文件,因为它与设置非常匹配 但是我的文件已经是tsv了(也就是说每行都是一个单词,它的频率计数用一个标签隔开) 老实说,我不知道该如何进行。load_文件拉入的数据被设置为一个列表,其中每个元素都是每个文件的内容,包括新行字符。我甚至不能100%确定Bunch数据类型是如何跟踪哪些文件属于哪个分类器

读了一些stackoverflow的问题,我找不到我想要的,至少,当我读到各种帖子时,我不认为是这样

我有一些训练数据,如前所述 因此,我使用sklearn.datasets.load_文件来读取这些文件,因为它与设置非常匹配

但是我的文件已经是tsv了(也就是说每行都是一个单词,它的频率计数用一个标签隔开)

老实说,我不知道该如何进行。load_文件拉入的数据被设置为一个列表,其中每个元素都是每个文件的内容,包括新行字符。我甚至不能100%确定Bunch数据类型是如何跟踪哪些文件属于哪个分类器文件夹的

我以前使用过scikit learn和tsv,但它是一个单独的tsv文件,包含所有数据,所以我使用pandas读取它,然后使用numpy.array从中获取我需要的内容,这是我尝试做的事情之一,但我不确定如何使用多个文件,其中分类器是文件夹名称,正如我以前使用的单个tsv文件一样,每行训练数据都是单独的


如果您能帮助将数据转换为可用于训练分类器的格式,我们将不胜感激。

您可以循环浏览文件并阅读它们,以创建字典列表,其中每个字典将包含每个文档的功能和频率。假设文件为1.txt:

import codecs
corpus = []
#make a loop over the files here and repeat the following
f = codecs.open("1.txt", encoding='utf8').read().splitlines()
corpus.append({line.split("\t")[0]:line.split("\t")[1] for line in f})
#exit the loop here
from sklearn.feature_extraction import DictVectorizer
vec=DictVectorizer()
X=vec.fit_transform(measurements)

您可以在此处找到有关

的更多信息您是否阅读了本部分:“要在scikit学习分类或聚类算法中使用文本文件,您需要使用sklearn.feature_extraction.text模块来构建适合您的问题的特征提取转换器。”我有。。。。但这取决于原始数据我很确定。。。你可以编写一个自定义的特征提取程序,从数据集中提取特征。如果你花时间阅读文档,它实际上非常容易使用。查看子类化
BaseEstimator
以提取所需的功能。我不确定这是如何将数据转换为正确格式的。BaseEstimator类看起来不像是用于特征提取的。对不起,我的意思是
TransformerMixin