Clusteranalyse mit nominalen Features unterschiedlicher Läng

Alles rund um Clusteranalysen.

Clusteranalyse mit nominalen Features unterschiedlicher Läng

Beitragvon FranziKo » Di 14. Jan 2020, 12:11

Hallo zusammen!

Ich bin relativ neu auf dem Gebiet der Clusteranalyse und habe folgendes Problem:

Ich habe 11 Features anhand derer ich Produkte clustern möchte. Alles sind nominale Features (z.B. Marke, Location, Produktgruppe,...). Die Features haben eine unterschiedliche Anzahl an verschiedenen Ausprägungen (dies reicht von binären Features zu Features mit 25 verschiedenen Ausprägungen). Nun möchte ich die Produkte clustern. Es geht mir primär darum, am Ende möglichst die Cluster so gebildet zu haben, dass z.B. in jedem Cluster immer Produkte sind, die in mindestens zwei (und zwar innerhalb des Clusters immer die zwei gleichen) Features gleich sind (oder auch drei oder mehr). Gibt es eine Möglichkeit/ein Clusterverfahren, bei dem ich so etwas vorgeben kann? Also: Gib mir so viele Cluster aus, sodass in jeder Gruppe die Datenpunkte in mindestens zwei Features übereinstimmen. Zwischen den Gruppen können diese zwei Features natürlich wechseln.

Zur Veranschaulichung nochmal am Beispiel. Die Produkte sollen klassifiziert werden und die Features haben Buchstaben als Ausprägungen. Die Features sind spaltenweise angeordnet. Folgendes soll das Ergebnis sein:
Cluster 1:
Produkt 1: A B C D E F G
Produkt 2: A B D E C E E
Produkt 3: A B R R E P P
Produkt 4: A B I P C G G

Cluster 2:
Produkt 5: Q R S T U V W
Produkt 6: R G S T Q N M
Produkt 7: A G S T M N P

usw.

Ich arbeite in R.

Ich hoffe, mir kann jemand helfen und danke im Voraus für die Hilfe!

VG
Franzi
FranziKo
Grünschnabel
Grünschnabel
 
Beiträge: 4
Registriert: Do 19. Dez 2019, 16:57
Danke gegeben: 1
Danke bekommen: 0 mal in 0 Post

Re: Clusteranalyse mit nominalen Features unterschiedlicher

Beitragvon bele » Di 14. Jan 2020, 12:56

Hallo FranziKo,

die Aufgabe scheint mir nicht ausreichend spezifiziert zu sein:

FranziKo hat geschrieben:Es geht mir primär darum, am Ende möglichst die Cluster so gebildet zu haben, dass z.B. in jedem Cluster immer Produkte sind, die in mindestens zwei (und zwar innerhalb des Clusters immer die zwei gleichen) Features gleich sind (oder auch drei oder mehr).


Ist denn gewährleistet, dass es eine eindeutige Lösung gibt? Oder anders: WEnn Produkt A und B in zwei Eigenschaften gleich sind, Produkt A und C in zwei anderen Eigenschaften gleich sind, B und C aber nicht, soll Produkt A dann in mehreren Clustern wiederholt vorkommen?

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 3872
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 10
Danke bekommen: 822 mal in 812 Posts

folgende User möchten sich bei bele bedanken:
FranziKo

Re: Clusteranalyse mit nominalen Features unterschiedlicher

Beitragvon FranziKo » Di 14. Jan 2020, 13:03

Hallo Bernhard,

Produkt A sollte in diesem Fall wiederholt vorkommen. Besonders gut wäre es, wenn man eine Mindestanzahl an Produkten vorgeben könnte, die in einem Cluster sein müssen, sodass es auch als Cluster gekennzeichnet wird.

Theoretisch müsste man ja alle möglichen Kombinationen (von zwei oder drei oder mehr Variablenausprägungen) der 11 Variablen durchgehen und schauen, wie häufig diese vorkommen. Kommen diese z.B. mindestens 10 mal vor, soll ein Cluster gebildet werden.

Danke schonmal!
FranziKo
Grünschnabel
Grünschnabel
 
Beiträge: 4
Registriert: Do 19. Dez 2019, 16:57
Danke gegeben: 1
Danke bekommen: 0 mal in 0 Post

Re: Clusteranalyse mit nominalen Features unterschiedlicher

Beitragvon bele » Di 14. Jan 2020, 14:07

Hallo FranziKo,

das alles erscheint mir nicht wirklich mit statistischen Standardmethoden abdeckbar zu sein, aber R ist ja nicht nur ein Statistikprogramm aber auch eine Programmiersprache.

Man könnte sich vorstellen, dass das hier geeignete Beispieldaten sind:

Code: Alles auswählen
products <- data.frame(id = 1:6,
                       a = c("A", "A", "C", "D", "E", "A"),
                       b = c("B", "B", "D", "D", "E", "B"),
                       c = c("D", "B", "D", "D", "E", "D"))
products


Dann bräuchte man eine Funktion, die einem sagt, in wievielen Eigenschaften zwei PRodukte übereinstimmen. Das könnte so aussehen:

Code: Alles auswählen
# Funktion zeigt für ein Produktepaar die Zahl der Übereinstimmungen
dist <- function(prod1, prod2){
    sum(prod1[-1]==prod2[-1])
}

# Tests für die dist Funktion
if(dist(products[1,], products[2,])!=2) warning("Test 1 auffällig!")
if(dist(products[1,], products[3,])!=1) warning("Test 2 auffällig!")
if(dist(products[1,], products[5,])!=0) warning("Test 3 auffällig!")


darauf aufbauend untersucht folgende Funktion für je ein Produkt, welche der anderen PRodukte mindestens zwei Eigenschaften teilen:

Code: Alles auswählen
# Teste für alle Produkte, ob sie mindestens
# zwei Übereinstimmungen mit Produkt n haben

screen <- function(n, products = products){
  p.minus.n <- products[-n,]
  apply(p.minus.n, 1, function(p) {dist(p, products[n,])>=2})
}

# Tests für Funktion screen
if(!all(screen(1, products) == c(TRUE, FALSE, FALSE, FALSE, TRUE))) warning ("Test 4 auffällig!")


Welche Produkte stimmen nun mit Produkt 1 in mindestens 2 Merkmalen überein?
Code: Alles auswählen
> screen(1, products)
    2     3     4     5     6
TRUE FALSE FALSE FALSE  TRUE


Also gehören Nr 2 und Nr 6 in denselben Cluster wie Nr. 1. Das könnte man für alle anderen auch durchführen und müsste danach doppelte Cluster eliminieren, dann alle Cluster < 10 Stück eliminieren.


Frage: Bist Du in R fit genug, um so einen Weg zu gehen? Wenn ja, dann ist das hier m. E. das falsche Forum, um Dich darin zu begleiten. Dann empfehle ich forum.r-statistik.de .
Ist programmieren nicht Dein Ding? Dann müssen wir schauen, ob hier noch jemand was aus der Statistikecke dazu zu sagen hat.

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 3872
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 10
Danke bekommen: 822 mal in 812 Posts

Re: Clusteranalyse mit nominalen Features unterschiedlicher

Beitragvon FranziKo » Di 14. Jan 2020, 14:58

Hallo Bele,

wenn ich deinen Ansatz richtig verstehe, wird hier aber lediglich geschaut, wie viele Übereinstimmungen es gibt und nicht darauf geachtet, welche dies sind.

So würden ja, bei gewünschter Anzahl von 2 Übereinstimmungen in folgendem Beispiel sowohl Produkt B als auch Produkt C zu Produkt A gezählt werden.

Produkt A: A B C D E F
Produkt B: A B G G G G
Produkt C: Z Z C D Z Z

Um das zu lösen, müssten ja wieder alle Kombinationen betrachtet werden...
Oder verstehe ich das falsch?
FranziKo
Grünschnabel
Grünschnabel
 
Beiträge: 4
Registriert: Do 19. Dez 2019, 16:57
Danke gegeben: 1
Danke bekommen: 0 mal in 0 Post

Re: Clusteranalyse mit nominalen Features unterschiedlicher

Beitragvon bele » Di 14. Jan 2020, 15:08

Stimmt, das habe ich in diesem Hüftschuss falsch gemacht. Der Ansatz war weiter gedacht: Ist selbst programmieren eine Option oder braucht's eine fertige Methode?
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 3872
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 10
Danke bekommen: 822 mal in 812 Posts

Re: Clusteranalyse mit nominalen Features unterschiedlicher

Beitragvon FranziKo » Mi 15. Jan 2020, 12:16

Hallo bele,

Programmieren ist auch eine Option. Bin einigermaßen fit in dem Thema :)

Viele Grüße
Franzi
FranziKo
Grünschnabel
Grünschnabel
 
Beiträge: 4
Registriert: Do 19. Dez 2019, 16:57
Danke gegeben: 1
Danke bekommen: 0 mal in 0 Post

Re: Clusteranalyse mit nominalen Features unterschiedlicher

Beitragvon bele » Mi 15. Jan 2020, 16:08

Ich habe gesehen, dass Du Dein Vorhaben richtigerweise im R-Forum gepostet hast und dass EDis Antwort dort noch auf eine Reaktion von Dir wartet.

Viel Erfolg,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 3872
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 10
Danke bekommen: 822 mal in 812 Posts


Zurück zu Clusteranalyse

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 0 Gäste