Diskretisierung bei numerischen Feldern

In einem wirklichkeitsnahen Szenario weisen die Felder "Girokonto" und "Sparkonto" weit mehr unterschiedliche Kontostände auf als in der folgenden Tabelle:
Tabelle 1. Unflexibelstes Tabellenlayout - erweitert
Gruppen-ID Girokonto Sparkonto Kreditkarte Darlehen Wertpapierdepot
Schmidt 122,76 25.183,15 1 - -
Jackson -3.000 - 5 langfristig viele Buchungen
Douglas 11.877,43 - - - wenige Buchungen

Die Wahrscheinlichkeit, dass zwei Kunden den gleichen Kontostand haben, ist sehr gering. Daher sind für diese numerischen Felder Mining-Läufe für Assoziationen und für Sequenzregeln möglicherweise nutzlos, da der Kontostand Teil des Elementnamens ist. Nahezu jeder Kunde generiert seine eigenen Elemente.

Um das Problem numerischer Felder zu umgehen, bietet Intelligent Miner ® einen Diskretisierungsmechanismus für numerische Felder. Wenn ein numerisches Feld mehr als 100 unterschiedliche Werte enthält, wird der Wertebereich standardmäßig in Intervalle aufgeteilt. Bei der Diskretisierung eines numerischen Felds können folgende Elementnamen gebildet werden:
Ganz links liegendes Intervall
[field name < boundary {=1(5)}]
Intervalle in der Mitte
[field name >= lowerBoundary AND < upperBoundary {=2(5)}]
Ganz rechts liegendes Intervall
[field name >= boundary {=5(5)}]
Wenn beispielsweise eine Tabelle mit mehr als 100 verschiedenen Salden im Feld 'checking account'vorhanden ist, können die folgenden Elemente aus dem Feld 'checking account'resultieren:
[checking account <-5000 {=1(5)}]
[checking account >=-5000 AND <0 {=2(5)}]
[checking account >=0 AND <5000 {=3(5)}]
[checking account >=5000 AND <10000 {=4(5)}]
[checking account >=10000 AND <15000 {=5(5)}]
Hinweis:
  • Den folgenden Operatoren werden Leerzeichen vorangestellt:
    • '>'
    • '>='
    • '<'
    • 'UND'
  • 'AND' ist sprachunabhängig
  • Das Zahlenformat der Grenzwerte ist sprachunabhängig. Das Dezimaltrennzeichen besteht aus einem Punkt (Beispiel: '122.76').
