DE202018101368U1 - Erstellen von Modellen für WLAN-Zugangspunkte unter Verwendung von Cluster-Techniken - Google Patents

Erstellen von Modellen für WLAN-Zugangspunkte unter Verwendung von Cluster-Techniken Download PDF

Info

Publication number
DE202018101368U1
DE202018101368U1 DE202018101368.8U DE202018101368U DE202018101368U1 DE 202018101368 U1 DE202018101368 U1 DE 202018101368U1 DE 202018101368 U DE202018101368 U DE 202018101368U DE 202018101368 U1 DE202018101368 U1 DE 202018101368U1
Authority
DE
Germany
Prior art keywords
cluster
clusters
scan
scan vectors
vector
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.)
Active
Application number
DE202018101368.8U
Other languages
English (en)
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of DE202018101368U1 publication Critical patent/DE202018101368U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W64/00Locating users or terminals or network equipment for network management purposes, e.g. mobility management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W64/00Locating users or terminals or network equipment for network management purposes, e.g. mobility management
    • H04W64/003Locating users or terminals or network equipment for network management purposes, e.g. mobility management locating network equipment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/021Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/02Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
    • G01S5/0252Radio frequency fingerprinting
    • G01S5/02521Radio frequency fingerprinting using a radio-map
    • G01S5/02524Creating or updating the radio-map
    • G01S5/02525Gathering the radio frequency fingerprints
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B17/00Monitoring; Testing
    • H04B17/30Monitoring; Testing of propagation channels
    • H04B17/309Measuring or estimating channel quality parameters
    • H04B17/318Received signal strength
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W16/00Network planning, e.g. coverage or traffic planning tools; Network deployment, e.g. resource partitioning or cells structures
    • H04W16/18Network planning tools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/10Scheduling measurement reports ; Arrangements for measurement reports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/11Allocation or use of connection identifiers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/04Large scale networks; Deep hierarchical networks
    • H04W84/08Trunked mobile radio systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/08Access point devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/18Service support devices; Network management devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Data Mining & Analysis (AREA)
  • Electromagnetism (AREA)
  • Quality & Reliability (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Eine Vorrichtung aufweisend Mittel zum Ausführen eines computerimplementierten Verfahrens, umfassend:
Empfangen einer Vielzahl von Clustern der Scanvektoren, die aus Signalen bestimmt wurden, die von einer Vielzahl von WLAN-Zugangspunkten empfangen wurden;
Identifizieren, aus der Vielzahl von Clustern, eines Clusters, das eine höchste Anzahl von Scanvektoren umfasst;
für jedes der Vielzahl von Clustern, die nicht das Cluster sind, das mit der höchsten Anzahl von Scanvektoren identifiziert wurde, das Bestimmen mindestens eines einer Anzahl von Scanvektoren in dem Cluster und mindestens eines Vertrauensindikators, der mit den Scanvektoren in dem Cluster verbunden ist;
Filtern der anderen Cluster, basierend auf mindestens einem der Anzahl von Scanvektoren in dem Cluster und dem mindestens einen Vertrauensindikator, der mit den Scanvektoren in dem Cluster verbunden ist; basierend auf dem Filtern, Auswählen mindestens eines der anderen Cluster; und
Ausgeben einer Teilmenge der Vielzahl von Clustern für die Verwendung bei Vorgängen der Standortbestimmung, wobei die Teilmenge das Cluster umfasst, das als die höchste Anzahl an Scanvektoren und das ausgewählte mindestens eine Cluster der anderen Cluster umfassend identifiziert wurde.

Description

  • In Übereinstimmung mit den Bestimmungen des Gebrauchsmustergesetzes sind nur Vorrichtungen, wie sie in den anliegenden Schutzansprüchen definiert sind, geschützt und vom Gebrauchsmuster abgedeckt, nicht jedoch Verfahren. Soweit in der nachstehenden Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Hinweise nur zur exemplarischen Erläuterung der mit den anliegenden Schutzansprüchen geschützten Vorrichtung(en).
  • HINTERGRUND
  • Die Modelle der Innenraum-Lokalisierung werden üblicherweise mithilfe von Scans der WLAN-Zugangspunkt-Kennungen und der verbundenen Signalstärken erstellt. Diese Scans werden dann in Modellen für das Bestimmen von Standorten angeordnet. Ein bekannter Ansatz nutzt Fingerabdrücke. Beispielsweise ist für kleinere Bereiche der Durchschnitt der Signalstärken aller erhaltenen Scans ein guter Indikator für jene Bereiche und kann als Modell oder Fingerabdruck für diesen Bereich genutzt werden. Für größere Bereiche kann der Durchschnitt aller Scans jedoch nur eine Liste von Kennungen der WLAN-Zugangspunkte für diesen Bereich bereitstellen. Wenn ein größerer Bereich näher bei einem kleineren liegt, kann es schwierig sein, durch einfaches Betrachten des Scan-Durchschnitts zu differenzieren. Dies ist häufig in Gebäuden mit vielen kleinen Räumen und großen Gängen der Fall. Um dies zu lösen, können Scans geclustert werden, um ein Modell nach dem Verfahren der K-Means-Clusteranalyse zu erstellen. Um einen Standort für einen speziellen Scan zu bestimmen, muss nur das Cluster identifiziert werden, zu dem der Scan gehört.
  • Die K-Means-Clusteranalyse führt zu einer Datenpartitionierung in K Voronoi-Zellen. Das Problem ist auf Berechnungsebene schwierig; es gibt jedoch effektive heuristische Algorithmen, die üblicherweise angewendet werden und schnell zu einem lokalen Optimum konvergieren. Diese sind normalerweise dem Expectation-Maximization-Algorithmus ähnlich. Die K-Means-Clusteranalyse besteht aus Iterationen von zwei Phasen: (1) einer Update-Label-Phase (Kennzeichnungs-Aktualisierungs-Phase), die den nächstliegenden Mittelpunkten eines vorbestimmten Werts für K Beobachtungen zuweist und (2) eine Update-Mean-Phase (Mittelwert-Aktualisierungs-Phase), die die Mittelwerte gemäß den Zuweisungen erneut berechnet. Die Iterationen enden, wenn sich die Update-Label-Phase stabilisiert, die eine Lösung für ein lokales Optimum bereitstellt.
  • Bei einem typischen Ansatz der K-Means-Clusteranalyse, ist K ein bekannter Wert. Im Fall von Innenräumen, die sehr stark variieren, hängt K jedoch von der Größe und Form des Bereichs, wie auch von der Art der Distribution der WLAN-Zugangspunkte in diesem Bereich, ab. In einfacheren Ansätzen der K-Means-Clusteranalyse, beispielsweise jenen, die für die Clusterung älterer WLAN-Zugangspunkte genutzt werden, wird mit einem kleinen Wert für K begonnen und K erhöht, wenn der Umfang eines oder mehrerer Cluster zu groß wird. Dieser Ansatz ist für einen größeren Bereich, wie beispielsweise ein Einkaufszentrum (zum Beispiel eine Gruppierung von Geschäften im Innen- und Außenbereich) nicht sehr effizient und kann zu keiner Lösung führen, wenn alle Cluster eine ähnliche Vektordifferenz zu den Vektordaten im Vektorzentrum aufweisen.
  • ZUSAMMENFASSUNG
  • Aspekte der Offenbarung stellen ein Verfahren zum Erstellen eines Modells für WLAN-Zugangspunkte bereit, um Standorte innerhalb eines Bereichs zu bestimmen. Das Verfahren beinhaltet das Empfangen einer Vielzahl von Scanvektoren, wobei jeder Scanvektor Daten umfasst, die einen Satz von Signalstärken für einen Satz von Kennungen für WLAN-Zugangspunkte repräsentieren und die mit einem Standort innerhalb eines Bereichs verbunden sind, an dem ein Mobilgerät, das durch diesen Bereich bewegt wird, den Satz von Signalstärken gemessen hat. Das Verfahren beinhaltet zudem das Ausführen einer Split-Phase (Aufteilungsphase), um einen Clustersatz zu erzeugen. Diese Split-Phase beinhaltet das Zuweisen jedes Scanvektors der Vielzahl von Scanvektoren zu einem Cluster, basierend auf einer Vektordifferenz zwischen dem Scanvektor und den Vektordaten, die einem Mittelpunkt des Clusters zugewiesen wurden, dem der Scanvektor zugewiesen ist, das Identifizieren, als Kandidaten für die Initiierung eines zusätzlichen Clusters, eines oder mehrerer Scanvektoren der Vielzahl von Scanvektoren, da es Scanvektoren sind, bei denen eine Differenz zwischen dem Scanvektor und den Vektordaten, die dem Mittelpunkt des Clusters zugewiesen wurden, dem wiederum der Scanvektor zugewiesen ist, geringer ist als ein vorbestimmter Mindestähnlichkeitswert für die Cluster, das Auswählen, aus dem einen oder den mehreren Scanvektoren, die als Kandidaten für die Initiierung eines zusätzlichen Clusters identifiziert wurden, eines Scanvektors, der mindestens den Vektordaten ähnlich ist, die dem Mittelpunkt des Clusters zugewiesen wurden, dem wiederum der Scanvektor zugewiesen ist, das Erstellen eines zusätzlichen Clusters in dem Clustersatz und das Zuweisen des ausgewählten Scanvektors zu dem zusätzlichen Cluster, das Zuweisen von Vektordaten des ausgewählten Scanvektors zu einem Mittelpunkt des zusätzlichen Clusters, das Neuberechnen der Vektordaten, die den Mittelpunkten jedes Clusters des Clustersatzes zugewiesen wurden, und das Wiederholen der Split-Phase, bis eine Gesamtzahl von Clustern in dem Clustersatz gleich einer vorbestimmten Höchstzahl von Clustern ist oder bis keine weiteren Kandidaten mehr für die Initiierung eines zusätzlichen Clusters vorhanden sind. Das Verfahren beinhaltet zudem das Erstellen des Modells für das Bestimmen der Standorte innerhalb des Bereichs, basierend auf dem Clustersatz.
  • In einem Beispiel beinhaltet das Verfahren außerdem, vor dem Ausführen der Split-Phase, das Einstellen der Clusterzahl auf 1 und das Zuweisen eines ersten Vektorscans der Vielzahl von Vektorscans, als Mittelpunkt eines ersten Clusters des Clustersatzes. Zusätzlich oder alternativ beinhaltet das Verfahren, wenn die Anzahl der Cluster gleich der Höchstzahl von Clustern ist, zudem das Filtern der Cluster, um Ausreißer zu identifizieren und die Ausreißer und die zugewiesenen Scanvektoren zu entfernen, um dadurch die Gesamtzahl der Cluster in dem Clustersatz zu reduzieren. Zusätzlich beinhaltet das Verfahren, nach dem Filtern zum Entfernen der Ausreißer, das Fortsetzen der Wiederholung der Split-Phase, bis die Anzahl der Cluster wieder gleich der Höchstzahl der Cluster ist oder bis keine mehr vorhanden sind oder bis keine weiteren Kandidaten für die Initiierung eines zusätzlichen Clusters mehr identifiziert werden können. Zusätzlich oder alternativ dazu beinhaltet das Verfahren auch das Identifizieren von mindestens zwei der Cluster im Clustersatz für einen Vorgang der Clusterverschmelzung und Verschmelzen der mindestens zwei Cluster in einen verschmolzenen Cluster, um die Gesamtzahl der Cluster in dem Clustersatz zu reduzieren, wobei die den mindestens zwei Clustern zuvor zugewiesenen Scanvektoren einem verschmolzenen Cluster erneut zugewiesen werden. In diesem Beispiel beinhaltet das Identifizieren der mindestens zwei Cluster in dem Clustersatz, als Kandidaten für den Vorgang der Clusterverschmelzung, das Identifizieren der Cluster, die eine Gesamtzahl von Scanvektoren umfassen, die geringer ist als ein Schwellenbetrag. Zusätzlich oder alternativ dazu beinhaltet das Identifizieren der mindestens zwei Cluster in dem Clustersatz als Kandidaten für den Vorgang der Clusterverschmelzung das Identifizieren, dass eine Differenz zwischen den Vektordaten, die dem Mittelpunkt eines ersten der Cluster zugewiesen wurden, und den Vektordaten, die dem Mittelpunkt eines zweiten der Cluster zugewiesen wurden, geringer als ein vorbestimmter Schwellenbetrag ist. Zusätzlich oder alternativ dazu beinhaltet das Verfahren auch das Identifizieren, aus den Clustern im Clustersatz, eines Clusters, der eine höchste Anzahl von Scanvektoren umfasst; für jeden der anderen Cluster im Clustersatz das Bestimmen mindestens eines einer Anzahl von Scanvektoren in dem Cluster und mindestens eines Vertrauensindikators, der mit den Scanvektoren in dem Cluster verbunden ist; das Filtern der besagten anderen Cluster, basierend auf mindestens einem der Anzahl von Scanvektoren in dem Cluster und dem mindestens einen Vertrauensindikator, der mit den Scanvektoren in dem Cluster verbunden ist; basierend auf dieser Filterung, das Auswählen mindestens eines der anderen Cluster; und das Ausgeben einer Teilmenge der Vielzahl von Clustern für die Verwendung bei Standortbestimmungsvorgängen, wobei die Teilmenge das Cluster umfasst, das als solches identifiziert wurde, das die höchste Anzahl an Scanvektoren aufweist, und als das ausgewählte mindestens eine Cluster der besagten anderen Cluster. In diesem Beispiel entspricht der Clustersatz, auf dem die Erstellung des Modells basiert, nur der Teilmenge der Cluster. Zusätzlich oder alternativ dazu beinhaltet das Verfahren auch das Bestimmen, für jedes Cluster in dem Clustersatz, eines Mittelpunkt-Standorts, basierend auf den Standorten, die mit den Scanvektoren verbunden sind, die dem Cluster zugewiesen wurden, und für jedes Cluster, das erneute Zentrieren des Mittelpunkt-Standorts des Clusters, basierend auf den Abständen zwischen den Standorten, die mit den dem Cluster zugewiesenen Scanvektoren verbunden sind, und dem Mittelpunkt-Standort.
  • Aspekte der Offenbarung stellen zudem eine Vorrichtung bereit, die ein Computergerät zum Ausführen der zuvor beschriebenen exemplarischen Verfahren beinhaltet. Aspekte der Offenbarung stellen zudem ein Computerprogramm, das computerlesbare Anweisungen umfasst, die, wenn sie von mindestens einem Computergerät ausgeführt werden, das mindestens eine Computergerät veranlassen, die zuvor beschriebenen exemplarischen Verfahren auszuführen, und einen computerlesbaren Speicher bereit, in dem das Computerprogramm gespeichert ist.
  • Weitere Aspekte der Offenbarung stellen ein computerimplementiertes Verfahren und einen computerlesbaren Speicher, in dem Anweisungen gespeichert sind, die von einem oder mehreren Prozessoren zum Ausführen dieses Verfahrens ausgeführt werden können, bereit. Das Verfahren beinhaltet das Empfangen einer Vielzahl von Clustern der Scanvektoren, die aus Signalen bestimmt wurden, die von einer Vielzahl von WLAN-Zugangspunkten empfangen wurden; Identifizieren, aus der Vielzahl von Clustern, eines Clusters, das eine höchste Anzahl von Scanvektoren umfasst; für jedes der Vielzahl von Clustern, bei dem es sich nicht um das Cluster handelt, das als solches mit der höchsten Anzahl an Scanvektoren identifiziert wurde, das Bestimmen mindestens eines einer Anzahl von Scanvektoren in dem Cluster und mindestens eines Vertrauensindikators, der mit den Scanvektoren in dem Cluster verbunden ist; das Filtern der besagten anderen Cluster, basierend auf mindestens einem der Anzahl von Scanvektoren in dem Cluster und dem mindestens einen Vertrauensindikator, der mit den Scanvektoren in dem Cluster verbunden ist; basierend auf dieser Filterung, das Auswählen mindestens eines der anderen Cluster; und das Ausgeben einer Teilmenge der Vielzahl von Clustern zur Verwendung bei Vorgängen der Standortbestimmung, wobei die Teilmenge das Cluster umfasst, das als Cluster mit der höchsten Anzahl an Scanvektoren und als das ausgewählte mindestens eine Cluster der besagten anderen Cluster identifiziert wurde. Aspekte der Offenbarung stellen zudem eine Vorrichtung bereit, die das zuvor genannte Verfahren ausführt, und ein Computerprogramm, das computerlesbare Anweisungen umfasst, die, wenn sie von mindestens einem Computergerät ausgeführt werden, das mindestens eine Computergerät veranlassen, das zuvor beschriebene Verfahren auszuführen.
  • Noch weitere Aspekte der Offenbarung stellen ein System bereit, das einen oder mehrere Server-Computergeräte, die einen oder mehrere Prozessoren und einen Speicher aufweisen, der Anweisungen speichert, die von dem einen oder den mehreren Prozessoren ausgeführt werden können, um ein Verfahren zum Erstellen eines Modells für WLAN-Zugangspunkte auszuführen, um Standorte innerhalb eines Bereichs zu bestimmen. Das Verfahren beinhaltet das Empfangen, über den ein oder die mehreren Server-Computergeräte mit einem oder mehreren Prozessoren, einer Vielzahl von Scanvektoren, wobei jeder Scanvektor einen Satz von Signalstärken für einen Satz von Kennungen für WLAN-Zugangspunkte repräsentiert und mit einem Standort innerhalb des Bereichs verbunden ist, an dem ein Mobilgerät, das sich durch den Bereich bewegt, den Satz von Signalstärken gemessen hat; Einstellen, über das eine oder die mehreren Server-Computergeräte, einer Höchstzahl an Clustern; Einstellen, über das eine oder die mehreren Server-Computergeräte, eines Mindestähnlichkeitswerts; Ausführen, über das eine oder die mehreren Server-Computergeräte, einer Split-Phase, um einen Clustersatz zu erzeugen. Die Split-Phase beinhaltet das Zuweisen jedes gegebenen Scanvektors der Vielzahl von Scanvektoren zu einem Cluster, basierend auf einer Vektordifferenz zwischen dem gegebenen Scanvektor und den Vektordaten des zugewiesenen Clusters, Identifizieren eines oder mehrerer schlechter Scanvektoren der Vielzahl von Scanvektoren, basierend darauf, ob eine Vektordifferenz jedes des einen oder der mehreren schlechten Scanvektoren und Vektordaten, die einem Mittelpunkt eines Clusters zugewiesen sind, zu dem wiederum jeder des einen oder der mehreren schlechten Scanvektoren zugewiesen ist, geringer ist als der Mindestähnlichkeitswert, Auswählen eines schlechtesten des einen oder der mehreren schlechten Scanvektoren mit einer größten Vektordifferenz zwischen dem einen oder den mehreren schlechten Scanvektoren und Vektordaten eines Mittelpunktes eines zugewiesenen Clusters für den schlechtesten Scanvektor, Verwenden des ausgewählten schlechtesten als Mittelpunkt eines neuen Clusters und dadurch das Erhöhen einer Anzahl von Clustern in dem Clustersatz, Neuberechnen der Vektordaten, die dem Mittelpunkt eines Clusters des Clustersatzes zugewiesen wurden, und Wiederholen, über das eine oder die mehreren Server-Computergeräte, der Split-Phase, bis die Anzahl der Cluster im Clustersatz gleich der Höchstzahl von Clustern ist oder kein weiterer oder keine mehreren schlechten Scanvektoren mehr identifiziert werden können. Das Verfahren beinhaltet zudem das Erstellen des Modells des Bereichs, basierend auf dem Clustersatz.
  • In einem Beispiel, bei dem die Ähnlichkeit zwischen zwei Scanvektoren, ν1 und ν2, als Kosinus-Ähnlichkeit (ν1, ν2) definiert sein kann, entspricht der Mindestähnlichkeitswert einer Mindest-Kosinus-Ähnlichkeit, und das Auswählen des schlechtesten beinhaltet das Identifizieren eines des einen oder der mehreren schlechten Scans mit dem höchsten Wert der Kosinus-Ähnlichkeit zwischen dem identifizierten und dem Mittelpunkt des zugewiesenen Clusters des identifizierten Scanvektors. In einem weiteren Beispiel beinhaltet das Verfahren außerdem, vor dem Ausführen der Split-Phase, das Einstellen der Clusterzahl auf 1 und das Zuweisen eines ersten Vektorscans der Vielzahl von Vektorscans, als Mittelpunkt eines ersten Clusters des Clustersatzes. In einem weiteren Beispiel beinhaltet die Split-Phase darüber hinaus, nach dem Neuberechnen der Vektordaten, die den Mittelpunkten jedes Clusters aus dem Clustersatz zugewiesen wurden, das Bestimmen, ob sich die Vektordaten, die den Mittelpunkten jedes Clusters aus dem Clustersatz zugewiesen wurden, verändert haben, wenn sich die Vektordaten, die den Mittelpunkten jedes Clusters aus dem Clustersatz zugewiesen wurden, verändert haben, das erneute Zuweisen der Vielzahl von Scanvektoren zu den Clustern des Clustersatzes, und das Fortführen des Neuberechnens und Neuzuweisens, bis sich die Cluster des Clustersatzes stabilisieren, sodass sich die Vektordaten, die den Mittelpunkten jedes Clusters zugewiesen wurden, nach der Neuberechnung nicht mehr verändern. In einem weiteren Beispiel endet die Iteration, wenn die Anzahl der Cluster gleich der Höchstzahl von Clustern ist und alle Cluster gefiltert wurden, um Ausreißer zu entfernen. In diesem Beispiel beinhaltet das Verfahren außerdem, nach dem Filtern, das Fortsetzen der Wiederholung in der Split-Phase, bis die Anzahl der Cluster wieder gleich der Höchstzahl der Cluster ist oder bis keiner des einen oder der mehreren schlechten Scanvektoren mehr zu identifizieren ist.
  • In einem weiteren Beispiel beinhaltet das Verfahren auch das Einstellen, über das eine oder die mehreren Server-Computergeräte, eines Höchstähnlichkeitswerts und das Ausführen einer Verschmelzungsphase, beinhaltend: Identifizieren eines Cluster-Paares des Clustersatzes mit Vektordaten, die den jeweiligen Mittelpunkten jedes Paares zugewiesen sind, die einen Ähnlichkeitswert aufweisen, der größer ist als der Höchstähnlichkeitswert, und das Verschmelzen des Cluster-Paares mit zugewiesenen Scanvektoren. In diesem Beispiel basiert das Identifizieren des Cluster-Paares auf der Kosinus-Ähnlichkeit zwischen den Vektordaten, die den jeweiligen Mittelpunkten zugewiesen wurden. Zusätzlich oder alternativ dazu beinhaltet das Verfahren auch das Wiederholen der Verschmelzungsphase bis keine Cluster-Paare des Clustersatzes mit einem Ähnlichkeitswert mehr vorhanden sind, der größer ist als der Höchstähnlichkeitswert. Zusätzlich oder alternativ dazu basiert darüber hinaus das Identifizieren des Cluster-Paares auf einer Anzahl von Scanvektoren, die jedem Cluster des Cluster-Paares zugewiesen wurden. In einem weiteren Beispiel beinhaltet das Verfahren außerdem das Einstellen eines Höchstähnlichkeitswerts, wobei die Iterationen in der Split-Phase und der Verschmelzungsphase den Clustersatz bereitstellen, sodass in jedem gegebenen Cluster des Clustersatzes eine Vektordifferenz zwischen jedem Scanvektor, der dem gegebenen Cluster zugewiesen wurde, und einem Scanvektor eines Mittelpunktes des gegebenen Clusters, größer ist als der Mindestähnlichkeitswert, und eine Vektordifferenz zwischen dem Scanvektor des Mittelpunktes des gegebenen Clusters und einem Scanvektor eines Mittelpunktes eines anderen Clusters des Clustersatzes geringer als ein Höchstähnlichkeitswert ist. Zusätzlich oder alternativ dazu beinhaltet das Verfahren das Bestimmen eines Mittelpunkt-Standorts jedes gegebenen Clusters in dem Clustersatz, basierend auf den Standorten, die mit den Scanvektoren verbunden sind, die dem gegebenen Cluster zugewiesen wurden, und das erneute Zentrieren des Mittelpunkt-Standorts des gegebenen Clusters, basierend auf den Abständen zwischen den Standorten, die mit den dem gegebenen Cluster zugewiesenen Scanvektoren verbunden sind, und dem Mittelpunkt-Standort. In diesem Beispiel basiert das erneute Zentrieren darauf, ob die Abstände einen Grenzabstandswert einhalten. Zusätzlich oder alternativ dazu beinhaltet das Verfahren auch, vor dem Erstellen des Modells, das Filtern des Clustersatzes durch Identifizieren eines Clusters des Clustersatzes mit einer größten Anzahl zugewiesener Scanvektoren und das Filtern eines oder mehrerer Cluster aus dem Clustersatz, basierend auf einem Vergleich mit dieser größten Anzahl zugewiesener Scanvektoren. Zusätzlich oder alternativ dazu beinhaltet das Verfahren auch, vor dem Erstellen des Modells, das Filtern des Clustersatzes, um alle Cluster zu entfernen, die nicht eine Mindestanzahl an zugewiesenen Scanvektoren erfüllen. Zusätzlich oder alternativ dazu ist jeder gegebene Scanvektor der Vielzahl von Scanvektoren mit einem Konfidenzwert verbunden, der eine kombinierte Genauigkeitsmessung der Signalstärken-Messungen und einen geschätzten Standort für den gegebenen Scanvektor repräsentiert, wobei das Verfahren darüber hinaus umfasst, vor dem Erstellen des Modells, das Filtern des Clustersatzes, basierend auf einem höchsten Konfidenzwert, der mit den Scanvektoren verbunden ist, die jedem Cluster des Clustersatzes zugewiesen sind. In diesem Beispiel beinhaltet das Filtern des Clustersatzes das Entfernen von Clustern aus dem Clustersatz, die einen höchsten Konfidenzwert aufweisen, der keinen Grenz-Konfidenzwert erfüllt. Zusätzlich oder alternativ dazu entspricht mindestens eine Teilmenge der Vielzahl von Scanvektoren einem Einzelbesuch in diesem Bereich mit einem bestimmten Mobilgerät, sodass der Einzelbesuch eine Vielzahl von Scans beinhaltet, wobei das Verfahren darüber hinaus das Filtern der Vielzahl von Scans umfasst, um die Scans an einer Startgrenze und einer Endgrenze des Besuchs zu entfernen, sodass die gefilterten Scans nicht in die Vielzahl der Scanvektoren einbezogen werden. In diesem Beispiel basiert das Filtern der Vielzahl von Scans auf einer Extraktionsrate, die ausgewählt wurde, um beim Erstellen des Modells das Rauschen zu entfernen. Zusätzlich oder alternativ dazu ist jeder gegebene Scanvektor der Vielzahl von Scanvektoren mit einem Konfidenzwert verbunden, der eine kombinierte Genauigkeitsmessung der Signalstärken-Messungen und einen geschätzten Standort für den gegebenen Scanvektor repräsentiert, darüber hinaus umfasst das Verfahren, vor dem Ausführen der Split-Phase, das Filtern der Vielzahl von Scanvektoren, um die Scanvektoren zu entfernen, die mit einem Konfidenzwert verbunden sind, der nicht einen Grenz-Konfidenzwert erfüllt, um das Rauschen aus dem Modell zu entfernen.
  • Figurenliste
    • 1 zeigt ein Funktionsdiagramm eines exemplarischen Systems gemäß den Aspekten der Offenbarung.
    • 2 zeigt ein Piktogramm des exemplarischen Systems von 1.
    • 3 zeigt ein Beispiel eines Quasi-Codes, der Aspekte einer Split-Phase gemäß den Aspekten der Offenbarung repräsentiert.
    • 4 zeigt ein Ablaufdiagramm, das Aspekte der Split-Phase gemäß den Aspekten der Offenbarung repräsentiert.
    • 5 zeigt ein Beispiel eines Quasi-Codes, der Aspekte einer Verschmelzungsphase gemäß den Aspekten der Offenbarung repräsentiert.
    • 6 zeigt ein Ablaufdiagramm, das Aspekte der Verschmelzungsphase gemäß den Aspekten der Offenbarung repräsentiert.
    • 7 zeigt ein Beispiel eines Quasi-Codes, der Aspekte eines Neuzentrierungs-Prozesses gemäß den Aspekten der Offenbarung repräsentiert.
    • 8 zeigt ein Ablaufdiagramm, das Aspekte des Neuzentrierungs-Prozesses gemäß den Aspekten der Offenbarung repräsentiert.
    • 9 zeigt ein Beispiel eines Quasi-Codes, der Aspekte einer Kreuzfilterung zwischen den Modellen gemäß den Aspekten der Offenbarung repräsentiert.
    • 10 zeigt ein Beispiel eines Quasi-Codes, der Aspekte einer Kombination von Modellen gemäß den Aspekten der Offenbarung repräsentiert.
  • AUSFÜHRLICHE BESCHREIBUNG
  • ÜBERBLICK
  • Aspekte der Offenbarung beziehen sich auf das Erstellen von Modellen für WLAN-Zugangspunkte an Standorten, um beispielsweise standortbasierte Dienstleistungen bereitzustellen. Beispielsweise können Scans von Authentifikatoren der WLAN-Zugangspunkte, die Kennungen von WLAN-Zugangspunkten (beispielsweise MAC-Adressen) sind, und verbundene Signalstärken (beispielsweise RSSI auf einer Skala von 0 dB bis -120 dB, wobei das Signal desto stärker ist je näher es bei Null liegt), die von Mobilgeräten erfasst werden, verwendet werden, um solche Modelle zu erstellen. Eine Vielzahl dieser Scans kann geclustert werden, um ein Modell zu erstellen, beispielsweise unter Verwendung der unten beschriebenen adaptiven K-Means-Clusteranalyse. Die K-Means-Clusteranalyse partitioniert einen Vektorsatz (v1, v2, ...,vn) in eine K Anzahl von Clustern S = {S1, S2, ..., Sk}, wobei jeder Satz einer Voronoi-Zelle entspricht. Jedes Cluster beinhaltet einen Vektor, der einen Mittelpunkt dieses Clusters repräsentiert. Um eine Position für einen bestimmten Scan zu bestimmen, muss nur das Cluster identifiziert werden, zu dem der Scan gehört.
  • Um ein oder mehrere Modelle eines Bereichs, wie z. B. eines Einkaufszentrums, zu erstellen, kann, wie zuvor angegeben, eine Vielzahl von Scans verwendet werden. Mindestens einige dieser Scans können von Mobilgeräten erfasst werden, die durch diesen Bereich bewegt werden. Die Mobilgeräte können dadurch Informationen an einen Server-Computer bereitstellen, die eine Reihe von Scans beinhalten, die sich auf einen Besuch eines Standorts in oder um diesen Bereich herum beziehen. Jeder Scan der Reihe hat einen Zeitstempel, Standort, einen Satz von Kennungen für den Netzwerk-Zugangspunkt und verbundene Signalstärken, sowie einen verbundenen Konfidenzwert. Der Konfidenzwert kann eine kombinierte Konfidenz- und Genauigkeitsmessung der Signalstärken-Messungen und Standorte darstellen. Beispielsweise können einige Besuche direkt erfasste Besuche sein, die von Personen bereitgestellt werden, die sich speziell durch den Bereich bewegen, um Daten mit ihrem Mobilgerät zu erfassen. Andere Besuche können rückgeschlossene Besuche sein, z. B. rückgeschlossen aus Informationen, die von den Benutzern des standortbasierten Service bereitgestellt wurden. Wie nachfolgend erläutert, können diese Daten aggregiert und verwendet werden, um Cluster für ein einzelnes Modell zu bestimmen, oder um individuelle Modelle, für eine individuelle Nutzung, zu erstellen. Alternativ dazu können die individuellen Modelle in einem einzelnen aggregierten Modell kombiniert werden.
  • In einigen Beispielen können die Scans mehrmals vorgefiltert werden, um die Rauschteile der Daten zu reduzieren oder zu entfernen. Beispielsweise können für jeden Besuch die Scans am Anfang und Ende einer Reihe, basierend auf dem Zeitstempel des Besuchs, verworfen werden. Zeitstempel können auch verwendet werden, um die Scans, beispielsweise, chronologisch umzukehren, sodass nur der neueste Satz verwendet wird, um das eine oder die mehreren Modelle zu erstellen. Zusätzlich können einige Kennungen für WLAN-Zugangspunkte gefiltert werden, um jene zu entfernen, die extrem niedrige Auftretensraten für die Vielzahl der Scans aufweisen, oder jene, die doppelt erscheinen.
  • Jeder Scan der Vielzahl von Scans, der nach dem Filtern übrig bleibt, kann durch einen Scanvektor repräsentiert werden, der mit einem Zeitstempel, Standort und einem Konfidenzwert verbunden ist. Vor Verwendung der K-Means-Clusteranalyse, können zunächst zulässige Mindest- und Höchstähnlichkeitswerte für die Vektoren innerhalb jedes Clusters definiert werden, ebenso der Höchstwert für K.
  • Die adaptive K-Means-Clusteranalyse kann eine Split-Phase und eine Verschmelzungsphase eischließen. In der Split-Phase kann ein erster Scanvektor der verbleibenden Vielzahl von Scanvektoren, als Wert für einen Vektor in einem Mittelpunkt eines ersten Clusters, zugewiesen werden. Alle „schlechten“ Scanvektoren, die als solche definiert sind, bei denen der Vektor-Ähnlichkeitswert zwischen dem schlechten Scanvektor und dem ersten Scanvektor v1 (oder die Vektordaten, die dem Mittelpunkt des Clusters zugewiesen wurden) geringer ist als der zulässige Mindestähnlichkeitswert, werden identifiziert. Ein „schlechtester“ Scan dieser schlechten Scanvektoren mit der größten Vektordifferenz vom Mittelpunkt des Clusters (oder dem geringsten Ähnlichkeitswert zu den Vektordaten im Mittelpunkt) wird identifiziert.
  • Ein neues Cluster wird dann mit dem identifizierten schlechtesten Scanvektor erstellt, der als Wert für einen Vektor im Mittelpunkt des neuen Clusters zugewiesen wird. In dieser Hinsicht wird der Wert von K erhöht. Die K-Means-Clusteranalyse wird dann genutzt, um jeden der verbleibenden Vielzahl von Scans einem der Cluster zuzuweisen. Die Iterationen der K-Means-Clusteranalyse enden, wenn sich die Zuweisung der Scans stabilisiert, sodass sich die Vektorwerte der Mittelpunkte nicht mehr ändern.
  • Es werden dann alle schlechten Scanvektoren erneut bestimmt und ein schlechtester Scanvektor dieser schlechten Scanvektoren identifiziert. Der schlechteste Scanvektor ist der Scanvektor der schlechten Scanvektoren, der die größte Vektordifferenz zu den Vektordaten aufweist, die dem Mittelpunkt des Clusters mit einer größten Anzahl an Scans zugewiesen wurden. Dieser schlechteste Scanvektor wird aus dem aktuellen Cluster entfernt und die Vektordaten werden als die Vektorwerte für einen Mittelpunkt eines neuen Clusters zugewiesen und die K-Means-Clusteranalyse wird wiederholt. Die Iterationen des vorgenannten Prozesses werden fortgesetzt, bis K den Höchstwert für K erreicht oder bis keine schlechten Scanvektoren mehr vorhanden sind.
  • Für den Fall, dass der Höchstwert von K erreicht wurde, jedoch immer noch eine Anzahl von schlechten Scans vorhanden ist, können die Cluster gefiltert werden, um Ausreißer zu entfernen. Dies kann das Identifizieren beinhalten, ob Cluster mit sehr wenigen Scans vorhanden sind, da es sich bei diesen Clustern tatsächlich um Ausreißer handeln kann. Wenn Ausreißer vorhanden sind, werden diese Cluster und auch alle zugewiesenen Scanvektoren entfernt und die K-Means-Clusteranalyse der Split-Phase wird fortgesetzt. Danach wird die Split-Phase fortgesetzt, bis K den Höchstwert für K erreicht oder bis keine schlechten Scanvektoren mehr vorhanden sind. Infolge des Filterns können die sich ergebenden Cluster der Split-Phase eine ähnliche Anzahl zugewiesener Scanvektoren aufweisen. Das Filtern muss jedoch nicht verwendet werden, wenn die Scanvektoren als sehr verlässlich betrachtet werden, beispielsweise wenn die Scanvektoren von direkt erfassten Besuchen statt von rückgeschlossenen Besuchen stammen.
  • Die sich ergebenden Cluster werden dann wieder in einer Verschmelzungsphase verarbeitet, um Cluster mit zugewiesenen Scanvektoren zu verschmelzen, die sich einander zu sehr ähneln und eine relativ kleine Anzahl von zugewiesenen Scans aufweisen. Natürlich kann dieses Kombinieren weitere Anforderungen haben, wie beispielsweise, dass es nur durchgeführt wird, wenn die Kombination keine weiteren schlechten Scans erstellt oder die Gesamtzahl der schlechten Scans innerhalb eines vorbestimmten Grenzwertes liegt. Sobald zwei Cluster verschmolzen sind, werden die Iterationen der K-Means-Clusteranalyse fortgesetzt, bis die Cluster stabil sind. Dies wird wiederholt, bis keine zwei Cluster, die Mittelpunkte mit zugewiesenen Vektordaten aufweisen, mehr vorhanden sind, die sich zu ähnlich sind und eine relativ kleine Zahl zugewiesener Scans aufweisen und die, wenn sie kombiniert werden, nicht zu mehr oder zu vielen schlechten Scans führen würden.
  • Die Standorte dieser Cluster können durch Mittelwertbildung der verbundenen Standorte jedes zugewiesenen Scanvektors berechnet werden. Dies kann berechnet werden, sobald die Cluster in der Split- und/oder Verschmelzungsphase erstellt werden. Um die Standorte der Mittelpunkte der Cluster weiter zu verbessern, kann jedes Cluster, basierend auf den physischen Standorten der Scanvektoren, die jedem Cluster zugewiesen wurden, neu zentriert werden.
  • Zusätzliches Nachfiltern kann ausgeführt werden, um die Nützlichkeit der Cluster zu erhöhen. Dies kann eine relative und absolute Filterung, basierend auf der Anzahl der Scans in einem bestimmten Cluster und/oder den Konfidenzwerten der Cluster, beinhalten.
  • Das Resultat der adaptiven K-Means-Clusteranalyse und der hier beschriebenen Filterung ist ein Modell des Bereichs, das verwendet werden kann, um einen Standort eines gegebenen Scanvektors leicht zu identifizieren. Beispielsweise hat jedes der Cluster in S einen Mittelpunkt mit einem zugewiesenen Scanvektor. Um den Standort zu bestimmen, an dem ein neuer Scan ausgeführt wird, wird ein Scanvektor für den neuen Scan mit den zuvor genannten zugewiesenen Vektordaten für die Cluster-Mittelpunkte verglichen, um den ähnlichsten zugewiesenen Scanvektor zu identifizieren. Der Standort des neuen Scanvektors ist demnach der Standort des Clusters mit den ähnlichsten zugewiesenen Vektordaten. Darüber hinaus kann das Modell, weil den Clustern jeweils eine ähnliche Zahl von Scanvektoren zugewiesen wird und die zugewiesenen Scanvektoren gut verteilt sind und sich gut voneinander unterscheiden, sehr verlässliche Standortschätzungen bereitstellen. Diese Informationen können wiederum verwendet werden, um alle Arten von standortbasierten Dienstleistungen bereitzustellen.
  • Wie zuvor erläutert, kann das Modell aus den direkt erfassten Besuchen und/oder den rückgeschlossenen Besuchen erstellt werden. Das Verwenden des einen oder des anderen Datentyps, im Gegensatz zum Aggregieren von Daten, erlaubt, wie in den zuvor genannten Beispielen, eine einfachere Behandlung der Scans in den Filterphasen, und die direkt erfassten Besuche können als verlässlicher betrachtet werden als die rückgeschlossenen Besuche. Zusätzlich kann es schneller sein, individuelle Modelle zu erstellen, als alle Daten zu kombinieren und zu versuchen, eine einzelne Datensammlung unter Verwendung der adaptiven K-Means-Clusteranalyse zu erstellen. Dadurch lässt sich sogar ein Modell eines Bereichs anhand der direkt erfassten Besuche und ein weiteres Modell eines Bereichs unter Verwendung der rückgeschlossenen Besuche erstellen. Diese separaten Modelle können dann kombiniert werden, um ein aggregiertes Modell zu erstellen.
  • Die Technik ist auch auf der Berechnungsebene effizient, da es die adaptive Art der Clusteranalyse, die von den zuvor genannten Aufteilungs- und Verschmelzungsvorgängen bereitgestellt wird, einem Server-Computer erlaubt, Modelle mit den erläuterten Werten von K für die bestimmten Bereiche, abhängig von den Eigenschaften dieser Bereiche, zu erstellen. Dies stellt sicher, dass der Server-Computer nicht mehr Berechnungen ausführt als notwendig oder wünschenswert, wenn dieser ein Modell für einen bestimmten Bereich erstellt, während gleichzeitig sichergestellt wird, dass das Modell höchst effektiv ist, wenn es dazu verwendet wird, den Standort eines Benutzergeräts zu bestimmen.
  • EXEMPLARISCHE SYSTEME
  • 1 und 2 beinhalten ein exemplarischen System 100, in dem die zuvor beschriebenen Merkmale implementiert sein können. Dieses sollte nicht als Einschränkung des Umfangs der Offenbarung oder der Nützlichkeit der hierin beschriebenen Merkmale angesehen werden. In diesem Beispiel kann das System 100 die Computergeräte 110, 120, 130 und 140 sowie ein Speichersystem 150 beinhalten. Jedes Computergerät 110 kann einen oder mehrere Prozessoren 112, Arbeitsspeicher 114 und sonstige Komponenten beinhalten, die typischerweise in Universal-Computergeräten vorhanden sind. Arbeitsspeicher 114 von jedem der Computergeräte 110, 120, 130 und 140 kann Informationen speichern, auf die von dem einen oder den mehreren Prozessoren 112 zugegriffen werden kann, einschließlich der Anweisungen 116, die von dem einen oder den mehreren Prozessoren 112 ausgeführt werden können.
  • Der Arbeitsspeicher kann zudem Daten 118 beinhalten, die von dem Prozessor abgerufen, bearbeitet oder gespeichert werden können. Bei dem Arbeitsspeicher kann es sich um jede nicht flüchtige Art handeln, die in der Lage ist, Informationen zu speichern, auf die der Prozessor zugreifen kann, wie z. B. eine Festplatte, eine Speicherkarte, ROM, RAM, DVD, CD-ROM, beschreibbare und schreibgeschützte Speicher.
  • Die Anweisungen 116 können ein beliebiger Satz von Anweisungen sein, die direkt, wie z. B. Maschinencode, oder indirekt, wie z. B. Scripts, durch den einen oder die mehreren Prozessoren auszuführen sind. Diesbezüglich können die Begriffe „Anweisungen“, „Anwendung, „Schritte“ und „Programme“ hierin austauschbar verwendet sein. Die Anweisungen können in Objektcodeformat zur direkten Verarbeitung durch einen Prozessor oder in jeder anderen Computergerätesprache gespeichert sein, die Scripts oder Sammlungen von unabhängigen Quellcode-Modulen beinhaltet, die auf Anforderung interpretiert oder vorab kompiliert werden. Funktionen, Verfahren und Routinen der Anweisungen werden nachfolgend ausführlicher erklärt.
  • Daten 118 können von dem einen oder den mehreren Prozessoren 112 gemäß den Anweisungen 116 abgerufen, gespeichert oder verändert werden. So können beispielsweise, obwohl der hierin beschriebene Gegenstand nicht durch eine beliebige bestimmte Datenstruktur beschränkt ist, die Daten in Computerregistern als Tabelle, die viele verschiedene Felder und Datensätze aufweist, oder XML-Dokumente gespeichert werden. Die Daten können außerdem in einem beliebigen computergerätlesbaren Format wie z. B., jedoch nicht beschränkt auf, Binärwerte, ASCII oder Unicode formatiert sein. Darüber hinaus können die Daten beliebige Informationen umfassen, die ausreichend sind, um die relevanten Informationen, wie Zahlen, beschreibenden Text, proprietäre Codes, Zeiger, Verweise auf Daten zu identifizieren, die in anderen Speichern, wie z. B. anderen Netzwerkstandorten gespeichert sind, oder Informationen umfassen, die von einer Funktion verwendet werden, um die relevanten Daten zu berechnen.
  • Der eine oder die mehreren Prozessoren 112 können jeden herkömmlichen Prozessor, wie z. B. eine im Handel erhältliche CPU, beinhalten. Alternativ dazu kann es sich bei dem Prozessor um dedizierte Komponenten, wie z. B. um eine anwendungsspezifische integrierte Schaltung („ASIC“) oder einen anderen hardwarebasierten Prozessor, handeln. Auch wenn es nicht notwendig ist, können ein oder mehrere Computergeräte 110 spezialisierte Hardwarekomponenten beinhalten, um spezifische Rechenprozesse, wie z. B. das Decodieren von Videofilmen, das Anpassen von Videoframes an Bilder, Verzerren von Videos, das Codieren verzerrter Videos usw., schneller oder effizienter auszuführen.
  • Obwohl 1 den Prozessor, Arbeitsspeicher und andere Elemente des Computergerätes 110 funktionell als innerhalb des gleichen Blocks befindlich veranschaulicht, können der Prozessor, Computer, das Computergerät oder der Arbeitsspeicher tatsächlich mehrere Prozessoren, Computer, Computergeräte oder Arbeitsspeicher umfassen, die innerhalb des gleichen physischen Gehäuses untergebracht sein können, jedoch nicht untergebracht sein müssen. Beispielsweise kann der Arbeitsspeicher eine Festplatte oder ein sonstiges Speichermedium sein, das sich in einem anderen Gehäuse als demjenigen der Computergeräte 110 befindet. Dementsprechend werden Verweise auf einen Prozessor, Computer, Computergerät oder Arbeitsspeicher so verstanden, dass sie Verweise auf eine Sammlung von Prozessoren, Computern, Computergeräten oder Arbeitsspeichern beinhalten, die ggf. parallel arbeiten oder auch nicht. Beispielsweise können die Computergeräte 110 Server-Computergeräte beinhalten, die als lastverteilte Serverfarm, verteiltes System usw. betrieben werden. Obgleich einige der nachfolgend beschriebenen Funktionen auf einem einzelnen Computergerät mit einem einzelnen Prozessor erfolgen, können verschiedene Aspekte des hier beschriebenen Gegenstands ferner durch eine Vielzahl von Computergeräten implementiert werden, beispielsweise zum Kommunizieren von Informationen über das Netzwerk 160.
  • Jedes der Computergeräte 110 kann sich an unterschiedlichen Knoten eines Netzwerks 160 befinden und entweder direkt oder indirekt mit anderen Knoten von Netzwerk 160 kommunizieren. Obwohl nur einige Computergeräte in den 1-2 dargestellt sind, versteht sich, dass ein typisches System eine große Anzahl verbundener Computergeräte beinhalten kann, wobei sich jedes unterschiedliche Computergerät an einem unterschiedlichen Knoten des Netzwerks 160 befindet. Das Netzwerk 160 und dazwischenliegende Knoten, die hierin beschrieben sind, können unter Verwendung verschiedener Protokolle und Systeme vernetzt sein, sodass das Netzwerk Teil des Internets, World Wide Web, spezifischer Intranets, Großraumnetzwerke oder lokaler Netzwerke sein kann. Das Netzwerk kann Standardkommunikationsprotokolle, wie z. B. Ethernet, WLAN und HTTP, Protokolle, die proprietär für ein oder mehrere Unternehmen sind, und verschiedene Kombinationen der vorstehenden nutzen. Obwohl bestimmte Vorteile erzielt werden, wenn Informationen, wie zuvor beschrieben, übertragen oder empfangen werden, sind andere Aspekte des hierin beschriebenen Gegenstands nicht auf eine bestimmte Art der Übertragung von Informationen beschränkt.
  • Beispielsweise kann jedes der Computergeräte 110 Webserver beinhalten, die in der Lage sind, mit dem Speichersystem 150 sowie den Computergeräten 120, 130 und 140 über das Netzwerk zu kommunizieren. Beispielsweise können ein oder mehrere Server-Computergeräte 110 das Netzwerk 160 nutzen, um Informationen an einen Benutzer, wie z. B. Benutzer 220, 230 oder 240, auf einer Anzeige, wie z. B. Anzeige 122, 132 oder 142 der Computergeräte 120, 130 oder 140, zu übertragen und diese darzustellen. In diesem Zusammenhang können die Computergeräte 120, 130 und 140 als Client-Computergeräte betrachtet werden und alle oder einige der hier beschriebenen Funktionen ausführen.
  • Jedes der Client-Computergeräte 120, 130 und 140 kann, wie zuvor beschrieben, ähnlich wie die Server-Computergeräte 110, mit einem oder mehreren Prozessoren, Arbeitsspeicher und Anweisungen konfiguriert werden. Jedes Client-Computergerät 120, 130 oder 140 kann ein persönliches Computergerät sein, das zur Verwendung durch einen Benutzer 220, 230, 240 vorgesehen ist und das alle Komponenten beinhalten kann, die üblicherweise in Verbindung mit einem persönlichen Computergerät, z. B. einer zentralen Verarbeitungseinheit (CPU), einem Arbeitsspeicher (z. B. RAM und interne Festplatten), der Daten und Anweisungen speichert, einer Anzeige, wie z. B. Anzeige 122, 132 oder 142 (z. B. einem Monitor mit Bildschirmanzeige, einem Touchscreen, einem Projektor, einem Fernseher oder einem anderen Gerät, das zur Anzeige von Informationen betrieben werden kann), sowie einem Benutzer-Eingabegerät 124 (z. B. einer Maus, einer Tastatur, einem Touchscreen oder einem Mikrofon), verwendet werden. Das Client-Computergerät kann außerdem eine Kamera zur Aufzeichnung von Videostreams und/oder Erfassung von Bildern, Lautsprecher, ein Netzwerkschnittstellengerät und sämtliche Komponenten beinhalten, die für die Verbindung dieser Elemente miteinander verwendet werden.
  • Obwohl die Client-Computergeräte 120, 130 und 140 ggf. jeweils ein persönliches Computergerät in voller Größe umfassen, können dieselben alternativ mobile Computergeräte umfassen, die zum drahtlosen Austausch von Daten mit einem Server über ein Netzwerk, z. B. dem Internet, fähig sind. Nur als Beispiel angeführt, kann Computergerät 120 ein Mobiltelefon oder ein Gerät, wie z. B. ein WLAN-fähiger PDA, ein Tablet-PC oder ein Netbook sein, die in der Lage sind, Informationen über das Internet abzurufen. In einem weiteren Beispiel kann das Client-Computergerät 130 ein auf dem Kopf getragenes Computersystem sein. Beispielsweise kann der Benutzer Informationen über eine kleine Tastatur, ein Tastenfeld, ein Mikrofon, visuelle Signale mit einer Kamera oder einen Touchscreen eingeben.
  • Wie bei Arbeitsspeicher 114 kann es sich bei Speichersystem 150 um jede Art von computergestütztem Speicher handeln, der in der Lage ist, Informationen zu speichern, auf die die Server-Computergeräte 110 zugreifen können, wie z. B. Festplatte, Speicherkarte, ROM, RAM, DVD, CD-ROM, beschreibbare und schreibgeschützte Speicher. Darüber hinaus kann das Speichersystem 150 ein verteiltes Speichersystem beinhalten, wobei Daten, wie z. B. Daten auf einer Vielzahl verschiedener Speichergeräte, gespeichert werden, die sich physisch an demselben oder an unterschiedlichen geografischen Standorten befinden können. Speichersystem 150 kann über das Netzwerk 160, wie in 1 dargestellt, mit den Computergeräten und/oder direkt mit einem der Computergeräte 110, 120, 130 und 140 (nicht dargestellt) verbunden sein.
  • Das Speichersystem 150 kann verschiedene Informationen, einschließlich Scandaten und Modelldaten, speichern. Eine Vielzahl von Mobilgeräten, wie z. B. die mobilen Computergeräte 120, 130, 140 können dadurch Informationen an ein Server-Computergerät 110 bereitstellen, die eine Reihe von Scans beinhalten, die sich auf einen Besuch eines Standorts in oder um diesen Bereich herum beziehen. Jeder Scan einer Reihe hat einen Zeitstempel, der ein Datum und eine Uhrzeit trägt, zu denen der Scan erfolgte, einen geschätzten Standort (beispielsweise Koordinaten auf Längen- und Breitengraden), einen Satz von Kennungen für Netzwerk-Zugangspunkte und verbundene Signalstärken, sowie einen Konfidenzwert. Der Konfidenzwert kann eine kombinierte Konfidenz- und Genauigkeitsmessung der Signalstärken-Messungen und Standorte darstellen. Diese Informationen können durch ein Server-Computergerät 110 in dem Speichersystem 150 für ein späteres Abrufen und Verarbeiten gespeichert werden.
  • Beispielsweise können einige Besuche direkt erfasste Besuche sein, die von Personen bereitgestellt werden, die sich speziell durch den Bereich bewegen, um Daten mit ihrem Mobilgerät zu erfassen. Andere Besuche können rückgeschlossene Besuche sein, z. B. rückgeschlossen aus Informationen, die von den Benutzern der standortbasierten Dienstleistungen bereitgestellt werden.
  • Einem Benutzer können beispielsweise Bedienelemente bereitgestellt werden, die es dem Benutzer ermöglichen, eine Auswahl zu treffen, und zwar bezüglich sowohl ob und wann hierin beschriebene Systeme, Programme oder Merkmale eine Erfassung von Benutzerinformationen (z. B. Informationen über ein soziales Netzwerk eines Benutzers, sozialen Aktionen oder Aktivitäten, Beruf, Präferenzen eines Benutzers oder des gegenwärtigen Standorts eines Benutzers) vornehmen dürfen, und ob dem Benutzer Inhalte oder Kommunikationen von einem Server gesendet werden. Zusätzlich können gewisse Daten auf eine oder mehrere Weisen behandelt werden, bevor sie gespeichert oder verwendet werden, sodass personenbezogene Informationen entfernt werden. Eine Benutzeridentität kann beispielsweise so behandelt werden, dass keine persönlichen identifizierbaren Informationen für den Benutzer bestimmt werden können, oder ein geografischer Standort des Benutzers kann verallgemeinert werden, wobei Standortinformationen (wie beispielsweise eine Stadt, Postleitzahl oder Bundesland) abgerufen werden, sodass ein bestimmter Standort eines Benutzers nicht festgestellt werden kann. Somit hat der Benutzer möglicherweise die Kontrolle darüber, welche Informationen über den Benutzer gesammelt, wie diese Informationen verwendet und welche Informationen dem Benutzer bereitgestellt werden.
  • Die Modelldaten können ein oder mehrere Modelle für WLAN-Zugangspunkte für verschiedene Standorte beinhalten. Die Scandaten von verschiedenen Quellen, die direkt erfasst oder rückgeschlossen sein können, können aggregiert und verwendet werden, um Cluster für ein einzelnes Modell zu bestimmen, oder können verwendet werden, um individuelle Modelle, für eine individuelle Nutzung, zu erstellen. Alternativ dazu können die individuellen Modelle in einem einzelnen aggregierten Modell kombiniert werden. Wenn sie von den Server-Computergeräten 110 erstellt sind, können die Modelle wieder in dem Speichersystem 150 abgelegt und abgerufen werden, wenn sie benötigt werden, um die nachfolgend beschriebenen Standorte zu bestimmen.
  • EXEMPLARISCHE VERFAHREN
  • Zusätzlich zu den zuvor beschriebenen und den in den Abbildungen dargestellten Vorgängen, werden nun verschiedene weitere Vorgänge beschrieben. Es versteht sich, dass die folgenden Vorgänge nicht exakt in der nachfolgend angegebenen Reihenfolge ausgeführt werden müssen. Vielmehr können verschiedene Schritte in einer anderen Reihenfolge oder gleichzeitig ausgeführt werden, zudem können Schritte hinzugefügt oder ausgelassen werden.
  • Vor dem Bestimmen von Clustern können die Scans mehrmals vorgefiltert werden, um die Rauschteile der Daten zu reduzieren oder zu entfernen. Beispielsweise können für jeden Besuch die Scans am Anfang und Ende einer Reihe, basierend auf dem Zeitstempel des Besuchs, verworfen werden. Eine Extraktionsrate kann verwendet werden, um einen Teil der Scans eines einzelnen Besuches zu extrahieren. Beispielsweise kann für die rückgeschlossenen Scans eine Extraktionsrate von 0,5 (oder 50 %) oder mehr oder weniger, verwendet werden, sodass nur der Mittelteil eines Besuches in dem Bereich genutzt wird, um das eine oder die mehreren Modelle zu erstellen. Dies kann das Rauschen eines rückgeschlossenen Besuches weitestgehend reduzieren, da die Grenzen (Start- und End-Zeitstempel) eines rückgeschlossenen Besuches sehr schwer erkennbar sein können. Natürlich kann für verlässlichere Scans, wie z. B. direkt erfasste Scans, die Extraktionsrate näher bei 1,0 (oder 100 %) liegen, sodass alle der direkt erfassten Daten verwendet werden, da die direkt erfassten Daten wahrscheinlich sehr viel genauer sein werden. Zusätzlich können Scans, die sehr niedrige Konfidenzwerte aufweisen, oder solche, die nicht den Mindest-Konfidenzwert erfüllen, wie z. B. 30 auf einer Skala von 0 bis 100, auch gefiltert werden, um das Rauschen zu entfernen, ebenso Scans, die einen älteren Zeitstempel, wie z. B. älter als 60 Tage, oder mehr oder weniger, aufweisen, um die Nützlichkeit der Daten sicherzustellen. Zeitstempel können auch verwendet werden, um die Scans, beispielsweise, chronologisch umzukehren, sodass nur der neueste Satz, beispielsweise 15.000 Scans, oder mehr oder weniger, verwendet wird, um das eine oder die mehreren Modelle zu erstellen. Zusätzlich können einige Kennungen für WLAN-Zugangspunkte gefiltert werden, um jene zu entfernen, die extrem niedrige Auftretensraten für die Vielzahl der Scans aufweisen, oder jene, die doppelt erscheinen.
  • Jeder Scan der Vielzahl von Scans, der nach dem Filtern übrig bleibt, kann durch einen Scanvektor repräsentiert werden, der mit einem Zeitstempel, Standort und einem Konfidenzwert verbunden ist. Beispielsweise entspricht jeder Scanvektor v einer Zuordnung von einer Kennung für einen spezifischen WLAN-Zugangspunkt zu einer Signalstärke für einen gegebenen Scan, der an einem bestimmten Zeitstempel t und einem Standort (x,y können die Koordinaten eines Längen- oder Breitengrades sein) ausgeführt wurde, mit einem bestimmten Konfidenzwert c. Beispielsweise für einen Scanvektor vn mit einem Zeitstempel tn, einem Standort (xvn,yvn) und mit einem Konfidenzwert cvn, kann vn eine Liste von Signalstärken für alle Kennungen für WLAN-Zugangspunkte von allen einer Vielzahl von Scans definieren, die verwendet wurden, um das Modell zu erstellen.
  • Vor Verwendung der K-Means-Clusteranalyse, können zunächst zulässige Mindest- und Höchstähnlichkeitswerte für Vektoren innerhalb jedes Clusters definiert werden, ebenso der Höchstwert für K. Beispielsweise kann die Ähnlichkeit zwischen zwei Vektoren, v1 und v2, als Kosinus-Ähnlichkeit (v1, v2) definiert sein, wobei cos_similarity die Kosinus-Ähnlichkeit zwischen den beiden Vektoren v1 und v2 repräsentiert. Der Abstand oder die Vektordifferenz zwischen zwei Vektoren v1 und v2 kann als 1 - cos_similarity(v1, v2) definiert sein. Der Mindestähnlichkeitswert kann als Minimum der cossimilarity (min_cos_similarlity) und der Höchstwert kann als Maximum der cos_similarity (max_cos_similarlity) definiert sein.
  • In einem Beispiel können der Mindest- und Höchstwert auf denselben Wert, beispielsweise eine Zahl zwischen 0 und 1, wie 0,2, 0,5 oder 0,7, eingestellt werden. Die Auswahl dieser Werte kann, basierend auf der Verlässlichkeit der Daten und der Art des Standorts vorgenommen werden (ein Einkaufszentrum, in dem der Wert höher sein kann, versus einem kleinen Haus, in dem der Wert niedriger sein kann). Sind diese zu hoch, sind zu viele Cluster vorhanden, sind diese zu niedrig, sind ggf. nicht genug vorhanden. Der Höchstwert für K kann eingestellt werden, um die Zeitdauer zu begrenzen, die der Server-Computer braucht, um die Clusteranalyse auszuführen.
  • Bei der Clusteranalyse kann es sich um eine adaptive K-Means-Clusteranalyse handeln, die eine Split-Phase und eine Verschmelzungsphase einschließt. Die Cluster werden in der Split-Phase, wie z. B. in den 3-4 gezeigt, erstellt. 3 zeigt ein Beispiel eines Quasi-Codes, der Aspekte der Split-Phase repräsentiert, während 4 ein Ablaufdiagramm zeigt, das Aspekte der Split-Phase repräsentiert. Zu Beginn der Split-Phase an Block 402 in 4 ist die Höchstzahl von Clustern (max_num_clusters) eingestellt. Zusätzlich kann ein erster Scanvektor, beispielsweise v1, aus der verbleibenden Vielzahl von Scanvektoren als Vektordaten an einem Mittelpunkt für ein erstes Cluster zugewiesen werden. Die Auswahl des ersten Scanvektors kann beliebig, muss jedoch nicht beliebig, sein. Aus Gründen der Effizienz kann der Wert K anfangs auf 1 eingestellt werden. In dieser Hinsicht werden die Vektordaten, die mit dem ersten Scanvektor v1 verbunden sind, dem Mittelpunkt des ersten Clusters zugewiesen und alle Scanvektoren werden diesem ersten Cluster zugewiesen.
  • Danach werden an Block 406 alle „schlechten“ Scanvektoren identifiziert, die als solche definiert sind, bei denen die Vektordifferenz zwischen dem schlechten Scanvektor und dem ersten Scanvektor v1 (oder dem Mittelpunkt des Clusters) größer ist als der zulässige Mindestähnlichkeitswert oder 1-min_cos_similarity. An Block 408 wird der „schlechteste“ Scan dieser schlechten Scanvektoren, oder der schlechte Scanvektor, der die größte Vektordifferenz von den Vektordaten aufweist, die dem Mittelpunkt des Clusters zugewiesen sind, oder vielmehr der größte Wert von 1 - cos_similarity identifiziert.
  • Ein neues Cluster wird dann mit dem identifizierten schlechtesten Scanvektor erstellt, der, als Wert für einen Vektor im Mittelpunkt des neuen Clusters zugewiesen wird, wie in Block 410 dargestellt. In dieser Hinsicht wird der Wert von K um 1 (oder von K=1 auf K=2) erhöht. An diesem Punkt wird die K-Means-Clusteranalyse eingesetzt, um jeden der verbleibenden Vielzahl von Scans einem der Cluster, wie in den Blöcken 412, 414 und 416 dargestellt, zuzuweisen. Zunächst werden die Vektordaten, die den Mittelpunkten jedes Clusters zugewiesen wurden, gemäß den Zuweisungen an Block 412, neu berechnet. Beispielsweise können neue Vektordaten für jedes Cluster erstellt werden, indem alle Signalstärken jedes zugewiesenen Vektors um +120 dB verschoben werden (beispielsweise - 120 dB wird 0 dB und 0 dB wird 120 dB), sodass alle Stärken innerhalb jedes Scanvektors positiv sind, zudem wird der Vektordurchschnitt aller zugewiesenen Scanvektoren berechnet. Um den Vektordurchschnitt eines Satzes von Scanvektoren, die einem Cluster zugewiesen sind, zu berechnen, wird der Durchschnitt der Signalstärken für jede Kennung der Netzwerk-Zugangspunkte bestimmt. Mit anderen Worten, es wird ein neuer Vektor für einen Mittelpunkt eines Clusters als Mittelwert aller zugewiesenen Scanvektoren für diesen Cluster berechnet. Wenn sich die den Mittelpunkten zugewiesenen Vektordaten geändert haben, werden die Scanvektoren von Block 416 an Block 414 erneut zugewiesen und die jedem Mittelpunkt zugewiesenen Vektordaten werden an Block 412 neu berechnet. Diese Iterationen enden, wenn sich die Zuweisung der Scans stabilisiert, sodass sich die Vektordaten, die den Mittelpunkten der Cluster zugewiesen wurden, an Block 416 nicht mehr verändern.
  • Wie in Block 418 dargestellt, kehrt der Prozess, solange die Anzahl der Cluster K unter der Höchstzahl von Clustern liegt, zurück zu Block 406, an dem alle schlechten Scanvektoren bestimmt werden. Es wird dann wiederum an Block 408 ein schlechtester Scanvektor dieser schlechten Scanvektoren identifiziert. Der schlechteste Scanvektor ist der Scanvektor der schlechten Scanvektoren, der die größte Vektordifferenz, oder den größten Wert 1 - cos_similarity, zu den Vektordaten aufweist, die dem Mittelpunkt des Clusters mit einer größten Anzahl an zugewiesenen Scans zugewiesen wurden. Dieser schlechteste Scanvektor wird aus dem aktuellen Cluster entfernt und die Vektordaten werden als die Vektorwerte für einen Mittelpunkt eines neuen Clusters an Block 410 zugewiesen und die K-Means-Clusteranalyse der Blöcke 412, 414 und 416 wird, wie zuvor beschrieben, wiederholt. Die Iterationen des vorgenannten Prozesses werden fortgesetzt, bis K den Höchstwert für K an Block 418 erreicht oder bis keine schlechten Scanvektoren mehr an Block 408 vorhanden sind. Mit anderen Worten, es gibt keine Vektoren mit Vektordifferenzen von Mittelpunkten der zugewiesenen Cluster, die größer als 1 - min_cos_similarity sind. Danach endet die Split-Phase an Block 420.
  • Für den Fall, dass der Höchstwert von K an Block 418 erreicht wurde, aber immer noch eine Anzahl von schlechten Scans vorhanden ist, können die Cluster gefiltert werden, um Ausreißer zu entfernen. Dies kann das Identifizieren beinhalten, ob Cluster mit sehr wenigen Scans vorhanden sind, da es sich bei diesen Clustern tatsächlich um Ausreißer handeln kann. Beispielsweise kann ein Schwellenwertverhältnis verwendet werden. Dieses Schwellenwertverhältnis kann die Anzahl der Scans sein, die einem gegebenen Cluster zugewiesen wurden, im Verhältnis zu der Anzahl der Cluster, die dem Cluster mit der größten Anzahl von zugewiesenen Scanvektoren zugewiesen sind. Dieser Verhältniswert kann demnach zwischen 0 und 1 liegen und von der Datenquelle abhängen. Beispielsweise kann das Schwellenwertverhältnis für direkt erfasste Daten auf 0,1, oder mehr oder weniger, eingestellt sein, und auf 0,5 für rückgeschlossene Besuche, um das Entfernen von weiteren Scanvektoren zu erlauben (unter der Annahme, dass die rückgeschlossenen Besuche mehr Scans und Rauschdaten beinhalten). Beispielsweise wird unter der Annahme, dass das Schwellenwertverhältnis bei 0,1 liegt, wenn die größte Anzahl an Scanvektoren, die einem gegebenen Cluster zugewiesen werden, 20 beträgt, und ein erstes Cluster 1 Scan (< 2, 0,1 von 20) aufweist, das erste Cluster der erfassten Scans entfernt. Wenn jedoch ein zweites Cluster 3 Scans aufweist, bleibt das zweite Cluster bestehen oder wird, besser ausgedrückt, nicht entfernt. In ähnlicher Weise wird, bei einem Schwellenwertverhältnis von 0,5 und wenn das Cluster mit der größten Anzahl an zugewiesenen Scanvektoren 100 zugewiesene Scanvektoren aufweist, ein drittes Cluster mit 20 Scans entfernt (< 0,5).
  • Falls Ausreißer-Cluster vorhanden sind, werden diese Cluster sowie alle zugewiesenen Scanvektoren entfernt und die K-Means-Clusteranalyse der Split-Phase wird an den Blöcken 412, 414 und 416 in 4 fortgesetzt. Danach wird die Split-Phase fortgesetzt, bis K den Höchstwert für K erreicht oder bis, wie zuvor erläutert, keine schlechten Scanvektoren mehr vorhanden sind. Infolge des Filterns können die sich ergebenden Cluster der Split-Phase eine ähnliche Anzahl zugewiesener Scanvektoren aufweisen. Das Filtern muss jedoch nicht verwendet werden, wenn die Scanvektoren als sehr verlässlich betrachtet werden, beispielsweise wenn die Scanvektoren von direkt erfassten Besuchen statt von rückgeschlossenen Besuchen stammen.
  • Die sich aus der Split-Phase ergebenden Cluster werden dann wieder in einer Verschmelzungsphase verarbeitet, um Cluster mit zugewiesenen Scanvektoren zu verschmelzen, die sich einander zu sehr ähneln und eine relativ kleine Anzahl von zugewiesenen Scans aufweisen. 5 zeigt ein Beispiel eines Quasi-Codes, der Aspekte der Verschmelzungsphase repräsentiert, während 6 ein Ablaufdiagramm zeigt, das Aspekte der Verschmelzungsphase repräsentiert. Die Verschmelzungsphase beginnt an Block 502, an dem ein Paar von zwei Clustern identifiziert wird, die sich zu ähnlich sind und die jeweils eine relativ geringe Anzahl an zugewiesenen Scanvektoren aufweisen (aus Gründen der Vereinfachung nicht im Ablaufdiagramm dargestellt). Beispielsweise können zwei Cluster als zu ähnlich betrachtet werden, wenn die cos_similarity zwischen den zugewiesenen Vektorwerten für die entsprechenden Mittelpunkte der beiden Cluster größer ist als die max_cos_similarity. Zwei Cluster können eine relativ kleine Anzahl an zugewiesenen Scanvektoren aufweisen, wenn die Anzahl der Scanvektoren, die jedem der beiden Cluster zugewiesen wurden, relativ klein ist im Vergleich zu der Anzahl der Scanvektoren, die dem Cluster mit der größten Anzahl an zugewiesenen Scanvektoren zugewiesen wurde. Ein zweites Schwellenwertverhältnis, größer als das erste Schwellenwertverhältnis, kann verwendet werden, um Cluster mit einer kleinen Anzahl an zugewiesenen Scanvektoren zu identifizieren. Wenn beide Anforderungen erfüllt sind, können die beiden Cluster an Block 504 verschmolzen werden. Natürlich kann das Kombinieren auf weiteren Anforderungen basieren, wie beispielsweise, dass dieses nur durchgeführt wird, wenn die Kombination keine weiteren schlechten Scans erstellt oder die Gesamtzahl der identifizierten schlechten Scans innerhalb eines vorbestimmten Grenzwertes für zulässige schlechte Scanvektoren, wie beispielsweise 0, 2 oder mehr oder weniger liegt.
  • Wenn die beiden Cluster an Block 504 verschmolzen werden, wird die Gesamtzahl der Cluster K um 1 reduziert. Danach wird die K-Means-Clusteranalyse ausgeführt, wie es in den Blöcken 506, 508 und 510 dargestellt ist. Diese Iterationen werden, wie zuvor in Bezug auf 3 erläutert, fortgesetzt, bis die Cluster stabil sind. Der Prozess 600 wird wiederholt, bis keine zwei Cluster mehr vorhanden sind, die sich zu ähnlich sind und eine relativ kleine Zahl zugewiesener Scans aufweisen und die, wenn sie kombiniert werden, nicht zu mehr oder zu vielen schlechten Scanvektoren an Block 502 führen würden. Danach endet die Verschmelzungsphase an Block 512.
  • Das Resultat der adaptiven K-Means-Clusteranalyse stellt einen Clustersatz mit bestimmten Eigenschaften bereit. Beispielsweise ist die Vektordifferenz von jedem gegebenen Scanvektor zu den Vektordaten, die dem Mittelpunkt des Clusters zugewiesen wurden, dem wiederum der gegebene Scanvektor zugewiesen ist, geringer als 1-min_cos_similarity oder die Ähnlichkeit ist größer als min_cos_similarity. Zusätzlich ist die Vektordifferenz zwischen den Vektordaten, die den Mittelpunkten von jeweils zwei Clustern zugewiesen wurden, größer als 1 - max_cos_similarity oder die Ähnlichkeit ist geringer als max_cos_similarity. Die Standorte (beispielsweise Koordinaten der Breiten- und Längengrade) jedes Clusters, der nach dem Filtern noch bestehen bleibt, können durch Mittelwertbildung der verbundenen Standorte (beispielsweise Koordinaten der Breiten- und Längengrade) aller zugewiesenen Scanvektoren berechnet werden. Dies kann berechnet werden, sobald die Cluster in der Split- und/oder Verschmelzungsphase erstellt werden.
  • Um die Standorte der Mittelpunkte der Cluster weiter zu verbessern, kann jedes Cluster neu zentriert werden. 7 zeigt ein Beispiel eines Quasi-Codes, der Aspekte der Neuzentrierung repräsentiert, während 8 ein Ablaufdiagramm zeigt, das Aspekte der Neuzentrierung repräsentiert. Diese Neuzentrierungs-Verarbeitung kann für jedes individuelle Cluster und alle Scanvektoren ausgeführt werden, die diesem Cluster zugewiesen sind, und kann das Erstellen eines neuen Clustersatzes aus den Scanvektoren, die dem gegebenen Cluster zugewiesen wurden, beinhalten. Beispielsweise gibt es, wie in 8 dargestellt, anfangs an Block 802 keine Cluster, nur die Scanvektoren, die dem gegebenen Cluster zugewiesen wurden. Zu Beginn sind die zugewiesenen Scanvektoren nun nicht mehr zugewiesen und der neue Clustersatz ist leer. An Block 804 wird für einen ersten Scanvektor (der nicht zugewiesenen Scanvektoren) ein nächster Mittelpunkt-Standort eines Clusters identifiziert. Die Auswahl des ersten Scanvektors kann beliebig, muss jedoch nicht beliebig, sein. An Block 806, wenn der Abstand zwischen dem Standort des ersten Scanvektors und dem nächsten Mittelpunkt-Standort geringer ist als ein zugewiesener Grenzabstandswert (z.B. X Meter), wird der erste Scanvektor dem Cluster mit dem nächsten Mittelpunkt-Standort an Block 808 zugewiesen und der Standort des Mittelpunktes des gegebenen Clusters wird an Block 810 neu berechnet. Beispielsweise kann der Grenzabstandswert von X auf 100 Meter, oder mehr oder weniger, eingestellt werden. Der Mittelpunkt-Standort (beispielsweise Koordinaten der Breiten- und Längengrade) jedes Clusters kann durch Mittelwertbildung der verbundenen Standorte (beispielsweise Koordinaten der Breiten- und Längengrade) aller zugewiesenen Scanvektoren berechnet werden. Um zu Block 806 zurückzukehren, wenn der Abstand größer als der Grenzabstandswert ist, wird ein neues Cluster mit seinem Mittelpunkt-Standort an dem Standort, der mit dem ersten Scanvektor an Block 816 verbunden ist, erstellt. Natürlich gibt es anfangs noch keine Cluster in dem neuen Clustersatz und demnach keine Mittelpunkt-Standorte. Dementsprechend gibt es keinen Mittelpunkt-Standort innerhalb des Grenzabstandswerts des Standorts des ersten Scanvektors, deshalb wird der erste Scanvektor als Mittelpunkt-Standort für einen neuen Cluster des neuen Clustersatzes (für den gegebenen Cluster) an Block 816 verwendet.
  • Der Neuzentrierungs-Prozess wird dann an Block 812 fortgeführt. Wenn nicht zugewiesene Scanvektoren vorhanden sind, wird ein nächster Mittelpunkt-Standort eines Clusters für einen nächsten Scanvektor an Block 804 identifiziert. An Block 806, wenn der Abstand zwischen dem Standort des nächsten Scanvektors und dem nächsten Mittelpunkt geringer ist als ein Grenzabstandswert (X Meter), wird der nächste Scanvektor dem Cluster mit dem nächsten Mittelpunkt-Standort an Block 808 zugewiesen und der Mittelpunkt-Standort des Mittelpunktes des gegebenen Clusters wird an Block 810 neu berechnet. Der Mittelpunkt-Standort (beispielsweise Koordinaten der Breiten- und Längengrade) eines Clusters kann durch Mittelwertbildung der verbundenen Standorte (beispielsweise Koordinaten der Breiten- und Längengrade) aller zugewiesenen Scanvektoren berechnet werden. Um wieder zu Block 806 zurückzukehren, wenn der Abstand größer als der Grenzabstandswert ist, wird ein neues Cluster erstellt und zu dem neuen Clustersatz mit seinem Mittelpunkt an dem Standort des ersten Scanvektors an Block 816 hinzugefügt.
  • Danach wird der Rest der nicht zugewiesenen Scanvektoren einem bestehenden Cluster oder einem neuen Cluster des neuen Clustersatzes auf dieselbe Weise zugewiesen. Mit anderen Worten, die Iterationen des Prozesses in den Blöcken 806 bis 812 werden fortgesetzt, bis jeder der Scanvektoren an Block 812 zugewiesen wurde und der neue Clustersatz nicht mehr leer ist. An diesem Punkt wird das Cluster des neuen Clustersatzes mit der größten Anzahl an zugewiesenen Scanvektoren an Block 818 identifiziert. Der Mittelpunkt-Standort dieses identifizierten Clusters wird dann als Mittelpunkt-Standort des gegebenen Clusters an Block 820 zugewiesen. Dieser Prozess kann wiederum für jedes Cluster wiederholt werden, das unter Verwendung der zuvor beschriebenen Split- und Verschmelzungsphase erstellt wurde. Diese Neuzentrierung reduziert den Rauscheffekt von den Standorten der Scanvektoren, die durch falsche Standortinformationen verursacht wurden, wie beispielweise wenn die Standorte der Scanvektoren eines Besuchs „herumspringen.“
  • Zusätzliches Nachfiltern kann ausgeführt werden, um die Nützlichkeit der Cluster zu erhöhen. Dies kann eine relative und absolute Filterung, basierend auf der Anzahl der Scans in einem bestimmten Cluster und/oder den Konfidenzwerten der Cluster, beinhalten. Für das relative Filtern wird das Cluster mit der größten Zahl zugewiesener Scanvektoren als größtes Cluster identifiziert. Alle Cluster, die zu wenige Scanvektoren im Verhältnis zu diesem größten Cluster aufweisen, können entfernt werden. Der relative Wert kann demnach ein Verhältnis sein, das ausgewählt wird, basierend auf der Art des Besuches und der Verlässlichkeit der Scanvektoren. Beispielsweise kann, wenn die Scanvektoren von rückgeschlossenen Besuchen stammen, ein höheres Verhältnis oder eines, das näher bei 1 liegt, wie beispielsweise 0,5 oder mehr oder weniger, verwendet werden. Wenn die Scanvektoren von direkt erfassten Besuchen stammen, kann ein niedrigeres Verhältnis verwendet werden, oder eines, das näher bei Null liegt, wie beispielsweise 0,1 oder mehr oder weniger.
  • Absolutes Filtern kann es erforderlich machen, dass die Anzahl der Scanvektoren, die einem gegebenen Cluster zugewiesen wurden, mindestens einen Mindestwert erreichen. Diese Mindestzahl zugewiesener Scanvektoren oder der Mindestwert können wiederum ausgewählt werden, basierend auf der Art des Besuches und der Verlässlichkeit der Scanvektoren. Beispielsweise kann, wenn die Scanvektoren von rückgeschlossenen Besuchen stammen, ein höherer Mindestwert, wie beispielsweise 100 Scans, oder mehr oder weniger (in dem Beispiel von 15.000 Scanvektoren in der verbleibenden Vielzahl von Scanvektoren), verwendet werden. Wenn die Scanvektoren von direkt erfassten Besuchen stammen, kann ein niedrigerer Mindestwert, wie beispielsweise 10 oder 15, oder mehr oder weniger (in dem Beispiel von 15.000 Scanvektoren in der verbleibenden Vielzahl von Scanvektoren), verwendet werden. Die Anzahl der Scanvektoren von jedem Cluster wird dann mit dem Mindestwert verglichen. Jedes Cluster, in dem nicht genug zugewiesene Scanvektoren vorhanden sind, um den Mindestwert zu erreichen, wird verworfen. Das absolute Filtern muss aber wiederum nicht verwendet werden, wenn die Scanvektoren als sehr verlässlich betrachtet werden, beispielsweise wenn die Scanvektoren von direkt erfassten Besuchen statt von rückgeschlossenen Besuchen stammen.
  • Absolutes Filtern kann es zusätzlich oder alternativ erforderlich machen, dass der Konfidenzwert für ein gegebenes Cluster mindestens einen Mindestwert erreicht. Der Konfidenzwert eines gegebenen Clusters kann als der höchste der Konfidenzwerte c eingestellt werden, der mit den Scanvektoren verbunden ist, die dem gegebenen Cluster zugewiesen sind. Wenn der höchste Konfidenzwert für ein Cluster geringer als ein Mindest-Konfidenzwert ist, wird dieses Cluster verworfen. Das absolute Filtern muss aber wiederum nicht verwendet werden, wenn die Scanvektoren als sehr verlässlich betrachtet werden, beispielsweise wenn die Scanvektoren von direkt erfassten Besuchen statt von rückgeschlossenen Besuchen stammen.
  • Wie zuvor erläutert, kann das Modell aus den direkt erfassten Besuchen und/oder den rückgeschlossenen Besuchen erstellt werden. Das Verwenden des einen oder des anderen Datentyps, im Gegensatz zum Aggregieren von Daten, erlaubt eine einfachere Behandlung der Scans in den Filterphasen, wie in den zuvor genannten Beispielen, zudem können die direkt erfassten Besuche als verlässlicher betrachtet werden als die rückgeschlossenen Besuche. Zusätzlich kann es schneller sein, individuelle Modelle zu erstellen, als alle Daten zu kombinieren und zu versuchen, eine einzelne Datensammlung unter Verwendung der adaptiven K-Means-Clusteranalyse zu erstellen. Dadurch lässt sich sogar ein Modell eines Bereichs anhand der direkt erfassten Besuche sowie ein weiteres Modell eines Bereichs unter Verwendung der rückgeschlossenen Besuche erstellen. Diese separaten Modelle können dann kombiniert werden, um ein aggregiertes Modell zu erstellen.
  • In einem Szenario kann das aggregierte Modell wie folgt erstellt werden. Nach dem Nachfiltern jedes Clusters der verschiedenen Modelle, kann die Technik bewerten, ob ein Cluster tatsächlich zu einem bestimmten Punkt von Interesse gehört oder ob es wirklich mit einem anderen Ort, wie z. B. einem benachbarten Geschäft oder einer anderen Einrichtung, verbunden ist. In einigen Beispielen kann jeder Scan, zusätzlich zu einem Zeitstempel, Standort, Satz von Kennungen für Netzwerk-Zugangspunkte und verbundenen Signal stärken, und einem verbundenen Konfidenzwert, auch mit einer Ortsmarkierung verbunden sein. Die Ortsmarkierung kann einen bestimmten Bereich bezeichnen, in dem der Scan ausgeführt wurde. In dieser Hinsicht kann eine Ortsmarkierung breiter sein als ein spezifischer Punkt oder Standort (oder ein Punkt auf dem Längen- und Breitengrad mit einigen verbundenen Fehler- oder Konfidenzwerten) und kann viele verschiedene Standorte beinhalten, die einen bestimmten Punkt von Interesse, wie z. B. ein Geschäft innerhalb eines Einkaufszentrums, eines Gebäudes oder einem anderen größeren Bereich repräsentieren. Für die erfassten Besuche können von einem Benutzer, der die Scans ausgeführt hat, zu oder nahe dem Zeitpunkt des Erfassens Ortsmarkierungen zugewiesen werden, beispielsweise indem er speziell eine Ortsmarkierung aus einer Liste nahegelegener Optionen eingibt oder auswählt. Für die rückgeschlossenen Besuche können die Ortsmarkierungen manuell oder durch „Rückschließen“ auf eine Ortsmarkierung, basierend auf GPS oder einer anderen Standortinformation zum Zeitpunkt des Scans, zugewiesen werden. Deshalb können die Ortsmarkierungen der erfassten Besuche als verlässlicher betrachtet werden als jene der rückgeschlossenen Besuche. Die Ortsmarkierungen können genutzt werden, um Daten für ein gegebenes Modell eines bestimmten Ortes zu identifizieren. In dieser Hinsicht können alle Scans für ein gegebenes Modell mit derselben oder einer ähnlichen Ortsmarkierung verbunden werden.
  • Wiederum können, wie zuvor erläutert, die Ortsmarkierungen, vor dem Kombinieren eines Modells, das aus erfassten Besuchen erstellt wurde, mit einem Modell, das aus rückgeschlossenen Besuchen erstellt wurde, verwendet werden, um die Daten zu filtern. Hierfür können die Scandaten, die dem Mittelpunkt jedes gegebenen Clusters der zu kombinierenden Modelle zugewiesen wurden, als individueller Scan betrachtet werden. Diese individuellen Scans können mit den Scandaten des Mittelpunktes jedes Clusters des aus den erfassten Besuchen erstellten Modells verglichen werden. Für jeden individuellen Scan können die Vergleiche verwendet werden, um eine Rangliste der Ortsmarkierungen aus den verschiedenen Modellen, die aus den erfassten Besuchen erstellt wurden, jeweils mit einem verbundenen Konfidenzwert zu erstellen. Mit anderen Worten, alle Scandaten, die den Clustern beider Modelle zugewiesen wurden, können nur mit den Scandaten verglichen werden, die den Mittelpunkten der Cluster von aus den erfassten Besuchen erstellten Modellen zugewiesen wurden. Beispielsweise kann der Konfidenzwert auf einer Skala zwischen 1 und 100 liegen. Die Ortsmarkierung mit dem größten Konfidenzwert (oder das Cluster oben in der Liste) kann für das gegebene Cluster als „rückgeschlossene“ oder „Inferenz“-Ortsmarkierung bezeichnet werden. Diese Inferenz kann dann verwendet werden, um zu bestimmen, ob ein gegebenes Cluster behalten werden soll.
  • In einem Beispiel kann ein Satz von Ortsmarkierungen A, B, C, D, jeweils verbunden mit einem Modell, das unter Verwendung erfasster Besuche oder des erfassten Besuchsmodells A, erfasster Besuche, des erfassten Besuchsmodells B, erfassten Besuchsmodells C und des erfassten Besuchsmodells D erstellt wurde. Zusätzlich kann jeweils ein anderer Satz von Ortsmarkierungen B, C, D und E mit einem Modell verbunden werden, das unter Verwendung rückgeschlossener Besuche oder des rückgeschlossenen Besuchsmodells B, rückgeschlossenen Besuchsmodells C, rückgeschlossenen Besuchsmodells D und des rückgeschlossenen Besuchsmodells E erstellt wurde. Für ein Cluster des rückgeschlossenen Besuchsmodells B, beispielsweise B_inferred_1, werden die Vektordaten, die dem Mittelpunkt des Clusters B_inferred_1 zugewiesen wurden, mit den Vektordaten verglichen, die den Mittelpunkten jedes der Cluster des erfassten Besuchsmodells A, der erfassten Besuche, des erfassten Besuchsmodells B, der erfassten Besuche, des erfassten Besuchsmodells C und des erfassten Besuchsmodells D zugewiesen wurden. Wenn das Cluster B inferred_1 zu dem erfassten Besuchsmodell B mit hohem Konfidenzwert gehört (höher als 100-Y Konfidenz, wie nachfolgend in Bezug auf das Beispiel in 9 erläutert), kann das Cluster B_inferred_1 im rückgeschlossenen Besuchsmodell B bleiben. Wenn das Cluster Binferred_1 zu dem erfassten Besuchsmodell A, zu erfassten Besuchen, zu dem erfassten Besuchsmodell C oder dem erfassten Besuchsmodell D mit geringem Konfidenzwert gehört (geringer als Y Konfidenz, wie nachfolgend in Bezug auf das Beispiel in 9 erläutert), kann das Cluster B_inferred_1 in dem rückgeschlossenen Besuchsmodell B bleiben. Ansonsten kann das Cluster B_inferred_1 aus dem rückgeschlossenen Besuchsmodell B gelöscht oder gefiltert werden. Für ein Cluster in dem rückgeschlossenen Besuchsmodell E, E_inferred_1, das kein Modell ist, das aus erfassten Besuchen erstellt wurde, kann E_inferred_1 aus dem rückgeschlossenen Besuchsmodell E gelöscht oder gefiltert werden. Das Cluster E-inferred_1 würde sich nicht auf die Ortsmarkierung E beziehen, da dieses Cluster in einem erfassten Besuchsmodell voraussichtlich nicht existieren würde (d. h. kein erfasstes Besuchsmodell E vorhanden ist). Wenn jedoch das Cluster von einem rückgeschlossenen zu dem erfassten Besuchsmodell A, zu erfassten Besuchen, zu dem erfassten Besuchsmodell B, dem erfassten Besuchsmodell C und dem erfassten Besuchsmodell D mit niedriger Wahrscheinlichkeit gehört, kann das Cluster in dem rückgeschlossenen Besuchsmodell E bleiben. Ansonsten kann E_inferred_1 aus dem rückgeschlossenen Besuchsmodell E gelöscht oder gefiltert werden.
  • 9 zeigt ein Beispiel eines Quasi-Codes, der Aspekte dieser Kreuzfilterung repräsentiert. Mit anderen Worten, Cluster, die entweder von einem anderen Ort rückgeschlossen sind, mit einer höheren Konfidenz als 100-Y, oder auf sich selbst rückschließen, mit weniger als Y-Konfidenz, können gefiltert werden. In dem Beispiel in 9 kann der Wert der Y-Konfidenz auf einen Wert zwischen 60 und 90, oder mehr oder weniger, eingestellt werden. Dadurch sind die Cluster innerhalb der Modelle, nach dieser Filterung, zumindest mit dem Modell konsistent, das aus den erfassten Besuchen erstellt wurde.
  • Dann können verschiedene K-Means-Modelle durch Verschmelzen von K-Means-Clustern kombiniert werden. Hier werden zwei Schwellenwerte bewertet, einer für eine niedrigste cos_similarity (min_cos_similarlity) und eine für eine höchste cos_similarity (max_cos_similarlity). Diese Werte können, wie die zuvor beschriebenen Werte, gleich sein oder sich von ihnen unterscheiden. Als exemplarische Darstellung ist 10 ein Beispiel eines Quasi-Codes, der Aspekte der Kombination von Modellen repräsentiert. Dieses Beispiel geht davon aus, dass zwei K-Means-Modelle, A und B, vorhanden sind. Im Allgemeinen können Modelle niedrigerer Ordnung mit Modellen höherer Ordnung kombiniert werden. A kann als Modell höherer Ordnung betrachtet werden als B, wenn A als verlässlicher eingestuft wird. Beispielsweise kann A ein Modell sein, das aus erfassten Besuchen erstellt wurde, und B kann ein Modell sein, das aus rückgeschlossenen Besuchen erstellt wurde. Ein Cluster (Cluster 1) in Modell B kann Modell A hinzugefügt werden, wenn, und nur dann, ein Cluster (Cluster 2) in A existiert, sodass die Kosinus-Ähnlichkeit der Vektordaten der Mittelpunkte dieser beiden Cluster (Cluster 1 und Cluster 2) größer als oder gleich min_cos_similarlity ist. Und basierend darauf muss als nächstes ein Cluster (Cluster 3) in Modell A gefunden werden, das die höchste Kosinus-Ähnlichkeit zu diesem Cluster (Cluster 1) in Modell B aufweist. Wenn die Kosinus-Ähnlichkeit dieser beiden Cluster größer ist als die max_cos_similarlity, verschmilzt der Prozess diese beiden Cluster. In dieser Hinsicht, wenn der erste Schwellenwert (a.) nicht erreicht wird, wird das Cluster in B (Cluster 1) verworfen. Ansonsten, wenn der erste Schwellenwert (a.) erreicht wird, jedoch nicht der zweite (b.), wird das Cluster in Modell B dem Modell A hinzugefügt. Auf diese Weise können Modelle aus verschiedenen Quellen kombiniert werden.
  • Die Technik ist auch auf der Berechnungsebene effizient, da es die adaptive Art der Clusteranalyse, die von den oben genannten Aufteilungs- und Verschmelzungsvorgängen bereitgestellt wird, einem Server-Computer erlaubt, Modelle mit den erläuterten Werten von K für die bestimmten Bereiche, abhängig von den Eigenschaften dieser Bereiche, zu erstellen. Dies stellt sicher, dass der Server-Computer nicht mehr Berechnungen ausführt als notwendig oder wünschenswert, wenn dieser ein Modell für einen bestimmten Bereich erstellt, während gleichzeitig sichergestellt wird, dass das Modell höchst effektiv ist, wenn es dazu verwendet wird, den Standort eines Benutzergeräts zu bestimmen.
  • Die meisten der vorstehenden alternativen Beispiele schließen sich nicht gegenseitig aus, sondern können in unterschiedlichen Kombinationen implementiert werden, um charakteristische Vorteile zu erzielen. Während diese und andere Variationen und Kombinationen der vorstehend beschriebenen Merkmale verwendet werden können, ohne vom Gegenstand, der von den Ansprüchen definiert wird, abzuweichen, sollte die vorhergehende Beschreibung der Ausführungsformen eher als Veranschaulichung und nicht als Gelegenheit betrachtet werden, den von den Ansprüchen definierten Gegenstand der Erfindung einzuschränken. Beispielsweise müssen die folgenden Vorgänge nicht exakt in der unten angegebenen Reihenfolge ausgeführt werden. Stattdessen können unterschiedliche Schritte in unterschiedlicher Reihenfolge, z. B. umgekehrt oder simultan, ausgeführt werden. Schritte können zudem, wenn nicht anders angegeben, ausgelassen werden. Darüber hinaus sollte das Bereitstellen der hierin beschriebenen Beispiele, sowie Klauseln, die mit Begriffen wie etwa „zum Beispiel“, „einschließlich“ und dergleichen formuliert sind, nicht als Einschränkung des Gegenstands der Ansprüche auf diese spezifischen Beispiele interpretiert werden, da die Beispiele dazu dienen, nur eine der vielen möglichen Ausführungsformen zu veranschaulichen. Ferner können die gleichen Referenznummern in unterschiedlichen Zeichnungen die gleichen oder ähnliche Elemente identifizieren.

Claims (2)

  1. Eine Vorrichtung aufweisend Mittel zum Ausführen eines computerimplementierten Verfahrens, umfassend: Empfangen einer Vielzahl von Clustern der Scanvektoren, die aus Signalen bestimmt wurden, die von einer Vielzahl von WLAN-Zugangspunkten empfangen wurden; Identifizieren, aus der Vielzahl von Clustern, eines Clusters, das eine höchste Anzahl von Scanvektoren umfasst; für jedes der Vielzahl von Clustern, die nicht das Cluster sind, das mit der höchsten Anzahl von Scanvektoren identifiziert wurde, das Bestimmen mindestens eines einer Anzahl von Scanvektoren in dem Cluster und mindestens eines Vertrauensindikators, der mit den Scanvektoren in dem Cluster verbunden ist; Filtern der anderen Cluster, basierend auf mindestens einem der Anzahl von Scanvektoren in dem Cluster und dem mindestens einen Vertrauensindikator, der mit den Scanvektoren in dem Cluster verbunden ist; basierend auf dem Filtern, Auswählen mindestens eines der anderen Cluster; und Ausgeben einer Teilmenge der Vielzahl von Clustern für die Verwendung bei Vorgängen der Standortbestimmung, wobei die Teilmenge das Cluster umfasst, das als die höchste Anzahl an Scanvektoren und das ausgewählte mindestens eine Cluster der anderen Cluster umfassend identifiziert wurde.
  2. Ein computerlesbarer Speicher, in dem ein Computerprogramm gespeichert ist, das computerlesbare Anweisungen umfasst, die, wenn sie von mindestens einem Computergerät ausgeführt werden, das mindestens eine Computergerät veranlassen, ein computerimplementiertes Verfahren auszuführen, das aufweist: Empfangen einer Vielzahl von Clustern der Scanvektoren, die aus Signalen bestimmt wurden, die von einer Vielzahl von WLAN-Zugangspunkten empfangen wurden; Identifizieren, aus der Vielzahl von Clustern, eines Clusters, das eine höchste Anzahl von Scanvektoren umfasst; für jedes der Vielzahl von Clustern, die nicht das Cluster sind, das mit der höchsten Anzahl von Scanvektoren identifiziert wurde, das Bestimmen mindestens eines einer Anzahl von Scanvektoren in dem Cluster und mindestens eines Vertrauensindikators, der mit den Scanvektoren in dem Cluster verbunden ist; Filtern der anderen Cluster, basierend auf mindestens einem der Anzahl von Scanvektoren in dem Cluster und dem mindestens einen Vertrauensindikator, der mit den Scanvektoren in dem Cluster verbunden ist; basierend auf dem Filtern, Auswählen mindestens eines der anderen Cluster; und Ausgeben einer Teilmenge der Vielzahl von Clustern für die Verwendung bei Vorgängen der Standortbestimmung, wobei die Teilmenge das Cluster umfasst, das als die höchste Anzahl an Scanvektoren und das ausgewählte mindestens eine Cluster der anderen Cluster umfassend identifiziert wurde.
DE202018101368.8U 2017-06-21 2018-03-12 Erstellen von Modellen für WLAN-Zugangspunkte unter Verwendung von Cluster-Techniken Active DE202018101368U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/US2017/038441 WO2018236364A1 (en) 2017-06-21 2017-06-21 GENERATING WIRELESS NETWORK ACCESS POINTS MODELS USING CLUSTERING TECHNIQUES
USPCT/US2017/038441 2017-06-21

Publications (1)

Publication Number Publication Date
DE202018101368U1 true DE202018101368U1 (de) 2018-05-28

Family

ID=59297364

Family Applications (2)

Application Number Title Priority Date Filing Date
DE202018101368.8U Active DE202018101368U1 (de) 2017-06-21 2018-03-12 Erstellen von Modellen für WLAN-Zugangspunkte unter Verwendung von Cluster-Techniken
DE202018101366.1U Active DE202018101366U1 (de) 2017-06-21 2018-03-12 Erstellen von Modellen für WLAN-Zugangspunkte unter Verwendung von Cluster-Techniken

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE202018101366.1U Active DE202018101366U1 (de) 2017-06-21 2018-03-12 Erstellen von Modellen für WLAN-Zugangspunkte unter Verwendung von Cluster-Techniken

Country Status (6)

Country Link
US (1) US10820296B2 (de)
EP (3) EP4276487A3 (de)
KR (1) KR102112261B1 (de)
CN (2) CN112995903B (de)
DE (2) DE202018101368U1 (de)
WO (1) WO2018236364A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112488144A (zh) * 2019-09-12 2021-03-12 中国移动通信集团广东有限公司 网络设置提示生成方法、装置及电子设备、存储介质

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10503696B1 (en) * 2017-10-11 2019-12-10 Amperity, Inc. Maintaining stable record identifiers in the presence of updated data records
KR102038471B1 (ko) * 2019-06-20 2019-11-26 한화시스템(주) 공중 무인 중계 시스템의 위치 최적화 장치 및 그 방법
CN110198519A (zh) * 2019-06-26 2019-09-03 阿里巴巴集团控股有限公司 网络接入点的位置估计方法与装置
CN110414569B (zh) * 2019-07-03 2022-04-08 北京小米智能科技有限公司 聚类实现方法及装置
US11438886B2 (en) * 2020-02-27 2022-09-06 Psj International Ltd. System for establishing positioning map data and method for the same
KR20230028239A (ko) * 2020-06-30 2023-02-28 삼성전자주식회사 무선 통신 시스템에서 클러스터링을 위한 방법 및 장치
WO2022032620A1 (zh) * 2020-08-14 2022-02-17 海能达通信股份有限公司 一种无人机基站的部署方法、系统、设备及存储介质
US20220129820A1 (en) * 2020-10-23 2022-04-28 Dell Products L.P. Data stream noise identification
CN112672379B (zh) * 2020-12-18 2023-04-07 北京市市政工程设计研究总院有限公司 基于wifi探测技术的枢纽换乘区域旅客走行路径识别方法及设备
CN116756595B (zh) * 2023-08-23 2023-12-01 深圳市森瑞普电子有限公司 一种导电滑环故障数据采集监测方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092072A (en) 1998-04-07 2000-07-18 Lucent Technologies, Inc. Programmed medium for clustering large databases
US7751829B2 (en) * 2003-09-22 2010-07-06 Fujitsu Limited Method and apparatus for location determination using mini-beacons
US7155239B2 (en) * 2004-05-28 2006-12-26 Symbol Technologies, Inc. Method and system for radio map filtering via adaptive clustering
SE531657C2 (sv) * 2007-01-31 2009-06-23 Nanoradio Ab Bakgrundsavsökningsmetod för WLAN-klientenheter
US8737961B2 (en) 2009-09-23 2014-05-27 Nokia Corporation Method and apparatus for incrementally determining location context
US8786440B2 (en) * 2009-10-02 2014-07-22 Checkpoint Systems, Inc. Calibration of beamforming nodes in a configurable monitoring device system
WO2011044156A1 (en) * 2009-10-05 2011-04-14 Asset Intertech, Inc. Protection of proprietary embedded instruments
US8559976B2 (en) * 2010-11-09 2013-10-15 Ntt Docomo, Inc. System and method for population tracking, counting, and movement estimation using mobile operational data and/or geographic information in mobile network
US8781735B2 (en) * 2012-06-25 2014-07-15 Google Inc. Adaptive clustering of locations
US9121922B2 (en) * 2012-06-26 2015-09-01 Cambridge Silicon Radio Limited Access point location identification methods and apparatus based on absolute and relative harvesting
US8909258B2 (en) * 2012-09-07 2014-12-09 Cambridge Silicon Radio Limited Context and map aiding for self-learning
US8989774B2 (en) * 2012-10-11 2015-03-24 Telefonaktiebolaget L M Ericsson (Publ) Method and system of semnatic indoor positioning using significant places as satellites
US9740773B2 (en) * 2012-11-02 2017-08-22 Qualcomm Incorporated Context labels for data clusters
US9100778B2 (en) * 2012-11-13 2015-08-04 Google Inc. Determining a WiFi scan location
US9357473B2 (en) 2013-03-12 2016-05-31 Qualcomm Incorporated Adaptive wireless access point discovery
US9121711B2 (en) * 2013-03-15 2015-09-01 Csr Technology Inc. Environmental awareness for improved power consumption and responsiveness in positioning devices
US9658313B2 (en) * 2013-06-07 2017-05-23 Qualcomm Technologies International, Ltd. Terrestrial positioning assistance serving based on receiver device context
US9491645B2 (en) 2013-08-06 2016-11-08 Google Technology Holdings LLC Method and apparatus for wireless network data collection
US9648462B2 (en) * 2014-11-28 2017-05-09 Szegedi Tudományegyetem Method for tracking of motion of objects associated with wireless communication devices within a predefined area
KR101606382B1 (ko) * 2014-12-04 2016-03-25 현대모비스 주식회사 핑거프린팅 측위를 위한 데이터베이스 구축 방법 및 구축된 데이터베이스를 이용한 핑거프린팅 측위 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112488144A (zh) * 2019-09-12 2021-03-12 中国移动通信集团广东有限公司 网络设置提示生成方法、装置及电子设备、存储介质
CN112488144B (zh) * 2019-09-12 2024-03-19 中国移动通信集团广东有限公司 网络设置提示生成方法、装置及电子设备、存储介质

Also Published As

Publication number Publication date
DE202018101366U1 (de) 2018-05-28
WO2018236364A1 (en) 2018-12-27
CN109104688A (zh) 2018-12-28
CN109104688B (zh) 2021-02-19
EP3913997B1 (de) 2023-08-30
US10820296B2 (en) 2020-10-27
CN112995903A (zh) 2021-06-18
KR102112261B1 (ko) 2020-05-18
EP4276487A3 (de) 2023-11-29
CN112995903B (zh) 2024-08-27
EP3913997A1 (de) 2021-11-24
US20200154392A1 (en) 2020-05-14
EP4276487A2 (de) 2023-11-15
EP3590287A1 (de) 2020-01-08
KR20190016481A (ko) 2019-02-18
EP3590287B1 (de) 2024-01-17

Similar Documents

Publication Publication Date Title
DE202018101368U1 (de) Erstellen von Modellen für WLAN-Zugangspunkte unter Verwendung von Cluster-Techniken
DE112012005533B4 (de) Unterstützende Abfrage und ein Abfragen
DE202020005787U1 (de) Ereignisdetektierung in Echtzeit auf sozialen Datenströmen
DE202016009096U1 (de) Automatisiertes Generieren und Kuratieren lokaler Storys
CN106156350A (zh) 一种可视化大数据分析方法及系统
DE102009006560B4 (de) Verfahren und Sensornetz zur Merkmalsauswahl für eine Ereigniserkennung
DE102007045082A1 (de) Vorrichtung und Verfahren zum Aktualisieren von Kartendaten
DE202014010897U1 (de) Crowdsourcing-System für das Erkennen von defekten WLAN-Positionsbestimmungs-Modellen in Innenräumen
CN112906911B (zh) 联邦学习的模型训练方法
DE202016008004U1 (de) Automatische Verbindung von Bildern unter Verwendung visueller Eigenschaftsquerverweise auf zugehörige Anwendungen
DE202011110874U1 (de) System zur Bestimmung von Gebäudenummern
DE202014010887U1 (de) Das Navigieren durch zeit- und raumumspannende geolokalisierte Bilder
DE202013012435U1 (de) Maßgeschneiderte Kennzeichnung einer Karte auf Basis des Inhalts
DE112016001304T5 (de) Detektieren des Ortes einer Mobilvorrichtung basierend auf semantischen Indikatoren
DE202016006110U1 (de) Erweiterung des Sichtfeldes von Fotografie
CN117014428B (zh) 一种基于数字可视化的线上云展厅管理系统及方法
DE102020207974A1 (de) Systeme und verfahren zum nachweis von bewegung während 3d-datenrekonstruktion
Sinnott et al. Estimating micro-populations through social media analytics
EP3672200A1 (de) Verfahren zur zusammenarbeit von mehreren geräten eines lokalen netzwerks
DE112013001848T5 (de) Ladungsteilchenstrahl-Einstellungsunterstützungsvorrichtung und Ladungsteilchenstrahl-Einstellungsunterstützungsverfahren
DE102012218768A1 (de) Bildverarbeitungssysteme und verwandte verfahren
DE202016007880U1 (de) Identifizieren, Verarbeiten und Anzeigen von Datenpunktclustern
EP3023895A1 (de) Verfahren zum Vergleichen von medizinischen Datensätzen
DE102014214851A1 (de) Computerimplementiertes Verfahren und Computersystem zur Durchführung einer Ähnlichkeitsanalyse
DE112015004803T5 (de) Online hintergrundmodell-extraktion

Legal Events

Date Code Title Description
R207 Utility model specification
R082 Change of representative

Representative=s name: VENNER SHIPLEY GERMANY LLP, DE

Representative=s name: VENNER SHIPLEY LLP, DE

R150 Utility model maintained after payment of first maintenance fee after three years
R151 Utility model maintained after payment of second maintenance fee after six years