Я соответствую своей модели MultinomialNB с K-кратным разделением.
Я пытался сбалансировать данные с SMOTE (imblearn.over_sampling, lib)
NB_pipeline = Pipeline([
('tfidf', TfidfVectorizer(stop_words=stop_words)),
('clf', OneVsRestClassifier(MultinomialNB(
fit_prior=True, class_prior=None))),
])
for train_indices, test_indices in k_fold.split(train_data):
train_sequencies = train_data.iloc[train_indices]['NAME']
label_train = train_data.iloc[train_indices][['SEARCH','OPTIONS_VOLUME', 'OPTIONS_QUANTITY', 'OPTIONS_PORTION',
'OPTIONS_WEIGHT', 'OPTIONS_SIZE', 'OPTIONS_CONCENTRATION',
'OPTIONS_CONTENT', 'OPTIONS_MANUFACTURER']]
test_sequencies = train_data.iloc[test_indices]['NAME']
label_test = train_data.iloc[test_indices][['SEARCH','OPTIONS_VOLUME', 'OPTIONS_QUANTITY', 'OPTIONS_PORTION',
'OPTIONS_WEIGHT', 'OPTIONS_SIZE', 'OPTIONS_CONCENTRATION',
'OPTIONS_CONTENT', 'OPTIONS_MANUFACTURER']]
NB_pipeline.fit(train_sequencies, label_train)
predictions = pipeline.predict(test_sequencies)
confusion += confusion_matrics(test_sequencies, label_test)
score = f1_score(test_sequencies, label_test)
score.append(score)
Я ожидаю кросс-проверка многокомпонентной классификации