- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试构建一个 ML 分类模型,用于在注册帐户时进行欺诈检测。我手头的数据是:姓名、电子邮件地址、坐标(注册时 IP 地址的经纬度)和标签(欺诈与非欺诈)。这是我的数据集的简短摘要:
>>> 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 个变量。但是,某些地区的经度为负值。此外,一些欺诈者可能位于高纬度和经度地区,而其他欺诈者可能位于低纬度和经度地区。那么也许将纬度和经度组合成 1 个变量无助于训练模型?
我还可以将纬度和经度转换为城市名称。但如果我这样做,一个城市的拼写将与另一个距离很远的城市相似,这又可能无助于训练模型。有什么建议吗?
最佳答案
有多种方法可以解决这个问题。您共享的链接谈到了单独处理经纬度并对它们执行特征缩放这一事实。这种方法很好,因为假设如果在球坐标中它们彼此更接近,那么它们在现实生活中实际上会更接近彼此。
但是你的问题是不同的。我想您需要知道如何处理模型中的经纬度。您可以通过以下方式进行。
并非所有机器学习技术都需要您缩放或规范化特征。尺度归一化通常是为了让模型相信所有特征都是平等的。这是必需的,因为某些机器学习模型基于距离度量,例如 KNN、逻辑回归。因此,如果您不执行特征缩放,则可能会搞砸学习。如果您正在使用一些基于树的模型,例如 DT、随机森林、XGBoost 或 GBM,我认为您甚至可以在不缩放的情况下使用这些特性。因此,您可以直接在您的功能集中使用经纬度。
大多数情况下,您可以使用 KMeans 等聚类技术对经纬度进行聚类,在您的数据集中创建一个名为 cluster
的特征,并为其赋予值 聚类编号 或 与聚类中心的距离,然后删除经纬度列。您还可以为每个集群创建一个单独的特征,并获取与每个集群中心的距离并将该距离存储到这些变量中。
正如您所提到的,您还可以执行反向地理编码来获取城市和国家名称。但就您而言,这种方法可能不是欺诈的有力预测指标。但仅供引用,
from pygeocoder import Geocoder
location = Geocoder.reverse_geocode(12.9716,77.5946)
print("City:",location.city)
print("Country:",location.country)
执行一些层次聚类而不是 KMeans,因为如果特征空间本质上是线性的,KMeans 会沿着最大化方差工作,但如果它是非线性的,那么最好使用 PAM、CLARA 和 DBSCAN 等层次聚类。
关于python - 欺诈检测分类ML的经纬度转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49743337/
我对纬度和经度有疑问。当我想获取坐标时,只有 24 个 API 检索坐标。其他人没有。不知道为什么 我正在使用 GPSTracker 服务 public Location getLocation()
我有一个表(DB2 数据库),其中包含城市信息和相应的经纬度以及与城市相关的许多其他信息。我的要求是: 我的应用程序的输入将是纬度和经度,它们可能是或许多不是存储在数据库中的精确纬度和经度。我需要借助
我在经度和纬度上有一个位置 (A)。 我有一条线段,起点(B)和终点(C)在经度和纬度上。 我试图计算的是从 A 到 BC 线的最短距离。 换句话说,从 A 到最近点(在 BC 线上)的距离(以米为单
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
这个问题在这里已经有了答案: Find nearest latitude/longitude with an SQL query (18 个答案) 关闭 6 年前。 我正在尝试编写一个在某个位置附近
我正在尝试将 Yelp 的 API 与纬度/经度位置结合使用。我使用了 yelp 给出的 javascript 代码,它基本上有一个参数数组,并像这样将值插入其中: parameters.push([
我有一大组纬度和经度需要存储在 MySQL 数据库中。我正在阅读有关要使用的字段类型的相互矛盾的建议。 数据的一个例子是... Lat | Long -----------------
在我的应用程序中,我通过以特定时间间隔从服务器获取他们的位置(纬度和经度)来显示其他人的位置。 获取后,我必须删除所有注释并删除基于服务器数据的新注释。 但它看起来非常低效,因为当我们以前存在相同用户
我正在尝试将鼠标在谷歌地图上的位置转换为 LatLng 对象。我看到很多关于通过谷歌地图“点击”事件等获取位置的帖子,如下所示: google.maps.event.addListener(map,
我的 SQLite 数据库中存储了经纬度数据,我想获取与我输入的参数最近的位置(例如,我当前的位置 - 纬度/经度等)。 我知道这在 MySQL 中是可能的,并且我已经进行了相当多的研究,认为 SQL
伙计们,我在我的 Android 应用程序中实现了谷歌地图,并开始创建一个标记,我在 map 中间放置了一个标记图像。现在,我希望每当用户拖动 map 时,我都能得到 map 中心的位置(我放置图像的
我正在实现 GPS 跟踪器以从 http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/ 获取经度和纬度.
我有一个多边形形状文件(可下载 here ),我想从中创建一个包含 3 列的 data.frame ,其中包含: 多边形 ID 质心纬度 质心经度 来自这个答案here ,我知道以 Formal Cl
有没有办法使用facebook api以(纬度和经度格式)获取用户的位置? 我能够获得位置名称和其他属性,但不能获得该地点的经纬度。 javascript中是否有相同的API。 最佳答案 如果您有用户
在我的“原生”Android 应用程序中,我试图计算 map 上两个位置之间以英尺和/或米(如乌鸦飞翔)为单位的距离。理想情况下,会有一种方法将两个 LatLng 值(因为这是我随时可用的)作为输入并
我想使用 Google API 获取 GPS 位置。 我的代码: mGoogleApiClient = new GoogleApiClient.Builder(this)
这个问题在这里已经有了答案: How to calculate the latlng of a point a certain distance away from another? (6 个答案)
我是一名优秀的程序员,十分优秀!