ほとんどの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それはUnique変数で作成できます(target、target1、...は#私がしたことを説明するためだけに分離されています。#3-)最初の変換パンダへのゴツゴツ
target2 = pd.Series(target)
#4-)ランク機能を使用するため、ステップ番号5をスキップできます
target3 = target2.rank(method='dense', axis=0)
#5-)これは、#Bookの例のように、ターゲットを0または1に変換するためだけのものです
target4 = (target3 % 2 == 0) * 1
#6-)値をnumpyに入れました
target5 = target4.values
ここで私はヒューパーキンスのソリューションをコピーしました
import sklearn dataset = sklearn.datasets.base.Bunch(data = data、target = target5)