Я тренировал модели SVM и NN, используя sklearn для двух классов.Один класс имеет 24000 твитов и еще 32000 твитов.
Когда я делаю проверку, это дает вот так
Для -
text_clf = Pipeline([('vect', CountVectorizer(stop_words='english')), ('tfidf',TfidfTransformer(use_idf=True)),('clf',MLPClassifier(activation="relu", solver='adam', alpha=0.001, hidden_layer_sizes=(5, 2), random_state=1)),])
precision recall f1-score support
disaster 1.00 1.00 1.00 12862
nondisaster 1.00 1.00 1.00 9543
micro avg 1.00 1.00 1.00 22405
macro avg 1.00 1.00 1.00 22405
weighted avg 1.00 1.00 1.00 22405
Для
text_clf = Pipeline([('vect', CountVectorizer(stop_words='english')), ('tfidf',TfidfTransformer(use_idf=True)),('clf',SGDClassifier(loss='hinge', penalty='l2', alpha=1e-3, random_state=42, verbose=1)),])
text_clf.fit(X_train, y_train)
precision recall f1-score support
disaster 1.00 1.00 1.00 6360
nondisaster 1.00 1.00 1.00 4842
micro avg 1.00 1.00 1.00 11202
macro avg 1.00 1.00 1.00 11202
weighted avg 1.00 1.00 1.00 11202
Когда я изменяю значение alpha
в NNмодель от 0,001 до 0,00001
precision recall f1-score support
disaster 1.00 0.99 0.99 12739
nondisaster 0.98 1.00 0.99 9666
micro avg 0.99 0.99 0.99 22405
macro avg 0.99 0.99 0.99 22405
weighted avg 0.99 0.99 0.99 22405
Когда я тестирую несколько записей, это всегда смещено на один класс.Например, SVM предсказывал каждый входной сигнал, не связанный с бедствием, а NN - с классом бедствия.
Любая идея или предложение, как я могу настроить эту модель?