2017-09-04 47 views
-1

我想用Gowalla的数据集簇位置。[这是我的数据包含用户ID(INT),检查时间(多项式),纬度(真),经度(真正),地点(INT)如何处理使用DBSCAN与python进行空间聚类的类型数据?

我有这样的错误。

我的代码有什么问题?

import csv 
import numpy as np 
from scipy.spatial import distance 
from sklearn.cluster import DBSCAN 

labels = ['id', 'date_time', 'lat', 'lng','location'] 
data = csv.DictReader(open('dataset1.csv', 'r').readlines()[1:], labels) 
coords = [(float(d['lat']), float(d['lng'])) for d in data if len(d['lat']) > 0] 
distance_matrix = distance.squareform(distance.pdist(coords)) 

db = DBSCAN(eps=1.45).fit(distance_matrix) 
class_members = [index[0] for index in np.argwhere(db.labels_ == k)] 
for index in class_members: 
    print '%s,%s' % (int(k), '{0},{1}'.format(*coords[index])) 

感谢帮助ñ共享

回答

0

如前所述错误信息,无没有的长度。

if len(d['lat']) > 0 

因此d['lat']必须是None

至少有一行没有坐标?