Je voudrais regrouper des noeuds basés sur un ensemble de données constitué de lectures différentes pour chaque noeud à différents moments.Mise en cluster de noeuds basés sur différentes lectures à différents moments en utilisant K-Means
ici est un exemple de mes données:
1.0000 21.0860 46.1968 2.3000 2.3568
1.0000 21.0762 46.0326 0.9200 2.3568
1.0000 21.0664 45.9669 0.9200 2.3568
2.0000 89.5488 29.2581 11.9600 1.9537
2.0000 19.5670 39.6878 121.4400 2.6753
2.0000 19.5376 39.7557 121.4400 2.6753
2.0000 19.4788 39.6878 121.4400 2.6633
où 1 dans la première colonne indique les données pour le noeud 1 et 2 indique les données relatives au noeud 2.
Comment puis-je forcer K-Means pour regrouper les données alors que tous les points de données du nœud 1 tombent dans le même cluster et ainsi de suite.
NOTE Le but est de regrouper les noeuds et non les données.
Voici mon code dans Matlab où je ne considère pas les étiquettes de nœud et simplement CLUSTERED les données qui sont en réalité pas souhaitée:
filename = 'data.txt';
delimiterIn = ' ';
headerlinesIn = 1;
A = importdata(filename,delimiterIn);
data = A.data;
DATA_REAL = A.data(1:n,3:end);
temperature = DATA_REAL(:,1);
humidity = DATA_REAL(:,2);
light = DATA_REAL(:,3);
voltage = DATA_REAL(:,4);
%% 2 Dimension
% K-means Algorithm for 2D %%
[KM_R2,C_R2,sumd_R2,D_R2] = MY_KMEANS(DATA_REAL(:,1:2),K);
figure
plot(temperature,humidity,'r.')
hold on
grid on
Nodes_in_Cluster = zeros(1,K);
for j = 1:K
Nodes_in_Cluster(j) = length(find(KM_R2==j));
end
for i = 1:length(DATA_REAL)
text(temperature(i),humidity(i),num2str(KM_R2(i)),'BackgroundColor',cc(KM_R2(i),:));
end
title(['Number of clusters in K-means:',num2str(K)])
xlabel('temperature')
ylabel('humidity')
Tout conseil en Matlab ou Python est apprécié .
Si vous pensez que K-Means n'est pas approprié pour ce type de clustering, quelle est votre suggestion?
Merci,
Lequel est-ce, Python ou MATLAB? S'il vous plaît montrer votre code. Pourquoi avez-vous besoin de regrouper vos données si vous avez déjà des étiquettes sur vos données? En outre, les captures d'écran sont particulièrement inutiles. Il est vraiment difficile de copier et coller des données à partir d'une capture d'écran. – beaker
J'ai modifié la question en supprimant la capture d'écran. Bien que j'ai des étiquettes pour les données, je veux regrouper les nœuds car il y a près de 100 nœuds et je veux avoir presque 5 clusters. – Nadi
De quelle pondération avez-vous besoin parmi les nœuds? Est-ce qu'un nœud avec 20 points de données l'emporte sur un nœud avec seulement trois? Sinon, votre première tâche consiste à pré-traiter les données, en remplaçant chaque nœud par son centroïde. Ensuite, regroupez simplement les centroïdes. En outre, modifiez le numéro de nœud en une chaîne et supprimez cette colonne de la formule de distance. – Prune