Как использовать IP-адрес, преобразованный в целое число в модели машинного обучения - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть функция для преобразования IP-адреса в целочисленное значение:

def convertIpToInt(ip):
    return sum([int(ipField) << 8*index for index, ipField in enumerate(reversed(ip.split('.')))])

convertIpToInt ('149.170.10.1') -> 2510948865

, который работает нормально и дает целочисленное значение, но как использовать эти значения в модели классификации? Должен ли я масштабировать эти значения или какие могут быть другие варианты для обработки данных этого типа?

1 Ответ

1 голос
/ 27 февраля 2020

Вы должны конвертировать IP в идентификаторы для вашего алгоритма машинного обучения, для этого вы можете использовать Label Encoders. Это преобразует ваш IP в числа.

from sklearn import preprocessing le = preprocessing.LabelEncoder() le.fit(["ip1", "ip2", "ip3", "ip4"]) le.transform(["ip1", "ip2", "ip1"])

Ссылка: https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html

Если вы считаете, что это может добавить вес определенным IP (функциям), то вы можете использовать One Горячее кодирование.

Ссылка: https://machinelearningmastery.com/why-one-hot-encode-data-in-machine-learning/

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