ValueError: найдены массивы с несогласованным числом выборок [6 1786]
Вот мой код:
from sklearn.svm import SVC
from sklearn.grid_search import GridSearchCV
from sklearn.cross_validation import KFold
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn import datasets
import numpy as np
newsgroups = datasets.fetch_20newsgroups(
subset='all',
categories=['alt.atheism', 'sci.space']
)
X = newsgroups.data
y = newsgroups.target
TD_IF = TfidfVectorizer()
y_scaled = TD_IF.fit_transform(newsgroups, y)
grid = {'C': np.power(10.0, np.arange(-5, 6))}
cv = KFold(y_scaled.size, n_folds=5, shuffle=True, random_state=241)
clf = SVC(kernel='linear', random_state=241)
gs = GridSearchCV(estimator=clf, param_grid=grid, scoring='accuracy', cv=cv)
gs.fit(X, y_scaled)
Я получаю ошибку, и я не понимаю, почему. Обратная связь:
Traceback (самый последний вызов last): File
"C:/Users/Roman/PycharmProjects/week_3/assignment_2.py", строка 23, in
gs.fit (X, y_scaled) #TODO: проверьте этот файл строки "C:UsersRomanAppDataRoamingPythonPython35site-packagessklearngrid_search.py",
строка 804, in fit
вернуться самостоятельно._fit (X, y, ParameterGrid (self.param_grid)) файл "C:UsersRomanAppDataRoamingPythonPython35site-packagessklearngrid_search.py",
строка 525, in _fit
X, y = индексируемый (X, y) файл "C:UsersRomanAppDataRoamingPythonPython35site-packagessklearnutilsvalidation.py",
строка 201, в индексируемом
файл check_consistent_length (*result) "C:UsersRomanAppDataRoamingPythonPython35site-packagessklearnutilsvalidation.py",
строка 176, в check_consistent_length
"%s " % str (uniques))ValueError: найдены массивы с несогласованным числом выборок: [ 6 1786]
Может ли кто-нибудь объяснить, почему происходит эта ошибка?
1 ответ:
Я думаю, что вы немного запутались со своими
X
иy
здесь. Вы хотите преобразовать васX
в вектор tf-idf и тренироваться, используя его противy
. Смотрите нижеfrom sklearn.svm import SVC from sklearn.grid_search import GridSearchCV from sklearn.cross_validation import KFold from sklearn.feature_extraction.text import TfidfVectorizer from sklearn import datasets import numpy as np newsgroups = datasets.fetch_20newsgroups( subset='all', categories=['alt.atheism', 'sci.space'] ) X = newsgroups.data y = newsgroups.target TD_IF = TfidfVectorizer() X_scaled = TD_IF.fit_transform(X, y) grid = {'C': np.power(10.0, np.arange(-1, 1))} cv = KFold(y_scaled.size, n_folds=5, shuffle=True, random_state=241) clf = SVC(kernel='linear', random_state=241) gs = GridSearchCV(estimator=clf, param_grid=grid, scoring='accuracy', cv=cv) gs.fit(X_scaled, y)