2017-11-08 6 views
-1

を与えていない予測します。予測されるクラス確率は、すべてのクラスの中で最も高い確率よりも小さい。誰かがこれを説明できますか?は私がsklearn(Pythonの3)からSVMを使用しています最も高い確率

clf = Pipeline([('vect', TfidfVectorizer()), ('clf', svm.SVC())]) 
    parameters = {'vect__ngram_range': [(1, 2)], 'vect__stop_words': ['english'], 
        'vect__lowercase': [True], 'clf__C': [1,2, 5, 10, 20, 100], 
        'clf__kernel': [str('linear')], 'clf__class_weight':['balanced'], 
        'clf__probability': [True]} 
    vec_clf = GridSearchCV(clf, parameters, scoring='f1_weighted') 
    vec_clf.fit(x_train, y_train) 

印刷文。

pred_data = model.predict(input_series) 
    probability_lst = model.predict_proba(input_series)[0] 
    print ("probability lst: ", probability_lst) 
    print ("predicted data: ", pred_data) 
    print ("classes: ", model.best_estimator_.classes_) 

これは私が使用しているコードです。以下のプリント出力をご覧ください。

probability lst: [ 0.29004279 0.38866277 0.04441053 0.1173824 0.0300703 0.0983329 0.03109831] 
    predicted data: ['1'] 
    classes: ['1' '2' '3' '4' '5' '6' '7'] 

論理的には、クラス "2"は確率が高いと予測する必要があります。予測する上で、私はいくつかのドキュメントを読んでいる

+0

なぜあなたがアクセスしている 'model.predict_proba(input_series)' [0] 'の[0]'、強調? – erip

+3

可能な複製[予測の混乱確率\のscikit学習SVMの_proba](https://stackoverflow.com/questions/30674164/confusing-probabilities-of-the-predict-proba-of-scikit-learns-svm ) –

+0

それはリストのリストだったので、あなたが共有する他のリンクで述べたように、私は[0] – user2550098

答えて

0

この出力を説明してください、私はそれがpredict_probaと同期されていない別の方法でうまくいくと思います。

だから、私たちはこのチケットを閉じることができます

predic_probaを使用し、(model.classes_から)最高の確率とそれに対応するクラスを取ります。

関連する問題