Einfügen von Clustern in ein Excel-Diagramm

Einfügen von Clustern in ein Excel-Diagramm

Ich habe einen Datensatz generiert, der der folgenden Tabelle ähnelt.

Label | X | Y | A | 1 | 1 | B | 2 | 2 | B | 3 | 2 | A | 4 | 3 | C | 5 | 4 | A | 4 | 3 | C | 2 | 1 | This list will expand to 1000 of items

Dieser Datensatz wird mithilfe des K-Mean-Clusteralgorithmus generiert. Daher möchte ich meine Ausgabe in einem Diagramm als Cluster anzeigen. Diese Daten werden mithilfe eines anderen Programms in der Programmiersprache C generiert. Sobald ich diese Daten habe, möchte ich sie in Excel als Cluster darstellen, wie unten in unterschiedlichen Farben für jeden Cluster gezeigt. Können Sie mir bitte sagen, wie ich das machen kann?

Bildbeschreibung hier eingeben

Antwort1

Erstellen Sie für jeden Cluster eine Spalte neben Ihren Quelldaten und verwenden Sie diese Formel, um den Y-Wert zu erhalten, wenn die Zeilenbeschriftung mit der Spaltenbeschriftung übereinstimmt:

=IF($A2=D$1,$C2,NA())

Kopieren Sie quer und nach unten. Erstellen Sie ein Streudiagramm mit den drei Reihen A, B und C, die alle dieselben X-Werte verwenden.

Bildbeschreibung hier eingeben

Antwort2

Ich schlage ein Tool namensSpaß Spaß das die Clusteranalyse in Excel unterstützt.

Es ermöglicht Benutzern, JavaScript und Python (anstelle klassischer VBA-Makros) in Excel zu programmieren. Es unterstützt auch externe Bibliotheken. Mit diesem Tool können Sie jede beliebige JavaScript-Bibliothek verwenden, um Datenanalysen (z. B. Clusteranalysen) durchzuführen oder Diagramme zu zeichnen.

Um die Frage zu beantworten, nimmt die Funktion Eingaben im Format eines JSON-Arrays (in den Einstellungen definiert) entgegen und speichert sie in einer JavaScript-Variable. Anschließend wird eine Verknüpfung zwischen ihnen und den Tabellenkalkulationen erstellt.

Hier verwende ichCanvasJSund jQuery, um dieses Diagramm zu zeichnen.Clusterfck.jswird für den Clusterprozess verwendet. Der Kerncode:

var nb_clusters = 4;
// Calculate clusters.
var clusters = clusterfck.kmeans(data, nb_clusters); // data, nb_clusters
var chart = new CanvasJS.Chart("chartContainer", {
  title: {
    text: "Birth and death rate"
  },
  width:500,
  axisX: {
    title: "Birth rate",
    minimum: 0,
    maximum: 60
  },
  axisY: {
    title: "Death rate",
    titleFontSize: 16
  },
  data: [
    {
      type: "scatter",
      markerType: "circle", 
      dataPoints: process(clusters[0])
    },
    {
      type: "scatter",
      markerType: "square", 
      dataPoints: process(clusters[1])
    },
    {
      type: "scatter",
      markerType: "square", 
      dataPoints: process(clusters[2])
    },
    {
      type: "scatter",
      markerType: "cross", 
      dataPoints: process(clusters[3])
    }
  ]
});
chart.render();

Hier ist der Screenshot:

Bildschirmfoto

Wie Sie sehen, wird ein K-Means-Cluster mit K = 4 verwendet. Sie können die Hyperparameter im Code ändern.

DerVerknüpfungdieser Funktion des Online-Spielplatzes. Der Screenshot ist wie folgt:

Bildschirmfoto

Der zweite Bereich ist eine Vorschau von Excel. Der dritte Bereich ist der Codierungsbereich. Der letzte Bereich ist die Ausgabe des Codes.

Hoffe es hilft und viel Spaß :)

PS Ich bin ein Entwickler von Funfun

verwandte Informationen