Вероятности из классификационных моделей дают вероятности только 1 десятичного знака - PullRequest
0 голосов
/ 01 февраля 2019

Я использую базовую классификацию набора данных.Моя проблема в том, что иногда target_probabilities задается только с одним десятичным знаком.Это кажется случайным, например, иногда они даны в нескольких десятичных разрядах.Обратите внимание, что это происходит не только для классификатора мешков, но и для нескольких классификаторов.

Ниже приведен код с выводом.

train = df[df['Season']<2018] 
test = df[df['Season'] == 2018]

X_train = train.drop([target,'Season','Team'],axis=1)
X_test = test.drop([target,'Season','Team'],axis=1)
Y_train = train[target]
Y_test = test[target]

model = BaggingClassifier()
model.fit(X_train, Y_train)
y_predicted = model.predict(X_test)

target_probabilities = model.predict_proba(X_test)[:,1]
target_probabilities = np.clip(target_probabilities, a_min=0.05,a_max=0.95)
print(target_probabilities)

enter image description here

1 Ответ

0 голосов
/ 01 февраля 2019

Вы получили 1 десятичный знак, потому что BaggingClassifier - это усредняющие результаты всех прогнозов всех оценщиков внутри.По умолчанию ваши оценки составляют DecisionTree s, n_estimators=10.

Итак, ваш прогноз по DT является двоичным (либо 0, либо 1), BC суммирует их и делит на количество оценок.Вот почему вы получаете 1 десятичный знак.

Если вы поставите n_estimators=10000, вы получите более точное число.

Обратите внимание, что это не просто для классификатора мешков - он появляетсяпроизойдет для нескольких классификаторов.

Какие классификаторы вы тестировали?Для LogisticRegression все работает как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...