Это целочисленная кодировка:
api_dict = {
'call_1': 1,
'call_2': 2,
'call_3': 3,
...}
#grab the corresponding value from the dictionary
`api_dict.get({api_name_here})`
Я не уверен, как устроена ваша структура данных, но предполагается, что это список списков :
for row in sheet:
for cell in row:
cell = api_dict.get(value)
Одно горячее кодирование аналогично, за исключением того, что значения будут преобразованы в двоичные:
from keras.utils import to_categorical
data = ['cold', 'warm', 'hot'] # 3 possible values
encoded = to_categorical(data)
возвращает
[[1 0 0],[0 1 0],[0 0 1]]
~ 2000 различных значений будут преобразованы в 11-значное двоичное число, что означает, что для представления всех различных вызовов API, функция преобразует каждое значение, 11 различных столбцов либо в 1, либо в 0. Это делается для сохранить данные как можно более нейтральными.
Если вы используете приведенный выше алгоритм, вы получите замену 1-1, но значение в ячейке будет где-то 1-2000. Это может повлиять на вывод вашей модели.
Альтернативы:
- Уменьшите количество звонков, которые вы хотите разрешить программе, это уменьшит столбцы
- Пересмотрите, какие данные вы хотите, чтобы ваша модель учитывала при прогнозировании. Вы можете удалить любые ненужные данные или использовать другой подход для их уменьшения.
- Измените структуру вашей таблицы, вместо того, чтобы регистрировать все вызовы, вы можете регистрировать такие вещи, как общее время выполнения, количество вызовов API или что-то еще, что, по вашему мнению, может повлиять на ваш вывод. Это зависит от вас.