您的位置:首页 > 其它

scikit-learn:0.2. 加载自己的原始数据

2015-07-12 19:57 465 查看
这里不讨论加载常用的公用数据集,而是讨论加载自己的原始数据(即,实际中遇到的数据)
http://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_files.html
sklearn.datasets.load_files(container_path, description=None, categories=None,load_content=True, shuffle=True, encoding=None, decode_error='strict', random_state=0)[source]

加载文本文件存储的数据集,其中不同类别的文件存放路径为

container_folder/

category_1_folder/
file_1.txt file_2.txt ... file_42.txtcategory_2_folder/
file_43.txt file_44.txt ...

其中,子文件夹(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决定)

实例:

data_folder/

category_1_folder/
1.txt file_2.txt category_2_folder/

3.txt 4.txt

from sklearn import datasets
rawData = datasets.load_files("data_folder")

rawData
Out[10]: 
{'DESCR': None,
 'data': ['5 start, \r\ni like this book.',
  '4 start, \r\nthis book is good,\r\ni like it.',
  "1 start, \r\npretty bad, don't like it at all.",
  "2 start, \r\nwe don't like so much."],
 'filenames': array(['data_folder\\positive_folder\\1.txt',
        'data_folder\\positive_folder\\2.txt',
        'data_folder\\negative_folder\\4.txt',
        'data_folder\\negative_folder\\3.txt'], 
       dtype='|S33'),
 'target': array([1, 1, 0, 0]),
 'target_names': ['negative_folder', 'positive_folder']}

rawData.data
Out[11]: 
['5 start, \r\ni like this book.',
 '4 start, \r\nthis book is good,\r\ni like it.',
 "1 start, \r\npretty bad, don't like it at all.",
 "2 start, \r\nwe don't like so much."]

rawData.target
Out[12]: array([1, 1, 0, 0])

rawData.filenames[rawData.target[0]]
Out[13]: 'data_folder\\positive_folder\\2.txt'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: