我正在尝试使用DBSCAN(scikit learn implementation)和位置数据进行集群.我的数据是np数组格式,但要使用带有Haversine公式的DBSCAN,我需要创建一个距离矩阵.当我尝试这样做时,我得到以下错误('模块'不可调用错误.)从我在线阅读这是一个导入错误,但我很确定不是我的情况.我已经创建了自己的半身距离公式,但我确定错误不是这个.
这是我的输入数据,一个np数组(ResultArray).
[[ 53.3252628 -6.2644198 ]
[ 53.3287395 -6.2646543 ]
[ 53.33321202 -6.24785807]
[ 53.3261015 -6.2598324 ]
[ 53.325291 -6.2644105 ]
[ 53.3281323 -6.2661467 ]
[ 53.3253074 -6.2644483 ]
[ 53.3388147 -6.2338417 ]
[ 53.3381102 -6.2343826 ]
[ 53.3253074 -6.2644483 ]
[ 53.3228188 -6.2625379 ]
[ 53.3253074 -6.2644483 ]]
Run Code Online (Sandbox Code Playgroud)
这是错误的代码行.
distance_matrix = sp.spatial.distance.squareform(sp.spatial.distance.pdist
(ResultArray,(lambda u,v: haversine(u,v))))
Run Code Online (Sandbox Code Playgroud)
这是错误消息:
File "Location.py", line 48, in <module>
distance_matrix = sp.spatial.distance.squareform(sp.spatial.distance.pdist
(ResArray,(lambda u,v: haversine(u,v))))
File "/usr/lib/python2.7/dist-packages/scipy/spatial/distance.py", line 1118, in pdist
dm[k] = dfun(X[i], …Run Code Online (Sandbox Code Playgroud) 我有一个用户及其音乐播放的数据集,每个播放都有位置数据。对于每个用户,我想对他们的播放进行聚类,以查看他们是否在给定位置播放音乐。
我计划使用 sci-kit learn k-means 包,但如何让它处理位置数据,而不是默认的欧几里德距离?
一个它工作的例子真的会对我有帮助!