【发布时间】:2018-08-27 02:44:32
【问题描述】:
我是 scikit learn 的新手,但想尝试一个有趣的项目。
我有英国点的经度和纬度,我曾经使用 scikit learns KMeans 类创建集群中心。为了可视化这些数据,而不是将点作为集群,我想在每个集群周围绘制边界。例如,如果一个集群是伦敦,另一个是牛津,我目前在每个城市的中心都有一个点,但我想知道是否有办法使用这些数据根据我的集群创建边界线?
到目前为止,这是我创建集群的代码:
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
location1="XXX"
df = pd.read_csv(location1, encoding = "ISO-8859-1")
#Run kmeans clustering
X = df[['long','lat']].values #~2k locations in the UK
y=df['label'].values #Label is a 0 or 1
kmeans = KMeans(n_clusters=30, random_state=0).fit(X, y)
centers=kmeans.cluster_centers_
plt.scatter(centers[:,0],centers[:,1], marker='s', s=100)
所以我希望能够将上面示例中的中心转换为划分每个区域的线——这可能吗?
谢谢,
蚂蚁
【问题讨论】:
-
我建议画Voronoi图,肯定有一个python库。
-
你问的是空间边界吗?例如 - 为城市绘制边界,质心在哪里(属于)?还是你的意思是别的?
标签: python scikit-learn k-means