Я хочу сгруппировать данные, состоящие из имен объектов, x_coordinate, y_coordinate и соответствующей температуры. Попытка алгоритма среднеквадратичной кластеризации для кластеризации близлежащего объекта в соответствии с местоположением и близлежащей температурой, т. Е. Определение горячих и холодных областей. Ниже приведен код и небольшие примеры данных. но он дает только один кластер по умолчанию, но не может отображать график. Я хотел бы знать, что может быть не так в следующем коде:
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import pandas as pd
from sklearn.decomposition import PCA
from sklearn.cluster import MeanShift, estimate_bandwidth
import matplotlib.pyplot as plt
from itertools import cycle
data = pd.read_csv("data.csv")
centers = [[1, 1, 1], [0,0,0], [0,0,0]]
X= data._get_numeric_data()
bandwidth = estimate_bandwidth()
ms = MeanShift()
ms.fit(X)
labels = ms.labels_
cluster_centers = ms.cluster_centers_
print labels
print cluster_centers
fig = plt.figure()
ax = plt.axes(projection='3d')
x = data['x_cordinate']
y=data['y_cordinate']
z=data['tpa']
c=labels
ax.scatter(x,y,z, c=c)
plt.show()
Данные.csv:
name,x_cordinate,y_cordinate,temperature
Ctrs3,5189200,6859000,0.3998434286
Ctrs4,5173360,6812800,0.4779542857
Ctrs5,5660440,6812800,0.7044195918
Cstrs3,1935400,5929720,0
Cstrs4,1953880,5929720,0
Cstrs5,491320,2689120,0
Cltrs3,3436240,5884840,0.3998434286
Cltrs4,3296320,5884840,0.4779542857
Cltrs5,5426800,5725120,0.7044195918