DE69938339T2 - Ein skalierbares system zum gruppieren von grossen datenbänken - Google Patents

Ein skalierbares system zum gruppieren von grossen datenbänken Download PDF

Info

Publication number
DE69938339T2
DE69938339T2 DE69938339T DE69938339T DE69938339T2 DE 69938339 T2 DE69938339 T2 DE 69938339T2 DE 69938339 T DE69938339 T DE 69938339T DE 69938339 T DE69938339 T DE 69938339T DE 69938339 T2 DE69938339 T2 DE 69938339T2
Authority
DE
Germany
Prior art keywords
data
database
cluster
clustering
models
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69938339T
Other languages
English (en)
Other versions
DE69938339D1 (de
Inventor
Usama Mercer Island FAYYAD
Paul S. Bradley
Cory Kirkland REINA
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of DE69938339D1 publication Critical patent/DE69938339D1/de
Publication of DE69938339T2 publication Critical patent/DE69938339T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2216/00Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
    • G06F2216/03Data mining
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft die Analyse von Datenbanken, und im Speziellen betrifft sie eine Vorrichtung und ein Verfahren zum Clustern (Zusammenfassen) von Daten in Gruppen, die wichtige Regelmäßigkeiten und Charakteristiken der Daten erfassen.
  • Hintergrund der Erfindung
  • Große Sätze von Daten sind heute in den meisten Firmenorganisationen üblicherweise im Einsatz. Tatsächlich sind so viele Daten gesammelt worden, dass selbst das Stellen einer einfachen Abfrage über die Daten zu einer Herausforderung geworden ist. Die moderne Informationsrevolution erzeugt enorme Datenspeicher, welche, anstatt eine steigende Produktivität und neue Möglichkeiten zu bieten, drohen, die Benutzer in einer Flut von Informationen zu ersticken. Das Anzapfen von großen Datenbanken selbst für einfaches Browsen (Durchstöbern) kann zu einer Explosion von irrelevanten und nicht wichtigen Fakten führen. Selbst Leute, die keine großen Datenbanken "besitzen", begegnen dem Überlastungsproblem, wenn sie auf Datenbanken im Internet zugreifen. Eine große Herausforderung begegnet nun der Datenbankgemeinde, nämlich wie diese Datenbanken durchsucht werden können, um nützliche Informationen zu finden.
  • Bestehende Datenbankmanagementsysteme (DBMS) führen die Schritte des zuverlässigen Speicherns von Daten und Abrufens von den Daten unter Verwendung einer Datenzugriffssprache, üblicherweise SQL, durch. Eine der Hauptverwendungen der Datenbanktechnologie ist es, einzelnen Personen und Organisationen zu helfen, Entscheidungen zu fällen und Berichte basierend auf den Daten, die in der Datenbank enthalten sind, zu generieren.
  • Eine wichtige Kategorie der Probleme auf dem Gebiet der Entscheidungsunterstützung und des Berichten sind Cluster-(Segmentierungs-)Probleme, wobei jemand interessiert ist, Gruppierungen (Cluster) in den Daten zu finden. Das Clustern ist seit Jahrzehnten auf dem Gebiet der Statistiken, Mustererkennung, maschinellem Lernen und vielen anderen Wissenschafts- und Ingenieursgebieten studiert worden. Jedoch waren Implementationen und Anwendungen historisch auf kleine Sätze von Daten mit einer geringen Anzahl an Dimensionen beschränkt. Jedes Cluster schließt Sätze von Daten ein, die ähnlicher zu Mitgliedern desselben Clusters sind, als zu dem Rest der Daten. Z. B. kann eine Firma in einer Marke tinganwendung wünschen, zu entscheiden, wer das Ziel einer Werbekampagne ist, basierend auf historischen Daten über eine Reihe von Kunden und wie sie auf vergangene Kampagnen reagiert haben. Andere Beispiele von solchen Problemen schließen ein: Betrugserkennung, Kreditbewilligung, Diagnose von Systemproblemen, Diagnose von Produktionsproblemen, die Erkennung von Ereignisauthentifizierungen (event signatures), etc. Die Einstellung von Analysten (Statistikern), um Clustermodelle aufzubauen, ist teuer und oft nicht effektiv für große Probleme (große Datenreihen, mit einer großen Anzahl von Feldern). Selbst trainierte Wissenschaftler können bei der Suche nach zuverlässigen Clustern keinen Erfolg haben, wenn das Problem hochdimensional ist (d. h. die Daten viele Felder aufweisen, z. B. mehr als 20).
  • Das Clustern ist ein notwendiger Schritt bei der Auswertung (mining) von großen Datenbanken, weil es ein Mittel zum Finden von Segmenten der Daten darstellt, die separat voneinander modelliert werden müssen. Dies ist eine besonders wichtige Betrachtung für große Datenbanken, wo ein globales Modell der gesamten Daten üblicherweise keinen Sinn macht, weil die Daten mehrere Populationen repräsentieren, die separat voneinander modelliert werden müssen. Zufälliges Samplen (sampling) kann bei der Entscheidung, was die Cluster sind, nicht helfen. Letztendlich ist das Clustern ein besonderer Schritt, wenn jemand eine Dichteabschätzung (density estimation) über die Datenbank durchführen muss (d. h. die Wahrscheinlichkeitsverteilung modellieren, die die Datenquelle verwaltet). Clusterungsanwendungen gibt es zahlreich und sie schließen die folgenden breiten Gebiete ein: Datenmining (Datenauswertung), Datenanalyse im Allgemeinen, Datenvisualisierung, Sampling (Abfragen), Indizierung, Vorhersage, und Komprimierung. Bestimmte Anwendungen im Datenmining schließen Marketing, Betrugserkennung (bei Kreditkarten, Banken und Telekommunikation), Kundenzurückhaltung (customer retention) und Abwanderungsminimierung (turn minimization) (in allen Servicebereichen, einschließlich Fluglinien, Telekommunikationsdienstleistern, Internetdienstleistern und Webinformationsdienstleistern im Allgemeinen), Direktvertrieb im Internet und Direktvertrieb im elektronischen Handel ein.
  • Das Clustern ist ein wichtiges Anwendungsgebiet für eine Vielzahl von Gebieten, einschließlich Datenmining, statistische Datenanalyse, Komprimierung und Vektorquantisierung. Das Clustern ist auf verschiedene Art und Weise formuliert worden. Das fundamentale Clusterungsproblem ist das des Zusammengruppierens (Clusterns) von Datenelementen, die ähnlich zueinander sind. Der allgemeinste Ansatz für das Clustern ist, es als ein Dichte- Abschätzungsproblem (density estimation Problem) zu betrachten. Wir nehmen an, dass es zusätzlich zu den beobachteten Variablen für jedes Datenelement eine versteckte, nicht beobachtete Variable gibt, die die "Clustermitgliedschaft" des gegebenen Datenelements indiziert. Deshalb wird von den Daten angenommen, dass sie von einem Mischmodell herstammen und die Mischungskennzeichner (lables) (Clusteridentifizierer) versteckt sind. Im Allgemeinen weist ein Mischungsmodell M, das K Cluster Ci, i = 1, ..., K aufweist, einem Datenpunkt x eine Wahrscheinlichkeit wie folgt zu:
    Figure 00030001
  • Wobei Wi als die Mischungsgewichtungen bezeichnet werden.
  • Das Problem ist nun die Parameter des einzelnen Ci abzuschätzen. Normalerweise wird angenommen, dass die Anzahl der Cluster K bekannt ist, und das Problem ist, die beste Parameterisierung von jedem Clustermodell zu finden. Eine weit verbreitete Technik zum Abschätzen der Modellparameter (einschließlich der Clusterparameter und Mischungsgewichtungen) ist der EM Algorithmus (siehe P. Cheeseman und J. Stutz, "Bayesian Classification (AutoClass): Theory and Results", in Advances in Knowledge Discovery and Data Mining, Fayyad, U., G. Piatetsky-Shapiro, P. Smyth, und R. Uthurusamy (Eds.), Seiten 153–180, MIT Press, 1996; und A. P. Dempster, N. M. Laird, und D. B. Rubin, "Maximum Likelihood from Incomplete Data via the EM algorithm". Journal of the Royal statistical Society, Band B, 39(1): 1–38, 1977). Es gibt verschiedene Ansätze zum Lösen des Optimierungsproblems beim Ermitteln (lokaler) optimaler Werte der Parameter bei gegebenen Daten. Die Ansätze der iterativen Verfeinerung sind die effektivsten. Der Basisalgorithmus funktioniert wie folgt:
    • 1. Initialisiere die Modellparameter, wodurch ein aktuelles Modell erzeugt wird.
    • 2. Entscheide über die Mitgliedschaften der Datenelemente in Clustern, unter der Annahme, dass das aktuelle Modell korrekt ist.
    • 3. Schätze erneut die Parameter des aktuellen Modells ab, unter der Annahme, dass die Datenmitgliedschaften, die in 2. erlangt wurden, korrekt sind, wodurch ein neues Modell erzeugt wird.
    • 4. Wenn das aktuelle Modell und das neue Modell ausreichend nah beieinander liegen, höre auf, ansonsten gehe zurück zu 2.
  • Die am Weitesten verbreiteten Clusterungsalgorithmen in der Mustererkennung und der Statistikliteratur gehören zu der Familie der oben genannten iterativen Verfeinerungen: der K-Mittel-Algorithmus (K-means algorithm), J. P. McQueen, "Some methods for classification and analysis of multivariate observations", in Proceedings of the Fifth Berkeley Symposium an Mathematical Statistics and Probability, Volume 1, Statistics, L. M. Le Cam und J. Neyman (Eds.), University of Caifornia Press, 1967. Es gibt viele Varianten von diesen, die iterativ ein Modell durch das erneute mehrmalige Scannen der Daten verfeinern. Diese Algorithmen haben kürzlich viele Anwendungen gefunden, einschließlich in der Industrie und der Wissenschaft. Der Unterschied zwischen dem EM und dem K-Mittel ist der Mitgliedschaftsentscheidungsschritt (Schritt 2). Bei K-Mittel gehört ein Datenelement zu einem einzelnen Cluster, während bei EM für jedes Datenelement angenommen wird, es gehört zu jedem Cluster, aber mit einer unterschiedlichen Wahrscheinlichkeit. Dies beeinflusst natürlich den Aktualisierungsschritt (3) des Algorithmusses. Bei K-Mittel wird jedes Cluster aktualisiert, strikt basierend auf seiner Mitgliedschaft. Bei EM wird jedes Cluster durch die gesamte Datenreihe (Sätze von Daten) gemäß der jeweiligen Mitgliedschaftswahrscheinlichkeit aktualisiert.
  • Tian Zhang et al, "BIRCH: An Efficient Data Clustering Method for Very Large Databases", ACM SIGMOD International Conference an Management of Data, Montreal, Canada, 4.–6. Juni 1996, vol. 25, Nummer 2, Seiten 103–114, beschreibt ein Datenclusterungsverfahren, das für große Datenbanken unter Verwendung von Hierarchien geeignet ist. Das Verfahren offenbart vier Phasen zum Erreichen einer Clusterung von Daten. In der ersten Phase werden alle Daten gescannt und ein anfänglicher Clustermerkmalsbaum (CF-Baum – clustering feature tree) gebildet, wobei ein Clusterungsmerkmal ein Triple ist, das die Statistiken des Clusters zusammenfasst, dies sind die Anzahl der Datenpunkte, die lineare Summe und die quadratische Summe der Datenpunkte. Des Weiteren wird die Größe eines CF-Baums durch einen Verzweigungsfaktor und einen Schwellenwert definiert, und der Baum besteht aus Nichtblätter- und Blätter-Knoten. Ein Blattknoten ist ein Untercluster, welches viele Datenpunkte mit einem Durchmesser unterhalb eines bestimmten Schwellenwertes aufnimmt. Das Verfahren fährt mit einer optionalen zweiten Phase fort, in der die Blatteinträge, die in der ersten Phase erzeugt wurden, gescannt werden, um einen kleineren CF-Baum neu auf zubauen, während mehr Ausreißer entfernt werden und überfüllte Untercluster in größere gruppiert werden. Die Phase 3 verwendet einen agglomerativen, hierarchischen Algorithmus, um alle Blatteinträge zu clustern. Der Algorithmus verwendet eine Durchschnitts-Zwischenclusterdistanz oder eine Varianz-Zunahmedistanz (variance increased distance), welche von den CF-Vektoren berechnet werden können. Des Weiteren werden die Schwerpunkte (centroids) der Cluster in Phase 3 erzeugt und können als Keime in einer optionalen Phase 4 verwendet werden. Diese finale Phase verteilt die Datenpunkte zu ihrem nächstliegenden Keim erneut, um eine Reihe neuer Cluster zu erlangen.
  • Tian Zhang und andere, "Interactive Classification of Very Large Datasets with BIRCH", Proc. of Workshop an Research Issues an Data Mining and Knowledge Discovery, Montreal, Canada, Juni 1996, Seiten 1–6, beschreibt eine Technik ähnlich zu der, die in dem oben erwähnten Dokument von Tian Zhang et al beschrieben worden ist und offenbart zusätzlich eine Visualisierungsumgebung, um ein interaktives und iteratives Datenklassifizierungswerkzeug zu bilden. Mit Rückbezügen (feed back), das von den Visualisierungen erlangt wurde, kann der Benutzer entscheiden, ein Untercluster der Daten zu verfeinern, und kann ebenso die Merkmalsauswahl und Gewichtung für weitere Cluster nachjustieren.
  • Fisher D. H., "Knowledge Acquisition via Incremental Conceptual Clustering", Machine Learning, Vol. 2, Issue 2, Seiten 139–172, September 1987, bezieht sich auf maschinelles Lernen, das sich mit verbesserter Performance durch automatische Wissensanreicherung und Verfeinerung beschäftigt, und bezieht sich im Speziellen auf die Lernaufgabe schrittweises, begriffliches Clustern. Begriffliches Clustern wird als ein Lerntyp durch das Observieren und als eine Möglichkeit zum Zusammenfassen von Daten in einer verständlichen Art und Weise beschrieben. Das eingeführte Clusterungssystem verwendet teilende sowie agglomerative Funktionen bei der Konstruktion eines Klassifizierungsbaumes über Objekte. Zusätzlich ist ein Kriterium für die Evaluierung schrittweiser Systeme die Anzahl der Objekte, die erforderlich sind, um zu einem stabilen Klassifizierungsbaum zu konvergieren. Es wird beschrieben, dass während des Lernens 100 zufällige Objekte intermittierend aus dem Bereich ausgewählt werden und unter Verwendung des Klassifizierungsbaumes, der bisher durch das System gebildet wurde, klassifiziert. Wenn die oberste Trennung (der oberste Teilbereich) das Sample in derselben Art und Weise, wie die optimale Teilung der Umgebung als ein Ganzes trennt, werden die zwei Teilungen (Partitionen) als equivalent betrachtet. Während die Qua lität der optimalen Teilungen wächst, werden weniger Objekte benötigt, um die optimale Teilung zu finden.
  • Es ist die Aufgabe der Erfindung, ein Clusterungsmodell in nur einem oder weniger Scans zu generieren.
  • Diese Aufgabe wird durch die Erfindung, wie in den unabhängigen Ansprüchen beansprucht, gelöst.
  • Bevorzugte Ausführungsformen werden durch die abhängigen Ansprüche definiert.
  • Die Erfindung stellt eine Methodik zum Skalieren von Clusterungsalgorithmen auf große Datenbanken dar. Die Erfindung ermöglicht ein effektives und genaues Clustern in einem oder weniger Scans (Abfragen) der Datenbank. Die Verwendung der Erfindung führt zu einer signifikant besseren Leistung als Schemata nach Stand der Technik, die auf einem zufälligen Sampling basieren. Diese Ergebnisse werden durch signifikant geringere Speichererfordernisse und eine akzeptable Genauigkeit in Bezug auf das Erreichen einer wahren Lösung erreicht, als wenn jemand den Clusterungsalgorithmus auf die komplette Datenbank anwenden würde.
  • Bekannte Verfahren können nur auf kleine Datenbanken (solche, die in den Speicher passen) angewandt werden, oder verlegen sich auf das Samplen von nur einem Teil der Daten. Die offenbarte Erfindung basiert auf dem Konzept, das im Speicher nur die Datenpunkte gespeichert werden, die im Speicher präsent sein müssen. Die Mehrheit der Datenpunkte wird in einer konzentrierten Darstellung zusammengefasst, die deren ausreichende Statistiken (sufficent statistics) repräsentiert. Durch das Analysieren einer Mischung der ausreichenden Statistiken und der aktuellen (tatsächlichen) Datenpunkte werden signifikant bessere Clusterungsergebnisse erzielt, als durch Zufallssamplingverfahren, und mit ähnlich weniger Speichererfordernissen. Die Erfindung kann üblicherweise beendet werden, weit bevor alle Daten in der Datenbank gescannt (abgefragt) wurden, wodurch ein großer Vorteil über andere skalierbare Clusterungsverfahren, die mindestens einen vollen Datenscan erfordern, erzielt wird.
  • Die Erfindung betrifft ein Rahmenwerk, das eine weite Klasse an Clusterungsalgorithmen unterstützt. Der K-Mittel-Algorithmus als ein beispielhafter Clusterungsalgorithmus stellt eine bestimmte Ausführungsform dieses Rahmenwerks dar. Das Rahmenwerk sieht vor, eine Vielzahl an Algorithmen zu unterstützen, die dadurch charakterisiert werden können, dass sie iterativ Daten scannen und Modelle aktualisieren. Wir verwenden K-Mittel, weil es ein gut bekanntes und bewährtes Clusterungsverfahren ist, das ursprünglich als Forgy's Verfahren bekannt war, und umfassend in der Mustererkennung verwendet worden ist. Es ist eine Standardtechnik zum Clustern, die in einem weiten Gebiet von Anwendungen verwendet wurde, und selbst als eine Möglichkeit gilt, den aufwendigeren EM-Clusterungsalgorithmus zu initialisieren.
  • Wenn jemand mit einem großen Datenspeicher arbeitet, muss er bestimmten Problemen des Datenzugriffs eine besondere Aufmerksamkeit schenken. Eine Clusterungssitzung kann Tage oder Wochen dauern, und es ist oft wünschenswert, existierende Modelle zu aktualisieren, wenn Daten ankommen. Es folgt eine Liste mit wünschenswerten Datenminingcharakteristiken: die Erfindung erfüllt all diese:
    • 1. Das Clustern sollte, wenn möglich, innerhalb eines Scans (oder weniger) der Datenbank ablaufen: ein einzelner Datenscan wird als kostspielig betrachtet, wodurch ein vorzeitiges Beenden, wenn es angebracht ist, sehr wünschenswert ist.
    • 2. Ein online, "jederzeit"-Verhalten: eine "beste" Antwort ist von dem System immer verfügbar, zusammen mit Statusinformationen über den Fortschritt, die erwartete Restdauer, etc.
    • 3. Aussetzbar, stoppbar und wiederaufnehmbar; wobei ein stufenweiser Fortschritt gespeichert wird, um eine angehaltene Verarbeitung wieder aufzunehmen.
    • 4. Eine Möglichkeit, schrittweise zusätzliche Daten effizient zu existierenden Modellen hinzuzufügen.
    • 5. Es sollte innerhalb der Grenzen eines gegebenen beschränkten RAM-Pufferspeichers arbeiten.
    • 6. Es sollte eine Vielzahl von möglichen Scan-Modi benutzen: sequenzielle, Indizierungs-, und Sampling-Scans, falls verfügbar.
    • 7. Es sollte die Möglichkeit haben, mit einem Nur-Weiterleitungscursor (forward-only-cursor) über eine Datenansicht (view) der Datenbank zu arbeiten. Dies ist notwendig, weil der Datenbankview das Ergebnis einer aufwendigen (teuren) Vereinigungsab frage über ein möglicherweise verteiltes Datenwarehouse sein kann, wobei viele Verarbeitungsschritte notwendig sind, um jede Reihe (jeden Fall) zu konstruieren.
  • Die in der Erfindung verkörperte Technik beruht auf der Beobachtung, dass Clustertechniken nicht alle Datenelemente erneut scannen müssen, wie es ursprünglich definiert wurde, und wie es in einschlägiger Literatur und statistischen Bibliotheken und Analysebaugruppen (packages) implementiert wurde. Der offenbarte Prozess kann als ein intelligentes Abfrageschema betrachtet werden, das manche, in der Theorie, gerechtfertigte Kriterien einsetzt, um zu entscheiden, welche Daten zusammengefasst werden, und durch einen Ersatz von signifikant komprimierten, ausreichenden Statistiken dargestellt werden können, und welche Datenelemente im Computerspeicher gehalten werden müssen, und damit eine wertvolle Ressource besetzen. In jeder gegebenen Iteration der Erfindung partitionieren wir die vorhandenen Datensample in drei Untergruppen: einen verworfenen Satz (discard set – DS), einen Komprimierungssatz (compression set – CS), und einen beibehaltenen Satz (retained set – RS). Für die ersten beiden Sätze verwerfen wir die Daten, aber behalten ihre repräsentativen, ausreichenden Statistiken, die die Untergruppe (sub set) zusammenfassen. Der letzte, der RS-Satz, wird im Speicher gehalten. Der DS wird in einem einzelnen Satz mit ausreichenden Statistiken zusammengefasst. Der Komprimierungssatz CS wird durch mehrere ausreichende Statistiken zusammengefasst, die Untercluster des CS-Datensatzes repräsentiert.
  • Die Erfindung arbeitet durch das Erlangen einer nächsten verfügbaren (möglichst zufälligen) Probe (sample) aus der Datenbank, um einen freien Platz im Pufferspeicher zu füllen. Ein aktuelles Modell der Clusterung wird daraufhin über die Inhalte des Pufferspeichers aktualisiert. Elemente des neuen Samples werden identifiziert, um zu ermitteln, ob sie in dem Pufferspeicher beibehalten werden müssen (beibehaltener Satz RS); ob sie mit Aktualisierungen der ausreichenden Statistiken verworfen werden können (verworfener Satz DS); oder ob sie durch Komprimierung reduziert und als ausreichende Statistiken zusammengefasst werden können (Komprimierungssatz CS). Sobald dies getan worden ist, wird eine Ermittlung durchgeführt, um zu sehen, ob ein Stoppkriterium erfüllt ist. Wenn dem so ist, wird das Clustern beendet, wenn nicht, werden mehr Daten abgerufen (gesampelt).
  • Die beispielhafte Ausführungsform erfüllt die oben angesprochenen Richtlinienprobleme, mit denen man während der Datenbankauswertung (data mining) konfrontiert ist. Eine Clusterungssitzung bezüglich einer großen Datenbank kann Tage oder sogar Wochen dauern. Es ist oft wünschenswert, die Clusterungsmodelle zu aktualisieren, sobald die Daten ankommen und gespeichert werden. Es ist in dieser Datenbankauswertungsumgebung wichtig, in der Lage zu sein, innerhalb einer Abfrage (scan) der Datenbank (oder weniger) zu clustern. Ein einzelner Scan wird als kostspielig betrachtet, und ein Abbruch der Clusterung vor einer vollständigen Abfrage ist höchst wünschenswert.
  • Eine beispielhafte Ausführungsform der Erfindung schließt einen Modelloptimierer ein. Eine Vielzahl von unterschiedlichen Clustermodellen werden in einer oder weniger Abfragen der Datenbank gleichzeitig generiert. Die Clusterungsanalyse stoppt, wenn eines der Modelle ein Stoppkriterium erreicht. Alternativ kann die Clusterung fortfahren, bis alle der vielen Modelle abgeschlossen sind, wie es durch das Stoppkriterium entschieden wird.
  • Diese und andere Aufgaben, Vorteile und Merkmale der Erfindung werden von einer detaillierten Beschreibung einer exemplarischen Ausführungsform der Erfindung besser verstanden, die in Verbindung mit den angefügten Zeichnungen beschrieben wird.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist eine schematische Darstellung eines Computersystems zur Verwendung bei der Praktizierung der vorliegenden Erfindung;
  • 2 ist eine schematische Zeichnung eines Clusterungsprozesses der Erfindung, wobei mehrere Clustermodelle durch eine einzelne Abfrage der Datenbank erlangt werden;
  • 3A und 3B sind schematische Zeichnungen, die Softwarekomponenten der Erfindung zeigen;
  • 4 ist ein Ablaufdiagramm einer exemplarischen Ausführungsform der Erfindung;
  • 5 ist ein eindimensionaler Plan einer Datenverteilung von drei Datenclustern;
  • 6A bis 6D sind Darstellungen von Datenstrukturen, die zum Speichern von Daten gemäß der exemplarischen Ausführungsform der Erfindung benutzt werden;
  • 7 ist ein Ablaufdiagramm einer beispielhaften Ausführungsform einer erweiterten K-Mittel-Analyse der Daten;
  • 8 ist eine Datenstruktur zur Verwendung bei der Ermittlung mehrerer Datenmodelle durch das Praktizieren der exemplarischen Ausführungsform der vorliegenden Erfindung;
  • 9 ist ein Plan mit Datenpunkten in zwei Dimensionen, der eine Clusterung der Daten zeigt;
  • 10 bis 14 sind Bildschirmausdrucke einer Benutzerschnittstelle, die verschiedene Aspekte des Clusterungsprozesses anzeigen.
  • Detaillierte Beschreibung einer exemplarischen Ausführungsform der Erfindung
  • Eine große Datenbank 10, für die die vorliegende Erfindung eine besondere Verwendung hat, enthält viele Datensätze, die auf einer Vielzahl von möglicherweise verteilten Datenspeichergeräten gespeichert sind. Jeder Datensatz hat viele Attribute oder Felder, welche für eine repräsentative Datenbank das Alter, Einkommen, Anzahl der Kinder, Anzahl der im Besitz befindlichen Autos etc. einschließen können. Ein Ziel der Erfindung ist es, Cluster von Daten in der Datenbank 10 zu charakterisieren. Diese Aufgabe gilt direkt auch für kleine Datenbanken (alle Daten passen in den Speicher eines Computers), die Datensätze aufweisen, die eine geringe Anzahl an Feldern oder Attributen haben. Die Aufgabe wird jedoch für große Datenbanken sehr schwierig, die eine enorme Menge an Datensätzen mit einer hohen Dimension an Attributen haben.
  • Überblick über skalierbares Clustern
  • 4 ist ein Ablaufdiagramm der Prozessschritte, die während einer skalierbaren Clusterungsanalyse von Daten gemäß der vorliegenden Erfindung durchgeführt werden. Ein Initialisierungsschritt 100 schließt einen Schritt des Initialisierens einer Anzahl von Datenstrukturen, die in den 6A bis 6D gezeigt sind, und das Auswählen einer Clusteranzahl K zur Charakterisierung der Daten ein.
  • In einem nächsten Schritt 110 wird ein Teil der Daten in der Datenbank 10 von einem Speicherdatenträger abgefragt, um diesen Teil der Daten in einen Arbeitsspeicher (random access memory) (z. B. in den RAM, obwohl andere Formen von Arbeitsspeicher in Erwägung gezogen werden können) des Computers 20, der in 1 gezeigt ist, zu bringen. Im Allgemeinen haben die Daten eine große Anzahl von Feldern, so dass die Erfindung, anstatt durch eine einzelne Dimensionsanalyse durch eine große Anzahl von Vektoren charakteri siert ist, wobei die Dimension des Vektors die Anzahl der Attribute der Datensätze in der Datenbank ist. Die Datenstruktur 180 für diese Daten ist in 6C gezeigt, um eine Anzahl von Datensätzen r einzuschließen, die eine potentiell große Anzahl von Attributen aufweisen.
  • Das Sammeln der Daten kann entweder in einer sequentiellen Abfrage (scan), die nur einen Vorwärtszeiger (forward pointer) verwendet, um sequentiell die Daten zu durchlaufen, oder in einer indizierten Abfrage, die eine zufällige Abfrage der Daten aus der Datenbank bereitstellt, durchgeführt werden. Wenn die indizierte Abfrage (index scan) verwendet wird, ist es ein Erfordernis, dass auf die Daten nicht mehrere Male zugegriffen wird. Dies kann durch das markieren von Datentupeln erreicht werden, um Duplikate zu vermeiden, oder durch einen Zufallsindexgenerator, der keine Wiederholung macht. Im Wesentlichen ist es besonders wünschenswert, dass die erste Iteration des Abfragens der Daten zufällig geschieht. Wenn es bekannt ist, dass die Daten in der Datenbank zufällig vorliegen, dann ist ein sequentielles Scanning akzeptabel. Wenn es nicht bekannt ist, dass die Daten zufällig verteilt sind, dann wird eine Zufallsabfrage benötigt, um eine ungenaue Darstellung der Datenbank zu vermeiden.
  • Zurück zu 4, als nächstes führt eine Prozessoreinheit 21 des Computers 20 eine Clusterungsprozedur durch (120), wobei die Daten, die in dem Schritt 110 in den Speicher gebracht wurden, sowie komprimierte Daten in den CS- und DS-Datenstrukturen verwendet werden. Gemäß eines exemplarischen Clusterungsprozesses, der weiter unten detaillierter beschrieben wird, weist der Prozessor 21 Daten, die in einem Teil der Daten, die in den Speicher gebracht wurden, enthalten sind, einem Cluster zu und ermittelt eine Reihe von Parametern für jedes Attribut der Daten, die einem gegebenen Cluster zugewiesen wurden. Eine Datenstruktur für die Ergebnisse oder das Ausgabemodell der Analyse ist ein Modell der Clusterung der Daten und wird in 6D gezeigt. Dieses Modell schließt K Datensätze ein, einen für jedes Cluster. In einer exemplarischen Ausführungsform (zur Unterstützung des K-Mittel-Clusterungsalgorithmusses), welche annimmt, dass die Attribute der Datenbank unabhängig voneinander sind, hat jeder Datensatz drei erforderliche Komponenten: 1) einen Vektor "Summe" ("Sum"), der die Summe für jedes der Attribute oder der Dimensionen der Vektordaten von Datensätzen in einem gegebenen Cluster repräsentiert, 2) einen Vektor "SummeSQ" ("Sumsq"), der die Summe der Attribute im Quadrat darstellt, und 3) eine Ganzzahl "M", die die Anzahl der Datensätze zählt, die in dem entsprechenden Cluster ent halten sind oder dazu gehören. Diese Angaben sind ausreichend, um das Mittel (center) (Mittelwert – mean) und die Kovarianz (Streubreite) der Daten in einem Cluster zu berechnen. Es ist zu beachten, dass diese Strukturen für den Fall von K-Mittel geführt werden, weil dies der Satz an Modellparametern ist, die die K-Mittel-Clusterung charakterisieren. Im Allgemeinen müssen diese Datenstrukturen die Parameter halten, die das beste Modell beschreiben. Im Fall von diskreten Daten würden diese Strukturen Parameter der multinominalen Verteilung halten, oder irgendeine andere Verteilung von diskreten Daten. Im Fall von EM mit einer Mischung von Gauss'schen (Werten) würden diese Strukturen Mittelwert- und Kovarianzmatrizen der Cluster halten. Es ist zu beachten, dass manche von diesen Strukturen sich verändern, abhängig von dem verwendeten Clusterungsalgorithmus, obwohl in den 6(A-D) SUMME- und SUMMESQ-Strukturen gezeigt sind. In dem Fall von EM kann der SUMMESQ-VEKTOR(-array) mit einer Matrix ersetzt werden, die Kovarianzen der Daten in dem Cluster hält. Die Parameter, die in den Strukturen dargestellt werden, ermöglichen es dem Modell, eine Wahrscheinlichkeit der Mitgliedschaft für jedes Datenelement in jedem Cluster zuzuweisen. Unser skalierbares Rahmenwerk benötigt diese Wahrscheinlichkeit zur Ermittlung der Mitgliedschaft von Datenelementen in DS-, CS-, und RS-Sätzen (wie es später diskutiert wird) als Teil seiner Datenkomprimierungsstufe.
  • Ein nächster Schritt 130 in dem Ablaufdiagramm der 4 fasst mindestens manche der Daten, die in der derzeitigen Iteration verwendet werden zusammen, um die K Cluster zu charakterisieren. Diese Zusammenfassung ist in den Datenstrukturen DS und CS der 6A und 6B enthalten. Die Zusammenfassung benötigt signifikant weniger Speicher in dem Computerspeicher 25, als die Vektordatenstruktur (6D) benötigt, um die einzelnen Datensätze zu speichern. Das Speichern einer Zusammenfassung von Daten in den Datenstrukturen der 6A und 6B setzt mehr Speicher frei, was es erlaubt, zusätzliche Daten aus der Datenbank 10 abzufragen.
  • Bevor in der Schleife zurückgegangen wird, um mehr Daten zu bekommen, ermittelt 140 der Prozessor 21, ob ein Stoppkriterium erfüllt worden ist. Ein Stoppkriterium, das verwendet wird, ist z. B., ob die Analyse ein Modell, das gut genug ist, (6D) durch einen Standard, der unten beschrieben wird, produziert hat. Ein zweites Stoppkriterium ist erreicht worden, wenn alle Daten in der Datenbank 10 in der Analyse verwendet worden sind.
  • Ein wichtiger Aspekt der Erfindung ist die Tatsache, dass anstatt des Stoppens der Analyse die Analyse ausgesetzt werden kann. Die Daten in den Datenstrukturen aus 6A bis 6D können gespeichert werden (entweder im Speicher oder auf einer Disk), und die skalierbare Clusterungsanalyse kann anschließend wieder aufgenommen werden. Dies erlaubt, dass die Datenbank aktualisiert werden kann und dass die Analyse wieder aufgenommen werden kann, um die Clusterungsstatistiken zu aktualisieren, ohne von neuem zu beginnen. Es erlaubt ebenso, dass ein anderer Prozess die Kontrolle über den Prozessor 21 übernimmt, ohne den Status der Clusterungsanalyse zu verlieren. Die Aussetzung (Unterbrechung) könnte ebenso als Antwort auf eine Benutzeranfrage, dass die Analyse unterbrochen wird, durch Mittel einer benutzerbetätigten Steuerung auf einer Schnittstelle, die dem Benutzer auf einem Monitor 47 präsentiert wird, während die Clusterungsanalyse durchgeführt wird, initiiert werden.
  • Die 3A und 3B zeigen eine Betriebsumgebung der Erfindung. Dies wird ebenso in NEWFIG gezeigt. Auf die Daten in der Datenbank 10 wird durch ein Datenbankmanagementsystem zugegriffen, das Daten zu einer Data-Mining-Maschine 12 sendet. Die Data-Mining-Maschine 12 arbeitet die Anfragen von einer Anwendung 14 ab und antwortet durch das Zurücksenden von Modellzusammenfassungen an die Anwendung. Die Softwarekomponenten der Data Mining Maschine 12 sind detaillierter in der 3A gezeigt.
  • K-Mittelclusterung
  • Es gibt viel Literatur über bekannte Datenclusterungstechniken. Eine bekannte Technik ist der sog. K-Mittel-Clusterungsprozess, welcher in Duda-Hart ("Pattern Classification and Scene Analysis"), 1973, John Wiley & Sons, Inc., New York, zusammengefasst ist. Eine exemplarische Ausführungsform der vorliegenden skalierbaren Clusterungsanalyse wird mit Bezug auf den K-Mittel-Clusterungsprozess beschrieben.
  • Es wird von einer zweidimensionalen Darstellung von Daten aus einer Datenbank ausgegangen, wie es in 9 gezeigt ist. Über den zweidimensionalen Raum der Figur sind eine Vielzahl von Datenpunkten verteilt. In einer üblichen Datenbank würde dies eine Darstellung von zwei Attributen eines Datensatzes mit vielen Attributen sein.
  • Jedermann kann visuell ermitteln, dass die Daten in 9 "geklumpt" oder zusammengeclustert sind. Die Klassifizierung der Daten in Cluster ist abhängig von einer starrenden (starring) Clusteranzahl. Wenn jemand drei Cluster für die Daten aus 9 auswählt, würden die Daten allgemein in die Cluster K1, K2, K3 aus der Figur fallen.
  • Der K-Mittel-Algorithmus verwendet als eine Eingabe: die Anzahl der Cluster K, eine Reihe von K anfänglichen Schätzungen der Clustermittel und die Datenreihe, die geclustert werden soll. Die Mittel (Zentroiden) definieren die Parameter des Modells. Eine herkömmliche K-Mittel Evaluierung beginnt mit einer zufälligen Wahl von Clusterzentroiden oder -mitteln, die zufällig in den Ausdehnung der Daten auf der X-Achse platziert sind. Diese werden mit M1, M2 und M3 in 9 benannt.
  • Jedes Cluster wird durch sein Mittel dargestellt, und jedes Datenelement wird einer Mitgliedschaft in dem Cluster zugewiesen, das das nächstliegende Mittel aufweist. Die Distanz ist die euklidische Distanz (oder L2-Norm), die für einen Datenpunkt (d-dimensionalen Vektor) x und Mittelwert μ gegeben ist durch:
    Figure 00140001
  • Das Clustermodell wird durch die Berechnung des Mittelwerts über die ihm zugewiesenen Datenelemente aktualisiert. Die Modellannahme mit Bezug auf den klassischen K-Mittel-Algorithmus sind: 1) jedes Cluster kann wirksam durch eine Gauss'sche Verteilung mit diagonaler Kovarianzmatrix modelliert werden, die gleiche diagonale Elemente (über alle Cluster) aufweist, 2) die Mischungsgewichte (Wi) werden ebenso als gleich angenommen. Es ist zu beachten, dass K-Mittel nur über numerische (mit kontinuierlichen Werten gefüllte) Daten definiert ist, weil die Möglichkeit, den Mittelwert zu berechnen ein Erfordernis ist. Eine eigenständige Version der K-Mittel existiert und wird manchmal als raues EM (harsh EM) bezeichnet. Der K-Mittel-Algorithmus findet eine lokaloptimale Lösung des Problems des Minimierens der Summe von den L2-Distanzen zwischen jedem Datenpunkt und seinem nächsten Clusterzentrum (üblicherweise mit "Verzerrung" bezeichnet).
  • Bei einer Datenbank, die in den Speicher passt, können alle Daten aus der Datenbank verwendet werden, um die Clusterzentroiden der K-Mittel zu berechnen. Die Ausgabe von solch einem Prozess nach Stand der Technik sind die K-Zentren und die Anzahl der Datenpunkte, die innerhalb jedes der K Cluster fallen.
  • Gemäß der vorliegenden Erfindung werden die Daten aus der Datenbank 10 in einen Speicher 22 (1) gebracht, und sobald die Berechnung der K-Mittel durchgeführt wurde, werden sie einem der drei Datensätze zugeordnet. Ein Satz mit beibehaltenen Daten (RS) wird im Speicher 22 für eine weitere Verwendung beim Durchführen der K-Mittel-Analyse gehalten. Ein sog. Satz mit verworfenen Daten (DS) und ein Satz mit komprimierten Daten (CS) werden in der Form von ausreichenden Statistiken, die im Speicher bleiben, zusammengefasst. Bei einem zufälligen Abfragen (sampling) von Daten wird die Clusterungsberechnung besser, je mehr Daten gesammelt werden. Bei einem Prozess gemäß der vorliegenden Erfindung werden die Schätzungen besser, je mehr Daten abgefragt werden, aber die Schätzungen sind akkurat, obwohl die Speichererfordernisse selbst das Abfragen auf einen geringen Prozentsatz der gesamten Datenbank begrenzt.
  • Datenstrukturen
  • Die 6A bis 6D fassen die Datenstrukturen zusammen, die verwendet werden, um die skalierbare K-Mittel-Analyse durchzuführen. Die Ausgabe von der Analyse wird in einer Datenstruktur gespeichert, die als MODELL (6D) bezeichnet wird, welches ein Array 152 von Pointern (Adressverweisen) einschließt, wobei jeder Pointer auf einen ersten Vektor 154 von n Elementen (floats – Puffer) "Summe", auf einen zweiten Vektor 156 von n Elementen (floats) "SummeSQ", und auf ein Skalar 158, das als M bezeichnet wird, zeigt. Die Anzahl n entspricht der Anzahl an Attributen der Datenbankdatensätze, die geclustert wurden.
  • 6A zeigt eine Datenstruktur, die als DS bezeichnet wird, und die ein Array 160 mit Pointern einschließt, wobei jeder einen Vektor 162 von n Elementen (floats) "Summe", einen Vektor 164 mit n Elementen (floats) "SummeSQ", und einen Skalar 166, bezeichnet als "M", identifiziert.
  • Eine weitere Datenstruktur, bezeichnet als CS, ist ein Array mit c Pointern 170, wobei jeder Pointer auf einen Vektor 172 mit n Elementen (floats) "Summe", auf einen Vektor 174 mit n Elementen (floats) "SummeSQ", und auf einen Skalar 176, bezeichnet als M, zeigt.
  • Eine zusätzliche Datenstruktur, bezeichnet als RS (6C), ist ein Array 180 mit r Elementen, wobei jedes Element auf einen Vektor von n Elementen (floats) zeigt, die einen einzelnen Datenpunkt eines Typs darstellen, der als SDATA bezeichnet wird. Wenn Daten von der Datenbank gelesen werden, werden sie in dem Satz RS gespeichert, und diese Daten stehen nicht im Zusammenhang mit irgendeinem der K Cluster. Eine beispielhafte Implementierung der K-Mittel-Analyse hat RS, was ein Array mit Pointern auf Elemente des Typs SDATA ist, sowie ein zugehöriger SummeSQ-Vektor, der null ist, und der Skalar M = 1.
  • In einer exemplarischen Ausführungsform der Erfindung werden mehrere Modelle gleichzeitig generiert. Diese Struktur ist in 8 gezeigt, worin mehrere Modelle Pointers sind, die auf Arrays von Modellen zeigen, wie z. B. die Datenstrukturen, die in 6D gezeigt sind.
  • Tabelle 1, unten, ist eine Liste von 10 SDATA-Vektoren, welche Beispieldaten aus einer Datenbank 10 bilden, und als einzelne Vektoren in der Datenstruktur RS gespeichert sind. Tabelle 1
    Fall-ID Alter Einkommen Kinder Autos
    1 30 40 2 2
    2 26 21 0 1
    3 18 16 0 1
    4 45 71 3 2
    5 41 73 2 3
    6 67 82 6 3
    7 75 62 4 1
    8 21 23 1 1
    9 45 51 3 2
    10 28 19 0 0
  • Tabelle 2, unten, stellt Mittelwerte tabellarisch dar, die für einen Startpunkt, unter der Annahme K = 3, zum Durchführen der skalierbaren K-Mittel-Clusterungsanalyse auf die Daten aus Tabelle 1 gewählt sind. Tabelle 2
    Cluster# Alter Einkommen Kinder Autos
    1 55 50 2.5 2
    2 30 38 1.5 2
    3 20 24 1 1
  • Ein wichtiges Konzept der vorliegenden Erfindung ist die Zusammenfassung oder Komprimierung von Datenpunkten des Typs SDATA, die in der Datenreihe RS (Tabelle 1) enthalten sind, die von der Datenbank in zwei Datenstrukturen DS, CS abgefragt wurden, um das Sampling von mehr Daten aus der Datenbank zu ermöglichen. Während jeder Prozessiteration aus dem Ablaufdiagramm der 4 ruft die skalierbare K-Mittel-Analyse eine "erweiterte K-Mittel-" Prozedur 120 auf, die die komprimierten Daten, sowie die restlichen Datensample, die in der Datenreihe RS enthalten sind, verwendet.
  • In einer ersten Iteration in dem Prozess aus 4 ist die Datenreihe DS (6A) leer. In dem Schritt 130 werden Aktualisierungen auf die Reihe DS für jedes Cluster aus dem Bereich i = 1, ..., K, durchgeführt. Für jedes Cluster i ermittelt der Prozess, welche einzelnen Datenelemente (Elemente aus der Reihe RS des Typs SDATA), die dem Cluster i zugewiesen sind, die Clustermitgliedschaft über zukünftige Datensamples nicht ändern wird. Diese Punkte werden verwendet, um das i-te Element aus der Reihe DS anzureichern, welches die ausreichenden Statistiken enthält, die diese einzelnen Datenpunkte zusammenfassen. Diese Punkte werden von der Reihe RS entfernt und verwendet, um die ausreichenden Statistiken für das i-te Cluster aus der Reihe DS zu aktualisieren.
  • Zwei konzeptionelle Datenstrukturen helfen, eine erste Ausführungsform des Verfahrens des Aktualisierens der Reihe DS zu erläutern. Diese erste Ausführungsform wird als das Worst-Case-Analyseverfahren (Analyseverfahren für den schlimmsten Fall) bezeichnet. Diese konzeptionellen Datenstrukturen halten die obere und untere Grenze, die ein n-dimensionales (n = Anzahl der Attribute) Zuversichtsintervall (confidence interval – CI) auf die Parameter des Modells (im Fall von K-Mittel sind die Parameter die Mittelwerte oder Schwerpunkte (Zentroide) der K-Cluster), die bisher berechnet wurden, definieren. Eine listenförmige Struktur, bezeichnet als LOWER (unten), ist ein Vektor von k Elementen (eines für jedes Cluster), wobei jedes Element auf einen Vektor von n Elementen (floats) zeigt, die die untere Grenze für jedes Attribut des CI auf die Mittelwerte des entsprechenden Clusters hält. Z. B. ist in LOWER(3).LowVec(2) der Wert der unteren Grenze auf das CI für das dritte Cluster entlang der zweiten Dimension, Eine zweite Struktur, bezeichnet als UPPER (oben) ist ein Vektor mit K-Elementen (eines für jedes Cluster), wobei jedes Element auf einen Vektor von n Elementen (floats) zeigt, die die obere Grenze für das CI auf die Parameter des Modells (Mittelwert oder Zentroid im Fall von K-Mittel) des entsprechenden Clusters hält.
  • Einzelne Punkte (Elemente aus RS), die die Clusterzugehörigkeit nicht verändern, wenn die K-Clusterzentren gestört werden, innerhalb ihrer entsprechenden Zuversichtsintervalle in einer Worst-Case Art und Weise, können durch das Hinzufügen von ihnen zu der Reihe DS und dem Entfernen von ihnen aus RS, zusammengefasst werden. Der Anhang A ist eine Zusammenfassung der Worst-Case-Analyse, die LOWER und UPPER, sowie den Prozess des Aktualisierens von der Reihe DS unter Verwendung einer Worst-Case-Analyse definiert.
  • Eine zweite Ausführungsform des Prozesses der Aktualisierung der Datenreihe DS wird als die Schwellenwertanalyse bezeichnet. Für diese zweite Ausführungsform wird eine Datenstruktur verwendet, die hilft, einzelne Elemente aus RS (des Typs SDATA) anhand ihrer Mahalanobis-Distanz (siehe Duda und Hart, "Pattern Classification and Scene Analysis", oberhalb zitiert) zu einem gegebenen Clusterzentrum zu sortieren. Eine Struktur RSDist ist eine Liste von r Elementen (r ist die Anzahl der einzelnen Datenelemente in der Reihe RS), wobei jedes Element in RSDist auf zwei Objekte zeigt: 1) Float, bezeichnet als "MahalDist", welches die Mahalanobis Distanz des entsprechenden Elements in RS zu dem nächsten Clusterzentrum hält, und 2) eine Ganzzahl, die das Cluster anzeigt, dessen Zentrum am nächsten zu dem gegebenen Punkt in RS ist und als "ClustAssign" (zu Cluster zugewiesen) bezeichnet wird. Anhang C fasst die Berechnung der Mahalanobis-Distanzen zusammen.
  • Es ist zu beachten, dass die Mahalanobis-Distanz im Falle von K-Mittel als ein Beispiel verwendet wurde. Im Allgemeinen benötigen wir die Fähigkeit, die Distanz eines Punktes zu einem Cluster zu messen. Diese Distanz kann von irgendeinem Modell als die Wahrscheinlichkeit, dass ein Datenelement zu einem Cluster gehört, erlangt werden. Datenelemente mit geringer Wahrscheinlichkeit sind WEIT ENTFERNT (FAR), während Elemente mit hoher Wahrscheinlichkeit NAH (CLOSE) gemäß dieser Distanz sind. Unser Rahmenwerk zum Skalieren einer Clusterung benötigt im Allgemeinen die Fähigkeit, diesen Gedanken von "Distanz" zu extrahieren. Dies ist immer möglich, unabhängig von dem verwendeten Modell. Die Mahalanobis-Distanz ist, für den Fall, wenn Cluster durch multivariate Gauss'sche Werte dargestellt werden, direktproportional zur Wahrscheinlichkeit, die einem Datenelement durch den Gauss'schen Wert in diesem Cluster zugewiesen wird.
  • Eine dritte Ausführungsform zum Aktualisieren der Datenreihe DS basiert auf der Distanz eines Datenpunkts von den dann aktuellen Parametern, die das Cluster charakterisieren (z. B. der Clustermittelwert bei K-Mittel). Wenn die Distanz für einen Punkt rs, der in RS enthalten ist, weniger als eine festgelegte Distanz ist, dann wird der Punkt aus RS entfernt und zu DS durch das Aktualisieren der ausreichenden Statistiken DS hinzugefügt, um den Punkt rs einzuschließen.
  • 5 zeigt eine Clusterung in eindimensionalen Daten, z. B. Eingangsdaten, von der Datenliste aus Tabelle 1. Drei Cluster K1, K2, K3 werden aus einer viel größeren Anzahl von Datenvektoren SDATA gemacht. Die Datenstruktur DS, die die Daten für das Cluster, bezeichnet als K1, zusammenfasst, wird innerhalb der im Allgemeinen nach Gauss geformten Kurve, die das Cluster zeigt, mittig angeordnet. Unabhängig von der verwendeten Technik "gehören" bestimmte Daten sicherlich zu dem Cluster K1, so dass es sicher ist, die Daten in diesem Bereich in der Form der ausreichenden Statistiken, die in der Datenstruktur DS (verworfene Region) enthalten sind, zu komprimieren oder zusammenzufassen.
  • Subcluster in der Datenreihe CS
  • Nach der Komprimierung der Daten in die DS Datenstruktur gibt es immer noch eine ziemlich große Datenmenge (SDATA), die links und rechts des Zentrums von K1 in 5 enthalten ist, die weder durch die Worst-Case-Analyse (Anhang A) noch durch die Schwellenwertanalyse (Anhang B) für eine Komprimierung in die Reihe DS identifiziert wird. Diese Punkte fallen in die "Komprimierungsregion" für das Cluster 1. Die vorliegende Erfindung fasst ebenso mindestens manche dieser Daten in der Form einer Datenreihe, bezeichnet als CS, zusammen. Ein exemplarischer Prozess zum Ermitteln der DS Datenreihe wird in dem Pseudocode des Anhangs C zusammengefasst. Kurz gesagt wird eine Datenreihe RSNew (neue RS) aus der Datenreihe RS gemacht, nachdem die Reihe DS aus der ursprünglichen Reihe RS entfernt wurde.
  • Der Prozess des Ermittelns der neuen CS Datenreihe beginnt durch das Verschmelzen und Entfernen irgendwelcher einzelner Punkte von RSNew in CS, welche sicher verschmolzen (verbunden) werden können, ohne gegen ein festgelegtes "Dichte"-Kriterium zu verstoßen. Für jeden Datenpunkt in RSNew findet die Prozedur aus Anhang C das CS-Subcluster, welches ihm am nächsten ist. Wenn der Datenpunkt in CS hineinverbunden werden kann, ohne gegen das festgelegte "Dichtekriterium" des CS-Subclusters zu verstoßen, dann wird der Datenpunkt in das bestimmte CS-Subcluster aufgenommen und von RSNew entfernt. Wenn es das Kriterium nicht erfüllt, dann wird der Datenpunkt in RSNew belassen.
  • Der Prozess des Ermittelns der Datenreihe CS fährt dann mit dem Finden einer Reihe von "dichten" Subclustern innerhalb der Reihe RSNew fort. Dies wird dadurch getan, dass eine traditionelle K-Mittel-Analyse auf die Daten in der Reihe RSNew unter Verwendung einer Clusteranzahl K' (Kprime), die größer ist als K, die Anzahl der Cluster, die beim Durchführen der skalierbaren K-Mittel-Analyse verwendet wurde, durchgeführt wird. Die Reihe der ausreichenden Statistiken (Summe, SummeSQ und M) für die K' Subcluster, die durch diese Prozedur gefunden werden, werden an die aktuelle Reihe von ausreichenden Statistiken in der Datenreihe CS angehängt. Deshalb wird CS um K' Elemente erweitert, um eine Anzahl von c Unterclustern (Subclustern) zu produzieren. Diese erweiterte Liste wird anschließend gefiltert und Elemente werden verschmolzen (wenn möglich), wodurch die Größe der Liste reduziert wird. Es ist zu beachten, dass ungeachtet des Clusterungsalgorithmusses, der in dem skalierbaren Hauptrahmenwerk verwendet wird (d. h. der Clusterungsalgorithmus, der auf große Datenbanken (DB) skaliert ist), der Clusterungsalgorithmus, der verwendet wird, um CS zu ermitteln, unterschiedlich sein kann. K-Mittel wird für sekundäres Clustern (dem Ermitteln von CS) offenbart, während andere Clusterungsalgorithmen eingesetzt werden können [einschließlich hierarchischer, agglomerativer Clusterung oder irgendeiner Clusterungstechnik, um eine lokale Struktur in CS zu finden].
  • Wenn die Anzahl der Datenpunkte M in der Datenstruktur CS geringer ist als ein Schwellenwert, (MinPoints in Anhang C), werden die Daten von dieser Analyse nicht geclustert und die Daten werden stattdessen in der Reihe RSNew gehalten. Des Weiteren werden nur dichte Cluster in CS gehalten. Für jedes Subcluster, das übrig bleibt, nachdem das Kriterium des Schwellenwerts von Punkten überprüft worden ist, wenn die maximal gemessene Streubreite, die von (SUMMESQ) berechnet wurde, zusammen mit irgendeiner der n Dimensionen (Attribute) der Kandidaten-Subcluster geringer ist als ein Schwellenwert (StdTol in Anhang C), werden die Daten aus dem Subcluster ebenso in RSNew belassen und nicht in CS zusammengefasst. Diese zwei Kriterien entfernen die Elemente aus CS entsprechend Subclustern, welche entweder zu klein (im Sinne von der Anzahl an Punkten) oder zu "verbreitet" sind.
  • Ein letzter Schritt ist das Kombinieren von Subclustern unter Verwendung von hierarchischen, agglomerativen Clustern. Ein Versuch wird gemacht, zwei Elemente der Datenreihe CS zu verschmelzen. Wenn das größere, verschmolzene Subcluster immer noch das "Streubreiten"-Kriterium, wie oberhalb diskutiert, erfüllt, werden diese beiden Subcluster von der Reihe CS entfernt, und das größere Subcluster, das diese zwei kleineren Subcluster repräsentiert, wird zu der Datenreihe CS hinzugefügt. Dieser Prozess fährt fort, bis der Ver schmelzungsprozess keine größeren Subcluster erzeugt, die immer noch das Kriterium für "Dichte" erfüllen. Die Datenstruktur CS enthält c Elemente, die anschließend in der K-Mittel-Analyse verwendet werden.
  • Erweiterte CLUSTERUNGS-Prozedur
  • Eine erweiterte CLUSTERUNGS-Prozedur 120 schließt das Wiederholen (looping) von Konstrukten zum Aktualisieren des aktuellen Modells ein, die in dem Ablaufdiagramm aus 7 zusammengefasst sind. Bestimmte Nutzenfunktionen (utility functions) werden benötigt, um diese erweiterte CLUSTERUNGS-Prozedur durchzuführen. Eine Funktion ModelCopy (ModelNew, ModelOrig) kopiert das Modell ModelOrig in ModelNew. Eine Funktion Length(DataStructure) gibt die Länge des Pointer-Arrays für die Datenstrukturen aus 6 zurück, so dass z. B. Length(CS) = c und Length(RS) = r gilt. Zero(Model) nimmt die Datenstruktur für das Modell aus 6D und setzt alle Elemente auf 0,0. Eine Funktion Distance2Norm(Point 1, Point 2) misst die Distanz zwischen zwei Vektoren, Point1 und Point2.
  • Die erweiterte K-Mittel-Prozedur aus 7 beginnt mit einem Schritt 200 durch das Kopieren des existierenden Modells in eine alte Modelldatenstruktur. Der Prozess ermittelt 202 als nächstes die Länge von den Datenstrukturen RS, DS und CS aus den 6A bis 6C und gibt die Werte k, c und r zurück. Die Datenstruktur NewModel wird anschließend auf 0 gesetzt oder initialisiert 204. Der Prozess aktualisiert das neue Modell "NewModel" bis ein Test 206 anzeigt, dass ein Stoppkriterium erfüllt worden ist. Wenn das Stoppkriterium nicht erfüllt worden ist, speichert 208 der Prozess das neue Modell in der alten Modelldatenstruktur und geht zu 210 über, um ein nächstes, anschließendes neues Modell auf 0 zu setzen. Der Test 206 ist ähnlich zu dem Test 140, der in Verbindung mit dem Überblick über den skalierbaren K-Mittel-Prozess beschrieben wurde.
  • Nach der Initialisierung eines neuen Modells wird dieses Modell in einer Schleife 220 aktualisiert, die das Modell für jeden der r Vektoren in der Datenreihe RS aktualisiert. Die Schleife sammelt Daten 222 aus der Reihe RS, einen Punkt nach dem anderen, und ermittelt 224, welchem Cluster dieser Datenpunkt zugewiesen werden soll. Dies wird dadurch getan, dass die Distanz von einem Datenpunkt zu dem Mittelwert von jedem der dann existierenden Mittelwerte des alten Modells gefunden wird. Mit Bezug auf 6D (als ein bestimmtes Beispiel des skalierenden K-Mittel-, d. h. ERWEITERTER K-Mittel-Algorithmus) kann gesehen werden, dass das Modell die Summe für ein gegebenes Cluster K einschließt, und daher der Mittelwert oder das Zentrum für jede Dimension durch diesen Wert geteilt durch das Skalar M für das Cluster gegeben ist. Sobald das nächste Cluster gefunden ist, werden die neuen Modellkomponenten "Sum" (Summe) und "SummeSQ" für das nächste Cluster aktualisiert durch das Hinzufügen des Datenpunktes zu dem Vektor Cluster(closest).Sum und das anschließende Quadrieren der Komponenten und Hinzufügen dieser zu dem Vektor Cluster(closest).SumSQ. Das Skalar M für ein Cluster wird durch 1 für jeden Punkt, der zu diesem Cluster hinzugefügt wird, inkrementiert.
  • Sobald die Schleife über die r Vektoren abgeschlossen ist, aktualisiert die Prozedur das Modell basierend auf den komprimierten Statistiken, die in den c Unter-Clustern gespeichert sind, die in der Datenstruktur CS gefunden werden. Bei einer anfänglichen Schleife durch den skalierbaren K-Mittel-Prozess aus 4 gibt es keine CS- oder DS-Strukturen. Tabelle 3 zeigt unterhalb den Inhalt des Modells (6D), nach dem RS-Teil des erweiterten K-Mittel-Prozesses auf Datenpunkte aus Tabelle 1. Tabelle 3
    SUMME
    Cluster# Alter Einkommen Kinder Autos M
    1 228 288 15 9 4
    2 75 91 5 4 2
    3 93 79 1 3 4
    SUMSQ
    Cluster# Alter Einkommen Kinder Autos
    1 51984 8244 225 81
    2 5625 8281 25 16
    3 8649 6241 1 9
  • Die 10 Datensätze aus Tabelle 1 werden in den Speicher passen und eine konventionelle K-Mittel-Analyse ist möglich. Für eine große Datenbank, die Millionen von Datensätzen enthält, machen die 10 Datensätze nur einen Teil von einem Datensammlungsschritt aus. Tabelle 4 listet unterhalb eine K-Mittel-Clusterung von Daten auf, die auf die 10 Datensätze mit K = 3 durchgeführt wurde. Tabelle 4
    Cluster# Alter Einkommen Kinder Autos
    1 57 72 3.75 2.25
    2 37.5 45.5 2.5 2
    3 23.25 19.75 0.25 0.75
  • Um Computerspeicherplatz zum Sammeln von mehr als den Millionen von Datensätzen freizusetzen, sind manche der zehn Datensätze, die in Tabelle 1 gezeigt sind, Kandidaten, um in die Datenstrukturen CS, DS komprimiert zu werden. Die Cluster-Durchschnitte für das Attribut "Einkommen" der zehn Datensätze sind in der Zeichnung der 5 gekennzeichnet. Datensatz Nummer 10 hat ein Einkommen von "19" und fällt für diese eine Dimension sicher in die DS (verworfene Region), die um das Cluster K1 in 5 zentriert ist. Das Visualisieren der Situation über mehrere Attribute wird schwieriger, aber die Techniken, die in den Anhängen zusammengefasst sind, behandeln Vektoren und identifizieren Datensätze innerhalb von RS für eine Komprimierung. Der Datensatz Nummer 8 in Tabelle 1 weist ein Einkommen von "23" auf. Es wird angenommen, dass dieser Datensatz nicht in die DS-Region fällt, und deshalb ein Kandidat für den Einschluss in die CS-(komprimierte)Datenreihe wird. Es ist zu beachten, dass das Clustermittel für das zweite Cluster K2 bei einem Einkommen von 45,5 tausend Dollar liegt. Daten, die zwischen die zwei Mittel von 19,75 und 45,5 fallen, werden üblicherweise nicht in der DS- oder der CS-Datenreihe klassifiziert. Sie bleiben in RS und werden bei der nächsten Iteration verwendet, um die Clusterung durchzuführen. Nach der ersten Iteration aus dem Prozess der 4 enthalten die CS- und DS-Strukturen ausreichende Statistiken, und die erweiterte Clusterungs-Prozedur aus 7 muss diese Daten bei der Ermittlung des neuen Modells berücksichtigen, wenn die Prozedur bei dem Schritt 120 der skalierbaren K-Mittel-Analyse aufgerufen wird. Um das Modell, basierend auf den ausreichenden Statistiken, die in der Datenreihe CS enthalten sind, zu aktualisieren, führt die Prozedur der 7 eine Schleife 230 über jedes der Untercluster c in CS aus und ermittelt, zu welchem der K Cluster in dem Modell (6D) dieses Untercluster am nächsten ist. Es wird angenommen, dass das Untercluster p am nächsten zu Cluster q ist. Wenn diese Tatsache entdeckt wird, werden die ausreichenden Statistiken des Clusters q durch das Hinzufügen der Inhalte subcluster(p).sum zu cluster(q).sum und der Statistiken subcluster(p).sumsq zu cluster(q).sumsq aktualisiert. Zusätzlich wird der Wert von subcluster(p).M für das Untercluster zu dem Wert cluster(q).M hinzugefügt.
  • Bei dem Schritt 240 aktualisiert die erweiterte Clusterungsprozedur das neue Modell (New-Model) für die Cluster, die in DS zusammengefasst sind. Es besteht kein Bedarf, nach dem Cluster zu suchen, das am nächsten zu den Clustern in DS ist, weil die Elemente von DS immer (bzw. es wird angenommen, dass sie immer) demselben Cluster zugewiesen sind. Der Schritt 240 wird nur über die Cluster in DS wiederholt (loops) und fügt deren ausreichende Statistiken zu dem neuen Modell der 6D hinzu. In dem Fall des K-Mittel-Beispiels gilt: (NewModel(I).Sum += DS(I).Sum, NewModel(I).SumSq += DS(I).SumSq und NewModel(I).M += DS(I).M). Sobald die Beiträge von CS und DS hinzugefügt wurden, wird das Stop-Kriterium überprüft 206, um zu sehen, ob die Prozedur sich an eine Lösung angenähert hat. In einer beispielhaften Ausführungsform wird eine Variable "Zentrumsdistanz" (CenterDist) auf null gesetzt, und für jedes der K Cluster wird eine Distanz zwischen dem Schwerpunkt des alten Modells und dem Schwerpunkt des neuen Modells ermittelt und zu der Variablen "Zentrumsdistanz" hinzugefügt. Sobald alle K Distanzen berechnet wurden und zusammenaddiert wurden, wird der Wert von "Zentrumsdistanz" durch die Anzahl der Cluster K dividiert und mit einem Wert "StopTol" verglichen, welcher als ein Maß verwendet wird, wie stabil das Modell geworden ist. Wenn der Wert von "Zentrumsdistanz" kleiner als der Wert "StopTol" wurde, dann wiederholt sich die Prozedur, andernfalls geht die Prozedur zurück zur Wiederberechnung des Modells unter Verwendung derselben Daten in RS, CS, und DS, aber mit einem unterschiedlichen "alten Modell".
  • Stop-Kriterium bei Schritt 140
  • Jedes Mal wenn die Prozedur 120 zurückkehrt, werden die Datenstrukturen RS, DS und CS aktualisiert und der Test des Stop-Kriteriums 140 wird durchgeführt. Es werden drei alternative Stop-Kriterien zur Verwendung in der skalierbaren K-Mittel-Prozedur vorgeschlagen. (Die Verfahren 1 und 2 des Pseudocodes aus Anhang D fassen diese zwei Kriterien zu sammen). Ein erstes Verfahren beendet die Analyse, wenn der Unterschied zwischen den K-Mitteln, die durch irgendeine Norm gemessen wurden, über eine gegebene Anzahl von Daten-Sampeln unterhalb einer gegebenen Toleranz liegt. Ein zweites Verfahren beendet (die Analyse), wenn die Differenz in einer "Energie"-Funktion (Maß der Verzerrung (distortion)), durch die K-Mittel-Analyse minimiert, unterhalb eine gegebene Toleranz bei einer festgelegten Anzahl von Daten-Sampeln fällt. Ein drittes Verfahren beendet (die Analyse), wenn die Anzahl der Daten-Sample von der Datenbank erschöpft ist. Ein viertes Stop-Kriterium ist eigentlich eine Unterbrechung der K-Mittel-Analyse als ein Stop-Kriterium.
  • Es gilt zu beachten, dass, wenn es der Speicher erlaubt, das allgemeinste Speicherschema die letzten z Modelle im Hauptspeicher halten würde, und es deshalb leicht das Einbauen (plug-in) eines der Stop-Kriterien 1 oder 2 durch einfache Berechnung von entweder PrevModelDiff (für den Fall, dass das erste Stop-Kriterium ausgewählt wurde, siehe Anhang D) von diesen z Modellen, oder durch das Berechnen von PrevEnergyDiff (für den Fall, dass das zweite Stop-Kriterium gewählt wurde, siehe Anhang D) ermöglicht.
  • Wie es in 1 gesehen werden kann, schließt der Computer 20 einen Bildschirm 47 zum Anzeigen einer Benutzerschnittstelle ein. Eine geeignete Schnittstelle zur Beobachtung der Clusterungsanalyse aus 4 schließt eine Referenz zu der Datenmenge als einen Prozentsatz der gesamten Datenbank 10 ein, die beim Definieren des Modells, das in 6D gezeigt wird, verwendet worden ist. Diese Schnittstelle erlaubt es dem Benutzer einen Knopf zu betätigen, um die Funktion der Aktualisierung des Modells zu unterbrechen, sowie das Stop-Kriterium (Anhang D) anzupassen. Die Fähigkeit zu unterbrechen, erlaubt es, die Datenbank zu aktualisieren, und anschließend kann das Clustern wieder aufgenommen werden, ohne auf eine komplett neue Analyse zurückgreifen zu müssen. Diese Fähigkeit ist besonders vorteilhaft, wenn große Datenbanken geclustert werden, wobei das Erlangen (Abfragen) selbst eines Teils der Daten eine signifikante Zeitspanne brauchen kann.
  • Benutzerschnittstelle
  • Die 1014 stellen Bildschirmansichten einer Benutzerschnittstelle dar, die auf einem Monitor 47 gezeigt wird, während Daten geclustert werden. Diese Bildschirmansichten werden anhand des Beispiels des in dieser Erfindung beschriebenen Cluster-Rahmenwerks dargestellt, das auf das Skalieren des K-Mittel-Algorithmusses im Speziellen angewandt wird. Das Skalieren anderer Clusterungsalgorithmen involviert das Anzeigen von möglichen anderen relevanten Informationen, die das zu konstruierende Modell betreffen. Natürlich betrifft dies nur die Anzeige von Größen, die das spezifische Modell betreffen. Allgemeine Ansichten, wie z. B. ein Fortschrittsbalken (302), Informationen wie 304 und Pufferverwendungen 334 und 332 sind unabhängig vom Clusterungsalgorithmus und ändern sich nicht mit einer Veränderung des Clusterungsalgorithmusses. Zurückkehrend zu 9 stellt dieser Bildschirm 300 einen Clusterungsprozess dar, während dieses Clustern stattfindet. Ein Fortschrittsbalken 302 zeigt an, welcher Teil der gesamten Datenbank geclustert worden ist, und eine Textbox 304 oberhalb des Fortschrittsbalkens 302 zeigt an, wie viele Datensätze evaluiert worden sind. In einem mittleren Teil des Bildschirms 300 stellen zwei Graphen 310 und 312 die Clusterungsparameter als eine Funktion der Iterationsanzahl bzw. der Cluster-ID dar. Der erste Graph 310 stellt den Fortschritt des Clusterns in Form einer Iterationszahl dar, die in der Textbox 314 angezeigt wird. Die Iterationszahl bezieht sich auf die Anzahl der Datenerfassungsschritte, die stattgefunden haben, seit das Clusterns begonnen hat. In der Anzeige der 9 wird ein Energiewert für das Clustern berechnet, wie es in Anhang D Verfahren 2 definiert ist. Während das Clustern fortfährt, sinkt die Energie (Arbeitsaufwand), bis ein Stop-Kriterium erfüllt worden ist. In dem Graphen 310 der 9 werden 16 Iterationen angezeigt.
  • Der zweite Graph 312 am unteren Teil des Bildschirms ist ein Graph mit Clusterparametern als eine Funktion einer Clusteranzahl. In der gezeigten Ansicht sind zehn Cluster (in der Textbox 316 gezeigt) und die minimale Kovarianz für jedes dieser zehn Cluster gezeigt. Die Kovarianz wird von den Modelldaten (6D) für ein gegebenes Cluster und eine gegebene Dimension durch die nachfolgende Beziehung definiert: SumSq/M – Sum·Sum/M2
  • Eine graphische Darstellung (plot) der minimalen Kovarianz ist deshalb eine graphische Darstellung der Dimension (1...n) für ein gegebenes Clustermodell, das die kleinste oder minimale Kovarianz aufweist. Ein Auswahlfeld mit Aufklappliste 320 erlaubt es dem Benutzer andere Indikationen der Kovarianz auszuwählen. Durch das Auswählen eines Maximums für diesen Parameter wird eine Anzeige der Dimension des Modells, das die maximale Kovarianz aufweist (10) für jedes der zehn Cluster in dem Balkendiagramm 312 gezeigt. Ein Balkendiagramm der Durchschnittskovarianz (12) zeigt den Durchschnitt der Kovarianz für jedes Cluster über alle Clusterdimensionen an. Eine unterschiedliche Benutzerauswahl über das Auswahlfeld mit Aufklappliste 320 (13) zeigt das Gewicht M für die zehn Cluster. In einer ähnlichen Art und Weise erlaubt es ein Auswahlfeld mit Ausklappliste 322, unterschiedliche Clusterparameter, wie z. B. Modelldifferenz (Unterschiede) (Anhang D, Verfahren 1) in dem Graphen 310 darzustellen (zu plotten).
  • Eine Reihe 326 von Befehlstasten am unteren Rand des Bildschirms erlaubt es einem Benutzer einen Clusterungsprozess zu steuern. Eine Parameter-Bildschirmtaste 330 erlaubt es dem Benutzer eine Vielfalt von Clusterparametern auf einem Parameter-Bildschirm (nicht gezeigt) anzusehen. Durch das Zugreifen auf diesen Bildschirm kann der Benutzer z. B. eine maximale Anzahl von Datensätzen oder Tupeln, die in den Speicher zu der Datenreihe RS in einer gegebenen Iteration gebracht werden können, ermitteln. Als ein Beispiel könnte der Benutzer angeben, dass dieser Maximumswert gleich 10.000 Datensätze ist.
  • Wie oberhalb erläutert, werden Daten, während der Clusterungsprozess durchgeführt wird, in DS, CS zusammengefasst und in RS gespeichert. Wenn eine Anzahl von 10.000 Datensätzen als das Maximum gewählt wird, beschränkt das System die Anzahl von neuen Daten, die basierend auf der Anzahl von Unterclustern in der Datenreihe CS gelesen werden können. Wird die Anzahl als ROWSMAX (ZEILENMAX) bezeichnet, dann ist die Anzahl von Datensätzen, die gegenwärtig in RS (Rscurrent) gespeichert werden können, ROWSMAX – 2·c, wobei c die Anzahl an Unterclustern in CS ist. Ein Fortschrittsbalken 332 zeigt ein Verhältnis der Datenpufferspeicher an, die gegenwärtig verwendet werden, um die Datenreihen RS und CS zu speichern. Dies wird ebenso als ein Prozentsatz in der Textbox 334 angezeigt.
  • Andere Parameter, die auf dem Parameter-Bildschirm modifiziert werden können, sind die Wahl der Stop-Toleranz, Wahl der Stop-Prozedur, Wahl des Parameters für das Kombinieren von Unterclustern und Hinzufügen von Datenpunkten zu Unterclustern, und Wahl der Komprimierungsprozedur, die verwendet wird, um DS-Datenreihenkandidaten zu ermitteln. Der Parameter-Bildschirm erlaubt es dem Benutzer ebenso, zu definieren, wo das Modell nach dem Abschluss des Clusterns gespeichert wird. Wenn ein Prozess unterbrochen wird, und das Modell gespeichert wird, kann der Benutzer ebenso diesen Bildschirm verwenden, um zu einem Computerdiskspeicher für unterschiedliche vorher gespeicherte Modelle zu blättern (browsen).
  • Derzeitige Daten in Bezug auf die Datenreihe CS werden in einem Eingabefeld 340 (Panel) auf dem Bildschirm angezeigt. Die Textboxen 342, 344, 346 und 348 in diesem Eingabefeld zeigen eine Anzahl von Unterclustern c an sowie die Durchschnitts-, minimalen und maximalen Varianzen für die Untercluster unter Verwendung der oben genannten Definition von Varianz an. Eine letzte Textbox 350 zeigt die Durchschnittsgröße der Untercluster in Form von Datenpunkten oder Tupeln in den Unterclustern an.
  • Zusätzliche Befehlstasten erlauben es dem Benutzer mit der Clusterung zu interagieren, während sie stattfindet. Eine Stop-Taste 360 stoppt das Clustern und speichert das Ergebnis auf einer Disk. Eine Fortfahren-Taste 362 erlaubt es dem Prozess, unterbrochen zu werden, und durch das Aktivieren einer Wiederaufnahmetaste 364 wieder aufgenommen zu werden. Eine "Erzeuge-Batch-Datei-Taste" 366 erlaubt es dem Benutzer eine Batch-Datei zum Clustern zu erzeugen, welche als ein separater Prozess ausgeführt werden kann. Letztendlich schließt eine Schließen-Taste 368 dieses Fenster, ohne das Clustern zu stoppen.
  • Mehrere Modell-Ausführungsformen
  • Gemäß einer weiteren Ausführungsform der vorliegenden Erfindung ist der Prozess aus 4 mit einem Modelloptimierer versehen. Gemäß dieser Ausführungsform werden eine Vielzahl von unterschiedlichen Clusterungsmodellen S simultan durch den Computer 200 erzeugt. Die vielfachen Modellclusterungen werden in der schematischen Ansicht aus 2 und der Datenstruktur aus 8 angezeigt. Die offenbarten Prozeduren für Datenkomprimierung und das Speichern von ausreichenden Statistiken erlaubt das Aktualisieren mehrerer Modelle gleichzeitig, innerhalb eines einzelnen Daten Scans. Der K-Mittel-Algorithmus sowie viele andere Angehörige der iterativen Clusteralgorithem sind bekannt dafür, dass sie extrem sensibel auf anfängliche Startbedingungen sind. Jedoch ist es eine Standardpraxis, üblicherweise mehrere Lösungen für mehrere zufällige Startpunkte auszuprobieren. Ein Vorgang zum Auswählen mehrerer Startpunkte ist in der ebenso anhängigen Patentanmeldung, mit dem Titel "A method for refining the initial conditions for clustering with applications to small and large database clustering", offenbart. Diese Anmeldung wurde beim Patent- und Markenamt der Vereinigten Staaten am 4. März 1998 eingereicht und ist auf den Anmelder der vorliegenden Erfindung eingetragen worden.
  • Um eine Standardpraxis beim Clustern zu unterstützen schließt die Erfindung die Fähigkeit ein, mehrere Modelle zu untersuchen. Die Haupteinsichten für diese Generalisierung sind:
    Die beibehaltenen Punkte RS und die Reihen CS (die lokale Dichtestrukturen darstellen) werden durch all diese Modelle hindurch geteilt;
    • 1) Jedes Modell, z. B. Mi, wird seine eigene verworfene Datenreihe DSMi haben (K Reihen, eine für jedes Cluster für jedes Modell) – wenn es m Modelle gibt, dann gibt es m × K verworfene Datenreihen;
    • 2) Die ausreichenden Statistiken für die verworfenen Datenreihen DSMi für eines der Modelle Mi werden einfach als Teile der globalen CS von allen Modellen, außer dem von Mi, betrachtet.
  • Die globale Architektur bleibt die gleiche, wie die, die in 2 gezeigt ist, mit der Ausnahme, dass die Modellaktualisierungs- und Datenkomprimierungsschritte nun über mehrere Modelle durchgeführt werden. Neben diesen Beobachtungen gibt es mindestens ein anderes Datenkomprimierungselement, das eine weitere Diskussion wert ist: eine Datenverwerfungsreihenfolge (data discard order), wenn mehrere Modelle vorhanden sind. Der Algorithmus entscheidet auf der Basis eines einzelnen Datenpunktes, zu welcher verworfenen Reihe er am besten passt. Ein Datenpunkt, der sich als ein verworfenes Element für zwei Modelle qualifiziert, geht einfach zu der verworfenen Reihe des Modells, das ihm am besten "passt". Einem Datenpunkt kann es nicht ermöglicht werden, in mehr als eine verworfene Reihe einzutreten, andernfalls wird er mehrfache Male einen Beitrag leisten. Es wird angenommen, dass x als ein verworfenes Element für beide Modelle M1 und M2 qualifiziert ist. Wenn es zu beiden aufgenommen würde, dann würde das Modell M1 den Effekt dieses Punktes zweimal "fühlen": einmal in seinem eigenen DS1 und ein anderes Mal, wenn es über DS2 aktualisiert wird, welches als ein Teil von CS behandelt wird, soweit M1 betroffen ist. Ähnliches gilt für M2. Durch das Aufnehmen in exakt eine verworfene Datenreihe, z. B. DS1, beeinflusst der Punkt x immer noch M2, wenn M2 über CS aktualisiert wird und DS1 als Teil von CS zählt.
  • Es gibt ein Array (einen Bereich) S mit Pointern m1...ms, wobei jeder Pointer auf eine unterschiedliche Modelldatenstruktur zeigt. Die Modelldatenstruktur ist in 6D gezeigt. In dieser Ausführungsform werden die Strukturen CS und RS durch mehrere Modelle aufgeteilt (shared).
  • Jedes der Modelle ms wird mit einem unterschiedlichen Satz von Parametern (z. B. Schwerpunktsvektoren im Fall von K-Mittel) (einem Wert der "Summe", M = 1) für die K unterschied lichen Cluster des Modells initialisiert. Wenn Daten bei dem Schritt 110 gesammelt werden, werden diese Daten verwendet, um jedes der S Modelle zu aktualisieren. Eine erweiterte CLUSTERUNGS-Prozedur für die mehreren Modellprozesse zieht die mehreren Modellaspekte der Strukturen DS und CS in Betracht, und wird auf jedes der S Modelle ausgeführt. Bei einer ersten Iteration durch den Prozess der 4 ergibt sich keine DS- oder CS-Datenreihe für irgendeines der Modelle, so dass alle Daten in der RS-Datenreihe sind. Ein gegebener Datenpunkt rS in der Datenreihe RS wird in die Datenreihe DSj für nur eines der S Modelle komprimiert, selbst wenn es eine hohe Wahrscheinlichkeit für eine Mitgliedschaft zu einer anderen DS-Reihe gibt. Der Datenpunkt rS wird der Reihe DS des Modells zugewiesen, das ihm die höchste Wahrscheinlichkeit einer Mitgliedschaft gibt (im Fall der K-Mittel würde dies die DS zugehörig zu dem Cluster sein, das einen Schwerpunkt aufweist, der am nächsten zu dem Punkt rS ist).
  • Die DS-Strukturen für alle der S Modelle werden durch das Komprimieren von Datenpunkten in die geeigneten DS-Datenstrukturen ermittelt. Die CS-Datenstrukturen für jedes der Modelle werden anschließend von den Punkten, die in RS verbleiben, ermittelt. Wenn die erweiterte CLUSTERUNGS-Prozedur 120 durchgeführt wird, müssen die ausreichenden Statistiken von CS jedoch mit den ausreichenden Statistiken, die in den CS-Datenstrukturen der anderen Modelle enthalten sind, erweitert werden. Wenn die erweiterte CLUSTERUNGS-Prozedur durchgeführt wird, um ein gegebenes Modell mj zu aktualisieren, müssen die Untercluster in CS mit den DS-Strukturen von den anderen Modellen erweitert werden. Im Speziellen betrachtet die erweiterte K-Mittel-Prozedur, wenn das Modell mj aktualisiert wird, die erweiterte Reihe CSj = CS ∪ (Vereinigungsmenge) DS1 ∪ DS2 ... DSj-1 ∪ DSj+1 ∪ ... DSS, wenn die Schleife 230 aus 7 durchgeführt wird. Wenn ein Datenpunkt in DS komprimiert wird, wird er nur in die DS-Reihe von nur einem Modell bei Schritt 240 aufgenommen, weil es keine doppelte Zählung der Daten gibt.
  • Die Mehrfachmodellanalyse kann durchgeführt werden, bis eines der Modelle das Stop-Kriterium bei Schritt 140 erfüllt. Ein alternatives System würde fortfahren, um alle Modelle zu berechnen, bis jedes Modell ein Stop-Kriterium erreicht. Zusätzlich könnte der skalierbare K-Mittel-Prozess durchgeführt werden, bis ein bestimmter Prozentsatz von den Modellen ein Stop-Kriterium erreicht hat. Die Implementierung mit mehreren Modellen teilt Datenstrukturen zwischen Modellen und führt Berechnungen auf bestimmte Daten aus, die für ein gege benes Modell eindeutig sind. Diese Analyse ist empfänglich für eine Parallelverarbeitung auf einem Computer 20, der mehrere Verarbeitungseinheiten 21 aufweist.
  • Soweit wird es angenommen, dass jeder der Datenpunkte, auf den zugegriffen wurde und der in der K-Mittel-Clusterungs-Prozedur verwendet wurde, dieselbe Gewichtung wie andere Daten hat. Es wird darauf hingewiesen, dass der Prozess jedoch eine Unterbrechung einer Modellbildung und eine Wiederaufnahme zu einem späteren Zeitpunkt erlauben kann. Das Stop-Kriterium kann erreicht werden und das Modell kann gespeichert werden und später für irgendeinen Zweck, den der Benutzer wünscht, verwendet werden. Es ist daher möglich, dass die Datenbank zwischen Clusterungen aktualisiert werden kann. In diesen Fällen kann es wünschenswert sein, kürzlich hinzugefügte Daten stärker zu gewichten, als Datensätze von einem früheren Zeitpunkt, die verwendet wurden, um eine Datenbank zu Clustern. In diesem Fall können die letzteren Datensätze durch einen stärkeren Faktor gewichtet werden, wie z. B. 1,5 pro Datenpunkt. Deshalb wird der Gewichtungsfaktor, wenn Sum, Sumsq und M Komponenten der verschiedenen Datenstrukturen aktualisiert werden, auf die Daten angewandt, bevor die Aufsummierungen aktualisiert werden.
  • Durch das Zuweisen der Daten zu einem von K Clustern stellt die Erfindung eine Möglichkeit bereit, ein zusätzliches Attribut oder Dimension zu den Daten hinzuzufügen, d. h. eine Clusteranzahl. Dieses zusätzliche Attribut kann als ein Indexfeld für die Daten in der Datenbank verwendet werden. Es kann ebenso als ein Pivotisierungsattribut verwendet werden, um die Daten in einer unterschiedlichen Art und Weise dem Benutzer der Datenbank zu reorganisieren und zu präsentieren.
  • Computersystem
  • Mit Bezug auf 1 schließt ein exemplarisches Datenverarbeitungssystem zum Praktizieren der offenbarten Erfindung einer Datengewinnungsmaschine (Data Mining Engine) ein Allzweckcomputergerät in der Form eines konventionellen Computers 20 ein, einschließlich eines oder mehrerer Verarbeitungseinheiten 21, eines Systemspeichers 22 und eines Systembusses 23, der verschiedene Systemkomponenten, einschließlich des Systemspeichers, mit der Prozessoreinheit 21 koppelt. Der Systembus 23 kann irgendeiner von verschiedenen Busstrukturtypen sein, einschließlich eines Speicherbusses oder Speichercontrollers, eines Peripheriebusses und eines lokalen Busses unter Verwendung irgendeiner von einer Vielfalt von Busarchitekturen.
  • Der Systemspeicher schließt einen nur Lesespeicher (ROM – Read Only Memory) 24 und einen Arbeitsspeicher (RAM – Random Access Memory) 25 ein. Ein Basic-Input/Output-System (BIOS) 26, das die Basisroutinen enthält, die helfen, Informationen zwischen Elementen innerhalb des Computers 20 zu übertragen, z. B. während des Hochfahrens, ist in dem Speicher ROM 24 gespeichert.
  • Der Computer 20 enthält des Weiteren ein Festplattenlaufwerk 27 zum Lesen von und Schreiben zu einer Festplatte, nicht gezeigt, ein magnetisches Disklaufwerk 28 zum Lesen von oder Schreiben zu einer entfernbaren magnetischen Disk 29 und ein optisches Disklaufwerk 30 zum Lesen von oder Schreiben zu einer entfernbaren optischen Disk 31, wie z. B. einer CD ROM oder anderem optischen Datenträger. Das Festplattenlaufwerk 27, magnetische Disklaufwerk 28 und optische Disklaufwerk 30 sind mit dem Systembus über eine Festplattenlaufwerksschnittstelle 32, eine Schnittstelle 33 für magnetische Disklaufwerke und eine Schnittstelle 34 für optische Laufwerke verbunden. Die Laufwerke und ihre zugehörigen computerlesbaren Datenträger stellen nicht flüchtigen Speicher von computerlesbaren Instruktionen, Datenstrukturen, Programmmodulen oder anderen Daten für den Computer 20 bereit. Obwohl die exemplarische Ausführungsform, die hier beschrieben ist, eine Festplatte, eine entfernbare magnetische Disk 29 und eine entfernbare optische Disk 31 einsetzt, sollte es durch Fachleute anerkannt sein, dass andere Typen von computerlesbaren Datenträgern, die Daten speichern können, auf die durch einen Computer zugegriffen werden können, wie z. B. magnetische Kassetten, Flash-Memory-Karten, Digital Video Disks, Bernoulli-Kartuschen, Random Access Memories (RAMs), Read Only Memories (ROM), und ähnliches ebenso in der exemplarischen Arbeitsumgebung verwendet werden können.
  • Eine Anzahl von Programmmodulen kann auf der Festplatte, der magnetischen Disk 29, optischen Disk 31, dem ROM 24 oder RAM 25 gespeichert werden, einschließlich eines Betriebssystems 35, eines oder mehrerer Anwendungsprogramme 36, anderer Programmmodule 37 und Programmdaten 38. Ein Benutzer kann Befehle und Informationen in den Computer 20 durch Eingabegeräte eingeben, wie z. B. eine Tastatur 40 und Zeigergerät 42. Andere Eingabegeräte (nicht gezeigt) können ein Mikrofon, einen Joystick, ein Gamepad, eine Satellitenschüssel, Scanner oder ähnliches einschließen. Diese und andere Eingabegeräte sind oft mit der Verarbeitungseinheit 21 über eine serielle Anschlussschnittstelle 46 verbunden, die mit dem Systembus gekoppelt ist, können aber durch andere Schnittstellen verbunden sein, wie z. B. einem Parallelanschluss, einem Game-Port oder einem Universal-Serial-Bus (USB). Ein Bildschirm 47 oder anderer Typ von Anzeigegerät ist ebenso mit dem Systembus 23 über eine Schnittstelle verbunden, wie z. B. einen Videoadapter 48. Zusätzlich zu dem Monitor können Personalcomputer üblicherweise andere periphere Ausgabegeräte (nicht gezeigt) einschließen, wie z. B. Lautsprecher und Drucker.
  • Der Computer 20 kann in einer Netzwerkumgebung unter Verwendung logischer Verbindungen zu einem oder mehreren Remote-Computern, wie z. B. einem Remote-Computer 49, arbeiten. Der Remote-Computer 49 kann ein anderer Personalcomputer, ein Server, ein Router, ein Netzwerk-PC, ein Peer-Gerät oder anderer bekannter Netzwerkknoten sein, und schließt üblicherweise viele oder alle der oberhalb mit Bezug auf Computer 20 beschriebenen Elemente ein, obwohl nur ein Datenspeichergerät 50 in 1 dargestellt worden ist. Die logischen Verbindungen, die in 1 gezeigt sind, schließen ein lokales Netzwerk (LAN – Local Area Network) 51 und ein Breitbandnetzwerk (WAN – Wide Area Network) 52 ein. Solche Netzwerkumgebungen sind in Büros, unternehmensweiten Computernetzwerken, Intranets und dem Internet alltäglich.
  • Wenn er in einer LAN-Netzwerkumgebung verwendet wird, ist der Computer 20 mit dem lokalen Netzwerk 51 durch eine Netzwerkschnittstelle oder -Adapter 53 verbunden. Wenn er in einer WAN-Netzwerkumgebung verwendet wird, schließt der Computer 20 üblicherweise ein Modem 54 oder andere Mittel zum Herstellen von Datenübertragungen über das Wide Area Network 52 ein, wie z. B. das Internet. Das Modem 54, welches intern oder extern sein kann, ist mit dem Systembus 23 über eine serielle Anschlussschnittstelle 46 verbunden. In einer Netzwerkumgebung können Programmmodule, die mit Bezug auf Computer 20 gezeigt sind, oder Teile davon, in dem Remote-Datenspeichergerät gespeichert sein. Es wird begrüßt, dass die Netzwerkverbindungen, die gezeigt sind, exemplarisch sind, und andere Mittel zum Herstellen einer Datenübertragungsverbindung zwischen den Computern verwendet werden kann.
  • Während die vorliegende Erfindung mit einem Grad an Teilgenauigkeit beschrieben worden ist, ist es im Sinne der Erfindung, alle Modifikationen und Veränderungen von der offenbarten Implementierung, die in den Umfang der anhängigen Ansprüche fallen, einzuschließen. Die folgenden ANHÄNGE beschreiben Komponenten der skalierbaren Clusterungsanalyse.
  • Anhang A – Worst Case Analyse
  • Unter der Annahme, dass die folgenden Funktionen verfügbar sind:
    • 1. [tValue] = ComputeT(alpha, DegreesFreedom): berechnet die t-Statistiken für den gegebenen Wert von alpha (in unserem Fall: 1-ConfindenceLevel) und DegreesFreedom (in unserem Fall: Anzahl von Punkten in einem Cluster – 1).
    • 2. DSCopy(DSNew, DSOrig): kopiert DSOrig in DSNew(DS neu), DSNew wird abgeändert, DSOrig bleibt dasselbe.
    • 3. [Weight Vec] = ComputeWeightVec(DataPoint, Model): für K-Mittel (K-Means) gibt es den Gewichtungsvektor {0, 1} zurück, der das Cluster anzeigt, zu dem DataPoint zugewiesen wurde.
    • 4. AddRS(DataPoint, RS): hängt einzelnen DataPoint an das Ende von RS, RS wird um 1 Punkt erhöht.
  • Die folgenden Funktionen ermitteln die neuen Reihen DS und RS von den alten Reihen, dem aktuellen Modell und gegebenem ConfidenceLevel, welches eine Zahl zwischen 0 und 1 ist.
  • Figure 00340001
  • Figure 00350001
  • Figure 00360001
  • Figure 00370001
  • Anhang B – Mahalanobis-Schwellenwertanalyse
  • Es wird angenommen, dass die folgenden Funktionen verfügbar sind:
    • 1. [Weight Vec] = ComputeWeightVec(DataPoint, Model): für den Fall des k-Mittel gibt es den {0, 1} Gewichtungsvektor zurück, der das Cluster anzeigt, zu dem DataPoint zugewiesen wurde
    • 2. AddRS(DataPoint, RS): hängt einen einzelnen DataPoint an das Ende von RS, wobei RS durch 1 Punkt erhöht wird.
    • 3. RSDistSort(RSDist): sortiert die Liste RSDistSort vom kleinsten zum größten anhand der Werte in MahalDist.
    • 4. [Dist] = DistanceMahalanobis(DataPoint, Center, CVDiagonal): berechnet die Mahalanobis-Distanz von DataPoint zu Center mit der gegebenen Kovarianz-Diagonale CVDiagonal.
    • 5. [integer] = Floor(float): gibt die Ganzzahl zurück, die durch das Abrunden der Fließkommazahl (float) zu der nächsten Ganzzahl erlangt wird.
    • 6. DSCopy(DSNew, DSOrig): kopiert DSOrig in DSNew, wobei DSNew verändert wird, DSOrig bleibt dasselbe.
  • Das Verfahren:
    Figure 00380001
    Figure 00390001
  • Anhang C – Datenreihe CS in SubCluster (Untercluster)
  • Es wird angenommen, dass die folgenden Funktionen verfügbar sind:
    • 1. [Model] = VanillaKMean(Model. Data, StopTol): nimmt die anfänglichen Werte für "Model" und aktualisiert das Modell mit Data, bis das Modell aufhört, sich innerhalb von StopTol zu verändern. Das aktualisierte Modell wird in "Model" zurückgegeben.
    • 2. [CSMerged] = MergeCS(CSElem1, CSElem2): nimmt die ausreichenden Statistiken für 2 Untercluster, CS1 und CS2, und berechnet die ausreichenden Statistiken für das Untercluster, das durch das Verschmelzen von CS1 und CS2 gebildet wird.
    • 3. AddRS(DataPoint, RS): hängt einen einzelnen DataPoint an das Ende von RS, RS wird um 1 Punkt erhöht.
    • 4. [SubModel] = RandomSample(RSNew, kPrime): wählt zufällig kPrime Elemente von RSNew aus und verwendet diese als anfängliche Punkte für den Vanilla-K-Mittel-Algorithmus. Die Elemente werden in SubModel gespeichert.
    • 5. [WeightVec] = ComputeWeightVec(DataPoint, Model): berechnet den {0, 1} Gewichtungsfaktor mit k Elementen. DataPoint wird dem Cluster j zugewiesen, wenn das j-te Element des WeightVec(Gewichtungsfaktor) gleich 1 ist, die anderen Elemente 0 sind.
    • 6. Append(integer, integerList): hängt die Ganzzahl an das Ende von integerList (Ganzzahlliste).
    • 7. RemoveCSCandidates(IndexList, CS): entfernt die Elemente, die in IndexList von CS spezifiziert sind, und gibt die veränderte, kleinere Liste in CS zurück.
    • 8. [BigCSList] = AppendCS(CSList1, CSList2): erzeugt die BigCSList durch das Anhängen von CSList2 an das Ende von CSList1.
    • 9. [SubcPartner, SubcPartnerInd] = FindMergePartner(Index, CS): findet das Element (Untercluster) in CS, das sein Zentrum am nächsten zu CS(Index) (ein unterschiedliches Untercluster) hat und gibt dieses Element in SubcPartner und dessen Index zurück.
    • 10. AppendCSEnd(CS, CSElement): hängt CSElement an das Ende der CS-Liste
    • 11. [CSIndex] = FindCSMatch(DataPoint, CS): findet das Cluster in CS, zu dem DataPoint am nächsten ist, und, wenn DataPoint in das Cluster verschmolzen würde, würde das "Dichte"-Kriterium immer noch erfüllt sein. Wenn solch ein Cluster nicht existiert, dann gibt die Routine NULL zurück.
    • 12. [CSMergedElem] = MergeCS(DataPoint, CSElem): verschmilzt einen einzelnen Datenpunkt in ein CS-Cluster und gibt das verschmolzene Cluster zurück.
  • Das Unterclusterungsverfahren:
    Figure 00400001
    Figure 00410001
    Figure 00420001
    Figure 00430001
    Figure 00440001
  • Appendix D – Stop-Kriterium.
  • Verfahren 1:
  • Figure 00440002
  • Figure 00450001
  • Verfahren 2:
  • Stop-Kriterium 2 erfordert die folgende Funktion, welche die "Energie" eines gegebenen Modells angesichts der Reihen DS, CS and RS berechnet:
    Figure 00450002
    Figure 00460001
  • Das Verfahren:
    Figure 00460002
    Figure 00470001
  • Anhang E – Aktualisierung mit mehreren Modellen.
  • Von den folgenden Verfahren wird angenommen, dass sie für den Cluster-Treiber verfügbar sind:
    • 1. UpdateModel (Model.RSNode, Weight Vec): aktualisiert Model mit einem einzelnen Datenpunkt RSNode unter Verwendung von Gewichtungsinformationen, die in WeightVec (Gewichtungsvektor) spezifiziert sind.
    • 2. UpdateModel (Model, CSNode, WeightVec): aktualisiert Model mit komprimiertem Satz an Knoten (CSNode) unter Verwendung gewichteten Informationen, die in WeightVec spezifiziert sind.
    • 3. UpdateModel(Model, DSNode, Weight Vec): aktualisiert Model mit Knoten aus verworfenem Satz unter Verwendung von gewichteten Informationen, die in WeightVec spezifiziert sind.
    • 4. ReinitializeEmptyCluster(ModelNode, DSs, CS, RS): initialisiert ein leeres Cluster "ModelNode" erneut, unter Verwendung von Informationen in DSs, CS und RS. Derzeit leere Cluster werden unter Verwendung der RS- und CS-Knoten wieder initialisiert, welche am unwahrscheinlichsten mit Bezug auf ihre wahrscheinlichsten Cluster sind. Jedoch sind viele anderen Heuristiken möglich.
  • Das Verfahren:
    Figure 00470002
    Figure 00480001
    Figure 00490001
  • Anhang E – Skalierbares Clusterungstreiber-Verfahren
  • Von den folgenden Verfahren wird angenommen, dass sie für den Cluster-Treiber verfügbar sind:
    • 1. [dataSource] = Open_DataSource(dataSourceName, scanType): öffnet eine Verbindung zu einer gegebenen Datenquelle, von der alle Datenpunkte konsumiert werden.
    • 2. [RS, numRowsRead] = DataSource_getNextRows(dataSouree, maxRSRows): erlangt bis zu maxRSRows von dataSource (Datenquelle), unter Verwendung eines geeigneten Scan-Typs.
    • 3. [ModelsNew] = ModelsUpdate(Models, DSs, CS, RS, stopTol): siehe die obere Beschreibung von ModelsUpdate.
    • 4. [DSsNew.RSNew] = DSsUpdate(DSs, RS, ModelsNew, Confidence): führt eine erste Datenkomprimierung auf RS durch, siehe Beschreibung oberhalb.
    • 5. [CSNew, RSNewer] = CSUpdate(CS, RSNew, StdTol, PointsPerSubClust, MinPoint, StopTol): führt eine sekundäre Komprimierung auf RS durch, siehe Beschreibung oberhalb.
    • 6. [Stop] = StopCriteria(Models, DSs, CS, RS, OldEnergy, PrevDiff, ModelsNew, DSsNew, CSNew, RSNewer, StopTol): führt einen Stop-Kriteriums-Check durch, siehe Beschreibung oberhalb.
    • 7. Close_DataSource(dataSource): schließt die Verbindung zur Datenquelle.
  • Das Verfahren:
    Figure 00490002
    Figure 00500001

Claims (31)

  1. Ein Verfahren zum Clustern von Daten in einer Datenbank (10), die auf einem Speicherdatenträger gespeichert ist, wobei das Verfahren die Schritte umfasst: Erlangen (110) eines Teils der Daten in der Datenbank von einem Speicherdatenträger; Clustern von Daten von dem Teil der Daten, der von der Datenbank erlangt wurde, basierend auf irgendeinem Clusterkriterium; Zusammenfassen von mindestens manchen der Daten, die in dem Teil der Daten enthalten sind, basierend auf einem Komprimierungskriterium, um ausreichende Statistiken für die Daten, die das Komprimierungskriterium erfüllen, zu erzeugen; und Fortfahren mit dem Erlangen von Datenteilen von der Datenbank, und Charakterisieren des Clusterns von Daten in der Datenbank von neu abgefragten (sampled) Daten und den ausreichenden Statistiken, bis ein festgelegtes Kriterium (140) erfüllt worden ist; dadurch gekennzeichnet, dass: der Schritt des Zusammenfassens der Daten den Unterschritt des Klassifizierens der Daten in mindestens zwei Datengruppen einschließt, wobei Daten in einer ersten Gruppe komprimiert sind und Daten in einer zweiten Gruppe als einzelne Datensätze der Datenbank geführt werden, wobei zwei Untergruppen der Daten in der ersten Gruppe zusammengefasst werden, und wobei die Daten in einer der Untergruppen in eine oder mehrere Untercluster klassifiziert werden, die ausreichende Statistiken für jeden Untercluster aufweisen.
  2. Verfahren nach Anspruch 1, wobei Teile der Daten, die von der Datenbank erlangt werden, in einem Schnellzugriffsspeicher (rapid access memory) gespeichert sind, der eine kleinere Größe aufweist als die Speichererfordernisse der Datenbank, und wobei die ausreichenden Statistiken Daten ersetzen, die von der Datenbank erlangt wurden, die in dem Schnellzugriffsspeicher gespeichert waren, um das weitere Ab fragen (sampling) von Daten aus der Datenbank, die in den Schnellzugriffsspeicher zum Clustern gebracht werden sollen, zu ermöglichen.
  3. Verfahren nach Anspruch 1, wobei die ausreichenden Statistiken in einem Schnellzugriffsspeicher gespeichert werden, und der Schritt des Charakterisierens des Clusterns von Daten in der Datenbank sowohl gespeicherte ausreichende Statistiken als auch neu erlangte Daten aus der Datenbank benutzt.
  4. Verfahren nach Anspruch 1, wobei die ausreichenden Statistiken in einem Schnellzugriffsspeicher gespeichert sind, und der Schritt des Charakterisierens des Clusterns von der Datenbank die gespeicherten ausreichenden Statistiken, nicht-zusammengefasste Daten von einem früheren Datenakquisitionsschritt und neu erlangte Daten aus der Datenbank benutzt.
  5. Verfahren nach Anspruch 1, wobei die festgelegten Kriterien eine weitere Charakterisierung, basierend auf einem Vergleich von unterschiedlichen Datenbankmodellen, die von Daten hergeleitet werden, die von der Datenbank erlangt wurden, stoppen, und wobei die Charakterisierung gestoppt wird, wenn eine Veränderung in den besagten Modellen kleiner als ein vorgegebenes Stoppkriterium ist.
  6. Verfahren nach Anspruch 1, wobei die festgelegten Kriterien einen Aufbau eines Clustermodells unterbrechen, um zu ermöglichen, dass der Aufbau zu einem späteren Zeitpunkt wiederaufgenommen wird.
  7. Verfahren nach Anspruch 6, wobei das Clustern von Daten durch einen Computer durchgeführt wird, und wobei die Datenbank mit zusätzlichen Daten aktualisiert wird, bevor der Aufbau eines Clustermodells abgeschlossen ist.
  8. Verfahren nach Anspruch 1, das zusätzlich den Schritt des Anzeigens eines Fortschritts der Charakterisierung des Clusterns der Datenbank auf einer Benutzerschnittstelle umfasst, und das eine Eingabevorrichtung zur Steuerung durch den Benutzer (user controller input) zum Stoppen oder Unterbrechen des weiteren Formens eines Datenbankclustermodells bereitstellt.
  9. Verfahren nach Anspruch 8, wobei der Schritt des Anzeigens den Schritt des Anzeigens einer Benutzerschnittstelle umfasst, die einem Benutzer ermöglicht, dass Clustern zu unterbrechen und wiederaufzunehmen.
  10. Verfahren nach Anspruch 8, das zusätzlich den Schritt des Bereitstellens einer Benutzerschnittstelle umfasst, wobei der Benutzer Parameter der Clusteranalyse anpassen kann.
  11. Verfahren nach Anspruch 10, wobei die Parameter ein Stoppkriterium einschließen.
  12. Verfahren nach Anspruch 1, wobei die festgelegten Kriterien dem Empfangen eines Unterbrechungsbefehls entsprechen, um das Clustern zu unterbrechen, während die Datenbank aktualisiert wird, bevor das Clustern wieder aufgenommen wird.
  13. Verfahren nach Anspruch 1, das zusätzlich den Schritt des Vorbereitens eines Clustermodells und Verwenden des Modells zum Vorbereiten eines Histogramms, einer Zusammenfassung, von Daten als eine Eingabe für ein Visualisierungssystem umfasst.
  14. Verfahren nach Anspruch 1, wobei die Daten aus der Datenbank auf einer zufälligen, indizierten oder sequenziellen Grundlage erlangt werden.
  15. Verfahren nach Anspruch 1, wobei die Daten anfänglich aus der Datenbank auf einer zufälligen Grundlage erlangt werden, und nach mindestens einer Iteration auf eine sequenzielle oder indizierte Grundlage umgestellt wird.
  16. Verfahren nach Anspruch 1, wobei ein Clustermodell jedes Mal aktualisiert wird, wenn auf einen Teil der Daten von der Datenbank zugegriffen wird, und wobei Daten, die von der Datenbank in den Schnellzugriffsspeicher gelesen werden, zu einem der Untercluster hinzugefügt werden, bevor neue Untercluster aus den Daten, auf die von der Datenbank zugegriffen wird, gebildet werden.
  17. Verfahren nach Anspruch 1, wobei Daten, auf die von der Datenbank zugegriffen wird, als Datenvektoren gespeichert sind, die entweder durch Datensätze mit fester Länge oder durch Datensätze mit variierender Länge dargestellt werden, und wobei die Datenvektoren mit existierenden Unterclustern kombiniert werden, bevor die Datenvektoren verwendet werden, um neue Untercluster zu bilden.
  18. Verfahren nach Anspruch 1, wobei Daten, die aus der Datenbank abgefragt wurden, unterschiedliche Gewichtungen zum Definieren eines Clustermodells basierend auf dem Teil der Daten zugewiesen werden.
  19. Verfahren zum Evaluieren von Daten in einer Datenbank, die auf einem Speicherdatenträger eines Computer-Datenmining-Systems gespeichert ist, wobei das Verfahren die folgenden Schritte umfasst: Initialisieren von mehreren Speichergebieten zum Speichern mehrerer Clustermodelle von den Daten in der Datenbank; Durchführen der Schritte nach Anspruch 1, wobei ein Clusterkriterium für jedes Modell verwendet wird, um das Clustern der Daten zu charakterisieren, und wobei das Clustern der Daten in der Datenbank von neu abgefragten (sampled) Daten und den ausreichenden Statistiken für jedes von den mehreren Clustermodellen charakterisiert wird.
  20. Verfahren nach Anspruch 19, wobei ein Teil der ausreichenden Statistiken für jedes der Clustermodelle einzigartig ist, und wobei ein Teil der ausreichenden Statistiken zwischen unterschiedlichen Clustermodellen gemeinsam benutzt wird.
  21. Verfahren nach Anspruch 19, wobei die festgelegten Kriterien erreicht werden, wenn iterative Lösungen für eines der Modelle nicht durch mehr als eine vorgegebene Größe variieren.
  22. Verfahren nach Anspruch 19, wobei die festgelegten Kriterien erreicht werden, wenn iterative Lösungen für eine festgelegte Anzahl von Modellen nicht durch mehr als eine vorgegebene Größe variiert.
  23. Verfahren nach Anspruch 19, wobei die mehreren Modelle von mehreren unterschiedlichen Startbedingungen aus generiert werden.
  24. Verfahren nach Anspruch 23, wobei mindestens manche der Modelle unterschiedliche Clusternanzahlen aufweisen.
  25. Verfahren nach Anspruch 19, wobei mehrere Clustermodelle in einer inneren Verarbeitungsschleife generiert werden, und wobei eine äußere Verarbeitungsschleife über unterschiedliche Werte von Clusteranzahlen iteriert.
  26. Ein computerlesbarer Datenträger, der darauf computerausführbare Instruktionen gespeichert hat, die, wenn sie durch einen Prozessor eines Computers ausgeführt werden, den Computer dazu veranlassen, das Verfahren nach einem der Ansprüche 1 bis 25 durchzuführen.
  27. Ein Datenverarbeitungssystem, das ein oder mehrere Datenspeichergeräte (27, 28, 30) zum Speichern einer Datenbank (10) mit Datensätzen auf einem Datenspeicherträger umfasst, wobei das Datenverarbeitungssystem angepasst ist, jeden der Schritte des Verfahrens gemäß Anspruch 1 auszuführen.
  28. System nach Anspruch 27, das zusätzlich einen Videomonitor zum Anzeigen einer Benutzerschnittstelle umfasst, die einen Benutzer bezüglich des Status der Klassifizierung von Daten auf dem Laufenden hält, und das eine Befehlseingabe einschließt, um es einem Benutzer zu erlauben, den Prozess zu unterbrechen oder zu Stoppen.
  29. System nach Anspruch 28, wobei der Computer eine Benutzerschnittstelle auf dem Videomonitor präsentiert, die es einem Benutzer erlaubt, Parameter des Clusterprozesses anzupassen.
  30. System nach Anspruch 29, wobei die Benutzerschnittstelle es einem Benutzer erlaubt, eine Darstellung oder Ordnung von Daten aus der Datenbank basierend auf einer Clusteranzahl, auf die Daten während eines Clusterprozesses zugewiesen werden, anzupassen.
  31. System nach Anspruch 27, das des Weiteren angepasst ist, mehrere Clustermodelle zu aktualisieren, wobei das System mehrere Prozessoren zum Aktualisieren der mehreren Clustermodelle einschließt.
