У меня возникли проблемы с выполнением логистической регрессии с помощью xgboost, которые можно резюмировать в следующем примере.xgboost двоичная логистическая регрессия
Давайте предположим, что у меня есть очень простой dataframe с двумя предсказателей и одной целевой переменной:
df= pd.DataFrame({'X1' : pd.Series([1,0,0,1]), 'X2' : pd.Series([0,1,1,0]), 'Y' : pd.Series([0,1,1,0],)})
Я могу добавлять изображения, потому что я здесь новый, но мы можем ясно видеть, что, когда X1 = 1 и Х2 = 0 , Y равно 0, а когда X1 = 0 и X2 = 1, Y равно 1.
Моя идея - построить модель, которая выводит вероятность того, что наблюдение принадлежит каждому из классов, поэтому, если я запустил xgboost try для прогнозирования двух новых наблюдений (1,0) и (0,1):
X = df[['X1','X2']].values
y = df['Y'].values
params = {'objective': 'binary:logistic',
'num_class': 2
}
clf1 = xgb.train(params=params, dtrain=xgb.DMatrix(X, y), num_boost_round=100)
clf1.predict(xgb.DMatrix(test.values))
выход:
array([[ 0.5, 0.5],
[ 0.5, 0.5]], dtype=float32)
, который, я полагаю, означает, что для первого наблюдения, есть 50% вероятность того, что принадлежность к каждому из классов.
Хотелось бы знать, почему алгоритм выводит правильное (1,0) или что-то более близкое к этому, если связь между переменными ясна.
FYI, я попробовал с большим количеством данных (Im только используя 4 строки для простоты), и поведение почти одинаково; что я делаю уведомление, что не только вероятности не суммируются 1, они часто очень мало, как так: (этот результат на другой наборе данных, ничего не делать с приведенным выше примером)
array([[ 0.00356463, 0.00277259],
[ 0.00315137, 0.00268578],
[ 0.00453343, 0.00157113],
Являются ли ваши два предиктора равными 0 и 1? Если это так, то есть только 4 возможных сочетания ваших функций и, следовательно, следует ожидать (не более) 4 уникальных предсказания вероятности. – David
да, они есть. Хорошо, только 4 возможные комбинации, имеет смысл, но не уверен, как это отвечает на мой вопрос. – Italo
Я смущен, в чем ваш вопрос? Я думал, вы не понимаете, почему в ваших вероятностных прогнозах мало различий. – David