DE60032258T2 - Bestimmen ob eine variable numerisch oder nicht numerisch ist - Google Patents

Bestimmen ob eine variable numerisch oder nicht numerisch ist Download PDF

Info

Publication number
DE60032258T2
DE60032258T2 DE60032258T DE60032258T DE60032258T2 DE 60032258 T2 DE60032258 T2 DE 60032258T2 DE 60032258 T DE60032258 T DE 60032258T DE 60032258 T DE60032258 T DE 60032258T DE 60032258 T2 DE60032258 T2 DE 60032258T2
Authority
DE
Germany
Prior art keywords
variable
numeric
determining
value
values
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
DE60032258T
Other languages
English (en)
Other versions
DE60032258D1 (de
Inventor
E. David Bellevue HECKERMAN
L. Robert Fall City ROUNTHWAITE
R. Jeffrey Woodinville BERNHARDT
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
Publication of DE60032258D1 publication Critical patent/DE60032258D1/de
Application granted granted Critical
Publication of DE60032258T2 publication Critical patent/DE60032258T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/29Graphical models, e.g. Bayesian networks
    • 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/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • 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/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich im Allgemeinen auf die Datenmodellierung, insbesondere darauf, ob eine Variable numerisch oder nicht-numerisch ist.
  • Hintergrund der Technik
  • Die Datenanalyse ist zu einem wichtigen Werkzeug bei der Lösung von komplexen und realen Problemen geworden, die auf den Computer transponiert werden können. Zum Beispiel stellt eine Webseite wie www.msnbc.com an jedem beliebigen Tag oder Monat viele Beiträge bereit. Die Betreiber einer solchen Webseite könnten wissen wollen, ob es irgendwelche Gemeinsamkeiten bezüglich der Betrachter einer bestimmten Zusammenstellung von Programmen gibt. Das heißt, wenn ein hypothetischer Anwender einen bestimmten Beitrag liest, kann dann mit einer beliebigen Wahrscheinlichkeit gesagt werden, dass der Anwender möglicherweise auch einen bestimmten anderen Beitrag lesen wird. Der Antwort dieser Art von Fragestellung nachzugehen, erlaubt den Betreibern der Webseite, ihre Seite beispielsweise besser zu organisieren, was wiederum eine wachsende Leserschaft nach sich zieht.
  • Für Probleme wie diese wenden Datenanalysten häufig erweiterte Statistik-Tools und -Modelle zur Analyse der Daten an. Datenanalyse ist – im weitesten Sinn definiert – der Prozess, mit dem aus den Daten Wissen, Modelle, Entscheidungsstrategien und/oder Einblick gewonnen werden. Spezifische Beispiele für die Datenanalyse umfassen Mustererkennung, Datenmodellierung und Datamining. Andere spezifische Anwendungen umfassen: Vorhersagen, welche Produkte eine Person auf der Basis der sich bereits in ihrem Warenkorb befindlichen Produkte kaufen will; Vorhersagen, auf welche Anzeigen eine Person klicken wird auf der Basis anderer Anzeigen, die sie bereits angeklickt hat, welche Webseiten sie bereits gelesen hat, und/oder auf Basis ihrer demografischen Merkmale, Vorhersagen, welche TV-Sendungen eine Person ansehen will auf der Basis anderer TV-Sendungen, die sie bereits angesehen hat, und/oder auf Basis ihrer demografischen Merkmale. In der detaillierten Beschreibung der Erfindung werden noch weitere spezifische Anwendungen aufgelistet.
  • Im Allgemeinen umfasst die Datenanalyse drei Hauptabschnitte: einen Abschnitt der Problemformulierung, einen Abschnitt zur Modellanpassung/Modellauswahl und einen Abschnitt für das Verständnis/die Visualisierung des Modells. Gewöhnlich wird jede dieser Phasen so lange wiederholt, bis die gewünschten Erkenntnisse, Modelle, Muster oder Einsichten erreicht werden. Die erreichten Modelle oder Muster werden dann oft für die Vorhersage anderer Daten verwendet.
  • Während es zahlreiche automatisierte oder computerisierte Verfahren für die Modellanpassung/Modellauswahl und einige wenige Nutzen bringende automatisierte Verfahren zur Erklärung der statistischen Modelle vorliegen, werden jedoch die Verfahren zur Problemformulierung im Allgemeinen durch einen Menschen, den Datenanalysten durchgeführt. In dieser Phase verschafft sich der Datenanalyst einen groben Überblick über die Daten und benützt seinen gesunden Menschenverstand zur Bildung eines statistischen Modells oder eines ganzen Satzes an Modellen, der dann zur Behandlung der Daten verwendet wird.
  • Ein Datenanalyst kann zum Beispiel eine Gruppe von Web-Transaktionsprotokollen von einer Nachrichtenseite bekommen und aufgefordert werden, „diese Daten zu verwenden, um vorherzusagen, welche Anzeigen ein Anwender höchstwahrscheinlich anklicken wird". Die Phase der Problemformulierung kann wie folgt aussehen. Zuerst schaut der Analyst die Protokolle durch und kann vielleicht erkennen, dass die Nachrichtenartikel, die ein Anwender liest (eine Information, die in den Protokollen vorliegt), für die Vorhersage, welche Anzeigen ein Anwender anklicken wird, anwendbar sind. Der Analyst entscheidet dann, ob die Nachrichtenartikel selbst gute Einflusswerte darstellen, oder ob es besser ist, die Kategorien der Nachrichtenartikel für eine Vorhersage des Anklickens von Anzeigen zu verwenden. Er entscheidet dann, welche Gruppe der Nachrichtenartikel oder der Kategorien der Nachrichtenartikel es wert sind, in das Modell aufgenommen zu werden, da der Einschluss aller Artikel nicht praktikabel wäre.
  • Das Ergebnis dieser Entscheidungen ist eine Liste von Variablen, die in das Modell aufgenommen werden. Als Nächstes entscheidet der Analyst, wie jede Variable modelliert werden soll. Obwohl die Anzahl, wie oft ein Artikel gelesen wird, in den Web-Transaktionsprotokollen verfügbar ist, kann der Datenanalyst entscheiden, nur zu modellieren, ob der Anwender einen Artikel liest oder nicht. Eine andere Alternative kann sein, die stärker detaillierten Informationen zu speichern, wobei der Datenanalyst in diesem Fall entscheiden muss, ob er die Anzahl zum Beispiel durch eine Gauß-Verteilung oder durch irgendeine komplexere Verteilung darstellen soll. Zuletzt kann der Analyst entscheiden, die Beziehungen zwischen den gelesenen Artikeln und den angeklickten Anzeigen über ein Bayes'sches Netz zu modellieren.
  • Es liegen Nachteile vor, wenn man zur Durchführung der Phase der Problemformulierung einen Datenanalysten einsetzen muss. Die Datenmenge, die für eine Analyse verfügbar ist, wächst mit einer exponentiellen Rate an, aber es gibt nur eine begrenzte Anzahl an Statistikern/Datenanalysten, die diese Daten analysieren können, wodurch eingeschränkt wird, wie oft statistische Modelle bei der Datenanalyse zum Einsatz kommen können. Der Prozess der Problemformulierung selbst ist schwierig zu automatisieren, da typischerweise sehr viel Wissen über Menschen auf dieses besondere Problem angewandt wird. In dem oben erläuterten Beispiel würde ein Computer zum Beispiel im Allgemeinen nicht erkennen, dass die gelesenen Artikel prognostisch für das Anklicken von Anzeigen sein können, da beide einen Bezug zum zugrunde liegenden „persönlichen Typ" des Anwenders besitzen. Ein Computer würde typischerweise auch nicht wissen, dass die Modellierung einer Artikelvariablen eher in binärer Form als in numerischer Form geeignet ist.
  • Aus diesen und anderen Gründen gibt es einen Bedarf für die vorliegende Erfindung.
  • Chen et al., Computer Software and Applications Conference, 1994, Compsac 94 Proceedings, Eighteens Annual International Taipai, Taiwan, 9.–11. November 1994, Los Alamitos, Seiten 432–437, beschreiben ein automatisiertes Verfahren zur Klassifizierung von Variablen für COBOL-Programme.
  • Fayyad U., Proceedings of the Ninth International Conference on Scientific and Statistical Database Management, Olympia, USA, Seiten 2–11 beschreibt ein Verfahren für das Datamining und die Aufdeckung von Erkenntnissen in Datenbanken und den logischen Schlussfolgerungen für wissenschaftliche Datenbanken.
  • Fayyad U. et al., Communications of the Association for Computing Machinery, New York, Vol. 39, Nr. 11, 1. November 1996, Seiten 27–34 beschreiben den KDD-Prozess zur Extrahierung nützlicher Informationen aus großen Mengen von Daten.
  • Übersicht über die Erfindung
  • Es ist das Ziel der vorliegenden Entwicklung, das technische Problem zu lösen, ein System für die automatisierte Datenanalyse und insbesondere zur automatisierten Entscheidung, ob Daten unter Verwendung einer (log-)Gauß-Verteilung oder einer Multinomialverteilung modelliert werden sollen, zu erstellen.
  • Das Ziel wird durch die Erfindung, wie sie in den Hauptansprüchen definiert ist, erreicht.
  • Die Ausführungsformen sind in den Unteransprüchen angegeben.
  • Die Erfindung bezieht sich auf die automatisierte Datenanalyse. In einer Ausführungsform, die auf einer Architektur für die automatisierte Datenanalyse beruht, umfasst ein computerisiertes System eine automatisierte Schicht für die Problemformulierung, eine erste Lernmaschine und eine zweite Lernmaschine. Die automatisierte Schicht für die Problemformulierung empfängt einen Datensatz. Dieser Datensatz hat eine Vielzahl von Einträgen, wobei jeder Eintrag einen Wert für jede Variable aus einer Vielzahl von rohen Transaktionsvariablen enthält (wie später in der Anwendung definiert wird). Die Schicht fasst die rohen Transaktionsvariablen in aufbereiteten Transaktionsvariablen zusammen. Die erste Lernmaschine erzeugt ein Modell für die aufbereiteten Transaktionsvariablen, während die zweite Lernmaschine ein Modell für die rohen Transaktionsvariablen erzeugt.
  • In einer Ausführungsform, die sich auf die Zusammenstellung von Merkmalen bezieht, wird ein Datensatz eingegeben, der eine Vielzahl von Einträgen umfasst, wobei jeder Eintrag einen Wert für jede Variable aus einer Vielzahl von rohen Transaktionsvariablen enthält. Diese Variablen sind in einer Knotenhierarchie organisiert. Die rohen Transaktionsvariablen werden zu einer geringeren Anzahl von aufbereiteten Transaktionsvariablen zusammengefasst und es werden die aufbereiteten Transaktionsvariablen ausgegeben.
  • In einer Ausführungsform, die sich auf die Erzeugung eines Modells für Roh-Variable aus einem Modell für aufbereitete Variable und Rohdaten bezieht, wird ein erstes Modell für eine Vielzahl von aufbereiteten Transaktionsvariablen eingegeben. Die aufbereiteten Transaktionsvariablen sind aus rohen Transaktionsvariablen zusammengestellt worden, wobei die letzteren auf einem Datensatz basieren, der eine Vielzahl von Einträgen umfasst, wobei jeder Eintrag einen Wert für jede rohe Transaktionsvariable enthält. Es wird ein Typ des ersten Modells bestimmt, und es wird ein zweites Datenmodell für die Vielzahl von rohen Transaktionsvariablen auf der Basis des ersten Datenmodells und des Typs des ersten Datenmodells erzeugt. Das zweite Datenmodell wird dann ausgegeben.
  • In einer Ausführungsform, die sich auf die Bestimmung, ob eine Variable numerisch oder nicht-numerisch ist, bezieht, wird eine Variable eingegeben, die eine Vielzahl von Werten besitzt, in der jeder Wert einen Zähler umfasst. Für die Variable wird durch Bewerten der Dichte von Zählwerten für benachbarte Werte der Variablen bestimmt, ob sie numerisch oder nicht-numerisch sein soll. Es wird dann ausgegeben, ob die Variable numerisch oder nicht-numerisch ist.
  • Zuletzt wird in einer Ausführungsform, die sich auf die Bestimmung bezieht, ob eine numerische Variable einer Gauß-Verteilung oder einer log-Gauß-Verteilung unterliegt, ein Datensatz eingegeben. Der Datensatz umfasst eine Vielzahl von Einträgen. Jeder Eintrag besitzt einen Wert für jede Variable aus einer Vielzahl von rohen Nicht-Transaktionsvariablen. Die Vielzahl von rohen Nicht-Transaktionsvariablen umfasst eine numerische Variable. Es wird bestimmt, ob eine Gauß- oder eine log-Gauß-Verteilung die numerische Variable auf der Basis der Vielzahl von Einträgen besser voraussagt. Das Bestimmungsergebnis wird dann ausgegeben.
  • Die Ausführungsformen der Erfindung sorgen für eins automatisierte Datenanalyse und besitzen daher Vorteile gegenüber der herkömmlichen Technik. Die automatisierte Datenanalyse ist nutzbringend, da keine Datenanalysten für die Durchführung der Datenanalyse benötigt werden – besonders in der Phase der Problemformulierung innerhalb des Analyseprozesses. Dies macht die Datenanalyse noch nutzbringender, da es die Möglichkeiten eröffnet, die Datenanalyse in mehr Situationen einzusetzen – zum Beispiel in Fällen, in denen ein Datenanalyst zu teuer ist oder gar nicht zur Verfügung steht.
  • Die Erfindung umfasst computerimplementierte Verfahren, maschinenlesbare Medien, computerisierte Systeme und Computer unterschiedlicher Wirkungsbreiten. Anders Aspekte, Ausführungsformen und Vorteile der Erfindung, die über die hier beschriebenen hinausgehen, werden ersichtlich, indem die detaillierte Beschreibung mit Bezug auf die Zeichnungen gelesen wird.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Schaubild einer Betriebssystemumgebung, in denen die Ausführungsformen der Erfindung betrieben werden können.
  • 2(a) und 2(b) sind Schaubilder von Histogrammen jeweils einer numerischen Variablen und einer nicht-numerischen Variablen.
  • 2(c) ist ein Flussdiagramm eines Verfahrens zur Bestimmung nach einer Ausführungsform der Erfindung, ob eine Variable numerisch oder nicht-numerisch ist.
  • 2(d) ist ein Schaubild eines Systems zur Bestimmung nach einer Ausführungsform der Erfindung, ob eine Variable numerisch oder nicht-numerisch ist.
  • 3(a) ist ein Flussdiagramm eines Verfahrens zur Bestimmung nach einer Ausführungsform der Erfindung, ob eine numerische Variable eine Gauß- oder eine log-Gauß-Verteilung haben sollte.
  • 3(b) ist ein Schaubild eines Systems zur Bestimmung nach einer Ausführungsform der Erfindung, ob eine numerische Variable eine Gauß- oder eine log-Gauß-Verteilung haben sollte.
  • 4(a) ist ein Flussdiagramm eines Verfahrens zur Erzeugung eines Modells für Roh-Variable aus einem Modell für aufbereitete Variable nach einer Ausführungsform der Erfindung.
  • 4(b) ist ein Schaubild eines Systems zur Erzeugung eines Modells für Roh-Variable aus einem Modell für aufbereitete Variable nach einer Ausführungsform der Erfindung.
  • 5(a) ist ein Schaubild eines Systems zur automatisierten Datenanalyse nach einer Ausführungsform der Erfindung.
  • 5(b) ist ein Flussdiagramm eines Verfahrens zur automatisierten Datenanalyse nach einer Ausführungsform der Erfindung.
  • 6(a) ist ein Schaubild, das eine für rohe Transaktionsdatensätze typische fallende Potenzfunktion nach Zipfs Gesetz darstellt, die den Ausführungsformen der Erfindung unterlegt werden kann.
  • 6(b) und 6(c) sind Flussdiagramme, die Verfahren zur Zusammenstellung von aufbereiteten Transaktionsvariablen aus rohen Transaktionsvariablen nach verschiedenen Ausführungsformen der Erfindung zeigen.
  • 6(d) bis 6(i) sind Schaubilder, die ein Beispiel der Anwendung der Verfahren aus 6(b) und 6(c) nach einer Ausführungsform der Erfindung veranschaulichen, um zum besseren Verständnis der Verfahren beizutragen.
  • 6(j) ist ein Schaubild eines Systems zur Zusammenstellung von aufbereiteten Transaktionsvariablen aus rohen Transaktionsvariablen nach einer Ausführungsform der Erfindung.
  • Weg(e) zur Ausführung der Erfindung
  • In der folgenden detaillierten Beschreibung von beispielhaften Ausführungsformen wird Bezug auf die begleitenden Zeichnungen genommen, die ein Teil hiervon sind und in denen in der Art der Darstellung spezielle beispielhafte Ausführungsformen gezeigt werden, in denen die Erfindung betrieben werden kann. Die folgende detaillierte Beschreibung sollte nicht in einem einschränkenden Sinn verstanden werden, der Umfang der vorliegenden Erfindung wird allein durch die beigefügten Ansprüche definiert.
  • Einige Abschnitte der detaillierten Beschreibungen, die nun folgen, sind in Form von Algorithmen und symbolischen Darstellungen von Vorgängen dargestellt, die sich auf Datenbits innerhalb eines Computerspeichers beziehen. Diese algorithmischen Beschreibungen und Darstellungen sind die Arbeitsmittel, die von den Kennern der Datenverarbeitungstechnik angewendet werden, um in höchst effektiver Weise den Gehalt ihrer Arbeit anderen Kennern der Technik mitzuteilen. Ein Algorithmus wird hier und im Allgemeinen als eine in sich widerspruchsfreie Folge von Schritten verstanden, die zu einem angestrebten Ergebnis führt. Die Schritte sind dergestalt, dass sie physikalische Manipulationen von physikalischen Größen erfordern. Normalerweise, aber nicht notwendigerweise, nehmen diese Größen die Form von elektrischen oder magnetischen Signalen an, die gespeichert, übertragen, kombiniert, verglichen und in anderer Weise behandelt werden können.
  • Es hat sich hin und wieder, vor allem aus Gründen der gemeinsamen Verwendung, als praktisch erwiesen, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Ausdrücke, Zahlen, oder Ähnliches zu bezeichnen. Es sollte gedanklich jedoch berücksichtigt werden, dass alle diese oder ähnliche Ausdrücke mit den entsprechenden physikalischen Größen in Verbindung gebracht werden und lediglich als zweckmäßige Namen dienen, die diesen Größen zugewiesen werden. Sofern nicht anders als aus den folgenden Erläuterungen deutlich besonders angegeben wird, ist es über die vorliegende Erfindung hinweg so zu verstehen, dass Diskussionspunkte, die Ausdrücke wie etwa Verarbeiten oder Berechnen oder Ausrechnen oder Bestimmen oder Anzeigen oder Ähnliches verwenden, sich auf den Betrieb und die Prozesse eines Computersystems oder eines ähnlichen elektronischen Rechnersystems beziehen, das Daten, die als physikalische (elektronische) Größen innerhalb der Register und der Speicher des Computersystems dargestellt sind, bearbeitet und in andere Daten, die ähnlich als physikalische Größen innerhalb der Register und der Speicher des Computersystems oder anderer derartiger Datenspeicher-, Übertragungs- oder Anzeigeeinrichtungen dargestellt sind, umformt.
  • Betriebssystemumgebung
  • In 1 ist ein Schaubild der Hardware und Betriebssystemumgebung dargestellt, in deren Verbindung die Ausführungsformen der Erfindung betrieben werden können. Die Beschreibung von 1 soll eine kurze allgemeine Beschreibung geeigneter Hardware und geeigneter Betriebsumgebung, darstellen, in deren Verbindung die Erfindung realisiert werden kann. Obwohl nicht erforderlich wird die Erfindung im allgemeinen Rahmen mit den auf dem Computer ausführbaren Anweisungen, wie etwa Programmmodule, die auf einem Computer, wie etwa einem Personalcomputer ausgeführt werden, beschrieben. Im Allgemeinen umfassen die Programmmodule, Routinen, Programme, Objekte, Komponenten, Datenstrukturen usw., die spezielle Aufgaben erfüllen oder besondere Datentypen aufbauen.
  • Darüber hinaus werden die Kenner der Technik erkennen, dass die Erfindung auch mit anderen Computersystemkonfigurationen, wie Handheld-Geräten, Multiprozessorsystemen, mikroprozessorbasierter oder programmierbarer Gebrauchselektronik, Netzwerk-PC's, Minicomputern, Großrechnern und Ähnlichen betrieben werden kann. Die Erfindung kann auch in Umgebungen mit verteilter Datenverarbeitung eingesetzt werden, in denen Aufgaben durch entfernte Verarbeitungseinrichtungen ausgeführt werden, die über ein Kommunikationsnetzwerk verbunden sind. In einer Umgebung mit verteilter Datenverarbeitung können Programmmodule sowohl in lokalen als auch entfernten Speichereinrichtungen vorliegen.
  • Die beispielhafte Hardware und Betriebssystemumgebung aus 1 für den Aufbau der Erfindung umfasst eine Mehrzweck-Recheneinrichtung in Form eines Computers 20, der eine Prozessoreinheit 21, einen Systemspeicher 22 und einen Systembus 23, der verschiedene Systemkomponenten einschließlich des Systemspeichers mit der Prozessoreinheit 21 verbindet, umfasst. Es kann lediglich eine oder auch mehr als eine Prozessoreinheit 21 geben, in der Weise, dass der Prozessor des Computers 20 eine einzelne Zentralprozessoreinheit (CPU) oder eine Vielzahl von Prozessoreinheiten, gewöhnlich als Parallelprozessumgebung bezeichnet, umfassen kann. Der Computer 20 kann ein herkömmlicher Computer, ein verteilter Computer oder jeder andere Typ von Computer sein; die Erfindung ist nicht darauf beschränkt.
  • Der Systembus 23 kann aus einer von verschiedenen Busstrukturen bestehen, die einen Speicherbus oder einen Speicher-Controller, einen Peripheriebus und einen Local-Bus, der eine aus der Vielzahl der Busarchitekturen verwendet, umfasst. Der Systemspeicher kann einfach als der Speicher bezeichnet werden, der den Nur-Lesen-Speicher (ROM) 24 und den Speicher mit Direktzugriff (RAM) 25 umfasst. Ein Basis-Ein- und Ausgabesystem (BIOS) 26, das Basisroutinen enthält, die die Übertragung von Daten zwischen den Elementen im Computer 20, wie etwa beim Systemstart unterstützen, ist im ROM 24 gespeichert. Der Computer 20 umfasst weiterhin ein Festplattenlaufwerk 27 zum Lesen von einer Festplatte und zum darauf Schreiben, was nicht dargestellt ist, ein Magnetplattenlaufwerk 28 zum Lesen von einer auswechselbaren Magnetplatte 29 und zum darauf Schreiben, ein optisches Plattenlaufwerk 30 zum Lesen von einer auswechselbaren optischen Platte 31 wie etwa einer CD-ROM oder anderer optischer Medien und zum darauf Schreiben.
  • Das Festplattenlaufwerk 27, das Magnetplattenlaufwerk 28 und das optische Plattenlaufwerk 30 sind an den Systembus 23 jeweils über ein Interface für Festplattenlaufwerke 32, ein Interface für Magnetplattenlaufwerke 33 und ein Interface für optische Plattenlaufwerke 34 angeschlossen. Die Laufwerke und die ihnen zugeordneten computerlesbaren Medien bieten nicht-flüchtigen Speicher für computerlesbare Anweisungen, Datenstrukturen, Programmmodulen und andere Daten für den Computer 20. Es sollte von den Kennern der Technik erkannt werden, dass jede Art von computerlesbaren Medien, die Daten speichern können, auf die von Computern zugegriffen werden kann, wie etwa Magnetkassetten, Flashspeicherkarten, digitale Videodisks, Bernoulli-Kassetten, Speicher mit Direktzugriff (RAMs), Nur-Lesen-Speicher (ROMs) und Ähnliche in der beispielhaften Betriebssystemumgebung verwendet werden kann.
  • Eine Anzahl von Programmen kann auf der Festplatte, der Magnetplatte 29, der optischen Platte 31, dem ROM 24 oder dem RAM 25 gespeichert sein, die ein Betriebssystem 35, ein oder mehrere Programme 36, andere Programmmodule 37 und Programmdaten 38 umfassen. Ein Anwender kann Anweisungen und Daten in den Computer 20 über Eingabegeräte wie eine Tastatur 40 und ein Zeigegerät 42 eingeben. Andere Eingabegeräte (nicht dargestellt) können Mikrofon, Joystick, Gamepad, Satellitenempfänger, Scanner oder Ähnliches sein. Diese und andere Eingabegeräte sind mit der Prozessoreinheit 21 oft über eine serielle Schnittstelle 46 angeschlossen, die mit dem Systembus verbunden ist, sie können jedoch auch über andere Schnittstellen, wie etwa die parallele Schnittstelle, den Game-Port oder die universelle serielle Schnittstelle (USB) angeschlossen werden. Ein Monitor 47 oder ein anderer Typ von Anzeigegerät ist ebenfalls über eine Schnittstelle, wie etwa einen Videoadapter 48, an den Systembus 23 angeschlossen. Zusätzlich zum Monitor umfassen Computer typi scherweise weitere periphere Ausgabegeräte (nicht dargestellt) wie etwa Lautsprecher und Drucker.
  • Der Computer 20 kann in einer Netzwerkumgebung unter Einsatz von logischen Verbindungen zu einem oder mehreren entfernten Computern wie dem entfernten Computer 49 betrieben werden. Die logischen Verbindungen erhält man durch eine Kommunikationseinrichtung, die mit dem Computer 20 oder einem Teil von ihm verbunden sind; die Erfindung ist nicht auf einen besonderen Typ der Kommunikationseinrichtung beschränkt. Der entfernte Computer 49 kann ein weiterer Computer, ein Server, ein Router, ein Netzwerk-PC, ein Client, eine Teilnehmereinrichtung oder andere allgemeine Netzwerkknoten sein und umfasst typischerweise viele oder alle Elemente, die oben in Bezug auf den Computer 20 beschrieben wurden, obwohl lediglich eine Speichereinrichtung 50 in 1 dargestellt worden ist. Die logischen Verbindungen, die in 1 dargestellt sind, umfassen ein lokales Netzwerk (LAN) 51 und ein Weitverbundnetz (WAN) 52. Solche Netzwerkumgebungen sind alltäglich in Büronetzwerken, unternehmensweiten Computernetzwerken, Intranets und dem Internet, die alle Typen von Netzwerken darstellen.
  • Wird der Computer 20 in einer LAN-Netzwerkumgebung verwendet, ist er an das lokale Netzwerk 51 über eine Netzwerkschnittstelle oder einen Adapter 53 angeschlossen, was eine Art von Kommunikationsgerät ist. Wird der Computer 20 in einer WAN-Netzwerkumgebung verwendet, umfasst er typischerweise ein Modem 54, was eine Art von Kommunikationsgerät ist, oder jeden anderen Typ eines Kommunikationsgeräts, das Kommunikationsverbindungen über das Weitverbundnetz 52 wie dem Internet aufbaut. Das Modem 54, das intern oder extern sein kann, ist über die serielle Schnittstelle 46 an den Systembus 23 angeschlossen. In einer Netzwerkumgebung können die Programmmodule, die in Verbindung mit dem Computer 20 oder Teilen davon dargestellt sind, auf der entfernten Speichereinrichtung gespeichert sein. Es ist ersichtlich, dass die gezeigten Netzwerkverbindungen Beispiele darstellen und andere Mittel und Kommunikationseinrichtungen zum Aufbau von Kommunikationsverbindungen zwischen den Computern verwendet werden können.
  • Architektur für die automatisierte Datenanalyse
  • In diesem Abschnitt wird eine Beschreibung einer Architektur für die automatisierte Datenanalyse gegeben. Genauer ausgedrückt sorgt die Architektur für die Modellanpassung und Modellauswahl und Erläuterung und Visualisierung, um automatisierte Datenanalysen zu erzeugen. In einer Ausführungsform ist die Analyse, für die die Architektur einsetzbar ist, wie folgt eingeschränkt. Zuerst einmal ist die Analyse beschränkt auf Vorhersagen, was ein Computernutzer tun wird (d.h. welche Anzeigen er im Web anklicken wird, welche Artikel er im Web lesen wird, welche Produkte er im Web kaufen wird), wobei dies auf der Kenntnis anderer Informationen über den Anwender basiert. Wenn die vorhergesagten Aktionen Vorlieben des Nutzers darstellen, so wird diese Aufgabe gelegentlich als kooperatives Filtern bezeichnet. Zum zweiten ist die Analyse beschränkt auf die Unterteilung der Benutzer in eine Reihe von Gruppen in der Weise, dass Benutzer der gleichen Gruppe im Groben das gleiche Verhalten an den Tag legen und Benutzer in verschiedenen Gruppen unterschiedliches Verhalten aufweisen. Zum dritten ist die Analyse beschränkt auf Daten, die sowohl Transaktionsdaten als auch Nicht-Transaktionsdaten umfassen (wie unten beschrieben), was als Unternehmensbereichsdatengruppen bezeichnet wird.
  • Zuerst wird mit Bezug auf 5(a) ein System für die automatisierte Datenanalyse nach einer Ausführungsform dargestellt. Ein Satz roher Daten 500 wird in eine Schicht zur automatisierten Problemformulierung 502 eingegeben, um einen Satz aufbereiteter Daten 510 zu erzeugen. Der Satz aufbereiteter Daten wird zusammen mit weiteren Vertriebsinformationen, bezogen auf den Satz roher Daten, in eine erste Lernmaschine 504 eingegeben, um ein Modell für aufbereitete Daten 514 zu erzeugen. Das Modell für aufbereitete Daten 514 wird zusammen mit dem Satz roher Daten 500 und den weiteren Vertriebsinformationen, bezogen auf den Satz roher Daten, in eine zweite Lernmaschine 506 eingegeben, um ein Modell für rohe Daten 512 zu erzeugen. Sowohl das Modell für aufbereitete Daten 514 als auch das Modell für rohe Daten 512 werden in ein Visualisierungs-/Erklärungsprogamm 508 eingegeben, das von einem Benutzer (d.h. einem Datenanalysten) angewendet werden kann, um die Modelle zu untersuchen und zu visualisieren.
  • In einer Ausführungsform wird das System auf einem Computer so implementiert, wie es in den vorangegangenen Abschnitten der detaillierten Beschreibung beschrieben ist. In derartigen und anderen Ausführungsformen kann der Satz roher Daten 500, der Satz aufbereiteter Daten 510, das Modell für rohe Daten 512 und das Modell für aufbereitete Daten 514 als Daten auf einem computerlesbaren Medium wie etwa in einem Speicher oder auf einem Festplattenlaufwerk gespeichert sein. Darüber hinaus kann in derartigen und anderen Ausführungsformen die Schicht 502, die erste Lernmaschine 504, die zweite Lernmaschine 506 und das Visualisierungs-/Erklärungsprogamm 508 jeweils ein Computerprogramm sein, das durch einen Prozessor von einem computerlesbaren Medium wie einem Speicher ausgeführt wird. Darüber hinaus kann jedes von diesen als Softwareobjekt oder -Komponente implementiert sein, wie etwa einem Component Object Model (COM)-Objekt, das in dieser Technik verbreitet ist.
  • Der Satz roher Daten 500 stellt vorzugsweise ein reales Ereignis oder Ereignisse dar – zum Beispiel die Artikel, die von Nutzern einer Webseite gelesen werden, die Fernsehsendungen, die von Zuschauern gesehen werden etc. Der Datensatz umfasst eine Vielzahl von Einträgen. Jeder Eintrag besitzt mindestens ein Attribut. Der Satz aller Attribute wird als der Attributsatz für den Problembereich bezeichnet. Jedes Attribut besitzt einen Standardwert. Der Standardwert für jede Transaktionsvariable ist Null. Im Allgemeinen sieht der Datensatz vorzugsweise so aus, dass die meisten Attributwerte für einen gegebenen Eintrag gleich dem Standardwert sind, obwohl die Erfindung keiner solchen Einschränkung unterliegt. Jedes Attribut wird auch als Rohvariable bezeichnet. Die Daten und die Variablen sind roh im Unterschied zu den aufbereiteten Variablen und Daten, die von den rohen Daten und den Variablen abgeleitet werden, wie noch beschrieben wird. Der Satz roher Daten kann als Tabelle entworfen werden, in der jeder Reihe einem bestimmten Eintrag (oder Muster) zugeordnet wird und in der jede Spalte einer bestimmten Rohvariablen zugeordnet wird.
  • Es wird angemerkt, dass jede Variable entweder eine Transaktionsvariable oder eine Nicht-Transaktionsvariable sein kann. Eine Transaktionsvariable ist eine Variable, die sich auf eine bestimmte Transaktion bezieht – zum Beispiel ob ein Nutzer ein bestimmtes Buch gekauft hat, ob ein Nutzer einen bestimmten Artikel gelesen hat, ob ein Nutzer eine bestimmte Anzeige angeklickt hat etc. (obwohl auch Kenner der Technik auf einfachem Level erkennen werden, dass Transaktionsvariable nicht unbedingt binär sein müssen). Eine Nicht-Transaktionsvariable ist daher jede andere Art von Variable – zum Beispiel demografische Daten, die einen Nutzer betreffen.
  • Die Schicht 502 empfängt den Satz roher Daten 500 als Eingabe und führt drei Funktionen durch. Zuerst leitet die Schicht 502 die rohen Transaktionsvariablen in eine Vielzahl von aufbereiteten Transaktionsvariablen über, wie es durch den Satz aufbereiteter Daten 510 dargestellt wird. Aufbereitete Daten sind Daten, die aus den Rohdaten abgeleitet sind – zum Beispiel durch Organisieren, Gruppieren etc. der Rohdaten in Kategorien. Die Ableitung einer rohen Transaktionsvariablen in eine aufbereitete Transaktionsvariable wird auch als Transformation der Rohvariablen bezeichnet. Die Schicht 502 definiert und fixiert auf diese Weise eine Transformation aus dem Satz roher Daten 500 in einen Satz aufbereiteter Daten 510, was auch als Transformationsmodell bezeichnet werden kann. Die Schicht 502 verwendet diese Transformation, um rohe Muster im Satz roher Daten 500 in aufbereitete Muster im Satz aufbereiteter Daten 510 zu überführen. In einer Ausführungsform wird die Ableitung von Rohvariablen in aufbereitete Variable so ausgeführt, wie es in einem nachfolgenden Abschnitt beschrieben wird, obwohl die Erfindung einer solchen Einschränkung nicht unbedingt unterliegt.
  • Als Zweites bestimmt die Schicht 502 die Verteilung für jede Rohvariable, obwohl in einer anderen Ausführungsform diese Information selbst im Satz roher Daten 500 vorliegt. Die Bestimmung der Werte jeder aufbereiteten Variablen wird so ausgeführt, wie es in einem nachfolgenden Abschnitt beschrieben wird. Die Erfindung unterliegt jedoch nicht unbedingt einer solchen Einschränkung.
  • Zum Dritten bestimmt die Schicht 502 die Werte jeder aufbereiteten Variablen und die Verteilung für jede aufbereitete Variable. In einer Ausführungsform wird die Bestimmung der Werte jeder aufbereiteten Variablen und der Verteilung für jede aufbereitete Variable so ausgeführt, wie es in einem nachfolgenden Abschnitt beschrieben wird, obwohl die Erfindung einer solchen Einschränkung nicht unbedingt unterliegt. In einer Ausführungsform ist der Satz der Werte einer aufbereiteten Variablen gleich dem Satz der Werte der entsprechenden Rohvariablen oder den entsprechenden Variablen, obwohl die Erfindung einer solchen Einschränkung nicht unterliegt. In einer anderen Ausführungsform kann ein Datenanalyst oder ein anderer Anwender die Entscheidungen, die von der Schicht 502 getroffen wurden, untersuchen und sie ändern.
  • Die erste Lernmaschine 504 empfängt den Satz aufbereiteter Daten 510 als Eingabe, ebenso von der Schicht 502 die Variablenverteilungen für die aufbereiteten Variablen. Die Maschine 504 erzeugt das Modell für die aufbereiteten Transaktionsvariablen 514, das in einer Ausführungsform auf den aufbereiteten Transaktionsvariablen und ihren Verteilungen basiert. Das bedeutet, dass die Maschine 504 die Verteilungsfamilien und die Werte für die aufbereiteten Variablen von der Schicht 502 und den Satz aufbereiteter Daten 510 empfängt und daraus ein Modell für aufbereitete Daten erzeugt. In einer Ausführungsform besitzt das erzeugte Modell einen bestimmten Typ, wie etwa das Bayes'sches Netz oder das Cluster-Modell nach Bayes. Das erstere ist für die Aufgabe des Vorhersagens besser anwendbar, während das letztere für die Aufgabe des Gruppierens besser geeignet ist. In einer Ausführungsform wird die Erzeugung des Modells für aufbereitete Variable 514 nach einem nachfolgenden Abschnitt der detaillierten Beschreibung ausgeführt, obwohl die Erfindung einer solchen Einschränkung nicht unterliegt.
  • Die zweite Lernmaschine 506 empfängt als Eingabe den Satz roher Daten 500 (einschließlich der Werte der Rohvariablen), die Verteilungen für die Rohvariablen (entweder aus der Schicht 502 oder aus dem Satz roher Daten 500) und das Modell für aufbereitete Variable 514 und erzeugt auf dieser Basis das Modell für rohe Variable 512. In einer Ausführungsform erzeugt die zweite Lernmaschine 506 ein Modell für rohe Transaktionsvariable auf der Basis des Modells für aufbereitete Transaktionsvariable und der Art des Modells für aufbereitete Transaktionsvariable. In einer Ausführungsform erzeugt die zweite Lernmaschine 506 das Modell für aufbereitete Variable 514 nach einem nachfolgenden Abschnitt der detaillierten Beschreibung, obwohl die Erfindung einer solchen Einschränkung nicht unterliegt.
  • Sobald die Modelle für rohe Daten 512 und für aufbereitete Daten 514 erzeugt worden sind, können sie unter Verwendung des Tools 508 analysiert werden. Das Tool 508 kann ein Visualisierungstool, ein Erklärungstool oder beides sein. In einer Ausführungsform ist das Tool wie beschrieben im mit beauftragten und ebenfalls schwebenden Patentantrag mit dem Titel „Method and System for Visualization of Clusters and Classifications", Anmeldenummer 09/104751, eingereicht am 25. Juni 1998, ausgeführt; die Erfindung unterliegt jedoch keiner solchen Einschränkung. Auf diese Weise kann das Tool 508 neben anderen Anwendungen für Vorhersagen und Gruppierungen der Daten verwendet werden. Die Erfindung ist jedoch nicht auf irgendein bestimmtes Tool beschränkt, auch nicht für die Nutzung in irgendwelchen bestimmten Anwendungen.
  • Spezifische Beispiele für Anwendungen, in denen das Tool 508 eingesetzt werden kann, umfassen Mustererkennungen, Datenmodellierung und Datamining. Andere spezifische Anwendungen umfassen: Die Vorhersage, welche Produkte eine Person noch kaufen will unter der Berücksichtigung dessen, was bereits in ihrem Warenkorb liegt; welche Anzeigen eine Person noch anklicken wird unter der Berücksichtigung dessen, welche anderen Anzeigen sie bereits angeklickt hat, welche Webseiten sie bereits gelesen hat und/oder unter Berücksichtigung ihrer demografischen Daten; die Vorhersage, welche Fernsehsendungen eine Person anschauen will unter der Berücksichtigung dessen, welche anderen Fernsehsendungen sie bereits gesehen hat und/oder unter Berücksichtigung ihrer demografischen Daten. Weitere spezifische Anwendungen umfassen: Die Vorhersage eines gewünschten Songs eines Benutzers unter der Berücksichtigung dessen, welche anderen Songs der Benutzer bereits angehört hat; die Vorhersage eines gewünschten Musikvideos eines Benutzers unter der Berücksichtigung dessen, welche anderen Musikvideos der Benutzer bereits angesehen hat; die Vorhersage eines Songs, den ein Benutzer zu kaufen wünscht unter der Berücksichtigung dessen, welche anderen Songs der Benutzer bereits gekauft hat; die individuelle Anpassung einer elektronischen Zeitung unter der Berücksichtigung dessen, welche Arten von Nachrichten der Benutzer bereits gelesen hat; die Vorhersage, welche Internetseite ein Benutzer als Favorit haben will; die Vorhersage eines favorisierten ENCARTA-Artikels eines Benutzers; die Vorhersage eines gewünschten Layouts eines Benutzers für ein Grafik-Präsentationsprogramm, die Vorhersage des gewünschten Email-Aliasnamens für den Benutzer; die Vorhersage des gewünschten Films für den Benutzer; die Vorhersage des gewünschten Weins für den Benutzer; die Vorhersage des gewünschten Restaurants für den Benutzer; die Vorhersage der gewünschten Immobilie für den Benutzer; die Vorhersage des gewünschten Ratschlags für den Benutzer; die Vorhersage der gewünschten Benutzer schnittstelle für den Benutzer und die Vorhersage von ungeeignetem Material, das als unpassend für das Betrachten durch Kinder erachtet wird.
  • Mit Bezug auf die nächste 5(b) wird ein Flussdiagramm eines computerimplementierten Verfahrens für die automatisierte Datenanalyse nach einer Ausführungsform der Erfindung dargestellt. Das computerimplementierte Verfahren ist bevorzugt zumindest teilweise in einem oder mehreren Programmen, die auf einem Computer laufen, realisiert – das heißt, als Programm, das von einem computerlesbaren Medium wie etwa einem Speicher durch einen Prozessor eines Computers ausgeführt wird. Die Programme sind zum Vertrieb und zur Installation und Ausführung auf einem anderen Computer bevorzugt auf einem maschinenlesbaren Medium wie einer Floppy-Disk oder einer CD-ROM gespeichert.
  • In Schritt 520 wird ein Satz roher Daten eingegeben. Der Datensatz kann eingegeben werden, indem er von einer Kommunikationseinrichtung, von einer Speichereinrichtung etc. empfangen wird; die Erfindung unterliegt jedoch keiner solchen Einschränkung. Der Datensatz enthält eine Vielzahl von Einträgen, wobei jeder Eintrag einen Wert für jede Variable aus einer Vielzahl von rohen Variablen einschließlich der rohen Transaktionsvariablen und der rohen Nicht-Transaktionsvariablen enthält. In Schritt 522 werden die rohen Transaktionsvariablen in eine Vielzahl von aufbereiteten Transaktionsvariablen zusammengefasst. In einer Ausführungsform wird dies wie in einem nachfolgenden Abschnitt der detaillierten Beschreibung beschrieben ausgeführt. Die Zusammenfassung von rohen zu aufbereiteten Variablen wird auch als Transformation von rohen zu aufbereiteten Variablen bezeichnet, derart dass in Schritt 522 die Transformation von rohen zu aufbereiteten Variablen beständig wird.
  • In Schritt 524 wird ein Modell für die aufbereiteten Variablen auf Basis von zumindest den aufbereiteten Transaktionsvariablen erzeugt. In einer Ausführungsform wird dies wie in einem nachfolgenden Abschnitt der detaillierten Beschreibung beschrieben ausgeführt. Das Modell ist von einem bestimmten Typ, etwa dem Bayes'schen Netz, dem natürlichen Cluster-Modell nach Bayes etc. In Schritt 526 wird ein Modell für die rohen Variablen erzeugt, wobei in einer Ausführungsform zumindest das Modell für die aufbereiteten Variablen und der Typ des Modells für die aufbereiteten Variablen als Basis dienen. In einer Ausführungsform wird dies wie in einem nachfolgenden Abschnitt der detaillierten Beschreibung beschrieben ausgeführt.
  • Zuletzt wird in Schritt 528 mindestens eines der in den Schritten 524 und 526 erzeugten Modelle ausgegeben. Die Erfindung ist nicht in der Weise, wie die Ausgabe durchgeführt wird, beschränkt. In einer Ausführungsform kann zum Beispiel die Ausgabe an ein weiteres Analyseprogramm oder Softwarekomponente erfolgen, die weitere Analysen und Schlussfolgerun gen erlaubt. Als weiteres Beispiel kann die Ausgabe auf einem Anzeigegerät angezeigt werden oder auf einem Drucker ausgedruckt werden etc. In einer besonderen Ausführungsform umfasst die Ausgabe von einem oder mehreren Modellen darüber hinaus die Ausstattung mit einem Tool wie etwa einem Visualisierungsprogamm oder einem Erklärungsprogamm, mit dem das Modell oder die Modelle analysiert werden. Zum Beispiel kann die Ausgabe sein, die erzeugten Modelle für Anwendungen zu nutzen, wie es in Verbindung mit 5(a) spezifiziert wurde.
  • Zusammenfassen von rohen Variablen zu aufbereiteten Variablen
  • In diesem Abschnitt wird die Beschreibung vorgestellt, wie rohe (Transaktions-)Variable in aufbereitete (Transaktions-)Variable zusammengefasst werden. In einer Ausführungsform wird diese Zusammenfassung von der Schicht 502 aus 5(a) durchgeführt. Es ist jedoch anzumerken, dass die Erfindung keiner solchen Einschränkung unterliegt, was auch mit einer üblichen Kenntnis der Technik erkannt werden kann.
  • Als Grundlage wird zuerst ein allgemeines Beispiel beschrieben. Ein Datensatz kann in Teilen eine Sammlung roher Variabler enthalten, in der jede Variable abbildet, ob ein Anwender ein bestimmtes Science-Fiction-Buch gekauft hat. Deshalb kann eine Variable definiert werden, die aussagt, ob ein Anwender irgendein Science-Fiction-Buch gekauft hat. Dieser Ansatz basiert auf der Annahme, dass eine Hierarchie der Variablen als Teil des Satzes roher Daten verfügbar ist. Ist zum Beispiel ein Datensatz über Buchkäufe vorgegeben, wird angenommen, dass eine Hierarchie der Bücher vorliegt – die höchste Ebene kann z.B. Belletristik im Vergleich zu Sachliteratur sein, die Ebene unter Belletristik kann Drama im Vergleich zu Komödie im Vergleich zu Science fiction etc. sein.
  • Bevor eine Beschreibung eines computerimplementierten Verfahrens und eines computerisierten Systems zur Zusammenfassung von rohen Variablen in aufbereitete Variable gegeben wird, werden zuerst zusätzliche Hintergrundinformationen geboten. Es ist anzumerken, dass Unternehmensdomänen zwei Komponenten besitzen, eine Transaktionskomponente und eine Nicht-Transaktionskomponente, wie es beschrieben wurde. Jede beliebige Rohvariable, die Daten in der Transaktionskomponente entspricht, wird als rohe Transaktionsvariable bezeichnet, während hingegen jede beliebige Rohvariable, die Daten in der Nicht-Transaktionskomponente entspricht, als rohe Nicht-Transaktionsvariable bezeichnet wird. Aufbereitete Transaktions- und Nicht-Transaktionsvariable sind jeweils definiert als Zusammenfassungen (das heißt ODER-Verknüpfungen) von rohen Transaktionsvariablen und rohen Nicht-Transaktionsvariablen.
  • Darüber hinaus wird angemerkt, dass es im Allgemeinen innerhalb von Unternehmensdomänen viele (> ~100) Transaktionsvariable und wenige (< ~100) Nicht-Transaktionsvariable gibt. So wird in einer Ausführungsform der Erfindung angenommen, dass jede Nicht-Transaktionsvariable im Allgemeinen eine aufbereitete Variable ist, und es werden Zusammenfassungen von Variablen nur für rohe Transaktionsvariable vorgenommen.
  • In einer Ausführungsform der Erfindung wird genauer genommen unterstellt, dass jede rohe Transaktionsvariable Werte 0, 1, 2, ..., k besitzt, wobei k eine feste Konstante oder unendlich sein kann. Zum Beispiel kann eine rohe Transaktionsvariable die Anzahl eines bestimmten Produkts sein, das der Anwender gekauft hat, oder wie oft ein Anwender eine Anzeige angeklickt hat, oder wie oft ein Anwender einen Artikel in einem Online-Nachrichtendienst gelesen hat. Alternativ kann eine Transaktionsvariable auf eine binäre Variable mit den Werten 0 und 1 beschränkt sein – z.B., ob ein bestimmtes Produkt von einem Anwender gekauft wurde oder nicht, ob eine bestimmte Anzeige von einem Anwender angeklickt wurde oder nicht, ob ein bestimmter Artikel von einem Anwender gelesen wurde oder nicht etc.
  • In einer Ausführungsform, der der hier verwendete Ansatz für die Zusammenstellung aufbereiteter Variablen aus rohen Variablen zugrunde liegt, gibt es die Beobachtung bei Transaktionsdaten, die in der Technik als Zipfs Gesetz bekannt ist. Wenn rohe Transaktionsvariable nach der Anzahl der Anwender, für die der Wert größer als 0 ist, absteigend (d.h. nach ihrem Zuspruch) sortiert werden, wird herausgefunden, dass diese Anzahl eine fallende Potenzfunktion des Zuspruchs darstellt. Die Kurve 600 in 6(a) ist zum Beispiel ein Graph der Anzahl von Personen, die einen bestimmten Artikel in einem Online-Nachrichtendienst gelesen haben, als Funktion des Zuspruchs des Artikels. Die Kurve 600 ist eine fallende Potenzfunktion, sie unterliegt daher Zipfs Gesetz.
  • Es werden nun verschiedene Konzepte eingeführt, bevor ein computerimplementiertes Verfahren nach einer Ausführungsform der Erfindung beschrieben wird. Bei einer vorgegebenen Hierarchie ist der Konzepthorizont eine Gruppe von Konzepten derart, dass jedes Konzept entweder der Wurzelknoten, ein beliebiger Knoten in der Hierarchie oder eine Gruppe von Knoten in der Hierarchie darstellt, die alle denselben Vorgängerknoten besitzen. Eine Rohvariable wird als im Konzept befindlich bezeichnet, wenn diese Rohvariable (in der Hierarchie) unterhalb des Knotens oder der Knoten, die dem Konzept entsprechen, angesiedelt ist. Jedes Konzept in einem Konzepthorizont definiert eine aufbereitete Variable und entspricht dieser daher. Insbesondere stellt die durch ein Konzept definierte aufbereitete Variable die ODER-Verknüpfung der Rohvariablen des Konzepts dar. Der Zuspruch eines Konzepts ist die Anzahl der Benutzer in dem Datensatz (das heißt, die Anzahl der Einträge) im Rohdatensatz, der Werte für jede Rohvariable im Konzept enthält, die größer als Null sind. Eine Redefinition des Konzepts stellt einen Satz von zwei Konzepten in der Weise dar, dass eines der Konzepte ein Knoten in der Hierarchie (als X bezeichnet) ist, kein anderer Knoten im ursprünglichen Konzept mehr Zuspruch erhält als X, und die zwei neuen Konzepte die gleichen Rohvariablen wie das ursprüngliche Konzept enthalten. Eine Redefinition eines Konzepthorizonts ist ein Konzepthorizont, der sich vom ursprünglichen Horizont durch eine einzige Konzeptredefinition unterscheidet.
  • Nun wird ein computerimplementiertes Verfahren zur Zusammenfassung von rohen Variablen in aufbereitete Variable beschrieben. Das Verfahren wird beschrieben in Verbindung mit 6(b) und 6(c), die Flussdiagramme des Verfahrens nach abweichenden Ausführungsformen darstellen. Das computerimplementierte Verfahren wird bevorzugt zumindest teilweise in einem oder mehreren Programmen, die auf einem Computer laufen, realisiert – das heißt, als Programm, das von einem computerlesbaren Medium wie etwa einem Speicher durch einen Prozessor eines Computers ausgeführt wird. Die Programme liegen zum Vertrieb und zur Installation und Ausführung auf einem anderen Computer bevorzugt auf einem maschinenlesbaren Medium wie einer Floppy-Disk oder einer CD-ROM gespeichert vor. Nachdem die Beschreibung des Verfahrens abgeschlossen ist, wird ein anschauliches Beispiel für das tiefere Verständnis des Verfahrens beschrieben.
  • Mit Bezug zuerst auf 6(b) wird in Schritt 602 ein Datensatz eingegeben. Der Datensatz stellt vorzugsweise ein reales Ereignis oder Ereignisse dar – zum Beispiel die Artikel, die von Nutzern einer Webseite gelesen werden, die Fernsehsendungen, die von Zuschauern gesehen werden etc. Der Datensatz umfasst eine Vielzahl von Einträgen. Jeder Eintrag besitzt mindestens ein Attribut. Der Satz aller Attribute wird als der Attributsatz für den Problembereich bezeichnet. Jedes Attribut besitzt einen Standardwert. Der Standardwert für jede Transaktionsvariable ist Null. Im Allgemeinen sieht der Datensatz vorzugsweise so aus, dass die meisten Attributwerte für einen gegebenen Eintrag gleich dem Standardwert sind, obwohl die Erfindung keiner solchen Einschränkung unterliegt. Jedes Attribut wird auch als Rohvariable bezeichnet und kann eine Transaktions- oder eine Nicht-Transaktionsvariable sein, wie bereits beschrieben wurde. So besitzt jeder Eintrag einen Wert für jede rohe Transaktionsvariable. Die rohen Transaktionsvariablen sind vorzugsweise in einer Knotenhierarchie organisiert.
  • In Schritt 604 werden die rohen Transaktionsvariablen in einer kleineren Anzahl von aufbreiteten Transaktionsvariablen zusammengefasst. Im Allgemeinen wird dies erreicht, indem iterativ nachfolgende am besten angesprochene Konzepte, die mehr als einen Knoten enthalten, in zwei neue Konzepte unterteilt redefiniert werden, wobei in einem Wurzelknoten der Hierarchie als einem Startkonzept begonnen wird, bis eine Anzahl von weiteren nicht redefinierten Konzepten erreicht wird, die gleich einer angestrebten Anzahl von aufbereiteten Transaktionsvariablen ist. So entspricht jedes nicht redefinierte Konzept einer aufbereiteten Transaktionsvariablen. Eine detailliertere Beschreibung des Schritts 604 wird in Verbindung mit 6(c) und dem anschaulichen Beispiel, das auf die Beschreibung von 6(c) folgt, gegeben.
  • Weiterhin mit Bezug auf 6(b) werden jedoch in Schritt 606 die aufbereiteten Transaktionsvariablen ausgegeben. Die Erfindung ist nicht in der Weise, wie die Ausgabe erfolgt, beschränkt. In einer Ausführungsform kann die Ausgabe zum Beispiel an ein weiteres Analyseprogramm oder eine weitere Softwarekomponente erfolgen, die weitere Analysen und Schlussfolgerungen erlauben. Als weiteres Beispiel kann die Ausgabe auf einem Anzeigegerät angezeigt werden oder auf einem Drucker ausgedruckt werden etc.
  • Mit Bezug auf 6(c) wird als Nächstes ein Flussdiagramm eines Verfahrens, das die Zusammenfassung von rohen zu aufbereiteten Variablen nach einer Ausführungsform in höherer Detaillierung darstellt, vorgelegt. In einer Ausführungsform kann zum Beispiel das Verfahren aus 6(c) durchgeführt werden, um die rohen zu den aufbereiteten Variablen in Schritt 604 aus 6(b) zusammenzufassen. In Schritt 608 wird mit dem Wurzelknoten der Hierarchie der rohen Transaktionsvariablen als erstem Konzept begonnen. In Schritt 610 wird dieses erste Konzept in ein zweites Konzept einschließlich eines Knotens mit dem höchsten Zuspruch und in ein drittes Konzept so redefiniert, dass das zweite und das dritte Konzept alle Knoten, die im ersten Konzept enthalten sind, ebenfalls umfassen.
  • In Schritt 612 wird das Konzept mit dem höheren Zuspruch aus dem zweiten und dritten Konzept, das mehr als einen Knoten umfasst, in ein viertes Konzept, das den Knoten mit dem höchsten Zuspruch in diesem Konzept mit dem höheren Zuspruch besitzt, und in ein fünftes Konzept derart redefiniert, dass das vierte und das fünfte Konzept alle Knoten, die im Konzept mit dem höheren Zuspruch aus dem zweiten und dritten Konzept enthalten sind, ebenfalls umfassen. Danach werden in Schritt 614 nachfolgende Konzepte mit dem höchsten Zuspruch, die mehr als einen Knoten umfassen, iterativ in zwei neue Konzepte redefiniert, bis eine erwünschte Anzahl von weiteren nicht redefinierten Konzepten, die den aufbereiteten Transaktionsvariablen entsprechen, erreicht wird.
  • Zum besseren Verständnis der Funktionsweise der Verfahren in 6(b) und 6(c) wird ein Beispiel dargestellt. Das Beispiel wird in Verbindung mit 6(d) bis 6(i) beschrieben. Das Beispiel unterstellt eine hypothetische Datengruppe über Buchkäufe. Die Nummern in 6(d) bis 6(i) sind Konzepte mit Zuspruch. Ein Einzelknotenkonzept im Konzepthorizont in jeder dieser Abbildungen ist in fetter Schrift benannt und ist außerdem eingekreist. Ein Mehrknotenkonzept im Konzepthorizont wird mit einer Linie, die mehrere Namen in fetter Schrift umschließt, gekennzeichnet.
  • Der anfängliche Konzepthorizont wird durch den Wurzelknoten der Hierarchie books.com gebildet, wie es in 6(d) dargestellt ist. Deshalb wird dieses Konzept in die Konzepte „entertainment" und {„sci-fi", „home"} redefiniert, wie es in 6(e) dargestellt ist. Von diesen beiden besitzt das Konzept „entertainment" den höheren Zuspruch, daher wird es als nächstes in {„Titanic" und Entertainment ohne „Titanic"} redefiniert, wie es in 6(f) dargestellt ist. Auf diese Weise haben wir nun die Konzepte „Titanic", Entertainment ohne „Titanic" und {„sci-fi", „home"}. Von diesen besitzt {„sci-fi", „home"} den höchsten Zuspruch, daher wird es als nächstes in „sci-fi" und „home" redefiniert, wie es in 6(g) dargestellt ist. Auf diese Weise haben wir nun die Konzepte „Titanic", Entertainment ohne „Titanic", „sci-fi" und „home". Von diesen kann „Titanic" nicht mehr redefiniert werden, da es nur einen einzigen Knoten enthält (d.h. es besitzt keine Knoten darunter). Daher ist das Konzept „sci-fi" jenes mit dem höchsten Zuspruch, das mehr als einen Knoten umfasst, womit es als nächstes redefiniert wird, wie es in 6(h) dargestellt ist. Zuletzt wird das Konzept Entertainment ohne „Titanic" redefiniert, wie es in 6(i) dargestellt ist.
  • Somit liegen am Ende des Redefinitionsprozesses im Beispiel von 6(d) bis 6(i) unter der Annahme, dass sechs aufbereitete Variable angestrebt wurden, die aufbereiteten Variablen „Titanic", „Flubber", Entertainment ohne Titanic und ohne Flubber, „Plan 9", sci-fi ohne Plan 9 und „Home" vor.
  • In einer Ausführungsform besitzt der spezifische Algorithmus zur Zusammenfassung in aufbereitete Variable aus rohen Variablen folgende Form:
  • Algorithmus AbstractRawVariables
    Figure 00210001
  • Es wird angemerkt, dass einige Datensätze Gruppen von Variablen enthalten können, die nicht zusammengeführt werden können, wie zum Beispiel, wenn eine Gruppe von Variablen der Zahl der Produkte, die eine Person gekauft hat, und eine andere Gruppe der Zahl der Artikel, die ein Benutzer gelesen hat, entspricht. In Fällen wie diesen wird unterstellt, dass es eine endliche Anzahl von Typen zur Zusammenfassung, die durch die Gruppe definiert werden, gibt, und dass jeder Rohvariablen ein solcher Typ zugewiesen wird. Enthält eine Datengruppe mehr als einen Abstraktionstyp, dann wird der Algorithmus wie oben für jeden Abstraktionstyp getrennt ausgeführt.
  • Mit Bezug auf 6(j) wird nun ein System zur Zusammenfassung der aufbereiteten Variablen aus rohen Variablen nach einer Ausführungsform der Erfindung dargestellt. Das System aus 6(j) umfasst einen Datensatz 650, einen Abstraktor 652 und die aufbereiteten Variablen 654. Sowohl der Datensatz 650 als auch die aufbereiteten Variablen 654 können in einer Ausführungsform als Daten auf einem computerlesbaren Medium wie etwa in einem Speicher oder auf einer Festplatte gespeichert sein. Der Abstraktor 652 kann in einer Ausführungsform ein Computerprogramm sein, das durch einen Prozessor von einem computerlesbaren Medium ausgeführt werden kann. Die Erfindung unterliegt jedoch keiner solchen Einschränkung.
  • Der Datensatz 650 stellt vorzugsweise ein reales Ereignis oder Ereignisse dar – zum Beispiel die Artikel, die von Nutzern einer Webseite gelesen werden, die Fernsehsendungen, die von Zuschauern gesehen werden etc. Der Datensatz umfasst eine Vielzahl von Einträgen. Jeder Eintrag besitzt mindestens ein Attribut. Der Satz aller Attribute wird als der Attributsatz für den Problembereich bezeichnet. Jedes Attribut besitzt einen Standardwert. Im Allgemeinen sieht der Datensatz vorzugsweise so aus, dass die meisten Attributwerte für einen gegebenen Eintrag gleich dem Standardwert sind, obwohl die Erfindung keiner solchen Einschränkung unterliegt. Jedes Attribut wird auch als Rohvariable bezeichnet und kann eine Transaktions- oder eine Nicht-Transaktionsvariable sein, wie bereits beschrieben wurde. So besitzt jeder Eintrag einen Wert für jede rohe Transaktionsvariable. Die rohen Transaktionsvariablen sind vorzugsweise in einer Knotenhierarchie organisiert.
  • Darüber hinaus fasst der Abstraktor 652 die aufbereiteten Transaktionsvariablen 654 aus den rohen Transaktionsvariablen im Datensatz 650 zusammen. In einer Ausführungsform erfolgt dies nach den Verfahren in 6(b) und 6(c), wie bereits beschrieben wurde. Somit sind die aufbereiteten Transaktionsvariablen 654 das Ergebnis, was auch schon in Verbindung mit 6(b) und 6(c) beschrieben wurde.
  • Sobald die aufbereiteten Variablen zum Beispiel durch die Schicht 502 aus 5(a) zusammengefasst sind, muss die Familie der Verteilungen für jede aufbereitete Variable ermittelt werden – zum Beispiel ebenfalls durch die Schicht 502 aus 5(a). Bei den Nicht-Transaktionsvariablen wird so vorgegangen, wie es in den nachfolgenden Abschnitten der detaillierten Beschreibung ausgeführt ist. Bei den Transaktionsvariablen wird wie nachfolgend beschrieben vorgegangen.
  • Wenn eine rohe oder aufbereitete Variable eine Anzahl von Werten j oder weniger aufweist, wobei j ein vorgegebener Wert ist, dann wird diese mit einer multinomialen Verteilung modelliert, wie es in der Technik weithin bekannt ist. Wenn sie mehr als j Werte besitzt, dann wird diese mit einer binomialen log-Gauß-Verteilung modelliert, wie es in der Technik ebenfalls weithin bekannt ist. Die binomiale Verteilung wird zur Modellierung, ob der Wert der Variablen Null ist oder nicht, angewandt und die log-Gauß-Verteilung wird insbesondere zur Modellierung des Logarithmus des Wertes der Variablen für die Fälle verwendet, in denen der Wert größer als Null ist. In einer Ausführungsform ist j mit 7 vorbelegt.
  • Wie bereits in diesem Abschnitt der detaillierten Beschreibung beschrieben wurde, wird angenommen, dass ein Anwender Vorhersagen für alle rohen Variablen wünscht. Wie für die durchschnittlichen Kenner der Technik ersichtlich ist, können in einigen Situationen jedoch die Anwender nur für eine Teilmenge aller rohen Variablen Vorhersagen wünschen. Zum Beispiel können in einer Anwendung über Buchkäufe die Anwender Vorhersagen nur für Bücher mit Bezug zur Belletristik, nur für Bücher mit Bezug zur Sci-Fi oder nur für Bücher mit Bezug zur Wohnung wünschen. In solchen Situationen können die oben beschriebenen Verfahren und Algorithmen so modifiziert werden, dass eine bestimmte Anzahl von Konzepten, die jeder Kategorie, die der Anwender auswählt, zugrunde liegen, erzwungen wird, unter der Annahme, dass die Hierarchie der Kategorien, die für den Anwender verfügbar sind, kompatibel ist zu der Hierarchie, die für die Zusammenfassung der Variablen angewendet wird.
  • Erzeugen eines Modells für rohe Variable aus einem Modell für aufbereitete Variable
  • In diesem Abschnitt wird eine Beschreibung vorgestellt, wie ein Modell für rohe (Transaktions-)Variable aus einem vorher erzeugten Modell für aufbereitete (erzeugte) Variable erzeugt wird, in der Weise, wie die Fachausdrücke vorher definiert wurden. Die Erzeugung wird in einer Ausführungsform durch die zweite Lernmaschine 512 aus 5(a) ausgeführt. So erhält die zweite Lernmaschine die rohen Daten, die Verteilungsfamilien und die Werte für die rohen Variablen und das Modell für aufbereitete Daten und erzeugt dann ein Modell für die rohen Variablen. Es wird jedoch angemerkt, dass die Erzeugung eines Modells für die rohen Variablen nach diesem Abschnitt nicht auf die Implementierung durch eine Lernmaschine wie die zweite Lernmaschine 512 aus 5(a) begrenzt ist, wie für die durchschnittlichen Kenner der Technik ersichtlich werden kann.
  • Es wird nun ein computerimplementiertes Verfahren in Verbindung mit und mit Bezug auf 4(a) beschrieben. Das computerimplementierte Verfahren ist bevorzugt zumindest teilweise in einem oder mehreren Programmen, die auf einem Computer laufen, realisiert – das heißt, als Programm, das von einem computerlesbaren Medium wie etwa einem Speicher durch einen Prozessor eines Computers ausgeführt wird. Die Programme sind zum Vertrieb und zur Installation und Ausführung auf einem anderen Computer bevorzugt auf einem maschinenlesbaren Medium wie einer Floppy-Disk oder einer CD-ROM gespeichert.
  • Im Schritt 400 wird ein erstes Datenmodell eingegeben. Das erste Datenmodell ist für eine Vielzahl von aufbereiteten Transaktionsvariablen, die aus einer Vielzahl von rohen Transaktionsvariablen für einen Datensatz zusammengefasst wurden und die bereits erzeugt worden sein können. Der Datensatz selbst stellt vorzugsweise ein reales Ereignis oder Ereignisse dar – zum Beispiel die Artikel, die von Nutzern einer Webseite gelesen werden, die Fernseh sendungen, die von Zuschauern gesehen werden etc. Der Datensatz umfasst eine Vielzahl von Einträgen. Jeder Eintrag besitzt mindestens ein Attribut. Der Satz aller Attribute wird als der Attributsatz für den Problembereich bezeichnet. Jedes Attribut besitzt einen Standardwert. Im Allgemeinen sieht der Datensatz vorzugsweise so aus, dass die meisten Attributwerte für einen gegebenen Eintrag gleich dem Standardwert sind, obwohl die Erfindung keiner solchen Einschränkung unterliegt. Jedes Attribut wird auch als Rohvariable bezeichnet und kann eine Transaktions- oder eine Nicht-Transaktionsvariable sein, wie bereits beschrieben wurde. So besitzt jeder Eintrag einen Wert für jede rohe Transaktionsvariable.
  • In Schritt 402 wird der Typ des ersten Datenmodells für die aufbereiteten Transaktionsvariablen ermittelt. In der Ausführungsform aus 4(a) kann der Typ einer von zwei unterschiedlichen sein: das Bayes'sche Netz und das natürliche Cluster-Modell nach Bayes. Genauer gesagt gibt es im ersten Fall ein Bayes'sches Netz in der lokalen Verteilung für jede Variable, das aus einem Entscheidungsgraphen besteht, wie es an sich bekannt ist. Das Netz kann zyklisch oder azyklisch sein, wie für die durchschnittlichen Kenner der Technik ersichtlich werden kann.
  • Als Nächstes wird ein zweites Datenmodell, diesmal für die rohen Transaktionsvariablen erzeugt, das auf dem ersten Datenmodell und dessen Typ basiert. Die Schritte 404, 406, 408, 410, 412, 414, 416, 418, 420 und 422 des Verfahrens in 4(a) werden ausgeführt, um das zweite Datenmodell in einer Ausführungsform zu erzeugen. Die Erfindung selbst ist jedoch nicht notwendigerweise darauf beschränkt.
  • Wenn in Schritt 404 zuerst festgestellt wird, dass das erste Datenmodell vom Typ Bayes'sches Netz ist, dann geht das Verfahren mit den Schritten 406 oder 410, entsprechend den unterschiedlichen Ausführungsformen der Erfindung, weiter. Wenn die Ausführungsform, die mit Schritt 406 beginnt, gewünscht wird, dann wird in den Schritten 406 und 408 ein zweites Datenmodell in der Weise erzeugt, dass auch das zweite Datenmodell vom Typ Bayessches Netz ist, so dass es ein Bayes'sches Netz in der lokalen Verteilung für jede rohe Variable gibt, die aus einem Entscheidungsgraph besteht, wie für die durchschnittlichen Kenner der Technik ersichtlich werden kann.
  • Der Aufbau des Entscheidungsgraphen für die lokale Verteilung jeder rohen Transaktionsvariablen wird insbesondere in den Schritten 406 und 408 durchgeführt. In Schritt 406 wird die Struktur des Entscheidungsgraphen für die lokale Verteilung der rohen Transaktionsvariablen erzeugt, indem die Struktur des Entscheidungsgraphen für die lokale Verteilung der aufbereiteten Transaktionsvariablen, die die rohe Transaktionsvari able einschließt (das heißt, die aufbereitete Transaktionsvariable, die von der rohen Transaktionsvariablen abgeleitet ist, enthält diese rohe Transaktionsvariable), kopiert wird. Als Nächstes werden in Schritt 408 die Wahrscheinlichkeiten für jeden aus der Vielzahl von Blättern des Entscheidungsgraphen für den rohen Transaktionsgraphen neu gelernt unter Nutzung (d.h. auf Basis) der Vielzahl von rohen Transaktionsvariablen, wie es von durchschnittlichen Kennern der Technik verstanden wird. In einer Ausführungsform können die Wahrscheinlichkeiten wie allgemein bekannt geglättet werden. So besitzt der resultierende Graph für jede rohe Transaktionsvariable eine Struktur, die von einer aufbereiteten Transaktionsvariablen, die die rohe Transaktionsvariable einschließt, kopiert wird, die jedoch verschiedene (neu gelernte) Wahrscheinlichkeiten enthält, die auf den rohen Transaktionsvariablen selbst basieren. Auf diese Weise wird ein zweites Datenmodell für die rohen Transaktionsvariablen erzeugt.
  • In einer anderen Ausführungsform der Erfindung wird – beginnend mit Schritt 410 – ein zweites Datenmodell für die rohen Transaktionsvariablen auf eine unterschiedliche Weise erzeugt. In Schritt 410 wird auch ein Entscheidungsgraph für jede rohe Transaktionsvariable erzeugt, jedoch nicht durch das Kopieren der Struktur der aufbereiteten Transaktionsvariablen, die die rohe Transaktionsvariable einschließt. Vielmehr wird jeder Entscheidungsgraph von neuem erzeugt, indem nur jene rohen Variablen verwendet werden, die in dem Entscheidungsgraphen für die aufbereitete Variable erscheinen, die die rohe Variable einschließt, für die der Entscheidungsgraph erzeugt werden soll, wie es von durchschnittlichen Kennern der Technik verstanden wird. Das bedeutet, dass ein Entscheidungsgraph für die lokale Verteilung jeder rohen Transaktionsvariablen aufgebaut wird, der nur auf jenen rohen Transaktionsvariablen basiert, die in dem Entscheidungsgraphen für die lokale Verteilung der aufbereiteten Transaktionsvariablen, die die rohe Transaktionsvariable einschließt, erscheinen.
  • Wenn das erste Datenmodell nicht vom Typ des Bayes'schen Netzes ist, springt der Prozess nach dem Schritt 404 zum Schritt 412. In Schritt 412 wird bestimmt, ob das erste Datenmodell vom Typ des natürlichen Cluster-Modells nach Bayes ist. Wenn ja, geht das Verfahren in 4(a) weiter zu Schritt 414. In den Schritten 414, 416, 418 und 420 wird ein zweites Datenmodell für die rohen Transaktionsvariablen erzeugt, das ebenfalls vom Typ des natürlichen Cluster-Modells nach Bayes ist. Die Schritte 414, 416 und 418 werden je Datensatz ausgeführt, und danach erfolgt der Schritt 420.
  • In Schritt 414 wird jedes rohe Muster (das heißt, ein Eintrag des Datensatzes) in ein entsprechendes aufbereitetes Muster (das heißt, einen entsprechenden aufbereiteten Eintrag) auf der Basis einer vorbestimmten Umformung einer Vielzahl von rohen Transaktionsvariablen in eine Vielzahl von aufbereiteten Transaktionsvariablen überführt, wie es von durchschnittlichen Kennern der Technik verstanden wird. In einer Ausführungsform wird diese vorbestimmte Umformung durch die Schicht 502 aus 5(a) ausgeführt, obwohl die Erfindung keiner solchen Einschränkung unterliegt.
  • In Schritt 416 wird das aufbereitete Muster in das erste Datenmodell für aufbereitete Transaktionsvariable eingegeben, um die Wahrscheinlichkeitsverteilung der Gruppenzugehörigkeit des Musters zu bestimmen, wie es von durchschnittlichen Kennern der Technik verstanden wird. Das bedeutet, dass die Wahrscheinlichkeitsverteilung des entsprechenden aufbereiteten Eintrags auf der Basis des ersten Datenmodells bestimmt wird.
  • In Schritt 418 wird die hinreichende statistische Messzahl für das entwickelte zweite Modell für die rohen Daten entsprechend der Verteilung der Gruppenzugehörigkeit erhöht, wie es von durchschnittlichen Kennern der Technik verstanden wird. Das bedeutet, dass die hinreichenden statistischen Messzahlen für das entwickelte zweite Modell entsprechend der Verteilung der Gruppenzugehörigkeit, die in Schritt 416 bestimmt wird, erhöht werden. Wenn zum Beispiel p(Gruppe j | aufbereitetes Muster) 0,7 ist und die diskrete rohe Variable i den Wert k im entsprechenden aufbereiteten Muster annimmt, wird der Zähler für die rohe Variable i in der Gruppe j um 0,7 erhöht.
  • Sobald alle rohen Einträge den Prozess in den Schritten 414, 416 und 418 durchlaufen haben, werden in Schritt 420 die Verteilungen des natürlichen Modells nach Bayes für die rohen Variablen (das heißt, das zweite Modell) aus den hinreichenden statistischen Messzahlen, die in den Iterationen in Schritt 418 angewachsen sind, bestimmt. Das heißt, die Verteilungen des zweiten Datenmodells werden aus den hinreichenden statistischen Messzahlen für das zweite Datenmodell bestimmt, wie es von durchschnittlichen Kennern der Technik verstanden wird. In einer besonderen Ausführungsform basiert die Bestimmung der Verteilungen des zweiten Modells ebenfalls auf einer früheren Verteilung, indem sie statistische Standardverfahren, wie sie üblich sind, zusätzlich zu den hinreichenden statistischen Messzahlen anwendet, obwohl die Erfindung keiner solchen Einschränkung unterliegt.
  • In einer weiteren Ausführungsform der Erfindung wird ein zweites Datenmodell wie folgt erzeugt (anstelle der Durchführung der Schritte 406 und 408, der Durchführung des Schritts 410 beziehungsweise der Schritte 414, 416, 418 und 420, was in 4(a) nicht gesondert dargestellt ist). In dieser Ausführungsform wird ein erstes Modell für die aufbereiteten Variablen zu Beginn nicht erzeugt; stattdessen wird das zweite Modell direkt aus den Eingaben der rohen und aufbereiteten Daten aufgebaut. Zuerst wird ein Bayes'sches Netz aufgebaut, in dem jede lokale Verteilung einen Entscheidungsgraphen enthält, wie es bereits beschrieben worden ist. Für jede rohe Variable wird der Entscheidungsgraph unter Verwendung der aufbereiteten Variablen als Eingangsvariable (als Gegenstück zu den rohen Variablen) erzeugt. Wenn jedoch die rohe Variable, für die der Entscheidungsgraph erzeugt wird, in einer der aufbereiteten Eingangsvariablen enthalten ist, wird in einer Ausführungsform diese rohe Variable aus der aufbereiteten Variablen für diesen Entscheidungsgraphen entfernt. Wenn zum Beispiel ein Entscheidungsgraph für die rohe Variable, die dem Buch „Armageddon" zugeordnet ist, erzeugt worden ist und eine der aufbereiteten Variablen „Sci Fi Books" einschließlich dieses Buchs darstellt, wird für den Zweck, einen Entscheidungsgraphen für „Armageddon" zu erzeugen, die aufbereitete Variable in „Sci Fi Books außer Armageddon" geändert.
  • Sobald ein zweites Datenmodell entweder durch die Ausführung der Schritte 406 und 408, durch die Ausführung des Schritts 410, durch die Ausführung der Schritte 414, 416, 418 und 420 oder durch das eben beschrieben Verfahren erzeugt wurde, setzt das Verfahren mit dem Schritt 422 fort. In Schritt 422 wird das zweite Datenmodell ausgegeben. Die Erfindung ist nicht in der Weise, wie die Ausgabe durchgeführt wird, beschränkt. In einer Ausführungsform kann zum Beispiel die Ausgabe an ein weiteres Analyseprogramm oder an eine Softwarekomponente erfolgen, die weitere Analysen und Schlussfolgerungen erlaubt. Als weiteres Beispiel kann die Ausgabe auf einem Anzeigegerät angezeigt werden oder auf einem Drucker ausgedruckt werden etc. Es wird jedoch angemerkt, dass das Verfahren ohne die Erzeugung eines zweiten Datenmodells mit dem Schritt 422 fortsetzt, wenn das erste Datenmodell nicht vom Typ eines Bayes'schen Netzes oder eines natürlichen Cluster-Modells nach Bayes ist. In diesem Fall kann in einer Ausführungsform in Schritt 422 eine Fehlernachricht erzeugt werden.
  • Es wird ferner angemerkt, dass ein Modell für rohe Variable vom Typ des Bayes'schen Netzes (Entscheidungsgraph) leicht für die Vorhersagezwecke herangezogen werden kann, ein Modell für rohe Variable vom Typ des natürlichen Cluster-Modells nach Bayes, wie es entsprechend den Schritten 414, 416, 418 und 420 in 4(a) aufgebaut wurde, hingegen nicht herangezogen werden kann, wie den durchschnittlichen Kennern der Technik bewusst ist. Um Vorhersagen machen zu können, müssen stattdessen die natürlichen Cluster-Modelle nach Bayes sowohl für die rohen als auch für die aufbereiteten Variablen (das heißt, sowohl die ersten als auch die zweiten Datenmodelle) zusammen wie folgt angewendet werden. Zuerst wird das rohe Muster in ein aufbereitetes Muster nach einer vorbestimmten Umformung umgeformt und dem Modell für aufbereitete Variable (dem ersten Modell) übergeben. Dieses Modell wiederum wird zur Bestimmung der Verteilung der Gruppenzugehörigkeit des Musters verwendet. Zuletzt wird die Vorhersage für eine bestimmte Variable gemacht, indem die Vorhersagen für Supercluster (das heißt, die bedingten Verteilungen) im natürlichen Modell nach Bayes für die rohen Variablen unter Verwendung der Verteilung der Gruppenzugehörigkeit zur Durchschnittsbildung gemittelt werden.
  • Nun wird ein System zur Erzeugung eines Modells für rohe Variable aus einem Modell für aufbereitete Variable in Verbindung mit 4(b) beschrieben. Das System in 4(b) umfasst ein erstes Datenmodell für aufbereitete Variable 430, einen Generator 432 und ein zweites Datenmodell für rohe Variable 434. Beide Datenmodelle 430 und 434 können in einer Ausführungsform als Daten auf einem computerlesbaren Medium wie etwa in einem Speicher oder auf einem Festplattenlaufwerk gespeichert sein. Der Generator 432 kann in einer Ausführungsform ein Computerprogramm sein, das durch einen Prozessor von einem computerlesbaren Medium wie einem Speicher ausgeführt wird. Die Erfindung unterliegt jedoch keiner solchen Einschränkung.
  • Das erste Datenmodell für aufbereitete Variable 430 ist so gestaltet, dass die aufbereiteten Variablen vorher aus rohen Transaktionsvariablen zusammengestellt worden sind, wobei den rohen Transaktionsvariablen ein Datensatz mit einer Vielzahl von Einträgen (jeder Eintrag besitzt einen Wert für jede rohe Variable) zugrunde liegt. Der Generator 432 erzeugt basierend auf dem ersten Datenmodell 430 und einem Typ des ersten Datenmodells (d.h., Bayes'sches Netz, natürliches Cluster-Modell nach Bayes, etc.) das zweite Datenmodell für rohe Variable 434. In einer Ausführungsform wird dies nach dem Verfahren in 4(a) durchgeführt, das bereits beschrieben wurde. So erhält man als Ergebnis ein zweites Datenmodell für rohe Variable 434, das ebenfalls bereits in Verbindung mit 4(a) beschrieben wurde.
  • Bestimmung, ob eine Variable numerisch oder nicht-numerisch ist
  • In diesem Abschnitt wird eine Beschreibung ausgeführt, wie bestimmt werden kann, ob eine Variable numerisch oder nicht-numerisch ist. Die Bestimmung wird in einer Ausführungsform durch die Schicht 502 in 5(a) vorgenommen, um zu bestimmen, welche Verteilungsfamilie für Nicht-Transaktionsvariable verwendet werden soll. Wenn die Variable numerisch ist, kommt gemäß dem nächsten Abschnitt der detaillierten Beschreibung zum Bei spiel eine Gauß- oder eine log-Gauß-Verteilung für diese Variable zum Einsatz. In einem weiteren Beispiel wird eine Multinomialverteilung angewendet, wenn die Variable nicht-numerisch zu sein hat. Es wird jedoch angemerkt, dass die Erfindung auf diese Anwendung für die in diesem Abschnitt beschriebene Bestimmung, ob eine Variable numerisch oder nicht-numerisch ist, nicht beschränkt ist.
  • Allgemein wird angemerkt, dass eine grundlegende Unterscheidung bei einer Variablen darüber gemacht werden kann, ob sie numerisch ist oder nicht. Ein Beispiel für eine numerische Variable ist das Alter, während ein Beispiel für eine nicht-numerische Variable die Berufstätigkeit ist. Im Allgemeinen ist die Unterscheidung numerisch/nicht-numerisch nicht unbedingt darauf bezogen, ob die Werte der Variablen Zahlen sind oder nicht. Die Werte einer Variablen können numerisch kodiert sein. Somit hat die Unterscheidung numerisch/nicht-numerisch damit zu tun, ob benachbarte Werte einige Ähnlichkeiten aufweisen oder nicht. Ein passendes Beispiel bietet zum Beispiel die Ortskennzahl. Obwohl die Werte dieser Variablen Zahlen sind, ist die Variable nicht-numerisch, da benachbarte Werte keinen Bezug zueinander haben (zum Beispiel steht 212 für New York, 213 für Los Angeles). Im Gegensatz dazu ist die Postleitzahl eine numerische Variable, da im Fall zweier nahe beieinander liegender Postleitzahlen die Regionen in den Vereinigten Staaten, die durch diese Postleitzahlen repräsentiert werden, ebenfalls physisch nahe beieinander liegen.
  • Ein Beispiel von numerischen verglichen mit nicht-numerischen Variablen ist in 2(a) und 2(b) dargestellt. Im Histogramm 200 von 2(a) liegen die Zähler für benachbarte Werte nahe beieinander, womit sie folglich eine numerische Variable darstellen. Im Gegensatz dazu liegen die Zähler für benachbarte Werte im Histogramm 202 von 2(b) weit auseinander, womit sie folglich eine nicht-numerische Variable darstellen.
  • Nun wird ein computerimplementiertes Verfahren zur Bestimmung, ob eine Variable numerisch oder nicht-numerisch ist, in Verbindung mit und mit Bezug auf 2(c) beschrieben. Das computerimplementierte Verfahren ist bevorzugt zumindest teilweise in einem oder mehreren Programmen, die auf einem Computer laufen, realisiert – das heißt, als Programm, das von einem computerlesbaren Medium wie etwa einem Speicher durch einen Prozessor eines Computers ausgeführt wird. Die Programme sind zum Vertrieb und zur Installation und Ausführung auf einem anderen Computer bevorzugt auf einem maschinenlesbaren Medium wie einer Floppy-Disk oder einer CD-ROM gespeichert.
  • In Schritt 204 wird eine Variable mit einer Vielzahl von Werten eingegeben, wobei jeder Wert einen Zähler aufweist. In einer Ausführungsform ist die Variable eine nicht-numerische Variable. Der Zähler für jede Variable ist in einer Ausführungsform die Anzahl der Einträge innerhalb eines Datensatzes, die diesen Wert für die Variable haben. Als Beispiel soll eine Variable die Werte 1, 2, 3 mit den entsprechenden Zählern 10, 15, 5 haben. Dies bedeutet, dass in einer Ausführungsform 10 Einträge den Wert 1 für die Variable, 15 Einträge den Wert 2 für die Variable und 5 Einträge den Wert 3 für die Variable aufweisen.
  • Als Nächstes wird bestimmt, ob die Variable numerisch oder nicht-numerisch ist, indem die Dichte der Zähler von benachbarten Werten der Variablen beurteilt wird, wie bereits in Verbindung mit 2(a) und 2(b) beschrieben wurde. Die Schritte 206, 208, 210, 212, 214, 216, 218 und 220 aus 2(c) im Verfahren von 2(c) werden ausgeführt, um in einer Ausführungsform diese Bestimmung durchzuführen. Die Erfindung selbst ist jedoch nicht darauf beschränkt.
  • Zuerst wird in Schritt 206 bestimmt, ob irgendein Wert der Variablen eine nicht-numerischen Benennung aufweist. Zum Beispiel kann eine Variable die Werte 2, 4, 8, 10 besitzen, die alle numerischen Werte darstellen. Im Gegensatz hierzu kann eine Variable in einem ihrer Werte „rot" oder „blau" aufweisen, was einen nicht-numerischen Wert darstellt. Wenn für irgendeinen Wert der Variablen eine nicht-numerische Benennung bestimmt wird, dann setzt das Verfahren mit Schritt 208 fort, in dem befunden wird, dass die Variable selbst als nicht-numerisch gilt. (Wenn es jedoch mehr als eine vorbestimmte Anzahl von Werten für die Variable gibt, wie etwa über 100 Werte, und irgendwelche dieser Werte einen nicht-numerische Benennung ausweisen, wird diese Variable in einer Ausführungsform als abzulehnen erachtet und wird deshalb nicht verwendet. Ferner, wenn es nur einen Wert für die Variable gibt, wird die Variable ungeachtet dessen, ob er einen numerische oder eine nicht-numerische Benennung ausweist, in einer Ausführungsform als abzulehnen erachtet und wird deshalb nicht verwendet.)
  • Andernfalls wird in Schritt 210 bestimmt, ob die Gesamtzahl der Werte für die Variable größer ist als ein erster vorgegebener Schwellenwert. In einer Ausführungsform liegt dieser Schwellenwert bei 100. Wenn die Anzahl unterschiedlicher Werte für die Variable größer ist als 100, setzt das Verfahren mit Schritt 212 fort, in dem die Variable als numerisch festgelegt wird.
  • Andernfalls wird in Schritt 214 bestimmt, ob die Gesamtzahl der Werte für die Variable kleiner ist als ein zweiter vorgegebener Schwellenwert. In einer Ausführungsform liegt dieser Schwellenwert bei 8. Wenn die Anzahl unterschiedlicher Werte für die Variable kleiner ist als 8, dann setzt das Verfahren daher mit Schritt 216 fort, in dem die Variable als nicht-numerisch festgelegt wird.
  • Somit bestimmen die Prüfungen in den Schritten 206, 210 und 214 zuerst, ob alle Werte der Variablen eine numerische Benennung aufweisen; wenn einige keine numerische Benennung aufweisen, ist die Variable nicht-numerisch. Wenn es mehr als 100 Werte (in einer Ausführungsform) gibt, wird angenommen, dass die Variable numerisch ist, wenn es jedoch weniger als 8 Werte (in einer Ausführungsform) sind, wird angenommen, dass die Variable nicht-numerisch ist. Liegen zwischen 9 und 99 Werte (in einer Ausführungsform) vor, wird eine statistische Analyse durchgeführt, mit der bestimmt wird, ob die Variable numerisch oder nicht-numerisch ist.
  • In einer Ausführungsform wird die statistische Analyse wie folgt in Schritt 218 durchgeführt, obwohl die Erfindung nicht derart beschränkt ist. Die statistische Analyse wird an einem Histogramm der Werte der Variablen, wie etwa den Histogrammen von 2(a) und 2(b), die beschrieben wurden, vorgenommen. Zuerst wird eine Summe der Zähler der Werte der Variablen berechnet. Die Zähler werden dann zufällig vertauscht, und eine zweite Summe der Zähler der Werte wird neu berechnet. Es werden der Mittelwert und die Standardabweichung der zweiten Summe bestimmt, und auf dieser Grundlage wird bestimmt, ob die Variable numerisch oder nicht-numerisch ist. In einer Ausführungsform erfolgt die Bestimmung, indem ermittelt wird, ob der Mittelwert minus der ersten Summe größer als das Zweifache der Standardabweichung ist; wenn ja, wird die Variable als numerisch bestimmt, andernfalls wird die Variable als nicht-numerisch bestimmt.
  • Weiterhin mit Bezug auf 2(c) setzt das Verfahren, sobald in den Schritten 208, 212, 216 oder 218 die Bestimmung der Variablen als numerisch oder nicht-numerisch erfolgt ist, mit dem Schritt 220 fort, in dem ausgegeben wird, ob die Variable numerisch oder nicht-numerisch ist. Die Erfindung ist nicht in der Weise, wie die Ausgabe durchgeführt wird, beschränkt. In einer Ausführungsform kann zum Beispiel die Ausgabe an ein weiteres Analyseprogramm oder an eine Softwarekomponente erfolgen, was weitere Analysen und Schlussfolgerungen erlaubt. Als weiteres Beispiel kann die Ausgabe auf einem Anzeigegerät angezeigt werden oder auf einem Drucker ausgedruckt werden etc.
  • In einer Ausführungsform wird ein spezifischer Algorithmus zur Bestimmung, ob eine Variable numerisch oder nicht-numerisch ist, wie folgt verwendet:
  • Hauptroutine:
    Figure 00320001
  • Subroutine:
    Figure 00320002
  • Figure 00330001
  • Es wird nun ein System zur Bestimmung, ob eine Variable numerisch oder nicht-numerisch ist, in Verbindung mit 2(d) beschrieben. Das System in 2(d) umfasst eine Variable 222, einen Determinator 224 und einen Bitschalter 226. Sowohl die Variable 222 als auch der Bitschalter 226 können in einer Ausführungsform als Daten auf einem computerlesbaren Medium wie etwa in einem Speicher oder auf einem Festplattenlaufwerk gespeichert sein. Der Determinator 224 kann in einer Ausführungsform ein Computerprogramm sein, das durch einen Prozessor von einem computerlesbaren Medium wie einem Speicher ausgeführt wird. Die Erfindung selbst ist jedoch nicht darauf beschränkt.
  • Wie in 2(d) dargestellt besitzt die Variable 222 eine Vielzahl von Werten 1 ... n, wobei jeder Wert einen entsprechenden Zähler aufweist. Der Determinator 224 ermittelt, ob die Variable 222 numerisch oder nicht-numerisch ist, indem er die Dichte der Zähler für benachbarte Werte der Variablen beurteilt; in einer Ausführungsform wird dies nach dem Verfahren aus 2(c), das beschrieben wurde, durchgeführt. Der Determinator 224 setzt dann den Bitschalter in Übereinstimmung mit seiner Ermittlung. Der Bitschalter besitzt in einer Ausführungsform einen Booleschen Wert wie etwa TRUE/WAHR, wenn die Variable numerisch ist, und FALSE/FALSCH, wenn die Variable nicht-numerisch ist; die Erfindung ist jedoch nicht darauf beschränkt.
  • Bestimmung, ob eine numerische Variable einer Gauß-Verteilung oder einer log-Gauß-Verteilung unterliegt
  • In diesem Abschnitt wird eine Beschreibung ausgeführt, wie bestimmt werden kann, ob einer numerischen (Nicht-Transaktions-)Variablen nach einer Ausführungsform der Erfindung eine Gauß-Verteilung oder eine log-Gauß-Verteilung unterlegt werden sollte. Diese Bestimmung wird in einer Ausführungsform durch die Schicht 502 in 5(a) vorgenommen. Es wird jedoch angemerkt, dass die Erfindung nicht auf die Bestimmung durch die Schicht beschränkt ist. Ferner können durchschnittliche Kenner der Technik verstehen, dass eine numerische Variable auch anderen Verteilungen neben der Gauß-Verteilung oder log-Gauß-Verteilung unterliegen kann.
  • Die vorliegende Beschreibung basiert auf der Erkenntnis, dass die Verteilung, die gewählt werden sollte, diejenige mit der besten Vorhersage neuer Daten ist. Um das zu erreichen, wird eine Bestimmung mit zwei Zufallsstichproben der Variablen aus dem Datensatz gemacht – zum Beispiel solche, bei denen jede Zufallsstichprobe 1000 Fälle (Einträge) aus dem Datensatz umfasst, die Werte für die Variable aufweisen. Eine der Zufallsstichproben wird dazu verwendet, die Parameter eines Modells lernend anzupassen (z.B., die Parameter einer Gauß- oder einer log-Gauß-Verteilung, wie es durchschnittliche Kenner der Technik kennen und verstehen), während die andere Zufallsstichprobe dazu verwendet wird, zu bestimmen, wie gut das trainierte Modell neue Daten vorhersagt (d.h., diese zweite Zufallsstichprobe stellt die „neuen" Daten dar).
  • Nun wird ein computerimplementiertes Verfahren in Verbindung mit und in Bezug auf 3(a) beschrieben. Das computerimplementierte Verfahren ist bevorzugt zumindest teilweise in einem oder mehreren Programmen, die auf einem Computer laufen, realisiert – das heißt, als Programm, das von einem computerlesbaren Medium wie etwa einem Speicher durch einen Prozessor eines Computers ausgeführt wird. Die Programme sind zum Vertrieb und zur Installation und Ausführung auf einem anderen Computer bevorzugt auf einem maschinenlesbaren Medium wie einer Floppy-Disk oder einer CD-ROM gespeichert.
  • In Schritt 228 wird ein Datensatz eingegeben. Der Datensatz stellt vorzugsweise ein reales Ereignis oder Ereignisse dar – zum Beispiel die Artikel, die von Nutzern einer Webseite gelesen werden, die Fernsehsendungen, die von Zuschauern angesehen werden etc. Jeder Eintrag besitzt mindestens ein Attribut. Der Satz aller Attribute wird als der Attributsatz für den Problembereich bezeichnet. Jedes Attribut besitzt einen Standardwert. Im Allgemeinen sieht der Datensatz vorzugsweise so aus, dass die meisten Attributwerte für einen gegebenen Eintrag gleich dem Standardwert sind, obwohl die Erfindung keiner solchen Einschränkung unterliegt. Jedes Attribut wird auch als Rohvariable bezeichnet und kann eine Transaktionsvariable oder eine Nicht-Transaktionsvariable sein, wie es beschrieben wurde. Mindestens eine Variable ist eine numerische Variable.
  • Als Nächstes wird bestimmt, ob eine Gauß- oder eine log-Gauß-Verteilung die numerischen Variablen auf Basis der Vielzahl von Einträgen besser vorhersagt. Die Schritte 230, 232, 234, 236 und 238 der Methode in 3(a) werden ausgeführt, um in einer Ausführungsform diese Bestimmung durchzuführen. Die Erfindung selbst ist jedoch nicht darauf beschränkt. Es wird auch angemerkt, dass die Begriffe Gauß- und log-Gauß-Verteilung Kurzbegriffe darstellen, für die bereits die durchschnittlichen Kenner der Technik erkennen, dass sie genauer als binomiale Gauß- und binomiale log-Gauß-Verte lungen bezeichnet werden.
  • Zuerst werden in Schritt 230 zwei Muster, ein Trainingsmuster und ein Testmuster, ausgewählt. Jedes Muster umfasst die Werte für die numerische Variable aus einer vorbestimmten Anzahl von Einträgen des Datensatzes. In einer Ausführungsform liegt die vorbestimmte Anzahl bei 1000, obwohl die Erfindung selbst nicht darauf beschränkt ist.
  • Als Nächstes werden in Schritt 232 Modelle für das Trainingsmuster gewonnen, indem die Parameter eines Modells lernend angepasst werden – ein Gauß-Modell (d.h. Verteilung) und ein log-Gauß-Modell (d.h. Verteilung). Auf diese Weise werden in Schritt 232 durch die lernende Anpassung der Parameter für die Modelle, wie allgemein üblich, sowohl ein log-Gauß-Modell als auch ein Gauß-Modell für das Trainingsmuster gewonnen. Danach wird in Schritt 234 bestimmt, welches dieser Modelle die Werte für die numerische Variable im Testmuster besser vorhersagt. Wenn es das Gauß-Modell ist, wird diese Verteilung in Schritt 236 ausgewählt; andernfalls wird, wenn es das log-Gauß-Modell ist, jene Verteilung in Schritt 238 ausgewählt.
  • In Schritt 240 wird die gewählte Verteilung ausgegeben. Die Erfindung ist nicht in der Weise, wie die Ausgabe durchgeführt wird, beschränkt. In einer Ausführungsform kann zum Beispiel die Ausgabe an ein weiteres Analyseprogramm oder an eine Softwarekomponente erfolgen, was weitere Analysen und Schlussfolgerungen erlaubt. Als weiteres Beispiel kann die Ausgabe auf einem Anzeigegerät angezeigt werden oder auf einem Drucker ausgedruckt werden etc.
  • In einer Ausführungsform wird, um zu bestimmen, ob eine Gauß- oder log-Gauß-Verteilung für eine numerische Variable eines Datensatzes verwendet werden soll, ein spezifischer Algorithmus wie folgt angewendet:
  • Algorithmus
    Figure 00350001
  • Figure 00360001
  • Nun wird ein System zur Bestimmung, ob eine Gauß- oder eine log-Gauß-Verteilung für eine numerische Variable gewählt werden soll, in Verbindung mit 3(b) beschrieben. Das System in 3(b) umfasst einen Datensatz 300, einen Determinator 302 und einen Bitschalter 304. Sowohl der Datensatz 300 als auch der Bitschalter 304 können in einer Ausführungsform als Daten auf einem computerlesbaren Medium wie etwa in einem Speicher oder auf einem Festplattenlaufwerk gespeichert sein. Der Determinator 302 kann in einer Ausführungsform ein Computerprogramm sein, das durch einen Prozessor von einem computerlesbaren Medium wie einem Speicher ausgeführt wird. Die Erfindung selbst ist jedoch nicht darauf beschränkt.
  • Der Datensatz 300 besitzt eine Vielzahl von Einträgen. Jeder Eintrag weist einen Wert für jede Variable aus der Vielzahl der rohen Nicht-Transaktionsvariablen auf, wobei die Variablen mindestens eine numerische Variable enthalten, wie es bereits in Verbindung mit dem Schritt 228 in 3(a) beschrieben wurde. Der Determinator 302 bestimmt, ob eine Gauß- oder eine log-Gauß-Verteilung die numerische Variable des Datensatzes besser vorhersagt (im Fall, dass es nur eine numerische Variable gibt). In einer Ausführungsform wird dies nach dem Verfahren aus 3(a) ausgeführt, was bereits beschrieben wurde. Der Determinator 302 setzt dann den Bitschalter 304 in Übereinstimmung mit seiner Ermittlung. Der Bitschalter besitzt in einer Ausführungsform zum Beispiel einen Booleschen Wert wie etwa TRUE/WAHR, wenn die Verteilung, die die numerische Variable besser vorhersagt, eine Gauß-Verteilung ist, und FALSE/FALSCH, wenn die Verteilung, die die numerische Variable besser vorhersagt, eine Nicht-Gauß-Verteilung ist; die Erfindung ist jedoch nicht darauf beschränkt.

Claims (15)

  1. Computerimplementiertes Verfahren für automatisierte Datenanalyse, um Benutzeraktionen auf Basis von Daten realer Ereignisse vorherzusagen, wobei das Verfahren die folgenden durch Computer ausführbaren Schritte umfasst: Eingeben eines Datensatzes (300), der ein reales Ereignis bzw. reale Ereignisse darstellt, wobei der Datensatz eine Vielzahl von Einträgen umfasst, die jeweils eine Variable (222) aufweisen, die Variable (222) eine Vielzahl von Werten hat und jeder Wert einen Zählwert hat, der die Anzahl von Einträgen in dem Datensatz mit diesem Wert für die Variable ist; Bestimmen (206218), ob die Variable numerisch oder nicht-numerisch ist, durch Bewerten von Nähe von Zählwerten für benachbarte Werte der Variable; und Ausgeben (220), ob die Variable numerisch oder nicht-numerisch ist, an ein weiteres Analyseprogramm oder eine weitere Software-Komponente, an eine Anzeigeeinrichtung oder an einen Drucker zum Einsatz bei Mustererkennungs-, Datenmodellierungs- oder Data-Mining-Anwendungen, wobei Bestimmen, ob die Variable numerisch oder nicht-numerisch ist, umfasst: Bestimmen (206), ob kein Wert der Variable einen nicht-numerischen Namen hat; wenn bestimmt wird, dass kein Wert der Variable einen nicht-numerischen Namen hat, Bestimmen (210), ob eine Anzahl der Vielzahl von Werten der Variable größer ist als ein erster vorgegebener Schwellenwert; wenn bestimmt wird, dass die Anzahl der Vielzahl von Werten der Variable größer ist als der erste vorgegebene Schwellenwert, Bestimmen (212), dass die Variable numerisch ist; wenn bestimmt wird, dass kein Wert der Variable einen nicht-numerischen Namen hat, Bestimmen (214), ob eine Anzahl der Vielzahl von Werten der Variable kleiner ist als ein zweiter vorgegebener Schwellenwert; und wenn bestimmt wird, dass die Anzahl der Vielzahl von Werten der Variable kleiner ist als der zweite vorgegebene Schwellenwert, Bestimmen (216), dass die Variable nicht-numerisch ist.
  2. Verfahren nach Anspruch 1, wobei Bestimmen, ob die Variable numerisch oder nicht-numerisch ist, umfasst: Bestimmen (206), ob irgendein Wert der Variable nicht-numerisch ist; und wenn bestimmt wird, dass irgendein Wert der Variable nicht-numerisch ist, Bestimmen (208), dass die Variable nicht-numerisch ist.
  3. Computerimplementiertes Verfahren für automatische Datenanalyse, um Benutzeraktionen auf Basis von Daten realer Ereignisse vorherzusagen, wobei das Verfahren die folgenden durch Computer ausführbaren Schritte umfasst: Eingeben eines Datensatzes (300), der ein reales Ereignis bzw. reale Ereignisse darstellt, wobei der Datensatz eine Vielzahl von Einträgen umfasst, die jeweils eine Variable (222) aufweisen, die Variable (222) eine Vielzahl von Werten hat und jeder Wert einen Zählwert hat, der die Anzahl von Einträgen in dem Datensatz mit diesem Wert für die Variable ist; Bestimmen (206218), ob die Variable numerisch oder nicht-numerisch ist, durch Bewerten von Nähe von Zählwerten für benachbarte Werte der Variable; und Ausgeben (220), ab die Variable numerisch oder nicht-numerisch ist, an ein weiteres Analyseprogramm oder eine weitere Software-Komponente, an eine Anzeigeeinrichtung oder an einen Drucker zum Einsatz bei Mustererkennungs-, Datenmodellierungs- oder Data-Mining-Anwendungen, wobei Bestimmen, ob die Variable numerisch oder nicht-numerisch ist, umfasst: Bestimmen (206), ob kein Wert der Variable einen nicht-numerischen Namen hat; wenn bestimmt wird, dass kein Wert der Variable einen nicht-numerischen Namen hat, Bestimmen (210, 214), ob eine Anzahl der Vielzahl von Werten der Variable größer ist als ein erster vorgegebener Schwellenwert und kleiner als ein zweiter vorgegebener Schwellenwert; und wenn bestimmt wird, dass die Anzahl der Vielzahl von Werten der Variable größer ist als der erste vorgegebene Schwellenwert und kleiner als der zweite vorgegebene Schwellenwert, Bestimmen (218), ob die Variable nicht-numerisch oder numerisch ist, durch Durchführen einer statistischen Analyse eines Histogramms der Vielzahl von Werten.
  4. Verfahren nach Anspruch 3, wobei Durchführen der statistischen Analyse umfasst: Berechnen einer ersten Summe der Zählwerte der Werte der Variable; zufälliges Permutieren der Zählwerte der Werte der Variable; Berechnen einer zweiten Summe der Zählwerte der Werte der Variable, die zufällig permutiert worden sind; Bestimmen eines Mittelwerts und einer Standard-Abweichung der zweiten Summe; und Bestimmen, ob die Variable nicht-numerisch oder numerisch ist, auf Basis des Mittelwerts und der Standard-Abweichung der zweiten Summe.
  5. Maschinenlesbares Medium (22, 25, 27, 29, 31), auf dem Befehle (35, 36, 37, 224, 302, 502) zur Ausführung durch eine Verarbeitungseinrichtung (21) zum Durchführen eines Verfahrens für automatisierte Datenanalyse zum Vorhersagen von Benutzeraktionen auf Basis von Daten realer Ereignisse gespeichert sind, wobei das Verfahren umfasst: Eingeben eines Datensatzes (300), der ein reales Ereignis bzw. reale Ereignisse darstellt, wobei der Datensatz eine Vielzahl von Einträgen umfasst, die jeweils eine Variable (222) aufweisen, die Variable (222) eine Vielzahl von Werten hat und jeder Wert einen Zählwert hat, der die Anzahl von Einträgen in dem Datensatz mit diesem Wert für die Variable ist; Bestimmen, ob die Variable numerisch oder nicht-numerisch ist, durch die Verarbeitungseinrichtung durch Bewerten von Nähe von Zählwerten für benachbarte Werte der Variable; und Ausgeben (220), ob die Variable gemäß der Bestimmung numerisch oder nicht-numerisch ist, durch die Verarbeitungseinrichtung an ein weiteres Analyseprogramm oder eine weitere Software-Komponente, an eine Anzeigeeinrichtung oder an einen Drucker zum Einsatz bei Mustererkennungs-, Datenmodellierungs- oder Data-Mining-Anwendungen, wobei Bestimmen, ob die Variable numerisch oder nicht-numerisch ist, umfasst: Bestimmen (206), ob kein Wert der Variable einen nicht-numerischen Namen hat; wenn bestimmt wird, dass kein Wert der Variable einen nicht-numerischen Namen hat, Bestimmen (210), ob eine Anzahl der Vielzahl von Werten der Variable größer ist als ein erster vorgegebener Schwellenwert; und wenn bestimmt wird, dass die Anzahl der Vielzahl von Werten der Variable größer ist als der erste vorgegebene Schwellenwert, Bestimmen (212), dass die Variable numerisch ist; wenn bestimmt wird, dass kein Wert der Variable einen nicht-numerischen Namen hat, Bestimmen (214), ob eine Anzahl der Vielzahl von Werten der Variable kleiner ist als ein zweiter vorgegebener Schwellenwert; und wenn bestimmt wird, dass die Anzahl der Vielzahl von Werten der Variable kleiner ist als der zweite vorgegebene Schwellenwert, Bestimmen (216), dass die Variable nicht-numerisch ist.
  6. Medium nach Anspruch 5, wobei Bestimmen durch die Verarbeitungseinrichtung, ob die Variable numerisch oder nicht-numerisch ist, umfasst: Bestimmen (206), ob irgendein Wert der Variable einen nicht-numerischen Namen hat; und wenn bestimmt wird, dass irgendein Wert der Variable einen nicht-numerischen Namen hat, Bestimmen (208), dass die Variable nicht-numerisch ist.
  7. Maschinenlesbares Medium (22, 25, 27, 29, 31), auf dem Befehle (35, 36, 37, 224, 302, 502) zur Ausführung durch eine Verarbeitungseinrichtung (21) zum Durchführen eines Verfahrens für automatisierte Datenanalyse zum Vorhersagen von Benutzeraktionen auf Basis von Daten realer Ereignisse gespeichert sind, wobei das Verfahren umfasst: Eingeben eines Datensatzes (300), der ein reales Ereignis bzw. reale Ereignisse darstellt, wobei der Datensatz eine Vielzahl von Einträgen umfasst, die jeweils eine Variable (222) aufweisen, die Variable (222) eine Vielzahl von Werten hat und jeder Wert einen Zählwert hat, der die Anzahl von Einträgen in dem Datensatz mit diesem Wert für die Variable ist; Bestimmen, ob die Variable numerisch oder nicht-numerisch ist, durch die Verarbeitungseinrichtung durch Bewerten von Nähe von Zählwerten benachbarter Zählwerte der Variable; und Ausgeben (220), ob die Variable gemäß der Bestimmung numerisch oder nicht-numerisch ist, durch die Verarbeitungseinrichtung an ein weiteres Analyseprogramm oder eine weitere Software-Komponente, an eine Anzeigeeinrichtung oder an einen Drucker zum Einsatz bei Mustererkennungs-, Datenmodellierungs- oder Data-Mining-Anwendungen, wobei Bestimmen, ob die Variable numerisch oder nicht-numerisch ist, umfasst: Bestimmen (206), ob kein Wert der Variable einen nicht-numerischen Namen hat; wenn bestimmt wird, dass kein Wert der Variable einen nicht-numerischen Namen hat, Bestimmen (210, 214), ob eine Anzahl der Vielzahl von Werten der Variable größer ist als ein erster vorgegebener Schwellenwert und kleiner als ein zweiter vorgegebener Schwellenwert; und wenn bestimmt wird, dass die Anzahl der Vielzahl von Werten der Variable größer ist als der erste vorgegebene Schwellenwert und kleiner als der zweite vorgegebene Schwellenwert, Bestimmen (218), ob die Variable nicht-numerisch oder numerisch ist, durch Durchführen einer statistischen Analyse eines Histogramms der Vielzahl von Werten.
  8. Medium nach Anspruch 7, wobei Bestimmen, ob die Variable numerisch oder nicht-numerisch ist, durch die Verarbeitungseinrichtung umfasst: Bestimmen (206), ob irgendein Wert der Variable einen nicht-numerischen Namen hat; und wenn bestimmt wird, dass irgendein Wert der Variable einen nicht-numerischen Namen hat, Bestimmen (208), dass die Variable nicht-numerisch ist.
  9. Medium nach einem der Ansprüche 5 bis 8, auf dem des Weiteren Befehle (35, 36, 37, 224, 302, 502) zum Durchführen des Verfahrens nach einem der Ansprüche 1 bis 4 gespeichert sind.
  10. Computerisiertes System (20, 49) für automatisierte Datenanalyse zum Vorhersagen von Benutzeraktionen auf Basis von Daten realer Ereignisse auf Basis eines Datensatzes (300), der ein reales Ereignis bzw. reale Ereignisse darstellt, wobei der Datensatz eine Vielzahl von Einträgen umfasst, die jeweils eine Variable (222) aufweisen, die Variable eine Vielzahl von Werten hat und jeder Wert einen Zählwert hat, der die Anzahl von Einträgen in dem Datensatz mit diesem Wert für die Variable ist, wobei das computerisierte System umfasst: ein computerlesbares Medium (22, 25, 27, 29, 31), das ein Flag (226, 304) speichert, das anzeigt, ob die Variable numerisch oder nicht-numerisch ist, und eine Bestimmungseinrichtung zum Bewerten von Nähe für Zählwerte benachbarter Werte der Variable und zum Setzen des Flags auf Basis der Vielzahl von Werten der Variable, wobei die Bestimmungseinrichtung so eingerichtet ist, dass sie die Nähe bewertet, um zu bestimmen, ob die Variable numerisch oder nicht-numerisch ist, und wobei Bestimmen, ob die Variable numerisch oder nicht-numerisch ist, umfasst: Bestimmen (206), ob kein Wert der Variable einen nicht-numerischen Namen hat; wenn bestimmt wird, dass kein Wert der Variable einen nicht-numerischen Namen hat, Bestimmen (210), ob eine Anzahl der Vielzahl von Werten der Variable größer ist als ein erster vorgegebener Schwellenwert; wenn bestimmt wird, dass die Anzahl der Vielzahl von Werten der Variable größer ist als der erste vorgegebene Schwellenwert, Bestimmen (212), dass die Variable numerisch ist; wenn bestimmt wird, dass kein Wert der Variable einen nicht-numerischen Namen hat, Bestimmen (214), ob eine Anzahl der Vielzahl von Werten der Variable kleiner ist als ein zweiter vorgegebener Schwellenwert; und wenn bestimmt wird, dass die Anzahl der Vielzahl von Werten der Variable kleiner ist als der zweite vorgegebene Schwellenwert, Bestimmen (216), dass die Variable nicht-numerisch ist.
  11. Computerisiertes System nach Anspruch 10, wobei die Bestimmungseinrichtung umfasst: eine computerimplementierte Einrichtung zum Bestimmen (206), ob irgendein Wert der Variable einen nicht-numerischen Namen hat; und eine computerimplementierte Einrichtung zum Bestimmen (208), dass die Variable nicht-numerisch ist, wenn bestimmt wird, dass irgendein Wert der Variable einen nicht-numerischen Namen hat.
  12. Computerisiertes System (20, 49) für automatisierte Datenanalyse zum Vorhersagen von Benutzeraktionen auf Basis von Daten realer Ereignisse auf Basis eines Datensatzes (300), der ein reales Ereignis bzw. reale Ereignisse darstellt, wobei der Datensatz eine Vielzahl von Einträgen umfasst, die jeweils eine Variable (222) aufweisen, die Variable eine Vielzahl von Werten hat und jeder Wert einen Zählwert hat, der die Anzahl von Einträgen in dem Datensatz mit diesem Wert für die Variable ist, wobei das computerisierte System umfasst: ein computerlesbares Medium (22, 25, 27, 29, 31), das ein Flag (226, 304) speichert, das anzeigt, ob die Variable numerisch oder nicht-numerisch ist, und eine Bestimmungseinrichtung zum Bewerten von Nähe für Zählwerte benachbarter Werte der Variable und zum Setzen des Flags auf Basis der Vielzahl von Werten der Variable, wobei die Bestimmungseinrichtung so eingerichtet ist, dass sie die Nähe bewertet, um zu bestimmen, ob die Variable numerisch oder nicht-numerisch ist, und wobei Bestimmen, ob die Variable numerisch oder nicht-numerisch ist, umfasst: Bestimmen (206), ob kein Wert der Variable einen nicht-numerischen Namen hat; wenn bestimmt wird, dass kein Wert der Variable einen nicht-numerischen Namen hat, Bestimmen (210, 214), ob eine Anzahl der Vielzahl von Werten der Variable größer ist als ein erster vorgegebener Schwellenwert und kleiner als ein zweiter vorgegebener Schwellenwert; und wenn bestimmt wird, dass die Anzahl der Vielzahl von Werten der Variable größer ist als der erste vorgegebene Schwellenwert und kleiner als der zweite vorgegebene Schwellenwert, Bestimmen (218), ob die Variable nicht-numerisch oder numerisch ist, durch Durchführen einer statistischen Analyse eines Histogramms der Vielzahl von Werten.
  13. Computerisiertes System nach Anspruch 12, wobei die Bestimmungseinrichtung umfasst: eine computerimplementierte Einrichtung zu Bestimmen (206), ob irgendein Wert der Variable einen nicht-numerischen Namen hat; und eine computerimplementierte Einrichtung zum Bestimmen (208), dass die Variable nicht-numerisch ist, wenn bestimmt wird, dass irgendein Wert der Variable einen nicht-numerischen Namen hat.
  14. Computerisiertes System nach einem der Ansprüche 10 bis 13, das computerimplementierte Einrichtungen zum Durchführen des Verfahrens nach einem der Ansprüche 1 bis 4 umfasst.
  15. System nach einem der Ansprüche 10 bis 14, wobei die Variable auf dem computerlesbaren Medium (22, 25, 27, 29, 31) gespeichert ist.
DE60032258T 1999-04-23 2000-04-22 Bestimmen ob eine variable numerisch oder nicht numerisch ist Expired - Lifetime DE60032258T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US298737 1999-04-23
US09/298,737 US6542878B1 (en) 1999-04-23 1999-04-23 Determining whether a variable is numeric or non-numeric
PCT/US2000/010856 WO2000065420A2 (en) 1999-04-23 2000-04-22 Determining whether a variable is numeric or non-numeric

Publications (2)

Publication Number Publication Date
DE60032258D1 DE60032258D1 (de) 2007-01-18
DE60032258T2 true DE60032258T2 (de) 2007-05-10

Family

ID=23151827

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60032258T Expired - Lifetime DE60032258T2 (de) 1999-04-23 2000-04-22 Bestimmen ob eine variable numerisch oder nicht numerisch ist

Country Status (6)

Country Link
US (1) US6542878B1 (de)
EP (1) EP1240566B1 (de)
AT (1) ATE347705T1 (de)
AU (1) AU4655600A (de)
DE (1) DE60032258T2 (de)
WO (1) WO2000065420A2 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7912868B2 (en) * 2000-05-02 2011-03-22 Textwise Llc Advertisement placement method and system using semantic analysis
US7786987B2 (en) * 2003-09-25 2010-08-31 The Nielsen Company (Us), Llc Methods and apparatus to detect an operating state of a display based on visible light
US9027043B2 (en) * 2003-09-25 2015-05-05 The Nielsen Company (Us), Llc Methods and apparatus to detect an operating state of a display
US20050278281A1 (en) * 2004-05-28 2005-12-15 Samson Frederick E Multi-dimensional data editor
US7065534B2 (en) * 2004-06-23 2006-06-20 Microsoft Corporation Anomaly detection in data perspectives
AU2005273948B2 (en) * 2004-08-09 2010-02-04 The Nielsen Company (Us), Llc Methods and apparatus to monitor audio/visual content from various sources
MX2008002317A (es) 2005-08-16 2008-03-24 Nielsen Media Res Inc Metodos y aparatos de deteccion de encendido/apagado del dispositivo de visualizacion.
WO2007136742A2 (en) * 2006-05-18 2007-11-29 The Nielsen Company Methods and apparatus for cooperator installed meters
US8032714B2 (en) 2007-09-28 2011-10-04 Aggregate Knowledge Inc. Methods and systems for caching data using behavioral event correlations
US8180712B2 (en) 2008-09-30 2012-05-15 The Nielsen Company (Us), Llc Methods and apparatus for determining whether a media presentation device is in an on state or an off state
US8793717B2 (en) 2008-10-31 2014-07-29 The Nielsen Company (Us), Llc Probabilistic methods and apparatus to determine the state of a media device
US8156517B2 (en) 2008-12-30 2012-04-10 The Nielsen Company (U.S.), Llc Methods and apparatus to enforce a power off state of an audience measurement device during shipping
US8375404B2 (en) * 2008-12-30 2013-02-12 The Nielsen Company (Us), Llc Methods and apparatus to enforce a power off state of an audience measurement device during shipping
US20100169908A1 (en) * 2008-12-30 2010-07-01 Nielsen Christen V Methods and apparatus to enforce a power off state of an audience measurement device during shipping
WO2013096314A1 (en) 2011-12-19 2013-06-27 The Nielsen Company (Us), Llc Methods and apparatus for crediting a media presentation device
US9692535B2 (en) 2012-02-20 2017-06-27 The Nielsen Company (Us), Llc Methods and apparatus for automatic TV on/off detection
US9924224B2 (en) 2015-04-03 2018-03-20 The Nielsen Company (Us), Llc Methods and apparatus to determine a state of a media presentation device

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4688195A (en) * 1983-01-28 1987-08-18 Texas Instruments Incorporated Natural-language interface generating system
US4899290A (en) * 1987-10-16 1990-02-06 Digital Equipment Corporation System for specifying and executing protocols for using iterative analogy and comparative induction in a model-based computation system
US5179549A (en) * 1988-11-10 1993-01-12 Alcatel N.V. Statistical measurement equipment and telecommunication system using same
US5195172A (en) * 1990-07-02 1993-03-16 Quantum Development Corporation System and method for representing and solving numeric and symbolic problems
US5394509A (en) * 1992-03-31 1995-02-28 Winston; Patrick H. Data processing system and method for searching for improved results from a process
US5704018A (en) * 1994-05-09 1997-12-30 Microsoft Corporation Generating improved belief networks
US5715374A (en) * 1994-06-29 1998-02-03 Microsoft Corporation Method and system for case-based reasoning utilizing a belief network
US5630126A (en) * 1994-12-13 1997-05-13 International Business Machines Corp. Systems and methods for integrating computations into compound documents
JPH08278890A (ja) * 1995-04-05 1996-10-22 Sharp Corp 進化適応型推論知識抽出装置およびその装置を用いた販売時点データ解析装置
US5691895A (en) * 1995-12-18 1997-11-25 International Business Machines Corporation Mechanism and architecture for manufacturing control and optimization
US5710700A (en) * 1995-12-18 1998-01-20 International Business Machines Corporation Optimizing functional operation in manufacturing control
US5704017A (en) * 1996-02-16 1997-12-30 Microsoft Corporation Collaborative filtering utilizing a belief network
US5792062A (en) 1996-05-14 1998-08-11 Massachusetts Institute Of Technology Method and apparatus for detecting nonlinearity in an electrocardiographic signal
US6026397A (en) 1996-05-22 2000-02-15 Electronic Data Systems Corporation Data analysis system and method
US5813002A (en) * 1996-07-31 1998-09-22 International Business Machines Corporation Method and system for linearly detecting data deviations in a large database
US5926822A (en) * 1996-09-06 1999-07-20 Financial Engineering Associates, Inc. Transformation of real time data into times series and filtered real time data within a spreadsheet application
US6078901A (en) 1997-04-03 2000-06-20 Ching; Hugh Quantitative supply and demand model based on infinite spreadsheet
US5920855A (en) 1997-06-03 1999-07-06 International Business Machines Corporation On-line mining of association rules
US6154736A (en) 1997-07-30 2000-11-28 Microsoft Corporation Belief networks with decision graphs
US6092064A (en) 1997-11-04 2000-07-18 International Business Machines Corporation On-line mining of quantitative association rules
US6078918A (en) 1998-04-02 2000-06-20 Trivada Corporation Online predictive memory
US6216134B1 (en) 1998-06-25 2001-04-10 Microsoft Corporation Method and system for visualization of clusters and classifications
US6223171B1 (en) * 1998-08-25 2001-04-24 Microsoft Corporation What-if index analysis utility for database systems
US6219626B1 (en) * 1998-09-08 2001-04-17 Lockheed Corp Automated diagnostic system
US6263455B1 (en) * 1998-11-05 2001-07-17 At&T Corp. Method and apparatus for analyzing alarm conditions in a networked computing environment
US6330563B1 (en) * 1999-04-23 2001-12-11 Microsoft Corporation Architecture for automated data analysis
US6321225B1 (en) * 1999-04-23 2001-11-20 Microsoft Corporation Abstracting cooked variables from raw variables
US6405200B1 (en) * 1999-04-23 2002-06-11 Microsoft Corporation Generating a model for raw variables from a model for cooked variables

Also Published As

Publication number Publication date
AU4655600A (en) 2000-11-10
ATE347705T1 (de) 2006-12-15
DE60032258D1 (de) 2007-01-18
WO2000065420A3 (en) 2002-07-11
EP1240566A2 (de) 2002-09-18
EP1240566B1 (de) 2006-12-06
US6542878B1 (en) 2003-04-01
WO2000065420A2 (en) 2000-11-02

Similar Documents

Publication Publication Date Title
DE60032258T2 (de) Bestimmen ob eine variable numerisch oder nicht numerisch ist
DE69938339T2 (de) Ein skalierbares system zum gruppieren von grossen datenbänken
DE602004003361T2 (de) System und verfahren zur erzeugung von verfeinerungskategorien für eine gruppe von suchergebnissen
DE69923435T2 (de) System und verfahren zur optimierung der leistungskontrolle von komplexen informationstechnologiesystemen
DE60215777T2 (de) Kontextbasierte informationsrecherche
DE69934102T2 (de) System und verfahren zur model-mining von komplexen informationtechnologiesystemen
DE60130475T2 (de) Durchführung von kalkulationen eines tabellenkalkulationstyps in einem datenbanksystem
DE10297802B4 (de) Verfahren, Speichermedium und System zum Suchen einer Sammlung von Medienobjekten
DE602004006485T2 (de) Verfahren zur automatisierten anmerkung von berichten mehrdimensionaler datenbanken mit informationsobjekten eines datenspeichers
WO2009149926A2 (de) System und verfahren zur rechnerbasierten analyse grosser datenmengen
WO2006066556A2 (de) Relationale komprimierte datenbank-abbilder (zur beschleunigten abfrage von datenbanken)
DE112020000554T5 (de) Verfahren zum zugreifen auf datensätze eines stammdatenverwaltungssystems
DE102019107591A1 (de) Anzeigesystem, programm und speichermedium
DE60300984T2 (de) Methode und Computersystem für die Optimierung eines Boolschen Ausdrucks für Anfragebearbeitung
DE112017007530T5 (de) Entitätsmodell-erstellung
DE102008005083A1 (de) Abrufen einer Information eines fallbasierten Schliessens aus Archivaufzeichnungen
DE112021002883T5 (de) Automatisierte rückmeldung und kontinuierliches lernen zur abfrageoptimierung
DE102021209171A1 (de) System zum wählen eines lernenden modells
DE10320419A9 (de) Datenbank-Abfragesystem und Verfahren zum rechnergestützten Abfragen einer Datenbank
WO2021104608A1 (de) Verfahren zum erzeugen eines engineering-vorschlags für eine vorrichtung oder anlage
DE102023200361A1 (de) Multivariate Ausreißer-Erkennung zum Datenschutz
EP1561173A2 (de) Verfahren und computer-anordnung zum bereitstellen von datenbankinformation einer ersten datenbank und verfahren zum rechnergestützten bilden eines statistischen abbildes einer datenbank
WO2012017056A1 (de) Verfahren und vorrichtung zur automatischen verarbeitung von daten in einem zellen-format
DE102020215589A1 (de) Steuern eines deep-sequence-modells mit prototypen
EP1170678B1 (de) Verfahren und Vorrichtung zur automatischen Suche relevanter Bilddatensätze

Legal Events

Date Code Title Description
8364 No opposition during term of opposition