DE69938339T 1998-03-17 1999-03-16 Ein skalierbares system zum gruppieren von grossen datenbänken Expired - Lifetime DE69938339T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/040,219 US6374251B1 (en) 1998-03-17 1998-03-17 Scalable system for clustering of large databases
PCT/US1999/005759 WO1999048018A1 (en) 1998-03-17 1999-03-16 A scalable system for clustering of large databases
US40219 2001-10-29

Publications (2)

Publication Number Publication Date
DE69938339D1 DE69938339D1 (de) 2008-04-24
DE69938339T2 true DE69938339T2 (de) 2009-03-12

Family

ID=21909787

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69938339T Expired - Lifetime DE69938339T2 (de) 1998-03-17 1999-03-16 Ein skalierbares system zum gruppieren von grossen datenbänken

Country Status (5)

Country Link
US (1) US6374251B1 (de)
EP (1) EP1062590B1 (de)
AT (1) ATE389213T1 (de)
DE (1) DE69938339T2 (de)
WO (1) WO1999048018A1 (de)

Families Citing this family (127)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6581058B1 (en) * 1998-05-22 2003-06-17 Microsoft Corporation Scalable system for clustering of large databases having mixed data attributes
GB9903697D0 (en) * 1999-02-19 1999-04-14 Pattern Computing Limited A computer-based method for matching patterns
US6549907B1 (en) * 1999-04-22 2003-04-15 Microsoft Corporation Multi-dimensional database and data cube compression for aggregate query support on numeric dimensions
US6957189B2 (en) * 1999-08-30 2005-10-18 Sabre Inc. Apparatus and method for creating a marketing initiative
US8935198B1 (en) * 1999-09-08 2015-01-13 C4Cast.Com, Inc. Analysis and prediction of data using clusterization
US7424439B1 (en) * 1999-09-22 2008-09-09 Microsoft Corporation Data mining for managing marketing resources
US6990238B1 (en) * 1999-09-30 2006-01-24 Battelle Memorial Institute Data processing, analysis, and visualization system for use with disparate data types
US7106329B1 (en) 1999-09-30 2006-09-12 Battelle Memorial Institute Methods and apparatus for displaying disparate types of information using an interactive surface map
CN1241135C (zh) * 1999-10-21 2006-02-08 国际商业机器公司 用于排序分类属性以更好地可视化多维数据的系统和方法
US6643645B1 (en) * 2000-02-08 2003-11-04 Microsoft Corporation Retrofitting recommender system for achieving predetermined performance requirements
US7162482B1 (en) * 2000-05-03 2007-01-09 Musicmatch, Inc. Information retrieval engine
US6633882B1 (en) * 2000-06-29 2003-10-14 Microsoft Corporation Multi-dimensional database record compression utilizing optimized cluster models
US6584433B1 (en) * 2000-10-04 2003-06-24 Hewlett-Packard Development Company Lp Harmonic average based clustering method and system
US6944607B1 (en) * 2000-10-04 2005-09-13 Hewlett-Packard Development Compnay, L.P. Aggregated clustering method and system
US6922660B2 (en) * 2000-12-01 2005-07-26 Microsoft Corporation Determining near-optimal block size for incremental-type expectation maximization (EM) algorithms
US6519591B1 (en) * 2000-12-22 2003-02-11 Ncr Corporation Vertical implementation of expectation-maximization algorithm in SQL for performing clustering in very large databases
US6615205B1 (en) * 2000-12-22 2003-09-02 Paul M. Cereghini Horizontal implementation of expectation-maximization algorithm in SQL for performing clustering in very large databases
US6658423B1 (en) * 2001-01-24 2003-12-02 Google, Inc. Detecting duplicate and near-duplicate files
US6928434B1 (en) * 2001-01-31 2005-08-09 Rosetta Marketing Strategies Group Method and system for clustering optimization and applications
US7398270B1 (en) * 2001-01-31 2008-07-08 Choi Lawrence J Method and system for clustering optimization and applications
US6745184B1 (en) * 2001-01-31 2004-06-01 Rosetta Marketing Strategies Group Method and system for clustering optimization and applications
US6785684B2 (en) * 2001-03-27 2004-08-31 International Business Machines Corporation Apparatus and method for determining clustering factor in a database using block level sampling
US7155668B2 (en) * 2001-04-19 2006-12-26 International Business Machines Corporation Method and system for identifying relationships between text documents and structured variables pertaining to the text documents
US20030028504A1 (en) * 2001-05-08 2003-02-06 Burgoon David A. Method and system for isolating features of defined clusters
US7272617B1 (en) * 2001-11-30 2007-09-18 Ncr Corp. Analytic data set creation for modeling in a customer relationship management system
US7174343B2 (en) * 2002-05-10 2007-02-06 Oracle International Corporation In-database clustering
US7747624B2 (en) * 2002-05-10 2010-06-29 Oracle International Corporation Data summarization
US7133811B2 (en) * 2002-10-15 2006-11-07 Microsoft Corporation Staged mixture modeling
US20040093261A1 (en) * 2002-11-08 2004-05-13 Vivek Jain Automatic validation of survey results
US6993516B2 (en) * 2002-12-26 2006-01-31 International Business Machines Corporation Efficient sampling of a relational database
US20050033723A1 (en) * 2003-08-08 2005-02-10 Selby David A. Method, system, and computer program product for sorting data
US7539690B2 (en) * 2003-10-27 2009-05-26 Hewlett-Packard Development Company, L.P. Data mining method and system using regression clustering
US7403640B2 (en) * 2003-10-27 2008-07-22 Hewlett-Packard Development Company, L.P. System and method for employing an object-oriented motion detector to capture images
US7225200B2 (en) 2004-04-14 2007-05-29 Microsoft Corporation Automatic data perspective generation for a target variable
US7349914B1 (en) 2004-05-04 2008-03-25 Ncr Corp. Method and apparatus to cluster binary data transactions
US8078559B2 (en) 2004-06-30 2011-12-13 Northrop Grumman Systems Corporation System and method for the automated discovery of unknown unknowns
US8631347B2 (en) * 2004-11-15 2014-01-14 Microsoft Corporation Electronic document style matrix
US7415487B2 (en) * 2004-12-17 2008-08-19 Amazon Technologies, Inc. Apparatus and method for data warehousing
GB2422081B (en) * 2005-01-05 2010-09-29 Ling Dynamic Systems Statistical streaming
US7359913B1 (en) 2005-05-13 2008-04-15 Ncr Corp. K-means clustering using structured query language (SQL) statements and sufficient statistics
US7739314B2 (en) * 2005-08-15 2010-06-15 Google Inc. Scalable user clustering based on set similarity
US20070055708A1 (en) * 2005-09-07 2007-03-08 Ncr Corporation Processing formulae in rules for profitability calculations for financial processing in a relational database management system
US7840774B2 (en) * 2005-09-09 2010-11-23 International Business Machines Corporation Compressibility checking avoidance
US7721205B2 (en) * 2005-09-15 2010-05-18 Microsoft Corporation Integration of composite objects in host applications
US7783971B2 (en) * 2005-09-13 2010-08-24 Microsoft Corporation Graphic object themes
US8001526B2 (en) * 2005-09-15 2011-08-16 Microsoft Corporation Hierarchical property storage
US20070061351A1 (en) * 2005-09-13 2007-03-15 Microsoft Corporation Shape object text
US20070061349A1 (en) * 2005-09-15 2007-03-15 Microsoft Corporation Hierarchically describing shapes
US7716169B2 (en) * 2005-12-08 2010-05-11 Electronics And Telecommunications Research Institute System for and method of extracting and clustering information
US20070250476A1 (en) * 2006-04-21 2007-10-25 Lockheed Martin Corporation Approximate nearest neighbor search in metric space
US20070255684A1 (en) * 2006-04-29 2007-11-01 Yahoo! Inc. System and method using flat clustering for evolutionary clustering of sequential data sets
US8266147B2 (en) * 2006-09-18 2012-09-11 Infobright, Inc. Methods and systems for database organization
WO2008034213A1 (en) * 2006-09-18 2008-03-27 Infobright Inc. A method and system for data compression in a relational database
US8655623B2 (en) * 2007-02-13 2014-02-18 International Business Machines Corporation Diagnostic system and method
US7636715B2 (en) * 2007-03-23 2009-12-22 Microsoft Corporation Method for fast large scale data mining using logistic regression
EP2497256B1 (de) * 2009-11-03 2014-01-08 Telefonaktiebolaget LM Ericsson (publ) Verringerund der rechenkomplexität während einer benutzerdatenanalyse
US8402027B1 (en) * 2010-02-11 2013-03-19 Disney Enterprises, Inc. System and method for hybrid hierarchical segmentation
US8521748B2 (en) 2010-06-14 2013-08-27 Infobright Inc. System and method for managing metadata in a relational database
US8417727B2 (en) 2010-06-14 2013-04-09 Infobright Inc. System and method for storing data in a relational database
US9002859B1 (en) 2010-12-17 2015-04-07 Moonshadow Mobile, Inc. Systems and methods for high-speed searching and filtering of large datasets
CA2823839A1 (en) 2011-01-10 2012-07-19 Roy W. Ward Systems and methods for high-speed searching and filtering of large datasets
US8989514B2 (en) * 2011-02-03 2015-03-24 Voxeleron Llc Method and system for image analysis and interpretation
US9026591B2 (en) 2011-02-28 2015-05-05 Avaya Inc. System and method for advanced communication thread analysis
US9547693B1 (en) 2011-06-23 2017-01-17 Palantir Technologies Inc. Periodic database search manager for multiple data sources
US9026560B2 (en) * 2011-09-16 2015-05-05 Cisco Technology, Inc. Data center capability summarization
US8886651B1 (en) * 2011-12-22 2014-11-11 Reputation.Com, Inc. Thematic clustering
US9171054B1 (en) 2012-01-04 2015-10-27 Moonshadow Mobile, Inc. Systems and methods for high-speed searching and filtering of large datasets
US8990204B1 (en) 2012-01-17 2015-03-24 Roy W. Ward Processing and storage of spatial data
US8751499B1 (en) 2013-01-22 2014-06-10 Splunk Inc. Variable representative sampling under resource constraints
US9753909B2 (en) 2012-09-07 2017-09-05 Splunk, Inc. Advanced field extractor with multiple positive examples
US8751963B1 (en) 2013-01-23 2014-06-10 Splunk Inc. Real time indication of previously extracted data fields for regular expressions
US8682906B1 (en) 2013-01-23 2014-03-25 Splunk Inc. Real time display of data field values based on manual editing of regular expressions
US20140208217A1 (en) 2013-01-22 2014-07-24 Splunk Inc. Interface for managing splittable timestamps across event records
US9594814B2 (en) 2012-09-07 2017-03-14 Splunk Inc. Advanced field extractor with modification of an extracted field
US10394946B2 (en) 2012-09-07 2019-08-27 Splunk Inc. Refining extraction rules based on selected text within events
US10013477B2 (en) 2012-11-19 2018-07-03 The Penn State Research Foundation Accelerated discrete distribution clustering under wasserstein distance
US9720998B2 (en) * 2012-11-19 2017-08-01 The Penn State Research Foundation Massive clustering of discrete distributions
US8977589B2 (en) 2012-12-19 2015-03-10 International Business Machines Corporation On the fly data binning
US8909642B2 (en) 2013-01-23 2014-12-09 Splunk Inc. Automatic generation of a field-extraction rule based on selections in a sample event
US9152929B2 (en) 2013-01-23 2015-10-06 Splunk Inc. Real time display of statistics and values for selected regular expressions
KR102029055B1 (ko) * 2013-02-08 2019-10-07 삼성전자주식회사 고차원 데이터의 시각화 방법 및 장치
US9965937B2 (en) 2013-03-15 2018-05-08 Palantir Technologies Inc. External malware data item clustering and analysis
US8788405B1 (en) 2013-03-15 2014-07-22 Palantir Technologies, Inc. Generating data clusters with customizable analysis strategies
US10275778B1 (en) 2013-03-15 2019-04-30 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation based on automatic malfeasance clustering of related data in various data structures
CN103309940B (zh) * 2013-05-03 2017-03-08 上海证券交易所 一种对乱序数据流排序的方法
US9116975B2 (en) 2013-10-18 2015-08-25 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive simultaneous querying of multiple data stores
WO2015088780A1 (en) * 2013-12-10 2015-06-18 University Of Southern California Noise-enhanced clustering and competitive learning
US10579647B1 (en) 2013-12-16 2020-03-03 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US10356032B2 (en) 2013-12-26 2019-07-16 Palantir Technologies Inc. System and method for detecting confidential information emails
US8832832B1 (en) 2014-01-03 2014-09-09 Palantir Technologies Inc. IP reputation
US9619557B2 (en) 2014-06-30 2017-04-11 Palantir Technologies, Inc. Systems and methods for key phrase characterization of documents
US9535974B1 (en) 2014-06-30 2017-01-03 Palantir Technologies Inc. Systems and methods for identifying key phrase clusters within documents
US9256664B2 (en) 2014-07-03 2016-02-09 Palantir Technologies Inc. System and method for news events detection and visualization
US9202249B1 (en) 2014-07-03 2015-12-01 Palantir Technologies Inc. Data item clustering and analysis
CN104156418B (zh) * 2014-08-01 2015-09-30 北京系统工程研究所 一种基于知识重用的演化聚类方法
US9767172B2 (en) 2014-10-03 2017-09-19 Palantir Technologies Inc. Data aggregation and analysis system
US9501851B2 (en) 2014-10-03 2016-11-22 Palantir Technologies Inc. Time-series analysis system
US10255345B2 (en) * 2014-10-09 2019-04-09 Business Objects Software Ltd. Multivariate insight discovery approach
US9984133B2 (en) 2014-10-16 2018-05-29 Palantir Technologies Inc. Schematic and database linking system
US9043894B1 (en) 2014-11-06 2015-05-26 Palantir Technologies Inc. Malicious software detection in a computing system
US9348920B1 (en) 2014-12-22 2016-05-24 Palantir Technologies Inc. Concept indexing among database of documents using machine learning techniques
US9367872B1 (en) 2014-12-22 2016-06-14 Palantir Technologies Inc. Systems and user interfaces for dynamic and interactive investigation of bad actor behavior based on automatic clustering of related data in various data structures
US10552994B2 (en) 2014-12-22 2020-02-04 Palantir Technologies Inc. Systems and interactive user interfaces for dynamic retrieval, analysis, and triage of data items
US10362133B1 (en) 2014-12-22 2019-07-23 Palantir Technologies Inc. Communication data processing architecture
US20160253672A1 (en) * 2014-12-23 2016-09-01 Palantir Technologies, Inc. System and methods for detecting fraudulent transactions
US9817563B1 (en) 2014-12-29 2017-11-14 Palantir Technologies Inc. System and method of generating data points from one or more data stores of data items for chart creation and manipulation
US10103953B1 (en) 2015-05-12 2018-10-16 Palantir Technologies Inc. Methods and systems for analyzing entity performance
US10191966B2 (en) * 2015-07-08 2019-01-29 Business Objects Software Ltd. Enabling advanced analytics with large data sets
US9454785B1 (en) 2015-07-30 2016-09-27 Palantir Technologies Inc. Systems and user interfaces for holistic, data-driven investigation of bad actor behavior based on clustering and scoring of related data
US9456000B1 (en) 2015-08-06 2016-09-27 Palantir Technologies Inc. Systems, methods, user interfaces, and computer-readable media for investigating potential malicious communications
US10489391B1 (en) 2015-08-17 2019-11-26 Palantir Technologies Inc. Systems and methods for grouping and enriching data items accessed from one or more databases for presentation in a user interface
US10102280B2 (en) * 2015-08-31 2018-10-16 International Business Machines Corporation Determination of expertness level for a target keyword
US10467204B2 (en) * 2016-02-18 2019-11-05 International Business Machines Corporation Data sampling in a storage system
US10521411B2 (en) 2016-08-10 2019-12-31 Moonshadow Mobile, Inc. Systems, methods, and data structures for high-speed searching or filtering of large datasets
US10318630B1 (en) 2016-11-21 2019-06-11 Palantir Technologies Inc. Analysis of large bodies of textual data
US10620618B2 (en) 2016-12-20 2020-04-14 Palantir Technologies Inc. Systems and methods for determining relationships between defects
US10691700B1 (en) * 2016-12-30 2020-06-23 Uber Technologies, Inc. Table replica allocation in a replicated storage system
US10325224B1 (en) 2017-03-23 2019-06-18 Palantir Technologies Inc. Systems and methods for selecting machine learning training data
US10606866B1 (en) 2017-03-30 2020-03-31 Palantir Technologies Inc. Framework for exposing network activities
US10579663B2 (en) * 2017-05-02 2020-03-03 International Business Machines Corporation Data insight discovery using a clustering technique
US10235461B2 (en) 2017-05-02 2019-03-19 Palantir Technologies Inc. Automated assistance for generating relevant and valuable search results for an entity of interest
US10482382B2 (en) 2017-05-09 2019-11-19 Palantir Technologies Inc. Systems and methods for reducing manufacturing failure rates
US10503526B2 (en) * 2017-06-13 2019-12-10 Western Digital Technologies, Inc. Method and system for user experience event processing and analysis
CN109685092B (zh) * 2018-08-21 2024-02-06 中国平安人寿保险股份有限公司 基于大数据的聚类方法、设备、存储介质及装置
EP3623965A1 (de) 2018-09-14 2020-03-18 United Technologies Corporation Verfahren zur erkennung von fabrizierten daten
CN110222030B (zh) * 2019-05-13 2021-08-06 福建天泉教育科技有限公司 数据库动态扩容的方法、存储介质
US11551024B1 (en) * 2019-11-22 2023-01-10 Mastercard International Incorporated Hybrid clustered prediction computer modeling

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5706503A (en) 1994-05-18 1998-01-06 Etak Inc Method of clustering multi-dimensional related data in a computer database by combining the two verticles of a graph connected by an edge having the highest score
US5832182A (en) 1996-04-24 1998-11-03 Wisconsin Alumni Research Foundation Method and system for data clustering for very large databases
US5884305A (en) 1997-06-13 1999-03-16 International Business Machines Corporation System and method for data mining from relational data by sieving through iterated relational reinforcement

