2016-08-09 6 views
0

私はGridsearchcvを使って自分のSVMをチューニングしようとしていますが、それはエラーを投げています。gridSearch CVをscipyで使うには?

私のコードは次のとおりです。

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) 

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

+0

これはどのようにパンダの質問ですか? SciPyのように思えます...また、完全に検証可能で再現可能な例を含めることを検討してください。つまり、答えをテストするためのデータの小さなサンプルを与えることです。 – Kartik

+0

@ Kartik私はそれを編集しました –

答えて

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とYを生成

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

後:、あなたは追加することによって、それを試すことができます。また、あなたはたぶんsklearnというラベルを質問に追加するべきです。

+0

問題はDataFrameとしてラベルを渡すと思います。どうすればよいですか? –

+0

私はas_type.array()を何も使用していません。 @Borja私はこれ以上の私の正気を失っています。それを参照してください –

+0

データフレームからラベルを含むシリーズを抽出する必要があります。 'label [column_name]'が列の名前を知っている場合、 'label.iloc [:, 0]'が最初の列の場合、または1つだけの列がある場合。 – Borja

関連する問題