Diskretisierung in fünf Bins (Kategorien von Werten) auf der Basis von Mittelwerten und Standardabweichungswerten
Standardmäßig werden numerische Elementfelder vom Typ Gleitkommazahl oder Ganzzahl, die mehr als 100 unterschiedliche Werte enthalten, in fünf Bins kategorisiert. Die Grenzwerte für Bins werden wie folgt bestimmt:
  1. Bis zu 10.000 Trainingsdatensätze werden gelesen. Diese Trainingsdatensätze stellen 10.000 numerische Werte des in Bins zu kategorisierenden Elementfelds bereit.
  2. Aus diesen 10.000 Werten werden Mittelwerte (m) und Standardabweichungswerte (s) berechnet. Die Mittelwerte und die Standardabweichungswerte werden gerundet, um zu viele Stellen nach dem Dezimalzeichen zu verhindern. Der Wert 71,64198 wird z. B. auf 71,6 gerundet.
  3. Auf der Basis der gerundeten Werte werden die folgenden Bins erstellt:
    ( -∞, m-3s/2 (
    Der Wert liegt weit unter dem Durchschnittswert.
    ( m-3s/2, m-s/2 (
    Der Wert liegt unter dem Durchschnittswert.
    ( m-s/2, m+s/2 (
    Der Wert liegt nahe dem Durchschnittswert.
    ( m+s/2, m+3s/2 (
    Der Wert liegt über dem Durchschnittswert.
    ( m+3s/2, +∞ (
    Der Wert liegt weit über dem Durchschnittswert.
Standardmodus für Diskretisierung anpassen
Gehen Sie wie folgt vor, um die Standardmethode für das Binning zu ändern:
  • Sie können die Standardanzahl der Datensätze ändern, die für die Bestimmung des Mittelwerts und des Standardabweichungswerts gelesen werden müssen, indem Sie den Parameter <NumSampleRecordsForBins> in der Methode DM_setAlgorithm verwenden.

    Mit dem folgenden Befehl wird z. B. die Anzahl der Datensätze, die zur Berechnung des Mittelwerts und des Standardabweichungswerts gelesen werden müssen, für den Standardalgorithmus SIDE auf 20.000 erhöht:

    DM_RuleSettings..DM_setAlgorithm
       ('SIDE','<NumSampleRecordsForBins>20000</NumSampleRecordsForBins>')
  • Sie können die Standardanzahl Bins für alle numerischen Felder über den Parameter <NumBins> in der Methode DM_setAlgorithm ändern.

    Der folgende Befehl erhöht z. B. die Standardanzahl Bins für den Standardalgorithmus SIDE auf 12 und die Anzahl zu lesender Datensätze auf 20.000:

    DM_RuleSettings..DM_setAlgorithm
       ('SIDE','<NumBins>12</NumBins>
                <NumSampleRecordsForBins>20000</NumSampleRecordsForBins>')
  • Sie können die Anzahl Bins für einzelne Elementfelder ändern, indem Sie die die Methode DM_setFldNumBins verwenden.

    Der folgende Befehl erhöht z. B. die Anzahl Bins für das Feld INCOME auf 20:

    DM_LogicalDataSpec..DM_setFldNumBins('INCOME',20)
Abhängig von der tatsächlichen Anzahl N der Bins, die für ein bestimmtes Elementfeld angegeben wird, werden die Breiten und die Grenzwerte für Bins wie folgt angepasst:
N < 8
Binbreite = Standardabweichung. Bins werden symmetrisch um einen Mittelwert zentriert.
7 < N < 15
Klassenbreite = Standard deviation/2. Die Klassen sind symmetrisch um den Mittelwert zentriert.
Wenn N > 14
Klassenbreite = Standard deviation/4. Die Klassen sind symmetrisch um den Mittelwert zentriert.
In abstandstreue Bins diskretisieren
  • Sie können einen unteren und einen oberen Grenzwert für abstandstreue Bins mithilfe des Befehls DM_setFldOutlLim angeben.

    Wenn Sie z. B. abstandstreue Bins für das Feld INCOME zwischen dem unteren Grenzwert 10.000 und dem oberen Grenzwert 70.000 definieren wollen, können Sie den folgenden Befehl verwenden:

    DM_LogicalDataSpec..DM_setFldOutlLim
       ('INCOME',10000,70000)

    Der oben aufgeführte Befehl erstellt fünf Bins. Es gibt zwei Ausreißerbins und drei abstandstreue Bins zwischen 10.000 und 70.000:

    • <10000 (Ausreißerbin)
    • (10000, 30000(
    • (30000, 50000(
    • (50000, 70000(
    • ≥70000 (Ausreißerbin)
  • Sie können die Befehle DM_setFldOutlLim und DM_setFldNumBins kombinieren, um die Anzahl abstandstreuer Bins zu ändern.

    Mit den folgenden Befehlen werden z. B. sechs abstandstreue Bins mit der Breite 10.000 zwischen den Grenzwerten 10.000 und 70.000 sowie zwei Ausreißerbins für das Feld INCOME erstellt:

    DM_LogicalDataSpec..DM_setFldOutlLim('INCOME',10000,70000) 
    DM_LogicalDataSpec..DM_setFldNumBins('INCOME',8)
Schwellenwert für Diskretisierung ändern
Standardmäßig beginnt die Diskretisierung numerischer Felder, wenn ein numerisches Feld mehr als 100 unterschiedliche Werte umfasst. Sie können diesen Wert über den power-Optionsparameter -MAX_DISCR_COUNT ändern.

Bei Verwendung des folgenden Befehls beginnt z. B. die Diskretisierung der numerischen Felder, wenn mehr als 20 unterschiedliche Werte gefunden werden:

DM_RuleSettings..DM_setPowerOptions('-MAX_DISCR_COUNT 20')