Я использую код с этой страницы . Модель ниже работает и обеспечивает точность спуска. Мои вопросы:
1) если мои данные не сбалансированы и имеют 7 возможных значений y (Y может иметь только 1 из этих значений), я должен предоставить весовые коэффициенты класса? как? Я в замешательстве, потому что это один из классификаторов отдыха и не знаю, как вводить веса классов, поскольку только 2 оператора (lr = LogisticRegression()
clf = OneVsRestClassifier(lr)
) создают все 7 моделей.
2) Если я уравновешиваю свои тренировочные данные xtrain_tfidf
, используя повышенную выборку или понижающую выборку, должен ли я по-прежнему использовать веса классов?
3) как могут быть вероятности каждого класса y для каждого наблюдения? Я ищу что-то похожее на predict
метод Кераса - нашел ответ. clf.predict_proba(xtest_tfidf)
предоставляет вероятности
from sklearn.linear_model import LogisticRegression
# Binary Relevance
from sklearn.multiclass import OneVsRestClassifier
# Performance metric
from sklearn.metrics import f1_score
lr = LogisticRegression()
clf = OneVsRestClassifier(lr)
# fit model on train data
clf.fit(xtrain_tfidf, y_train)
# make predictions for validation set
y_test_categorical_pred = clf.predict(xtest_tfidf)
print (len(y_test))
print (len(y_test_categorical_pred))
from sklearn.metrics import confusion_matrix
print (confusion_matrix((y_test),y_test_categorical_pred))