-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Suche nach Refinements auf der Basis von Bins #252
Comments
Hallo, |
Stell dir vor du hast einige Beispiele (oder auch Bins), die nach einem bestimmten Feature sortiert sind. Wenn man jetzt eine neue Bedingung für dieses Feature finden will, dann geht man die Beispiele/Bins in der sortierten Reihenfolge durch und jeder Threshold zwischen zwei benachbarten Beispielen/Bins kommt im Frage um entweder eine Condition mit dem Operator <= (LEQ) oder > (GR) zu bilden. Der Grund warum man für jeden Threshold beide Fälle testet ist, dass eine Condition mit <= alle vorausgegangenen Beispiele (mit kleinerem Featurewert) abdeckt, während eine Condition mit > alle anderen Beispiele abdeckt. Würde man nur einen der beiden Fälle berücksichtigen, würde man die Hälfte der Möglichkeiten einfach ignorieren. Statt <= und > könnte man auch < und >= verwendet werden. Wichtig ist nur, dass sich die abgedeckten Bereiche nicht überlappen und die Vereinigung der Bereiche alle Beispiele umfasst. |
Als Teil von #226 muss eine Klasse implementiert werden, die nach dem besten Refinement einer Regel (für ein bestimmtes Feature) auf der Basis von Bins (der Datenstruktur aus #243) sucht.
Diese neue Klasse
ApproximateRuleRefinementImpl
(zu implementieren inboomer/common/cpp/rule_refinement.h/cpp
) muss das InterfaceIRuleRefinement
implementieren. Darauf ergibt sich folgendes Klassendiagram:rule-refinement.zip
Wie im Klassendiagram zu sehen besitzt die neue Klasse
ApproximateRuleRefinementImpl
folgende Klassenattributte, die als Konstruktorargument übergeben werden:statistics_
: Ein Pointer auf ein Objekt vom TypAbstractStatistics
, das zuvor mittels einesIHistogramBuilder
erstellt wurde.binArray_
: Ein Pointer auf ein struct vom TypBinArray
. Dieses struct existiert aktuell noch nicht.featureIndex_
: Der Index des Features für das nach Refinements gesucht werden sollAktuell fehlt das struct
BinArray
noch. Es könnte folgendermaßen aussehen und sollte zutuples.h
hinzugefügt werden:Innerhalb der
findRefinement
-Methode muss über die Bins iteriert werden um mögliche Bedingungen zu evaluieren und letztendlich die beste Bedingung in Form eines structs vom TypRefinement
zurückzugeben. Als Pseudocode könnte das etwa folgendermaßen aussehen:The text was updated successfully, but these errors were encountered: