К сожалению, мне не удалось воспроизвести вашу ошибку.
Запуск:
a=pd.DataFrame(np.concatenate([np.zeros(3),np.ones(3)]) ).astype('int').astype('category')
from keras.utils import to_categorical
to_categorical(a, 2)
Я получаю вывод:
array([[1., 0.],
[1., 0.],
[1., 0.],
[0., 1.],
[0., 1.],
[0., 1.]], dtype=float32)
Возможно, это проблема с версиями!
Хорошей новостью является то, что вам не нужно использовать categorical_crossentropy
для проблемы двоичной классификации. Вы можете использовать binary_crossentropy
убыток и кормить вашу модель, используя y_train в качестве цели.
Что касается вашего последнего запроса о том, какая модель keras лучше подходит для бинарной классификации, предварительно обученные модели Keras относятся к изображениям. Похоже, у вас есть табличные данные, хотя вы не сможете использовать предварительно обученную модель, но вам придется самостоятельно запускать пользовательскую модель.