20种经纬度特征工程

本文介绍了20种基于经纬度的特征工程方法,包括经度/纬度的相减、相除、欧几里得距离、Manhattan距离、Haversine距离计算,以及聚类、特殊地点距离、经纬度逆向编码、其他转换等,旨在提高地理空间数据的分析效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 两个经度/纬度的相减

使用相邻经度进行相减,相邻纬度相减,类似于经纬度的绝对变化特征

def lat_diff(lat1, lat2): 
    return lat1 - lat2
def lat_absdiff(lat1, lat2): 
    return abs(lat1 - lat2)
def lng_diff(lng1, lng2): 
    return lng1 - lng2
def lng_absdiff(lng1, lng2): 
    return abs(lng1 - lng2)
2 两个经度/纬度的相除

计算两个经度或者纬度的相除,减法如果是绝对特征,那么相除可以认为是相对特征

def lat_ratio(lat1, lat2): 
    return lat2 / lat1

def lgn_ratio(lgn1, lgn2): 
    return lgn2 / lgn1
3 经纬度相除

计算经纬度的相除的特征,类似于斜度计算

def lng_lat_ratio(lat1,lng1): 
    return lng1 / lat1

def lat_lng_ratio(lgn1, lgn2): 
    return lat1 / lgn1
4 两个经纬度的欧几里得距离计算

计算两个经纬度之间的欧几里得距离

def euclidean_distance(lat1, lng1, lat2, lng2): 
    return np.sqrt((lat1 - lat2) ** 2 + (lng1 - lng2) ** 2)
5 两个经纬度的Manhattan距离计算

计算两个经纬度之间的Manhattan距离

def manhattan_distance(lat1, lng1, lat2, lng2): 
    return abs(lat1 - lat2)  + abs(lng1 - lng2)
6 经纬度与斜边的比例特征

类似于三角形中两个直角边与斜边的比例信息

def lat_lng_hypotenuse_ratio(lat1, lng1): 
    hypotenuse = np.sqrt((lat1 ** 2 +  lng1 ** 2))
    return lat1 /  hypotenuse, lng1/  hypotenuse
7 基于经纬度的聚类1

基于经纬度进行聚类,将经纬度聚类的结果当做特征,例如常用的Kmeans。
此处我们用1表示,在第二部分我们会介绍升级版

from sklearn.cluster import MiniBatchKMeans
coords = np.vstack((train[['pickup_latitude', 'pickup_longitude']].values,
                    train[['dropoff_latitude', 'dropoff_longitude']].values,
                    test[['pickup_latitude', 'pickup_longitude'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值