1

入力として複数のパイプラインを使用して投票分類子を構築しようとしています。私はこれでかなり新しいです。以下は私が使用しているコードです:

clf1 = MultinomialNB(alpha= 0.99, fit_prior= True)
clf2 = Pipeline([('vect', CountVectorizer(max_features=5000,ngram_range=(1,2))),
                    ('tfidf', TfidfTransformer(use_idf= True)),
                    ('clf', SGDClassifier(alpha=0.001,learning_rate='optimal',loss= 'epsilon_insensitive'
                                          ,penalty= 'l2',n_iter = 100, random_state=42))])
clf3 = Pipeline([('vect', CountVectorizer(max_features=3500)),
                    ('tfidf', TfidfTransformer(use_idf=False)),
                    ('clf', SVC(random_state= 42,kernel="linear",degree=1,decision_function_shape=None))])
clf4 = Pipeline([('vect', CountVectorizer(max_features = 4000)),
                    ('tfidf', TfidfTransformer(use_idf=False)),
                    ('clf', RandomForestClassifier(random_state = 42,criterion="entropy"))])
eclf = VotingClassifier(estimators=[('mnb', clf1), ('sgd', clf2), ('svm', clf3), ('rf',clf4)], voting='hard')
eclf = eclf.fit(train_data,train_label)

p = eclf.predict(test_data)
np.mean(p==test_class)

このコードは基本的に、多項式単純ベイズ、SGD 分類器、線形カーネルを使用した SVM、およびランダム フォレスト分類器の 4 つの分類器を構築します。データを適合させようとすると、次のエラーが表示されます。

could not convert string to float: "training string here"

個々の分類器で fit を呼び出そうとすると、モードは正常に実行されます。誰かがこれを手伝ってくれますか?

4

0 に答える 0