Как преобразовать массив Python с числами с плавающей запятой в массив с двоичными значениями (0 & 1) - PullRequest
0 голосов
/ 15 октября 2019

Как я могу преобразовать массив чисел с плавающей точкой в ​​массив двоичных чисел, т. Е. 0 и 1?

Я предсказываю значения проблемы классификации, а значение 1 обозначает токсический комментарий, а значение 0 обозначаетнетоксичный комментарий. Мои прогнозируемые тестовые метки были представлены в виде массива с плавающей точкой с e-0x, где x варьируется от 1 до 7. Как преобразовать прогнозируемые метки в 0 и 1?

array([[9.8556435e-01, 3.3385050e-01, 9.6424425e-01, 5.6063890e-02,
        7.9712880e-01, 2.6943371e-01],
       [1.0463297e-03, 5.6922436e-06, 2.0974874e-04, 1.3053417e-05,
        1.3548136e-04, 4.4524670e-05],
       [1.5031695e-03, 9.3579292e-06, 2.6571751e-04, 3.0487776e-05,
        1.6680360e-04, 7.6472759e-05],
       ...,
       [2.4601817e-04, 6.2584877e-07, 5.6475401e-05, 1.6391277e-06,
        2.2351742e-05, 6.7055225e-06],
       [1.1185408e-03, 6.9439411e-06, 1.5538931e-04, 4.7504902e-05,
        1.0922551e-04, 3.1569600e-04],
       [9.7941959e-01, 7.9966664e-02, 9.3608207e-01, 8.6713731e-03,
        5.5538106e-01, 2.1400809e-02]], dtype=float32)

Фактический результат должен бытьмассив из 0 и 1 с

Ответы [ 2 ]

1 голос
/ 15 октября 2019

Вы можете установить генерацию этого пост-массива, установив обрезку. Я создал фиктивный пример, где я получаю очень маленькие значения

zeroes = (np.arange(1, 10, 2))/1000500
print(zeroes)
##
#[9.99500250e-07 2.99850075e-06 4.99750125e-06 6.99650175e-06
# 8.99550225e-06]

zeroes[zeroes >= 5e-6] = 1
zeroes[zeroes < 5e-6] = 0
print(zeroes)
# [0. 0. 0. 1. 1.]

В этом случае всем значениям массива меньше 5e-6 присваивается 0, а всем значениям = или выше присваивается 1. Назначитьотрежьте и примените фильтр.

1 голос
/ 15 октября 2019

Вероятно, у вас есть вероятность. 9.8556435e-01 (также известный как 0.98556435) означает, что классификатор считает, что вероятность его токсичности составляет 98,556435%. 1.0463297e-03 (также известный как 0.0010463297) означает только 0,10463297% вероятности токсичности. Вы можете установить 50% в качестве точки останова и сделать это так:

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