Also Published As

Publication number Publication date
WO1999048018A1 (en) 1999-09-23
EP1062590A1 (de) 2000-12-27
ATE389213T1 (de) 2008-03-15
EP1062590B1 (de) 2008-03-12
EP1062590A4 (de) 2004-05-12
US6374251B1 (en) 2002-04-16
DE69938339D1 (de) 2008-04-24

Similar Documents

Publication Publication Date Title
DE69938339T2 (de) Ein skalierbares system zum gruppieren von grossen datenbänken
DE60221153T2 (de) Verfahren und vorrichtung für ähnlichkeitssuche und gruppenbildung
DE602004003361T2 (de) System und verfahren zur erzeugung von verfeinerungskategorien für eine gruppe von suchergebnissen
Manski et al. Alternative estimators and sample designs for discrete choice analysis
DE102016014798A1 (de) Genaues Vorhersagen einer Etikettrelevanz bei einer Bildabfrage
US6581058B1 (en) Scalable system for clustering of large databases having mixed data attributes
DE10035043A1 (de) Mehrdimensionale Indexierungsstruktur zur Verwendung mit linearen Optimierungsanfragen
DE60121231T2 (de) Datenverarbeitungsverfahren
DE69933187T2 (de) Dokumentensuchverfahren und Dienst
DE19983528B3 (de) Multi-Linearisierungs-Datenstruktur zum Bild-Browsing
DE60004507T2 (de) Schnelle gruppierung durch spärlich bestückte datensätze
DE102008027605B4 (de) System und Verfahren zur rechnerbasierten Analyse großer Datenmengen
WO2006066556A2 (de) Relationale komprimierte datenbank-abbilder (zur beschleunigten abfrage von datenbanken)
DE112016001796T5 (de) Feinkörnige bildklassifizierung durch erforschen von etiketten von einem bipartiten graphen
DE112015000218T5 (de) Verfahren, System und Computerprogramm zum Abtasten einer Mehrzahl von Speicherbereichen in einem Arbeitsspeicher nach einer spezifizierten Anzahl von Ergebnissen
DE202015009874U1 (de) Implementierung semistrukturierter Daten als ein Datenbankelement erster Klasse
WO1999062007A1 (en) A scalable system for clustering of large databases having mixed data attributes
DE112011104487T5 (de) Verfahren und System zur prädiktiven Modellierung
EP1145184A2 (de) Verfahren und gerät zur skalierbaren probabilistischen clusterbildung met verwendung von entscheidungsbäumen
DE60032258T2 (de) Bestimmen ob eine variable numerisch oder nicht numerisch ist
CH704497B1 (de) Verfahren zum Benachrichtigen, Speichermedium mit Prozessoranweisungen für ein solches Verfahren.
DE60030735T2 (de) Voraussage der realisierbarkeit eines verbindungsweges
DE112013000966T5 (de) Vorrichtung, Programm und Verfahren zum Clustern einer Vielzahl von Dokumenten
DE112019006156T5 (de) Erkennung und behandlung von unsachgemässen eingaben durch neuronale netzwerke
DE60217748T2 (de) Verfahren und Gerät zur Anzeige eines Bildraumes

Legal Events

Date Code Title Description
8364 No opposition during term of opposition