|
|
Implementierung von Optigrid |
|
VonKrolock |
Forum-Anfänger
|
|
Beiträge: 28
|
|
|
|
Anmeldedatum: 26.03.15
|
|
|
|
Wohnort: Bochum
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.03.2015, 09:58
Titel: Implementierung von Optigrid
|
|
|
|
|
Hallo Leute,
ich bin neu hier und hoffe, dass ich meine Frage in das richtige Forum geschoben habe. Ich bin ein absoluter Programmieranfänger
und soll nun im Rahmen meiner Projektarbeit für die Uni das Clusterverfahren Optigrid auf verschiedene Beispielsortimente anwenden.
Leider scheint dieses Verfahren noch nicht fertig implementiert zu sein.
Ich habe dies zunächst mit R versucht, aber nun festgestellt, dass ich mit Matlab besser klar komme.
Hier ist der Algorithmus aus dem Paper:
OptiGrid(data set D; q; min cut score)
1. Determine a set of contracting projections P ={P0,....,Pk}
2. Calculate all projections of the data set D P0(D),...,Pk(D)
3. Initialize a list of cutting planes BEST_CUT <- leere Menge, CUT <- leere Menge
4. FOR i=0 TO k DO
(a) CUT <- Determine best_local_cuts(Pi(D))
(b) CUT SCORE <- Score best_local_cuts(Pi(D))
(c) Insert all cutting planes with a score > min_cut_score into BEST_CUT
5. IF BEST_CUT = leere Menge THEN RETURN D as a cluster
6. Determine the q cutting planes with highest score from BEST CUT and delete the rest
7. Construct a Multidimensional Grid G defined by the cutting planes in BEST_CUT and insert all data points x D into G
8. Determine clusters, i.e. determine the highly populated grid cells in G and add them to the set of Cluster C
9. Refine(C)
10. FOREACH Cluster Ci C DO
OptiGrid(Ci; q; min_cut_score)
Mein Problem: Schritt 1. Zu den nachfolgenden Schritten habe ich schon ein paar Ideen, allerdings nützt mir das ja nichts, wenn ich den 1. Schritt nicht implementiert bekomme.
Die Projektion ist wie folgt definiert: P(x) = Ax mit ||A|| = max(||Ay||/||y||) <= 1 mit y S
Wer das nochmal nachlesen möchte, hier der Link: http://www.google.de/url?sa=t&r.....1nfad3RY7cBW1QXVNibkxyjcQ
Ich würde mich freuen, wenn es hier jemanden gibt, der mit helfen kann. Falls jemand den fertigen Code hat, würde mich das noch mehr freuen
Viele Grüße
|
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 26.03.2015, 13:08
Titel: Re: Implementierung von Optigrid
|
|
|
|
|
Hallo VonKrolock,
Zitat: |
1. Determine a set of contracting projections P ={P0,....,Pk}
Die Projektion ist wie folgt definiert: P(x) = Ax mit ||A|| = max(||Ay||/||y||) <= 1 mit y S |
Das ist eine sehr allegemeine Frage und man kann kaum erraten, welche Art der Implementierung für dich nützlich sein könnte. Selbst wenn jemand fertigen Code hat, wird der wahrscheinlich nicht genau zu Deinem Problem passen.
Es ist grundsätzlich unwahrscheinlich, dass ein Leser im Forum die notwendigen Papers liest. Denn normalerweise habe alle Nutzer des Forums auch ihre eigene Arbeit zu erledigen und kommen kaum damit hinterher alle dafür benötigten Veröffentlichungen zu lesen. Sich dann in das Arbeitsfeld eines anderen einzulesen ist deshalb selten im Rahmen dessen, was man freiwillig als Hilfestellung für anderen zu leisten bereit ist.
Brauchbare Antworten erhält man in einem Forum am wahrscheinlichsten, wenn man den bisherigen Code postet und konkrete Fragen dazu stellt. Für allgemeine Fragen ist eher der Professor/Arbeitsgruppenleiter etc der richtige Ansprechpartner.
Viele Grüße, Jan
|
|
|
VonKrolock |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 28
|
|
|
|
Anmeldedatum: 26.03.15
|
|
|
|
Wohnort: Bochum
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.03.2015, 14:21
Titel: Re: Implementierung von Optigrid
|
|
|
|
|
Hallo Jan,
danke für deine schnelle Antwort. Mein Übungsleiter ist leider nicht sehr hilfsbereit und daher habe ich mich an euch gewandt.
Ich versuche mein Problem mal anders auszudrücken, denn einen Code kann ich euch bisher noch nicht zeigen, da ich wie gesagt an Schritt 1 scheiter.
Vereinfacht lautet mein Problem: Ich besitze eine vorgegeben Ursprungmatrix, bspw.
1 2 3
4 5 6
7 8 9
Von dieser Matrix halte ich z.B. die 1. Zeile (1 2 3) fest. Nun projiziere ich die Matrix auf folgende Art und Weise: P(x) = Ax, wobei A eine Matrix ist, die folgende Bedingung erfüllt:
Ich multipliziere die Matrix A (welche ich nicht kenne und welche Matlab mir berechnen soll) mit einer anderen Zeile aus der Ursprungsmatrix, bspw. mit (4 5 6). Darauf wende ich irgendeine Norm an. Dieses Ergebnis teile ich durch die Norm von der Zeile, die ich mit A multipliziert habe.
In diesem Beispiel wäre das (4 5 6). Und das mache ich mit allen Zeilen der Matrix und suche mir das Maximum raus. Daher gilt ||A|| = max (||Ay||/||y||)
Ich weiß leider nicht, wie ich das besser beschreiben soll. Ist das vllt irgendwie verständlich? Mein Problem ist nun: Wie sage ich Matlab: Such dir eine Matrix, die diese Bedingung erfüllt?? Ich will ja nicht für jede vorgegebene Matrix per Hand mein A ausrechnen.
Wenn ich weiß, wie das geht, dann komme ich erstmal selbst wieder mit dem Algorithmus klar.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|