0

Gridsearchcv を使用して SVM を調整しようとしましたが、エラーがスローされます。

私のコードは:

train = pd.read_csv('train_set.csv')
label = pd.read.csv('lebel.csv')

params = { 'C' : [ 0.01 , 0.1 , 1 , 10]
clf = GridSearchCV(SVC() , params , n_jobs = -1)
clf.fit(train , label)

エラーをスローします:「配列のインデックスが多すぎます」

しかし、私は単にこれを行うと:

clf = svc()
clf.fit(train.data , label.data)

コードは正常に動作します

4

1 に答える 1

1

データ構造 train.data / label.data に問題があると思われます。私はあなたのコードの両方のバージョンをテストしましたが、それらは動作します:

import sklearn.svm as sksvm
import sklearn.grid_search as skgs

params = { 'C' : [ 0.01 , 0.1 , 1 , 10]}
X = np.random.rand(1000, 10)  # (1000 x 10) matrix, 1000 points with 10 features
Y = np.random.randint(0, 2, 1000)  # 1000 array, binary labels

mod = sksvm.SVC()
mod.fit(X, Y)

出力:

SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,
  kernel='rbf', max_iter=-1, probability=False, random_state=None,
  shrinking=True, tol=0.001, verbose=False)

import sklearn.svm as sksvm
import sklearn.grid_search as skgs

params = { 'C' : [ 0.01 , 0.1 , 1 , 10]}
X = np.random.rand(1000, 10)  # (1000 x 10) matrix, 1000 points with 10 features
Y = np.random.randint(0, 2, 1000)  # 1000 array, binary labels

mod = skgs.GridSearchCV(sksvm.SVC(), params, n_jobs=-1)
mod.fit(X, Y)

出力:

GridSearchCV(cv=None, error_score='raise',
       estimator=SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,
  kernel='rbf', max_iter=-1, probability=False, random_state=None,
  shrinking=True, tol=0.001, verbose=False),
       fit_params={}, iid=True, loss_func=None, n_jobs=-1,
       param_grid={'C': [0.01, 0.1, 1, 10]}, pre_dispatch='2*n_jobs',
       refit=True, score_func=None, scoring=None, verbose=0)

データがデータフレームとシリーズにある場合、コードがまだ機能する場合は、次を追加して試すことができます。

X = pd.DataFrame(X)
Y = pd.Series(Y)

X と Y を生成した後。

ただし、再現可能なコードがないと言うのは難しいです。また、おそらくラベル sklearn を質問に追加する必要があります。

于 2016-08-09T10:41:17.393 に答える