плохая форма ввода склеарн питон - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь обучить модель с данными, имеющими 6000 экземпляров (строки) и 700 объектов (столбцы), и с помощью следующего кода. когда f=Label_Target.transform(data.Target) используется в fit(), это дает ошибку изменения формы, указывающую

"Измените ваши данные, используя array.reshape (-1, 1), если ваши данные имеют один объект или array.reshape (1, -1), если он содержит один образец. ".

Однако, если я изменю его, используя array.reshape(-1,1), поскольку целевой класс имеет только один столбец, то это выдаст мне следующую ошибку

«Ошибка значения: неправильная форма ввода (4800, 699)».

Форма набора данных о наших объектах будет (6000,699), а для целевого класса - (6000, 1). Как это исправить?

from sklearn import svm, datasets 
from sklearn.model_selection import GridSearchCV
from sklearn import preprocessing 
from sklearn.preprocessing import LabelEncoder
import pandas as pd


data = pd.DataFrame.from_csv('data.csv') # 6000 instances and each instance is 700 samples (features)

data.head()
data.loc[:,"f1":"f699"]

#parameters={'kernel':('linear','rbf'),'C':[1]}#
parameters={'kernel':('linear','rbf'),'C':[1,10]}


svc = svm.SVC(gamma="scale")
clf = GridSearchCV(svc, parameters, cv=5)


Label_Target= preprocessing.LabelEncoder()
Label_Target.fit(data.Target)
f=Label_Target.transform(data.Target)

print(Label_Target.classes_)
f=f.reshape(-1,1)
print(f.shape)


clf.fit(f,data.loc[:,"f1":"f699"])
print( 'Best params: ', clf.best_params_)
print( 'Best score: ', clf.best_score_)
...