这里不讨论加载常用的公用数据集,而是讨论加载自己的原始数据(即,实际中遇到的数据)
http://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_files.html#sklearn.datasets.load_files
关于如何加载常用的内置数据,参考:http://blog.csdn.net/mmc2015/article/details/46906409
加载文本文件存储的数据集,其中不同类别的文件存放路径为:
container_folder/其中,子文件夹(category_1_folder)的名字区别,作为监督学习的标签区别。至于每个文件的具体命名,随便。
上面的参数只解释container_path,load_content=True,encoding=None:
container_path:“container_folder”的路径。
load_content=True:是否真的把文件中的内容加载到内存中,选择true就是了。
encoding=None:string or None (default is None),是否解码文件中的内容(主要针对图片、视频或其他二进制文件,而非文本内容);如果不是None,那么在load_content=True的情况下,就会解码文件中的内容。注意,当前文本文件的编码方式一般为“utf-8”。如果不指明编码方式(encoding=None),那么文件内容将会按照bytes处理,而不是unicode处理,这样模块“sklearn.feature_extraction.tex”中的很多函数就不能用了。
返回值:data : Bunch
Dictionary-like object。我们感兴趣的有:
data:原始数据,格式参考下图。
filenames:每个文件的名字
target:类别标签(从0开始的整数索引)
target_names:类别标签(数字)的具体含义(由子文件夹的名字category_1_folder决定)
实例:
from sklearn import datasets
rawData = datasets.load_files("data_folder")
print rawData
X = rawData.data
print X[0] #first file content
y = rawData.target
print y
rawData = datasets.load_files("data_folder",encoding="utf-8")
print rawData
{'target_names': ['category_1_folder', 'category_2_folder', 'category_3_folder'], 'data': ['6 "start", \r\ni don\'t like.', '3 start, \r\nwe like this.', '2 start, \r\nniubi.', '4 start, \r\npretty good.', '1 start, \r\nhaha.', '5 start, \r\nnot so good.'], 'target': array([2, 1, 0, 1, 0, 2]), 'DESCR': None, 'filenames': array(['data_folder\\category_3_folder\\6.txt',
'data_folder\\category_2_folder\\3.txt',
'data_folder\\category_1_folder\\2.txt',
'data_folder\\category_2_folder\\4.txt',
'data_folder\\category_1_folder\\1.txt',
'data_folder\\category_3_folder\\5.txt'],
dtype='|S35')}
6 "start",
i don't like.
[2 1 0 1 0 2]
{'target_names': ['category_1_folder', 'category_2_folder', 'category_3_folder'], 'data': [u'6 "start", \r\ni don\'t like.', u'3 start, \r\nwe like this.', u'2 start, \r\nniubi.', u'4 start, \r\npretty good.', u'1 start, \r\nhaha.', u'5 start, \r\nnot so good.'], 'target': array([2, 1, 0, 1, 0, 2]), 'DESCR': None, 'filenames': array(['data_folder\\category_3_folder\\6.txt',
'data_folder\\category_2_folder\\3.txt',
'data_folder\\category_1_folder\\2.txt',
'data_folder\\category_2_folder\\4.txt',
'data_folder\\category_1_folder\\1.txt',
'data_folder\\category_3_folder\\5.txt'],
dtype='|S35')}