欺诈检测分类机器学习中的纬度和经度转换

6

我正在尝试构建一个用于账户注册欺诈检测的机器学习分类模型。我手头拥有的数据包括:姓名、电子邮件地址、坐标(IP地址注册时的纬度和经度)以及标签(欺诈 vs 非欺诈)。以下是我的数据集简要概述:

>>> dataset.summary
Index(['name', 'email','latitude','longitude','label'],dtype='object')
>>> dataset.shape
(93207, 4)

到目前为止,我在训练模型时对如何处理坐标变量感到困惑。一些StackExchange用户建议使用正弦和余弦函数的组合将纬度和经度转换为X、Y和Z坐标。(例如: https://datascience.stackexchange.com/questions/13567/ways-to-deal-with-longitude-latitude-feature) 但我不知道在我的分类用例中是否真的必要?我考虑将每个记录的纬度和经度合并为一个变量。然而,某些地区的经度值为负数。此外,一些欺诈者可能位于高纬度和经度的地区,而其他欺诈者可能位于低纬度和经度的地区。因此,将纬度和经度合并为一个变量可能无法帮助训练模型?
我也可以将纬度和经度转换为城市名称。但是,如果这样做,一个城市的拼写可能与离它很远的另一个城市相似,这可能不会有助于训练模型。您有什么建议吗?
1个回答

8
有多种方法可以解决这个问题。你分享的链接讨论了将纬度和经度分开处理并对它们进行特征缩放的事实。这种方法很好,因为它假设如果在球面坐标系中它们彼此更接近,那么它们在现实生活中也更接近。
但是你的问题不同。我猜你需要知道如何在模型中处理纬度和经度。你可以按以下方式操作。

1.选择正确的模型

并非所有机器学习技术都需要您对特征进行缩放或标准化。通常进行比例标准化是为了使模型相信所有特征都是相等的。这是必要的,因为一些机器学习模型基于距离度量,例如KNN、Logistic Regressions等。因此,如果您不执行特征缩放,则可能会破坏学习。如果您使用一些基于树的模型如DTs、Random-Forests或XGBoost或GBMs,我认为您甚至可以直接使用纬度和经度作为特征集。

2.执行聚类以创建虚拟变量

在这种情况下,您可以使用一些聚类技术(如KMeans)对lat long进行聚类,创建一个名为“cluster”的特性,并给其值集群编号或距离聚类中心,然后删除lat-long列。您还可以为每个簇创建单独的特征,并获取与每个簇中心的距离并将该距离存储到这些变量中。

3.逆地理编码

正如您所提到的,您还可以执行逆地理编码以获取城市和国家名称。但是,在您的情况下,此方法可能不是欺诈的强大预测因素。但仅供参考,
from pygeocoder import Geocoder
location = Geocoder.reverse_geocode(12.9716,77.5946)
print("City:",location.city)
print("Country:",location.country)

4. 我的建议

针对非线性特征空间,建议使用分层聚类(Hierarchical Clustering)而不是KMeans算法。因为KMeans算法在线性特征空间中最大化方差表现良好,但在非线性情况下,如PAM、CLARA和DBSCAN等分层聚类算法更适合使用。


Mayukh,你认为我可以在这种情况下使用随机森林分类器吗?我喜欢随机森林模型,因为它简单易懂,不需要对输入变量进行特征缩放或归一化。通常我可以将纬度和经度作为整数来处理。然而,有些纬度和经度的小数位数比其他的多。如果我将所有的纬度和经度记录限制在2个小数位,你认为位置仍然准确吗?此外,如果我要将IP地址反向地理编码到城市,我不确定如何将城市从分类变量转换为数字。 - Stanleyrr
1
@Stanleyrr,由于您正在执行纯标签编码,因此数字不会相似,它们将假定为不同的数字。但是,对位置进行标签编码不是一个好主意,因为它会给不同的地方赋予不同的优先级,如果位置太多,则虚拟编码也会增加维度。因此,总体上来说,编码是一个不好的想法。此外,我认为位置名称不是一个重要的特征。 - Mayukh Sarkar
1
@Stanleyrr,姓名和电子邮件似乎也不是一个好的预测因素。 - Mayukh Sarkar
明白了。但是,假设仅出于学习目的,我仍然想使用这两个功能(姓名和电子邮件),您会推荐哪种编码方法? - Stanleyrr
@Stanleyrr 这个名字可以忽略,但是对于电子邮件,你可以尝试捕获域名。 - Mayukh Sarkar
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接