【发布时间】:2020-03-09 14:43:28
【问题描述】:
我有一个将IP地址转换为整数值的函数:
def convertIpToInt(ip):
return sum([int(ipField) << 8*index for index, ipField in enumerate(reversed(ip.split('.')))])
convertIpToInt('149.170.10.1') -> 2510948865
它工作正常并给出一个整数值,但如何在分类模型中使用这些值? 我应该缩放这些值,还是有什么其他选项可以处理此类数据?
【问题讨论】:
-
规范化 IP 地址值可以吗?
-
谢谢,但这不是我要找的答案!
-
从 ML 的角度来看,将 ip 地址转换为数字是一个非常糟糕的主意。 ip 地址是离散的,对于任何两个 ip 地址,ip1 > ip2 没有意义。它们最多可以表示为一组离散特征,但一个热编码会给出非常稀疏的表示,再次过度拟合模型。尝试找到可以帮助您将 IP 地址表示为离散特征而不是稀疏的特征。例如。一个ip属于哪个国家lite.ip2location.com/ip-address-ranges-by-country
标签: pandas dataframe machine-learning classification