Как создать sklearn.набор данных.основа.Объект Bunch в scikit-учиться на моих собственных данных?

в большинстве алгоритмов Scikit-learn данные должны быть загружены как объект Bunch. Для многих примеров в учебнике load_files () или другие функции используются для заполнения объекта Bunch. Такие функции, как load_files() ожидают, что данные будут присутствовать в определенном формате, но у меня есть данные, хранящиеся в другом формате, а именно CSV-файл со строками для каждого поля.

Как разобрать это и загрузить данные в формате объекта Bunch?

3 ответов


вам не нужно создавать объекты Bunch. Они просто полезны для загрузки внутренних образцов наборов данных scikit-learn.

вы можете напрямую передать список строк Python в объект vectorizer.


вы можете сделать это так:

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)

это пример набора данных рака молочной железы Висконсин (Диагностика), вы можете найти csv в Kaggle:

 #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)

#есть несколько трюков для преобразования цели, как это в # sklearn, # offcourse это может быть сделано в уникальной переменной (target, target1,... есть # разошлись только для того, чтобы объяснить, что я сделал. #3 -) Сначала преобразуйте numpy в a Панда!--9-->

target2 = pd.Series(target)

#4-)это для использования функции ранга, вы можете пропустить шаг номер 5

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

#5-) это только для преобразования цели в 0 или 1, Как пример в # Книга

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

#6 -) получил значения в numpy

target5 = target4.values

здесь я скопировал решение

импорт sklearn набор данных= sklearn.набор данных.основа.Bunch (data=data, target=target5)