对已知的多个地理位置进行kmeans聚类的python代码
时间: 2024-02-11 09:04:44 浏览: 74
以下是对已知的多个地理位置进行kmeans聚类的Python代码示例:
```python
import numpy as np
from sklearn.cluster import KMeans
from geopy.geocoders import Nominatim
# 已知的多个地理位置
locations = ["New York", "Los Angeles", "Chicago", "Houston", "Philadelphia", "Phoenix", "San Antonio", "San Diego"]
# 先获取多个地点的经纬度
geolocator = Nominatim(user_agent="geoapiExercises")
latitudes = []
longitudes = []
for location in locations:
location = geolocator.geocode(location)
latitudes.append(location.latitude)
longitudes.append(location.longitude)
# 将经纬度组成一个数组
X = np.array(list(zip(latitudes, longitudes)))
# 进行kmeans聚类
kmeans = KMeans(n_clusters=3)
kmeans = kmeans.fit(X)
# 输出聚类结果
print(kmeans.labels_)
```
这个示例代码也是通过使用 `Nominatim` 模块获取了多个城市的经纬度,然后将经纬度组成一个二维数组 `X`,并使用 `sklearn` 中的 `KMeans` 进行聚类。最后输出了聚类结果。
阅读全文