Je veux regrouper les données qui consistent en noms d'objet, coordonnée x, coordonnée y et température correspondante. Essayer un algorithme de regroupement de carrés moyens pour grouper l'objet proche en fonction de l'emplacement et de la température proche, c'est-à-dire identifier les zones chaudes et froides. Voici le code et les petites données d'échantillon. mais il ne donne qu'un seul cluster par défaut mais ne peut pas afficher de graphique. Je voudrais savoir ce qui pourrait être erroné dans le code suivant:Algorithme de décalage moyen pour la mise en grappe de données définies par l'utilisateur comprenant 3-4 entités
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()
data.csv:
nom, x_cordinate, y_cordinate, température
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
Oui, j'ai également essayé avec les valeurs par défaut et en variant la valeur à 0,5, il a fonctionné pendant environ 20 heures et n'a donné qu'un seul groupe – Harshad
comment publier le code et les données que vous utilisez actuellement? le code ci-dessus ne s'exécute pas en raison d'une erreur de syntaxe, ne fonctionne pas avec l'erreur de syntaxe fixe car estimation_bandwidth fonctionne par lots de 500 éléments (9) et ne fonctionne pas après avoir fourni une bande passante plausible directement au constructeur MeanShift (1.5e6) en raison d'une colonne mal nommée dans la partie d'affichage du code. Je suis à court d'enthousiasme ou je tiens à préciser que vos données sont mal échelonnées (x et y vs échelles de température) à utiliser directement dans une méthode à distance comme meanshift ou kmeans – welch
en ce qui concerne le fichier de données est trop grand partager, si vous fournissez votre adresse e-mail ou référentiel cloud ou par tout autre moyen que je peux partager. en ce qui concerne les données de kmeans peuvent être regroupées avec n nombre de grappes mais j'essaie également de trouver la différence exacte des grappes à l'aide de l'algorithme de décalage moyen, kmean et de densité – Harshad