#python #nlp #multilabel-classification
Вопрос:
Я обучил классификации текста с несколькими метками
classifier = Pipeline([('vectorizer', CountVectorizer(max_df=0.50, min_df=3,stop_words='english', ngram_range=(1,3))),('tfidf', TfidfTransformer()),('clf', OneVsRestClassifier(AdaBoostClassifier(base_estimator= GradientBoostingClassifier(), n_estimators=20)))]) for label in target_labels: print('Label in the process {}'.format(label)) y_train = train[label] y_test = test[label] classifier.fit(X_train, y_train) y_pred_training = classifier.predict(X_train) joblib.dump(classifier, './trainedPickleFile.pkl') print('Training accuracy is {}'.format(accuracy_score(y_train, y_pred_training))) y_pred_testing = classifier.predict(X_test) test_y_prob = classifier.predict_proba(X_test)[:, 1] print('Test accuracy is {}'.format(accuracy_score(y_test, y_pred_testing))) final_result[label] = test_y_prob final_result.to_csv('result.csv', index=False)
Модель предсказала довольно хорошо, теперь мой вопрос в том, что каждая метка имеет предсказанную вероятность, но как определить допустимый диапазон вероятностей?
[![Данные испытаний и прогнозируемые вероятности каждой метки][1]][1]
Например, на скриншоте показано, для id = 1, метка F и большая вероятность предсказания на 46,7%, что на этикетке F и для id=10, то 44.11% и 49.35% являются двумя высочайшими предсказанная вероятность, которая правильно предсказывает метку J и L, но вопрос в том, как я могу избежать предсказанных вероятностей или как я могу решить допустимая вероятность дальность [1]: https://i.stack.imgur.com/vPfTj.png