Ответ 1
Вам не нужно создавать объекты Bunch. Они просто полезны для загрузки внутренних образцов данных scikit-learn.
Вы можете напрямую пересылать список строк Python в объект vectorizer.
В большинстве алгоритмов Scikit-learn данные должны быть загружены как объект Bunch. Для многих примеров в учебнике load_files() или другие функции используются для заполнения объекта Bunch. Такие функции, как load_files(), ожидают, что данные будут присутствовать в определенном формате, но у меня есть данные, хранящиеся в другом формате, а именно CSV файл со строками для каждого поля.
Как разобрать это и загрузить данные в формате объекта Bunch?
Вам не нужно создавать объекты 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,... is #отделяется только для объяснения того, что я сделал. # 3-) Сначала преобразуйте numpy в Panda
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
Здесь я скопировал решение Хью Перкинса
import sklearn dataset = sklearn.datasets.base.Bunch(data = data, target = target5)