Clusteranalyse selbst programmieren

Allgemeine Statistik mit R, die Test-Methode ist noch nicht bekannt, ich habe noch keinen Plan!

Moderatoren: EDi, jogo

Antworten
habicht-44
Beiträge: 7
Registriert: So Mai 19, 2019 6:30 pm

Clusteranalyse selbst programmieren

Beitrag von habicht-44 »

Hallo,

im Rahmen einer IT-Weiterbildung soll ich im Kurs Business Intelligence eine Clusteranalyse mit R durchführen.
Es dürfen aber keine Pakete oder Befehle wie "hclust" verwendet werden, sondern Abstandsmatrix, Fusionierungsalgorithmus etc. sollen selbst per Hand programmiert werden.

Jetzt habe ich aber höchstens Anfängerkenntnisse in der Programmierung und hänge ziemlich in der Luft. Könnt Ihr mir in diesem Zusammenhang passende Bücher empfehlen? Über Tipps wie ich hier grundlegend vorgehen müsste wäre ich auch sehr dankbar.

Vielen Dank im Voraus
Beste Grüße
Benutzeravatar
student
Beiträge: 674
Registriert: Fr Okt 07, 2016 9:52 am

Re: Clusteranalyse selbst programmieren

Beitrag von student »

Hallo,

zur Distanz habe ich hier mal etwas gemacht und hoffe es hilft ein wenig weiter....
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt
Das Ad-Oculos-Projekt auf YouTube

Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Clusteranalyse selbst programmieren

Beitrag von bigben »

Hallo Habicht,

das ist eine sehr wage Themenbeschreibung und die vollständige Antwortet überschreitet das, was in einen Forumspost passt, gewaltig. Clusteranalyse ist ein wirklich weites Feld. Hast du hclust erwähnt, weil es eine hierarchische Clusteranalyse sein soll, oder tut es auch eine einfachere Variante von Clusteranalyse? kmeans kann man in einem einzigen Youtubevideo gut erklären. https://www.youtube.com/watch?v=4b5d3muPQmA

Die Programmierfrage ist zu unspezifisch. Woher sollen wir wissen, was " höchstens Anfängerkenntnisse in der Programmierung" heißt?

Die Antwort, dass Du ein Buch brauchst, in dem Dein Clusterverfahren beschrieben wird und eines, in dem die Programmierung mir R beschrieben wird, ist Dir bestimmt zu platt, aber sehr viel mehr kann man so einfach noch nicht sagen.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Clusteranalyse selbst programmieren

Beitrag von EDi »

aber keine Pakete oder Befehle wie "hclust" verwendet werden
wo ist denn hier die Grenze? Nur "base" pakete, aber nichts was darüber hinaus geht (z.b. "stats").

sondern Abstandsmatrix, Fusionierungsalgorithmus etc. sollen selbst per Hand programmiert werden.
Was hast du denn schon probiert bzw. was habt ihr denn so gelernt?
Distanzmatrix ist der erste Schritt für Hierachisches Clustering - damit würde ich anfangen.

Hier eine Beispielmatrix zum anfangen:

Code: Alles auswählen

set.seed(1234)
mat <- matrix(runif(12), nrow = 3)
mat
Die Lösung der euklidischen Distanz (die ja unsinnger Weise nicht verwendet werden darf) ist:

Code: Alles auswählen

dist(mat)
Das ist dein Ziel das du zuerst erreichen musst.
Formel für die Distanz zwischen zwei Vektoren ist einfach, hier ein Starter:

Code: Alles auswählen

euc.dist <- function(x1, x2) sqrt(sum((x1 - x2)^2))
euc.dist(c(1,2,3), c(4,6,7))
Jetzt nurnoch das über all kombinationen der verktoren laufen lassen und in eine Dreiecksmatrix packen und du hat die Distanzmatrix.

hclust() nachbauen ist dann der nächste Schritt...


Buchempfehlung? Ich mag das hier für multivariate Statistik: https://www.elsevier.com/books/numerica ... 44-89249-2
Gut, Ökologie & Business Intelligence klingen zwar unterschiedlich, aber die Methoden überlappen sich aber sehr....

Das hier ist auch sehr nett: http://www.multiresolutions.com/mda-sw/M2/holdall.pdf. Vorallem, wenn mankeine Pakete oder Befehle wie "hclust" verwendet werden soll, gibt das implementierungs Ideen.
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
habicht-44
Beiträge: 7
Registriert: So Mai 19, 2019 6:30 pm

Re: Clusteranalyse selbst programmieren

Beitrag von habicht-44 »

Vielen Dank für eure Antworte und die zusätzlichen Code-Beispiele.
Ich schaue mir die Buchempfehlungen auf jeden Fall genauer an und versuche den Code nachzuvollziehen.

Es soll eine hierarchische Clusteranalyse werden.
Wo die Grenze des Erlaubten ist, weiß ich auch nicht genau.
Dies ist meine erste Berührung mit R.
Allerdings soll die Aufgabe laut des Professors auch für Neueinsteiger zu lösen sein.

Hier eine Ausschnitt aus dem E-Mail-Verkehr mit dem Professor zur Aufgabenstellung:

"Daher ist eine Methode wie hclust, welche das Clustering
einfach alleine vollständig macht, nicht zulässig. Sie sollen nicht
zeigen, dass Sie ein Werkzeug nutzen können, sondern dass Sie selbst
ein Problem mit R umsetzen können. Sie programmieren die
Clustereinteiung, die Abstandsberechnung usw."
oder auch
."...wie man eine Funktion wie dist() selbst programmiert, ist Teil der Aufgabe."

Die Vorgehensweise habe ich verstanden, jetzt benötige ich nur noch die richtige Literatur, in welcher eben kein hclust und dist() verwendet wird, sondern das per Hand programmiert wird.
Antworten