Подход 1: вы можете использовать get_dummies в кадре данных pandas.
Пример 1:
import pandas as pd
s = pd.Series(list('abca'))
pd.get_dummies(s)
Out[]:
a b c
0 1.0 0.0 0.0
1 0.0 1.0 0.0
2 0.0 0.0 1.0
3 1.0 0.0 0.0
Пример 2:
Следующее преобразует заданный столбец в одну горячую. Использовать префикс, чтобы иметь несколько манекенов.
Подход 2: Использовать Scikit-learn
Учитывая набор данных с тремя функциями и четырьмя образцы, мы позволяем кодеру находить максимальное значение для каждой функции и преобразовывать данные в двоичную горячую кодировку.
>>> from sklearn.preprocessing import OneHotEncoder
>>> enc = OneHotEncoder()
>>> enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]])
OneHotEncoder(categorical_features='all', dtype=,
handle_unknown='error', n_values='auto', sparse=True)
>>> enc.n_values_
array([2, 3, 4])
>>> enc.feature_indices_
array([0, 2, 5, 9], dtype=int32)
>>> enc.transform([[0, 1, 1]]).toarray()
array([[ 1., 0., 0., 1., 0., 0., 1., 0., 0.]])
Вот ссылка для этого примера: http: // scikit -learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html
Я думаю, что все, что вы пытаетесь сделать, это отобразить предсказанные вероятности классов обратно на метки классов. Каждая строка в списке выходных предсказаний содержит три вероятности предсказанных классов для ваших трех классов; Вы можете взять argmax
вдоль каждой строки, чтобы отобразить фактический прогнозируемый класс (то есть класс с наибольшей прогнозируемой вероятностью):
import numpy as np
predictions = [[0.3112209, 0.3690182, 0.31357136],
[0.31085992, 0.36959863, 0.31448898],
[0.31073445, 0.3703295, 0.31469804],
[0.31177694, 0.37011752, 0.3145326 ],
[0.31220382, 0.3692756, 0.31515726],
[0.31232828, 0.36947766, 0.3149037 ],
[0.31190437, 0.36756667, 0.31323162],
[0.31339088, 0.36542615, 0.310322 ],
[0.31598282, 0.36328828, 0.30711085]]
np.argmax(predictions, axis=1)
Дает:
array([1, 1, 1, 1, 1, 1, 1, 1, 1])
в этом случае класс 1 прогнозируется 9 раз.
Как отмечено в комментариях: именно это и делает Керас под капотом, как вы увидите в исходном коде .