Я пытаюсь обучить модель с данными, имеющими 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_)