如何在scikit中创建sklearn.datasets.base.Bunch对象 - 从我自己的数据中学习?

时间:2013-12-10 03:39:32

标签: scikit-learn scikits

在大多数Scikit-learn算法中,数据必须作为Bunch对象加载。对于教程中的许多示例,load_files()或其他函数用于填充Bunch对象。像load_files()这样的函数希望数据以某种格式存在,但我有以不同格式存储的数据,即每个字段都包含字符串的CSV文件。

如何解析此数据并以Bunch对象格式加载数据?

3 个答案:

答案 0 :(得分:18)

你可以这样做:

import numpy as np
import sklearn.datasets

examples = []
examples.append('some text')
examples.append('another example text')
examples.append('example 3')

target = np.zeros((3,), dtype=np.int64)
target[0] = 0
target[1] = 1
target[2] = 0
dataset = sklearn.datasets.base.Bunch(data=examples, target=target)

答案 1 :(得分:16)

您不必创建Bunch对象。它们仅用于加载scikit-learn的内部样本数据集。

您可以直接将Python字符串列表提供给矢量化程序对象。

答案 2 :(得分:0)

这是一个乳腺癌威斯康星(诊断)数据集的例子,你可以在Kaggle找到csv:

 #1)From column 2 at 32 in the CSV  are 
 #X_train and X_test data @usecols=range(2,32) this is stored in the Bunch 
 #Object key named "data"
from numpy import genfromtxt
data = genfromtxt("YOUR DATA DIRECTORY", delimiter=',', skip_header=1, 
                 usecols=range(2,32))
 #2-)I am interested in the column data B (column 1 
 #in Numpy Array @usecols= (1),) in the CSV 
 # because is the output of  y_train and y_test and is stored in the Bunch 
#Object Key named: "target"
import pandas as pd
target = genfromtxt("YOUR DATA DIRECTORY", delimiter=',', 
                    skip_header=1, usecols=(1), dtype=str)
  

#Tome有一些技巧可以改变目标      #sklearn,       #offcourse它可以在一个唯一变量中生成(target,target1,...是       #separated只是为了解释我的所作所为。       #3-)首先将numpy变成熊猫

target2 = pd.Series(target)
  

#4-)使用等级功能,你可以跳过步骤5

target3 = target2.rank(method='dense', axis=0)
  

#5-)这仅用于将目标转换为0或1之类的   例子中       #Book

target4 = (target3 % 2 == 0) * 1 
  

#6-)将值变为numpy

target5 = target4.values
  

我在这里复制了Hugh Perkins的解决方案

导入sklearn    dataset = sklearn.datasets.base.Bunch(data = data,target = target5)