KR20190016481A - 클러스터링 기술을 사용하여 무선 네트워크 액세스 포인트 모델 생성 - Google Patents
클러스터링 기술을 사용하여 무선 네트워크 액세스 포인트 모델 생성 Download PDFInfo
- Publication number
- KR20190016481A KR20190016481A KR1020187021077A KR20187021077A KR20190016481A KR 20190016481 A KR20190016481 A KR 20190016481A KR 1020187021077 A KR1020187021077 A KR 1020187021077A KR 20187021077 A KR20187021077 A KR 20187021077A KR 20190016481 A KR20190016481 A KR 20190016481A
- Authority
- KR
- South Korea
- Prior art keywords
- clusters
- cluster
- scan
- vector
- assigned
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/021—Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W64/00—Locating users or terminals or network equipment for network management purposes, e.g. mobility management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W64/00—Locating users or terminals or network equipment for network management purposes, e.g. mobility management
- H04W64/003—Locating users or terminals or network equipment for network management purposes, e.g. mobility management locating network equipment
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/02—Position-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/0252—Radio frequency fingerprinting
- G01S5/02521—Radio frequency fingerprinting using a radio-map
- G01S5/02524—Creating or updating the radio-map
- G01S5/02525—Gathering the radio frequency fingerprints
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B17/00—Monitoring; Testing
- H04B17/30—Monitoring; Testing of propagation channels
- H04B17/309—Measuring or estimating channel quality parameters
- H04B17/318—Received signal strength
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W16/00—Network planning, e.g. coverage or traffic planning tools; Network deployment, e.g. resource partitioning or cells structures
- H04W16/18—Network planning tools
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/10—Scheduling measurement reports ; Arrangements for measurement reports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/11—Allocation or use of connection identifiers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/02—Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
- H04W84/04—Large scale networks; Deep hierarchical networks
- H04W84/08—Trunked mobile radio systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/08—Access point devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/18—Service support devices; Network management devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Electromagnetism (AREA)
- Theoretical Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (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
본 기술은 영역 내의 위치들을 결정하기 위한 무선 네트워크 액세스 포인트 모델을 생성하는 것에 관한 것이다. 일 예에서, 복수의 스캔 벡터들이 수신된다 -각 스캔 벡터는 무선 네트워크 액세스 포인트 식별자들의 세트에 대한 신호 세기들의 세트를 나타내는 데이터를 포함하고, 상기 영역을 통해 이동하는 이동 장치가 상기 신호 세기들의 세트를 측정한 상기 영역 내의 위치와 연관됨-. 클러스터들의 세트는 클러스터들의 세트 내의 클러스터들의 수가 최대 클러스터 수와 동일할 때까지 또는 식별된 배드 스캔 벡터들이 없을 때까지 분할 단계를 반복함으로써 생성된다. 배드 스캔 벡터는 해당 벡터가 할당된 클러스터의 센터로부터의 벡터 차이가 최소 유사도 값보다 작은 벡터를 포함할 수 있다. 그 다음 상기 클러스터들의 세트는 상기 영역의 모델을 생성하도록 사용된다.
Description
본 발명은 클러스터링 기술을 사용하여 무선 네트워크 액세스 포인트 모델들을 생성하는 것에 관한 것이다.
실내 위치 모델들은 일반적으로 무선 네트워크 액세스 포인트 식별자들 및 연관된 신호 세기의 스캔들을 사용하여 생성된다. 그 다음 이러한 스캔들은 위치들을 결정하기 위한 모델들로 배열된다. 하나의 공통적인 접근법은 핑거프린트들을 사용한다. 예를 들어, 더 작은 영역들의 경우, 수신된 모든 스캔의 신호 세기들의 평균은 그러한 영역에 대한 좋은 지표로서 해당 영역의 모델 또는 핑커프린트로 사용될 수 있다. 그러나, 더 넓은 영역의 경우 모든 스캔의 평균은 실제로 해당 영역에 대한 무선 네트워크 액세스 포인트 식별자들의 리스트만을 제공할 수 있다. 더 큰 영역이 더 작은 영역에 더 가깝다면, 단순히 스캔들의 평균을 보는 것으로 구별하기가 어려울 수 있다. 이는 많은 작은 방과 더 큰 복도가 있는 건물들에서 종종 발생된다. 이를 해결하기 위해, 스캔들은 K-평균 클러스터링 방법을 사용하여 모델을 생성하도록 함께 클러스터링될 수 있다. 특정 스캔의 위치를 결정하기 위해, 스캔이 속한 클러스터를 식별하기만 하면 된다.
상기 K-평균 클러스터링 방법은 K 보로노이 셀들(K Voronoi cells)로의 데이터의 분할을 초래한다. 이 문제는 계산적으로는 어렵지만, 일반적으로 사용되고 국지 최적으로 신속하게 수렴되는 효율적인 휴리스틱 알고리즘(heuristic algorithm)이 있다. 이는 일반적으로 기댓값 최대화 알고리즘(expectation-maximization algorithm)과 유사하다. K-평균 알고리즘은 (1) K에 대해 미리 결정된 값의 가장 가까운 센터들에 관측치들을 할당하는 업데이트 라벨 단계와 (2) 할당에 따라 상기 센터들을 다시 계산하는 업데이트 평균 단계와 같은 두 단계의 반복으로 구성된다. 상기 반복은 국지 최적 솔루션을 제공하는 업데이트 라벨 단계가 안정화될 때 종료한다.
일반적인 K-평균 클러스터링 접근법에서 K는 알려진 값이다. 그러나, 크게 달라지는 실내 공간의 경우, K는 영역의 크기 및 모양뿐만 아니라 그 영역에서의 무선 네트워크 액세스 포인트 분포의 특성에 의존할 것이다. 보다 기본적인 K-평균 클러스터링 접근법에서, 이전 무선 네트워크 액세스 포인트 클러스터링 적업에 사용된 것과 같이, K에 대한 작은 값으로 시작하여 하나 이상의 클러스터의 크기가 너무 크면 K를 증가시킨다. 이 접근법은 쇼핑몰(예, 실내 또는 실외 상점 그룹)과 같은 더 큰 영역에서는 그리 효율적이지 않으며, 모든 클러스터가 클러스터 센터에서 벡터 데이터와 비슷한 벡터 차이를 갖는 솔루션으로 이어질 수는 없다.
본 개시의 양태들은 영역 내의 위치들을 결정하기 위한 무선 네트워크 액세스 포인트 모델을 생성하는 방법을 제공한다. 상기 방법은 복수의 스캔 벡터들을 수신하는 단계를 포함하고, 각 스캔 벡터는 무선 네트워크 액세스 포인트 식별자들의 세트에 대한 신호 세기들의 세트를 나타내는 데이터를 포함하고, 상기 영역을 이동하는 이동 장치가 상기 신호 세기들의 세트를 측정한 상기 영역 내의 위치와 연관된다. 상기 방법은 또한 클러스터들의 세트를 생성하기 위해 분할 단계를 수행하는 단계를 포함한다. 이 분할 단계는, 상기 스캔 벡터와 상기 스캔 벡터가 할당된 클러스터의 센터에 할당된 벡터 데이터 간의 벡터 차에 기초하여 상기 복수의 스캔 벡터 중 각 스캔 벡터를 클러스터에 할당하는 단계; 추가 클러스터의 개시를 위한 후보들로서, 상기 스캔 벡터가 할당된 상기 클러스터의 상기 센터에 할당된 상기 벡터 데이터와 상기 스캔 벡터 간의 차이가 상기 클러스터들에 대해 미리 결정된 최소 유사도 값보다 작은 스캔 벡터들로서 상기 복수의 스캔 벡터들 중 하나 이상의 스캔 벡터를 식별하는 단계; 추가 클러스터의 개시를 위한 후보들로서 식별된 상기 하나 이상의 스캔 벡터로부터, 상기 스캔 벡터가 할당된 상기 클러스터의 센터에 할당된 상기 벡터 데이터와 가장 유사한 스캔 벡터를 선택하는 단계; 상기 클러스터들의 세트 내에 추가 클러스터를 생성하고 그리고 상기 선택된 스캔 벡터를 상기 추가 클러스터에 할당하는 단계; 상기 선택된 스캔 벡터의 벡터 데이터를 상기 추가 클러스터의 센터에 할당하는 단계; 상기 클러스터들의 세트의 임의의 클러스터들의 센터들에 할당된 벡터 데이터를 재계산하는 단계; 그리고 상기 클러스터들의 세트 내의 클러스터들의 총수가 미리 결정된 최대 클러스터 수와 동일할 때까지 또는 추가 클러스터의 개시를 위한 추가 후보들이 식별되지 않을 때까지 상기 분할 단계를 반복하는 단계를 포함한다. 상기 방법은 또한 상기 클러스터들의 세트에 기초하여 상기 영역 내의 위치들을 결정하기 위한 상기 모델을 생성하는 단계를 포함한다.
일 예에서, 상기 방법은 또한 상기 분할 단계를 수행하기 전에, 클러스터들의 수를 1로 설정하고 그리고 상기 복수의 스캔 벡터들 중 제1 벡터 스캔을 상기 클러스터들의 세트의 제1 클러스터의 센터로 할당하는 단계를 포함한다. 추가적으로 또는 대안적으로, 클러스터들의 수가 최대 클러스터 수와 동일할 때, 상기 방법은 아웃라이어를 식별하도록 상기 클러스터를 필터링하고 그리고 상기 아웃라이어 및 상기 할당된 스캔 벡터들을 제거함으로써 상기 클러스터들의 세트 내의 클러스터들의 총수를 감소시키는 단계를 포함한다. 또한, 상기 방법은, 아웃라이어를 제거하도록 필터링한 후, 상기 클러스터들의 수가 다시 최대 클러스터 수와 동일하거나 또는 더 이상 존재하지 않을 때까지 또는 추가 클러스터의 개시를 위한 추가 후보들이 식별되지 않을 때까지 상기 분할 단계를 반복하여 계속하는 단계를 포함한다. 추가적으로 또는 대안적으로, 상기 방법은 또한 상기 클러스터들의 세트 내의 클러스터들 중 적어도 2개를 클러스터 병합 동작을 위한 후보들로 식별하고, 상기 클러스터들의 세트 내의 클러스터들의 총수를 줄이도록 상기 적어도 2개의 클러스터를 병합된 클러스터로 병합하는 단계를 포함하며, 상기 적어도 2개의 클러스터에 이전에 할당된 상기 스캔 벡터들은 병합된 클러스터에 재할당된다. 이 예에서, 상기 클러스터들의 세트 내의 상기 적어도 2개의 클러스터를 상기 클러스터 병합 동작을 위한 후보들로 식별하는 단계는 임계량보다 낮은 스캔 벡터 총수를 포함하는 것으로 상기 클러스터들을 식별하는 단계를 포함한다. 추가적으로 또는 대안으로, 상기 클러스터들의 세트 내의 상기 적어도 2개의 클러스터를 상기 클러스터 병합 동작을 위한 후보들로 식별하는 단계는 상기 클러스터들 중 제1 클러스터의 센터에 할당된 벡터 데이터와 상기 클러스터들 중 제2 클러스터의 센터에 할당된 벡터 데이터 간의 차이가 미리결정된 임계 값보다 작은지를 식별하는 단계를 포함한다. 추가적으로 또는 대안적으로, 상기 방법은 또한 상기 클러스터들의 세트 내의 클러스터들로부터, 가장 많은 수의 스캔 벡터들을 포함하는 클러스터를 식별하는 단계; 상기 클러스터들의 세트 내의 다른 클러스터들 각각에 대해, 상기 클러스터 내의 복수의 스캔 벡터들 중 적어도 하나 및 상기 클러스터 내의 상기 스캔 벡터들과 연관된 적어도 하나의 신뢰도 인디케이터를 결정하는 단계; 상기 클러스터 내의 상기 복수의 스캔 벡터들 중 적어도 하나 및 상기 클러스터 내의 상기 스캔 벡터들과 연관된 적어도 하나의 신뢰도 인디케이터에 기초하여 상기 다른 클러스터들을 필터링하는 단계; 상기 필터링에 기초하여, 상기 다른 클러스터들 중 적어도 하나를 선택하는 단계; 그리고 위치 결정 동작에 사용하기 위해 상기 복수의 클러스터의 서브세트를 출력하는 단계를 포함하며, 상기 서브세트는 상기 다른 클러스터들 중 상기 선택된 적어도 하나 및 상기 가장 많은 수의 스캔 벡터들을 포함하는 것으로 식별된 상기 클러스터를 포함한다. 이 예에서, 상기 모델의 생성의 기반이 되는 상기 클러스터들의 세트는 클러스터들의 상기 서브세트에만 해당된다. 추가적으로 또는 대안적으로, 상기 방법은 또한 상기 클러스터들의 세트 내의 각각의 클러스터에 대해, 상기 클러스터에 할당된 상기 스캔 벡터들과 연관된 상기 위치들에 기초하여 센터 위치를 결정하는 단계; 각 클러스터에 대해, 상기 클러스터에 할당된 상기 스캔 벡터들과 연관된 위치들과 상기 센터 위치 사이의 거리들에 기초하여 상기 클러스터의 상기 센터 위치를 리센터링하는 단계를 포함한다.
본 개시의 양태들은 또한 상술한 예시적인 방법들을 수행하기 위한 컴퓨팅 수단들을 포함하는 장치를 제공한다. 또한, 본 개시의 양태들은 적어도 하나의 컴퓨팅 장치에 의해 실행될 때 상기 적어도 하나의 컴퓨팅 장치로 하여금 전술한 예시적인 방법들을 수행하게 하는 컴퓨터 판독가능 명령어들을 포함하는 컴퓨터 프로그램을 제공한다.
본 개시의 추가 양태들은 컴퓨터로 구현되는 방법을 제공한다. 상기 방법은 복수의 무선 액세스 포인트들로부터 수신된 신호들로부터 결정된 스캔 벡터들의 복수의 클러스터들을 수신하는 단계; 상기 복수의 클러스터들로부터 가장 많은 수의 스캔 벡터들을 포함하는 클러스터를 식별하는 단계; 상기 가장 많은 수의 스캔 벡터들을 포함하는 것으로 식별된 상기 클러스터 이외의 복수의 클러스터들 각각에 대해, 상기 클러스터 내의 복수의 스캔 벡터들 중 적어도 하나와 상기 클러스터 내의 상기 스캔 벡터들과 연관된 적어도 하나의 신뢰도 인디케이터를 결정하는 단계; 상기 클러스터 내의 상기 복수의 스캔 벡터들 중 적어도 하나와 상기 클러스터 내의 상기 스캔 벡터들과 연관된 상기 적어도 하나의 신뢰도 인디케이터에 기초하여 상기 다른 클러스터들을 필터링하는 단계; 상기 필터링에 기초하여, 상기 다른 클러스터들 중 적어도 하나를 선택하는 단계; 그리고 위치 결정 동작에 사용하기 위해 상기 복수의 클러스터들의 서브세트를 출력하는 단계를 포함하며, 상기 서브세트는 상기 다른 클러스터 중 상기 선택된 적어도 하나 및 상기 가장 많은 수의 스캔 벡터들을 포함하는 것으로 식별된 상기 클러스터를 포함한다. 상기 개시의 양태들은 또한 전술한 방법을 수행하기 위한 수단들을 포함하는 장치뿐만 아니라, 적어도 하나의 컴퓨팅 장치에 의해 실행될 때, 상기 적어도 하나의 컴퓨팅 장치로 하여금 전술한 방법을 수행하게 하는 컴퓨터 판독가능 명령어들을 포함하는 컴퓨터 프로그램을 제공한다.
본 개시의 또 다른 양태들은 영역 내의 위치들을 결정하기 위한 무선 네트워크 액세스 포인트 모델을 생성하는 방법을 제공한다. 상기 방법은, 하나 이상의 프로세서를 갖는 하나 이상의 서버 컴퓨팅 장치에 의해, 복수의 스캔 벡터들을 수신하는 단계 -각각의 스캔 벡터는 무선 네트워크 액세스 포인트 식별자들의 세트에 대한 신호 세기들의 세트를 나타내며, 상기 영역을 통해 이동하는 이동 장치가 상기 신호 세기들의 세트를 측정한 상기 영역 내의 위치와 연관되며-; 상기 하나 이상의 서버 컴퓨팅 장치에 의해 최대 클러스터 수를 설정하는 단계; 상기 하나 이상의 서버 컴퓨팅 장치에 의해, 최소 유사도 값을 설정하는 단계; 상기 하나 이상의 서버 컴퓨팅 장치에 의해 클러스터들을 포함하는 세트를 생성하도록 분할 단계를 수행하는 단계를 포함한다. 상기 분할 단계는 소정의 스캔 벡터와 상기 할당된 클러스터의 벡터 데이터 사이의 벡터 차이에 기초하여 상기 복수의 스캔 벡터들 중 각각의 소정의 스캔 벡터를 클러스터에 할당하는 단계; 하나 이상의 배드 스캔 벡터들 각각이 할당된 클러스터의 센터에 할당된 벡터 데이터 및 상기 하나 이상의 배드 스캔 벡터들 각각의 벡터 차이가 최소 유사도 값보다 작은지 여부에 기초하여, 상기 복수의 스캔 벡터들 중 하나 이상의 배드 스캔 벡터들을 식별하는 단계; 워스트 스캔 벡터에 대한 할당된 클러스터의 센터의 벡터 데이터 및 상기 하나 이상의 배드 스캔 벡터들 사이의 가장 큰 벡터 차이를 갖는 하나 이상의 배드 스캔 벡터들 중 워스트 스캔 벡터를 선택하는 단계; 상기 선택된 워스트 스캔 벡터를 새로운 클러스터의 센터로 사용함으로써 상기 클러스터들의 세트 내의 복수의 클러스터를 증가시키는 단계; 상기 클러스터들의 세트 중 임의의 클러스터들의 센터들에 할당된 벡터 데이터를 재계산하는 단계; 상기 하나 이상의 서버 컴퓨팅 장치에 의해, 상기 클러스터들의 세트 내의 상기 복수의 클러스터들이 최대 클러스터 수와 동일하거나 식별된 하나 이상의 배드 스캔 벡터들이 없을 때까지 상기 분할 단계를 반복하는 단계를 포함한다. 상기 방법은 또한 상기 클러스터들의 세트에 기초하여 상기 영역의 상기 모델을 생성하는 단계를 포함한다.
일 예에서, 2개의 스캔 벡터들(v1, v2) 사이의 유사도는 코사인 유사도(v1, v2)으로 정의될 수 있고, 최소 유사도 값은 최소 코사인 유사도이고, 상기 워스트 스캔 벡터를 선택하는 단계는, 가장 큰 값의 코사인 유사도를 갖는 상기 하나 이상의 배드 스캔들 중 하나를 식별하는 단계로서, 상기 식별된 배드 스캔의 상기 할당된 클러스터의 상기 센터와 상기 식별된 배드 스캔 사이의 가장 큰 값의 코사인 유사도를 갖는 상기 하나 이상의 배드 스캔들 중 하나를 식별하는 단계를 포함한다. 다른 예에서, 상기 방법은 또한 상기 분할 단계를 수행하기 전에, 상기 클러스터들의 수를 1로 설정하고 그리고 상기 복수의 스캔 벡터들의 제1 벡터 스캔을 상기 클러스터들의 세트의 제1 클러스터의 센터로 할당하는 단계를 포함한다. 다른 예에서, 상기 분할 단계는, 상기 클러스터들의 세트의 임의의 클러스터들의 센터들에 할당된 벡터 데이터를 재계산한 후, 상기 클러스터들의 세트의 임의의 클러스터들의 센터들에 할당된 상기 벡터 데이터가 변경되었는지 여부를 결정하는 단계; 상기 클러스터들의 세트의 임의의 클러스터들의 센터들에 할당된 벡터 데이터가 변경되었을 때, 상기 복수의 스캔 벡터들을 상기 클러스터들의 세트의 클러스터들에 재할당하는 단계; 그리고 상기 임의의 클러스터들의 센터들에 할당된 벡터 데이터가 상기 재계산에서 변경되지 않도록 상기 클러스터들의 세트의 상기 클러스터들이 안정화될 때까지 재계산 및 재할당을 계속하는 단계를 더 포함한다. 다른 예에서, 상기 반복은 상기 복수의 클러스터가 최대 클러스터 수와 동일할 때 종료하며, 아웃라이어를 제거하도록 임의의 클러스터를 필터링한다. 이 예에서, 상기 방법은 필터링 후, 상기 복수의 클러스터들이 상기 최대 클러스터 수와 동일해질 때까지 또는 식별된 하나 이상의 배드 스캔 벡터들이 없을 때까지 상기 분할 단계를 반복하여 계속하는 단계를 더 포함한다.
다른 예에서, 상기 방법은 또한 상기 하나 이상의 서버 컴퓨팅 장치에 의해 최대 유사도 값을 설정하고 그리고 병합 단계를 수행하는 단계를 포함하며, 상기 병합 단계는, 상기 최대 유사도 값보다 큰 유사도 값을 갖는 한 쌍의 클러스터의 각각의 센터에 할당된 벡터 데이터를 갖는 상기 클러스터들의 세트의 상기 한 쌍의 클러스터를 식별하는 단계; 상기 한 쌍의 클러스터 및 임의의 할당된 스캔 벡터들을 함께 병합하는 단계를 포함한다. 이 예에서, 상기 한 쌍의 클러스터를 식별하는 단계는 상기 각각의 센터에 할당된 벡터 데이터 간의 코사인 유사도(cosine similarity)에 기초한다. 추가적으로 또는 대안적으로, 상기 방법은 또한 상기 최대 유사도 값보다 큰 유사도 값을 갖는 상기 클러스터들의 세트의 클러스터들의 쌍들이 없을 때까지 상기 병합 단계를 반복하는 단계를 포함한다.
추가적으로 또는 대안적으로, 상기 한 쌍의 클러스터를 식별하는 단계는 상기 한 쌍의 클러스터의 각 클러스터에 할당된 복수의 스캔 벡터들에 더 기초한다. 다른 예에서, 상기 방법은 또한 최대 유사도 값을 설정하는 단계를 포함하며, 상기 분할 단계 및 병합 단계를 통한 반복은 상기 클러스터들의 세트의 각 소정의 클러스터에서 상기 소정의 클러스터에 할당된 각 스캔 벡터와 상기 소정의 클러스터의 센터의 스캔 벡터 간의 벡터 차이가 상기 최소 유사도 값보다 크고 그리고 상기 소정의 클러스터의 센터의 스캔 벡터와 상기 클러스터들의 세트 중 임의의 다른 클러스터의 센터의 스캔 벡터 간의 벡터 차이가 최대 유사 값보다 작도록 상기 클러스터들의 세트를 제공한다. 추가적으로 또는 대안적으로, 상기 방법은 상기 소정의 클러스터에 할당된 상기 스캔 벡터들과 연관된 위치들에 기초하여 상기 클러스터들의 세트의 각 소정의 클러스터의 센터 위치를 결정하는 단계; 및 상기 소정의 클러스터에 할당된 스캔 벡터들과 연관된 위치들과 상기 센터 위치 사이의 거리들에 기초하여 각 소정의 클러스터의 센터 위치를 리센터링하는 단계를 포함한다. 이 예에서, 리센터링은 상기 거리들이 임계 거리 값을 충족시키는지 여부에 기초한다. 추가적으로 또는 대안적으로, 상기 방법은 또한 상기 모델을 생성하기 전에, 가장 많은 수의 상기 할당된 스캔 벡터들을 갖는 상기 클러스터들의 세트의 클러스터를 식별함으로써 상기 클러스터들의 세트를 필터링하는 단계; 그리고 상기 가장 많은 수의 상기 할당된 스캔 벡터들에 대한 비교에 기초하여 상기 클러스터들의 세트로부터 하나 이상의 클러스터들을 필터링하는 단계를 포함한다. 추가적으로 또는 대안적으로, 상기 방법은 또한 상기 모델을 생성하기 전에, 할당된 스캔 벡터들의 최소 수를 충족시키지 않는 임의의 클러스터들을 제거하도록 상기 클러스터들의 세트를 필터링하는 단계를 포함한다. 추가적으로 또는 대안적으로, 상기 복수의 스캔 벡터들의 각각의 소정의 스캔 벡터는 상기 소정의 스캔 벡터에 대한 추정된 위치 및 상기 신호 세기 측정치들의 결합된 정확도 측정치를 나타내는 신뢰도 값과 연관되며, 상기 방법은 상기 모델을 생성하기 전에, 상기 클러스터들의 세트의 각각의 클러스터에 할당된 상기 스캔 벡터들과 연관된 가장 높은 신뢰도 값에 기초하여 상기 클러스터들의 세트를 필터링하는 단계를 더 포함한다. 이 예에서, 상기 클러스터들의 세트를 필터링하는 단계는 임계 신뢰도 값을 총족하지 않는 가장 높은 신뢰도 값을 갖는 클러스터들을 상기 클러스터들의 세트로부터 제거하는 단계를 포함한다. 추가적으로 또는 대안적으로, 상기 복수의 스캔 벡터들의 적어도 하나의 서브세트는 특정 이동 장치에 의한 상기 영역으로의 단일 방문에 대응하고, 상기 단일 방문은 복수의 스캔들을 포함하며, 상기 방법은 상기 방문의 시작 경계 및 끝 경계에서 스캔들을 제거하도록 상기 복수의 스캔들을 필터링하는 단계를 더 포함하며, 상기 필터링된 스캔들은 상기 복수의 스캔 벡터들에 포함되지 않는다. 이 예에서, 상기 복수의 스캔들을 필터링하는 단계는 상기 모델을 생성할 때 노이즈를 제거하도록 선택된 추출 레이트(extraction rate)에 기초한다. 추가적으로 또는 대안적으로, 상기 복수의 스캔 벡터들의 각각의 소정의 스캔 벡터는 상기 소정의 스캔 벡터에 대한 추정된 위치 및 신호 세기 측정치들의 결합된 정확도 측정치를 나타내는 신뢰도 값과 연관되며, 상기 방법은 상기 분할 단계를 수행하기 전에, 상기 모델로부터 노이즈를 제거하도록 임계 신뢰도 값을 충족시키지 않는 신뢰도 값과 연관된 스캔 벡터를 제거하도록 상기 복수의 스캔 벡터들을 필터링하는 단계를 더 포함한다.
도 1은 본 발명의 양태들에 따른 예시적인 시스템의 기능도이다.
도 2는 도 1의 예시적인 시스템의 도면이다.
도 3은 본 발명의 양태들에 따른 분할 단계의 양태들을 나타내는 의사 코드(quasi code)의 예이다.
도 4는 본 발명의 양태들에 따른 분할 단계의 양태들을 나타내는 흐름도이다.
도 5는 본 발명의 양태들에 따른 병합 단계의 양태들을 나타내는 의사 코드의 일예이다.
도 6은 본 발명의 양태들에 따른 병합 단계의 양태들을 나타내는 흐름도이다.
도 7은 본 발명의 양태들에 따른 리센터링(re-centering) 프로세스의 양태들을 나타내는 의사 코드의 예이다.
도 8은 본 발명의 양태들에 따른 리센터링 프로세스의 양태들을 나타내는 흐름도이다.
도 9는 본 발명의 양태들에 따른 모델들 간의 크로스 필터링 양태들을 나타내는 의사 코드의 예이다.
도 10은 본 발명의 양태들에 따른 모델들 결합의 양태들을 나타내는 의사 코드의 예이다.
도 2는 도 1의 예시적인 시스템의 도면이다.
도 3은 본 발명의 양태들에 따른 분할 단계의 양태들을 나타내는 의사 코드(quasi code)의 예이다.
도 4는 본 발명의 양태들에 따른 분할 단계의 양태들을 나타내는 흐름도이다.
도 5는 본 발명의 양태들에 따른 병합 단계의 양태들을 나타내는 의사 코드의 일예이다.
도 6은 본 발명의 양태들에 따른 병합 단계의 양태들을 나타내는 흐름도이다.
도 7은 본 발명의 양태들에 따른 리센터링(re-centering) 프로세스의 양태들을 나타내는 의사 코드의 예이다.
도 8은 본 발명의 양태들에 따른 리센터링 프로세스의 양태들을 나타내는 흐름도이다.
도 9는 본 발명의 양태들에 따른 모델들 간의 크로스 필터링 양태들을 나타내는 의사 코드의 예이다.
도 10은 본 발명의 양태들에 따른 모델들 결합의 양태들을 나타내는 의사 코드의 예이다.
개요
본 개시의 양태들은 예를 들어, 위치 기반 서비스들을 제공하기 위한 위치들의 무선 네트워크 액세스 포인트 모델들을 생성하는 것에 관한 갓이다. 예를 들어, 무선 네트워크 액세스 포인트 식별자(예, MAC 주소) 및 모바일 장치들에 의해 수집된 연관 신호 세기(예, 0 dB에서 -120 dB 까지의 스캔의 RSSI, 0에 가까울수록 신호가 강함)인 무선 네트워크 액세스 포인트 시그니처들의 스캔들은 이러한 모델들을 생성하도록 사용될 수 있다. 이들 복수의 스캔은, 예를 들어, 후술하는 적응형 K-평균 클러스터링(adaptive K-means clustering) 방법을 사용하여 모델을 생성하기 위해 함께 클러스터링될 수 있다. K-평균 클러스터링은 벡터 세트(v1, v2, ..., vn)를 K 개의 클러스터들(S = {S1, S2, ..., Sk})로 분할하며, 여기서 각 세트는 보로노이 셀에 대응한다. 각 클러스터는 해당 클러스터의 센터를 나타내는 벡터를 포함한다. 특정 스캔의 위치를 결정하기 위해, 상기 스캔이 속한 클러스터만 식별하면된다.
상기한 바와 같이 쇼핑몰과 같은 영역의 하나 이상의 모델을 생성하기 위해, 복수의 스캔이 사용될 수 있다. 이러한 스캔들 중 적어도 일부는 그 영역 전체로 이동하는 모바일 장치들에 의해 수집될 수 있다. 따라서, 모바일 장치들은 영역 내의 또는 그 부근의 위치로의 방문(visit)에 대응하는 일련의 스캔들을 포함하는 정보를 서버 컴퓨터에 제공할 수 있다. 시리즈의 각 스캔은 타임스탬프, 위치, 네트워크 액세스 지점 식별자 세트 및 연관된 신호 세기들 및 연관된 신뢰도 값을 갖는다. 상기 신뢰도 값은 신호 세기 측정치들 및 위치들의 결합된 신뢰도 또는 정확도 측정치를 나타낼 수 있다. 예를 들어, 일부 방문은 자신의 모바일 장치를 사용하여 데이터를 수집하기 위해 해당 영역을 특별히 이동하는 사람에 의해 제공된 직접 수집된 방문들일 수 있다. 다른 방문들은 추론된 방문, 예컨대 위치 기반 서비스의 사용자들에 의해 제공된 정보로부터 추론될 수 있다. 아래에서 자세히 설명된 바와 같이, 이 데이터는 집합되어 단일 모델에 대한 클러스터를 결정하는 데 사용될 수 있으며, 개별 사용을 위해 개별 모델들을 생성하는 데 사용될 수도 있다. 대안적으로, 상기 개별 모델들은 단일 집합체 모델(single aggregated model)로 결합될 수 있다.
일부 예들에서, 상기 스캔들은 상기 데이터의 노이즈가 많은 부분을 줄이거 나 제거하기 위해 다양한 방법으로 사전 필터링될 수 있다. 예를 들어, 방문할 때마다, 일련의 시작과 끝 부분의 스캔들은 상기 방문에 대한 타임스탬프들에 따라 삭제될 수 있다. 타임스탬프들은 스캔 순서를 지정하는데도 사용될 수 있으며, 예를 들어, 가장 최근의 세트만이 하나 이상의 모델을 생성하는데 사용되도록 시간순으로 반전될 수 있다. 또한, 일부 무선 네트워크 액세스 포인트 식별자들은 복수의 스캔에 대해 극히 낮은 발생을 갖거나 중복되어 나타나는 식별자들이 제거되도록 필터링될 수 있다.
임의의 필터링 후에 남겨진 복수의 각각의 스캔은 타임스탬프, 위치 및 신뢰와 연관된 스캔 벡터에 의해 표현될 수 있다. K-평균 클러스터링을 사용하기 전에, K의 최대값뿐만 아니라 각각의 클러스터 내의 벡터들에 대한 최소 및 최대 허용 유사도 값들이 먼저 정의될 수 있다.
상기 적응형 K-평균 클러스터링은 분할 단계와 병합 단계를 포함할 수 있다. 상기 분할 단계에서, 나머지 복수의 제1 스캔 벡터는 제1 클러스터에 대한 센터에서의 벡터에 대한 값들로서 할당될 수 있다. 배드(bad) 스캔 벡터와 제1 스캔 벡터(v1)(또는 클러스터의 벡터 데이터가 할당된 벡터 데이터) 사이의 벡터 유사도 값이 최소 허용 가능 유사도 값보다 작은 것으로서 정의된 모든 "배드" 스캔 벡터가 식별된다. 상기 클러스터의 센터로부터 가장 큰 벡터 차이(또는 상기 센터에서의 백터 데이터에 대한 가장 낮은 유사도 값)를 갖는 배드 스캔 벡터들의 "워스트(worst)"스캔이 식별된다.
그 다음, 새로운 클러스터는 그 새로운 클러스터의 센터에서의 벡터의 값들로 할당된 상기 식별된 워스트 스캔 벡터로 생성된다. 이 점에서 K의 값이 증가된다. 그 다음 K-평균 클러스터링은 나머지 복수 개의 스캔 각각을 상기 클러스터들 중 하나에 할당하는 데 사용된다. 상기 센터들의 벡터 값들이 변경되지 않도록 상기 스캔들의 할당이 안정화될 때 K-평균 클러스터링의 반복이 종료한다.
다시, 모든 배드 스캔 벡터들이 결정되고, 이들 배드 스캔 벡터들의 워스트 스캔 벡터가 식별된다. 상기 워스트 스캔 벡터는 스캔 횟수가 가장 많은 클러스터의 센터에 할당된 벡터 데이터와 가장 큰 벡터 차를 갖는 배드 스캔 벡터들의 스캔 벡터이다. 이 워스트 스캔 벡터는 현재 클러스터에서 제거되고, 상기 벡터 데이터는 새로운 클러스터의 센터에 대한 벡터 값으로 할당되고, K-평균 클러스터링은 반복된다. 상기 설명된 프로세스의 반복은 K가 K에 대한 최대값에 도달하거나 배드 스캔 벡터들이 없을 때까지 계속된다.
K의 최대값에 도달했지만 여전히 복수의 배드 스캔이 있는 경우, 상기 클러스터들은 아웃라이어(outliers)를 제거하도록 필터링될 수 있다. 이는 그러한 클러스터들이 실제로 아웃라이어가 될 수 있으므로 스캔이 거의 없는 클러스터들이 있는지를 식별하는 것을 포함할 수 있다. 아웃라이어가 있는 경우, 할당된 스캔 벡터들뿐만 아니라 이들 클러스터들이 제거되고, 상기 분할 단계의 K-평균 클러스터링이 계속된다. 그 후, 상기 분할 단계는 K가 다시 K에 대한 최대값에 도달하거나 배드 스캔 벡터들이 없을 때까지 계속된다. 이 필터링의 결과로서, 상기 분할 단계의 결과 클러스터들은 유사한 개수의 할당된 스캔 벡터들을 가질 수 있다. 이 필터링은 상기 스캔 벡터들이 추론된 방문과는 반대로 직접 수집된 방문에서 비롯된 것과 같이 상기 스캔 벡터들이 매우 신뢰성이 있는 것으로 간주되는 경우에도 활용되지 않을 수 있다.
그 다음 상기 결과 클러스터들은 클러스터가 서로 매우 유사하고 할당된 스캔 수가 상대적으로 적은 할당된 스캔 벡터들로 모든 클러스터를 병합하도록 병합 단계에서 다시 처리된다. 물론, 이 결합은 그 결합이 더 많은 배드 스캔을 생성하지 않거나 또는 식별된 배드 스캔의 총수가 미리 결정된 임계 값 내에 있는 경우에만 수행된다는 다른 요건들을 가질 수 있다. 두 개의 클러스터들이 병합되면, K-평균 클러스터링 반복이 그 클러스터들이 안정될 때까지 계속된다. 이는 서로 매우 유사하고 그리고 할당된 스캔들의 수가 상대적으로 적은 할당된 벡터 데이터가 있는 센터들을 갖는 두 개의 클러스터들이 없을 때까지 반복되며, 결합되면 많거나 더 많은 배드 스캔들을 초래하지 않을 것이다.
이들 클러스터들의 위치들은 임의의 할당된 스캔 벡터들의 연관된 위치들을 평균화함으로써 계산될 수 있다. 이는 상기 클러스터들이 분할 및/또는 병합 단계에서 생성되면 계산될 수 있다. 상기 클러스터들의 센터들의 위치들을 더 향상시키기 위해, 각 클러스터는 각 클러스터에 할당된 스캔 벡터들의 물리적 위치들에 기초하여 리센터링될 수 있다.
추가 포스트 필터링(post filtering)은 상기 클러스터들의 유용성을 증가시키기 위해 수행될 수 있다. 여기에는 특정 클러스터의 스캔 횟수 및/또는 상기 클러스터들의 신뢰도 값들을 기준으로 한 상대 및 절대 필터링이 포함될 수 있다.
여기에 설명된 적응형 K-평균 클러스터링 및 필터링의 결과는 소정의 스캔 벡터의 위치를 쉽게 식별하는데 사용될 수 있는 상기 영역의 모델이다. 예를 들어, S의 클러스터들의 각각은 할당된 스캔 벡터가 있는 센터를 가질 것이다. 새로운 스캔이 수행되는 위치를 결정하기 위해, 상기 새로운 스캔을 위한 스캔 벡터는 클러스터 센터들에 대해 앞서 할당된 벡터 데이터와 비교되어 가장 유사한 할당된 스캔 벡터를 식별한다. 따라서, 상기 새로운 스캔 벡터의 위치는 가장 유사한 할당된 벡터 데이터가 있는 클러스터의 위치이다. 더욱이, 상기 클러스터들에는 각각 유사한 수의 스캔 벡터가 할당되고, 상기 할당된 스캔 벡터들은 잘 분산되고 서로 다르므로 상기 모델은 매우 신뢰성 있는 위치 추정을 제공할 수 있다. 이 정보는 모든 유형의 위치 기반 서비스를 제공하는 데 사용될 수 있다.
상기 언급된 바와 같이, 상기 모델은 직접 수집된 방문 및/또는 추론된 방문으로부터 생성될 수 있다. 데이터 집합과 달리 하나 또는 다른 유형의 데이터를 사용하면 위의 예와 같이 필터링 단계들에서 상기 스캔들을 보다 간단하게 처리할 수 있으므로, 직접 수집된 방문은 상기 추론된 방문보다 더 신뢰할 수 있는 것으로 간주될 수 있다. 또한, 모든 데이터를 결합하고 적응형 K-평균 클러스터링을 사용하여 단일 데이터를 생성하는 것보다 개별 모델들을 생성하는 것이 더 빠를 수 있다. 따라서, 직접 수집된 방문을 사용하여 한 영역의 하나의 모델과 추론된 방문을 사용하여 한 영역의 다른 모델을 실제 생성할 수 있다. 그 다음 이러한 개별 모델들은 집합체 모델을 생성하도록 함께 결합될 수 있다.
상기 기술은 또한 상술한 분할 및 병합 동작에 의해 제공되는 클러스터링의 적응성이 서버 컴퓨터가 이들 영역의들 특성에 따라 특정 영역들에 대한 K의 맞춤 값들을 갖는 모델들을 생성할 수 있게 해주기 때문에 계산적으로 효율적이다. 이는 상기 서버 컴퓨터가 특정 영역에 대한 모델을 생성할 때 필요하거나 바람직한 것보다 더 많은 계산을 수행하지 못하도록 함과 동시에 사용자 장치의 위치를 결정하는 데 사용될 때 상기 모델이 매우 효과적임을 보장한다.
예시적인 시스템들
도 1 및 도 2는 전술한 특징들이 구현될 수 있는 예시적인 시스템(100)을 포함한다. 여기에 기재된 특징들의 개시 또는 유용성의 범위를 제한하는 것으로 간주되어서는 안된다. 이 예에서, 시스템(100)은 컴퓨팅 장치들(110, 120, 130 및 140)뿐만 아니라 저장 시스템(150)을 포함할 수 있다. 각 컴퓨팅 장치(110)는 하나 이상의 프로세서(112), 메모리 (114) 및 일반적 범용 컴퓨팅 장치에 존재하는 다른 컴포넌트들을 포함할 수 있다. 각각의 컴퓨팅 장치(110, 120, 130 및 140)의 메모리(114)는 하나 이상의 프로세서(112)에 의해 실행될 수 있는 명령어들(116)을 포함하여 하나 이상의 프로세서(112)에 의해 액세스 가능한 정보를 저장할 수 있다.
메모리는 또한 상기 프로세서에 의해 검색, 조작 또는 저장될 수 있는 데이터(118)를 포함할 수 있다. 상기 메모리는 하드 드라이브, 메모리 카드, ROM, RAM, DVD, CD-ROM, 쓰기 가능 및 읽기 전용 메모리와 같이 프로세서가 액세스할 수 있는 정보를 저장할 수 있는 임의의 비일시적인 유형일 수 있다.
상기 명령어들(116)은 하나 이상의 프로세서에 의해, 기계 코드와 같이 직접적으로 또는 스크립트와 같은 간접적으로 실행될 임의의 세트의 명령어들일 수 있다. 이와 관련하여, "명령어들", "애플리케이션", "스탭들" 및 "프로그램들"이라는 용어는 여기에서 서로 바꿔 사용될 수 있다. 상기 명령어들은 프로세서에 의해 직접 처리하기 위한 목적 코드 포맷으로 저장될 수 있으며, 필요에 따라 해석되거나 미리 컴파일된 독립 소스 코드 모듈들의 스크립트 또는 콜렉션을 포함하는 임의의 다른 컴퓨팅 장치 언어로 저장될 수 있다. 상기 명령어들의 기능들, 방법들 및 루틴들은 아래에서 보다 자세하게 설명된다.
데이터(118)는 명령어들(116)에 따라 하나 이상의 프로세서들(112)에 의해 검색, 저장 또는 수정될 수 있다. 예를 들어, 여기에 기술된 요지는 어떤 특정한 데이터 구조에 의해 제한되지 않지만, 상기 데이터는 컴퓨터 레지스터들, 많은 다른 필드들과 레코드들 또는 XML 문서들을 갖는 테이블과 같은 관계형 데이터베이스에 저장될 수 있다. 상기 데이터는 이진 값들, ASCII 또는 유니 코드와 같은 컴퓨팅 장치에서 읽을 수 있는 형식으로 포맷될 수 있지만, 이에 한정되지는 않는다. 또한, 상기 데이터는 숫자들, 설명 텍스트, 독점 코드들, 포인터들, 다른 네트워크 위치들과 같은 다른 메모리에 저장된 데이터에 대한 참조 또는 관련 데이터를 계산하도록 기능에 의해 사용되는 정보와 같은 관련 정보를 식별하기에 충분한 임의의 정보를 포함할 수 있다.
하나 이상의 프로세서(112)는 상업적으로 이용 가능한 CPU와 같은 임의의 종래 프로세서일 수 있다. 대안적으로, 상기 프로세서는 주문형 집적 회로("ASIC") 또는 다른 하드웨어 기반 프로세서와 같은 전용 컴포넌트들일 수 있다. 필요하지는 않지만, 하나 이상의 컴퓨팅 장치(110)는 비디오 디코딩, 비디오 프레임을 이미지와 매칭, 비디오 왜곡, 왜곡된 비디오 인코딩 등과 같은 특정 컴퓨팅 프로세스를 보다 신속하게 또는 보다 효율적으로 수행하기 위한 특수한 하드웨어 컴포넌트들을 포함할 수 있다.
도 1은 컴퓨팅 장치(110)의 프로세서, 메모리 및 다른 구성요소들을 동일한 블록 내에 기능적으로 도시하지만, 상기 프로세서, 컴퓨터, 컴퓨팅 장치 또는 메모리는 동일한 물리적 하우징 내에 저장되거나 저장되지 않는 다중 프로세서, 컴퓨터들, 컴퓨팅 장치들 또는 메모리들을 사실상 포함할 수 있다. 예를 들어, 상기 메모리는 컴퓨팅 장치(110)의 하우징과 다른 하우징에 위치한 하드 드라이브 또는 다른 저장 매체일 수 있다. 따라서, 프로세서, 컴퓨터, 컴퓨팅 장치 또는 메모리에 대한 언급은 병렬로 동작할 수도 있고 그렇지 않을 수도 있는 프로세서들, 컴퓨터들, 컴퓨팅 장치들 또는 메모리들의 콜렉션에 대한 참조들을 포함하는 것으로 이해될 것이다. 예를 들어, 컴퓨팅 장치들(110)은 로드 밸런싱 서버 팜, 분산 시스템 등으로서 동작하는 서버 컴퓨팅 장치들을 포함할 수 있다. 또한, 이하에서 설명되는 일부 기능들이 단일 프로세서를 갖는 단일 컴퓨팅 장치상에서 발생하는 것으로 나타내지만, 여기에 설명된 요지의 다양한 양태들은 예를 들어 네트워크(160)를 통해 정보를 전달하는 복수의 컴퓨팅 장치들에 의해 구현될 수 있다.
컴퓨팅 장치들(110)의 각각은 네트워크(160)의 다른 노드들에 존재할 수 있고 네트워크(160)의 다른 노드들과 직접 및 간접적으로 통신할 수 있다. 비록 소수의 컴퓨팅 장치들만이 도 1 내지 도 2에 도시되어 있지만, 통상적인 시스템은 다수의 연결된 컴퓨팅 장치를 포함할 수 있고, 각각의 다른 컴퓨팅 장치는 네트워크(160)의 다른 노드에 위치할 수 있음을 이해해야 한다. 여기에 기술된 네트워크(160) 및 노드들은 상기 네트워크가 인터넷, 월드 와이드 웹, 특정 인트라넷들, 광역 네트워크들 또는 로컬 네트워크들의 일부가 될 수 있도록 다양한 프로토콜들 및 시스템들을 사용하여 상호접속될 수 있다. 상기 네트워크는 이더넷, WiFi 및 HTTP, 하나 이상의 회사가 독점하는 프로토콜 및 전술한 다양한 조합들과 같은 표준 통신 프로토콜들을 활용할 수 있다. 전술한 바와 같이 정보가 송신 또는 수신될 때 소정의 장점들이 얻어 지지만, 여기에 설명된 요지의 다른 양태들은 정보의 특정 전송 방식으로 제한되지 않는다.
예로서, 각각의 컴퓨팅 장치(110)는 네트워크를 통해 컴퓨팅 장치들(120, 130 및 140)뿐만 아니라 저장 시스템(150)과 통신할 수 있는 웹 서버들을 포함할 수 있다. 예를 들어, 하나 이상의 서버 컴퓨팅 장치(110)는 네트워크(160)를 사용하여 컴퓨팅 장치(120, 130)의 디스플레이(122, 132 또는 142)와 같은 디스플레이상에서 사용자(220, 230 또는 240)와 같은 사용자에게 정보를 전송 및 제공할 수 있다. 이와 관련하여, 컴퓨팅 장치들(120, 130 및 140)은 클라이언트 컴퓨팅 장치 들로서 간주될 수 있으며, 여기에 설명된 특징들의 전부 또는 일부를 수행할 수 있다.
각각의 클라이언트 컴퓨팅 장치(120, 130 및 140)는 전술한 하나 이상의 프로세서, 메모리 및 명령어들을 사용하여 서버 컴퓨팅 장치(110)와 유사하게 구성될 수 있다. 각각의 클라이언트 컴퓨팅 장치(120, 130, 또는 140)는 사용자(220, 230, 240)에 의한 사용을 의도한 개인용 컴퓨팅 장치일 수 있고, 중앙 처리 장치(CPU), 데이터 및 명령어들을 저장하는 메모리(예를 들어, RAM 및 내부 하드 드라이브), 디스플레이(122, 132 또는 142)(예를 들어, 스크린, 터치 스크린, 프로젝터, 텔레비전, 또는 정보를 디스플레이할 수 있는 다른 장치를 갖는 모니터)와 같은 디스플레이, 및 사용자 입력 장치(124)(예를 들어, 마우스, 키보드, 터치 스크린 또는 마이크로폰)와 같은 개인 컴퓨팅 장치와 관련하여 통상적으로 사용되는 모든 컴포넌트들을 갖는다. 클라이언트 컴퓨팅 장치는 또한 비디오 스트림을 기록하고 및/또는 이미지를 캡처하기 위한 카메라, 스피커, 네트워크 인터페이스 장치 및 이들 구성요소들을 서로 연결하기 위해 사용되는 모든 컴포넌트들을 포함할 수 있다.
클라이언트 컴퓨팅 장치들(120, 130 및 140)은 풀 사이즈 개인용 컴퓨팅 장치를 각각 포함할 수 있지만, 대안적으로는 인터넷과 같은 네트워크를 통해 서버와 무선으로 데이터를 교환할 수 있는 모바일 컴퓨팅 장치들을 포함할 수 있다. 예로서만, 클라이언트 컴퓨팅 장치(120)는 이동 전화 또는 인터넷을 통해 정보를 획득할 수 있는 무선 가능 PDA, 태블릿 PC 또는 넷북과 같은 장치 일 수 있다. 다른 예에서, 클라이언트 컴퓨팅 장치(130)는 헤드 장착형 컴퓨팅 시스템일 수 있다. 예로서, 사용자는 작은 키보드, 키패드, 마이크로폰, 카메라로 시각 신호를 사용하여, 또는 터치 스크린을 사용하여 정보를 입력할 수 있다.
메모리(114)에서와 같이, 저장 시스템(150)은 하드 드라이브, 메모리 카드, ROM, RAM, DVD, CD-ROM, 쓰기 가능 및 판독 전용 메모리 등과 같은 서버 컴퓨팅 장치(110)에 의해 액세스 가능한 정보를 저장할 수 있는 임의의 유형의 컴퓨터 저장장치일 수 있다. 또한, 저장 시스템(150)은 데이터가 동일하거나 상이한 지리적 위치에 물리적으로 위치할 수 있는 복수의 상이한 저장 장치상에 저장되는 분산 저장 시스템을 포함할 수 있다. 저장 시스템(150)은 도 1에 도시된 바와 같이 네트워크(160)를 통해 컴퓨팅 장치들에 연결 및/또는 컴퓨팅 장치들(110, 120, 130 및 140) 중 임의의 것에 직접 연결될 수 있다.
저장 시스템(150)은 모델 데이터뿐만 아니라 스캔 데이터를 포함하는 다양한 정보를 저장할 수 있다. 모바일 컴퓨팅 장치(120, 130, 140)와 같은 복수의 모바일 장치는 영역 내의 또는 그 주변의 위치로의 방문에 대응하는 일련의 스캔들을 포함하는 정보를 서버 컴퓨팅 장치(110)에 제공할 수 있다. 일련의 각 스캔은 상기 스캔을 캡처한 날짜와 시간, 예상 위치(예, 위도와 경도 좌표), 연관 신호 세기 및 네트워크 액세스 포인트 식별자 세트뿐만 아니라 신뢰도 값을 식별하는 타임스탬프를 갖는다. 상기 신뢰도 값은 신호 세기 측정치들 및 위치들의 결합된 신뢰도 또는 정확도 측정치를 나타낼 수 있다. 이 정보는 추후 검색 및 처리를 위해 저장 시스템(150)의 서버 컴퓨팅 장치(110)에 의해 저장될 수 있다. 예를 들어, 일부 방문은 자신의 모바일 장치로 데이터를 수집하도록 해당 영역을 특별히 이동하는 사람들이 제공한 직접 수집된 방문일 수 있다. 다른 방문은 예를 들어, 위치 기반 서비스의 사용자에 의해 제공된 정보로부터 추론된 추론된 방문일 수 있다.
상기 설명에 더하여, 사용자는 여기에 기술된 시스템, 프로그램 또는 특징들이 사용자 정보(예를 들어, 사용자의 쇼셜 네트워크, 쇼셜 행동 또는 활동, 직업, 사용자의 선호도, 사용자의 현재 위치 등에 관한 정보)의 수집을 가능하게 할 수 있는 경우 및 사용자가 서버로부터 콘텐츠 또는 통신을 송신하는 경우 모두에 대해 사용자가 선택을 할 수 있게 하는 제어를 제공받을 수 있다. 또한, 특정 데이터는 저장되거나 사용되기 전에 하나 이상의 방법으로 처리되어 개인 식별 정보가 제거된다. 예를 들어, 사용자의 신원정보를 처리하여 사용자에 대한 개인 식별 정보를 결정할 수 없거나 사용자의 지리적 위치가 위치 정보가 획득된 곳(예, 도시, 우편 번호 또는 주 수준)으로 일반화되어 사용자의 특정 위치가 결정될 수 없다. 따라서, 사용자는 사용자에 관해 수집되는 정보, 그 정보의 사용 방법 및 사용자에게 제공되는 정보를 제어할 수 있다.
상기 모델 데이터는 다양한 위치들에 대한 하나 이상의 무선 네트워크 액세스 포인트 모델들을 포함할 수 있다. 직접 수집하거나 추론한 상이한 소스들의 스캔 데이터는 집합되어 단일 모델의 클러스터를 결정하는 데 사용될 수도 있고, 또는 개별 사용을 위해 개별 모델들을 생성하는 데 사용될 수 있다. 대안적으로, 상기 개별 모델들은 단일 집합체 모델로 결합될 수 있다. 다시, 서버 컴퓨팅 장치(110)에 의해 일단 생성되면, 상기 모델들은 저장 시스템(150)에 저장될 수 있으며, 이하에서 더 설명되는 바와 같이 위치들을 결정하기 위해 필요에 따라 검색될 수 있다.
예시적인 방법들
위에서 설명되고 도면들에 도시된 동작 이외에, 다양한 동작들이 이제 설명될 것이다. 다음의 동작들이 아래에 설명된 정확한 순서로 수행될 필요는 없다는 것을 이해해야 한다. 오히려, 다양한 단계들이 다른 순서 또는 동시에 처리될 수 있으며 단계들이 추가되거나 생략될 수도 있다.
클러스터들을 결정하기 전에, 상기 스캔들은 데이터의 노이즈 부분들을 줄이거나 제거하도록 다수의 방법으로 미리필터링될 수 있다. 예를 들어, 방문할 때마다 일련의 시작과 끝 부분의 스캔들은 방문에 대한 타임스탬프에 기초하여 삭제될 수 있다. 추출 비율은 단일 방문의 스캔들의 부분을 추출하는 데 사용될 수 있다. 예를 들어, 추론된 스캔들에 대해, 0.5(또는 50%)의 추출 비율 또는 그 이상 또는 이하는 상기 영역의 방문의 중간 부분만이 하나 이상의 모델을 생성하는 데 사용되도록 사용될 수 있다. 이는 추론된 방문의 경계(시작 및 종료 타임스탬프)들이 식별하기가 매우 어려울 수 있으므로 추론 방문의 노이즈를 크게 줄일 수 있다. 물론 직접 수집한 스캔들과 같은 보다 안정적인 스캔들의 경우 상기 추출 비율은 1.0(또는 100%)에 가까울 수 있어, 직접 수집된 데이터가 훨씬 더 정확할 수 있기 때문에 상기 직접 수집된 모든 데이터가 사용된다. 또한, 매우 낮은 신뢰도 값들을 갖는 스캔들 또는 0 내지 100의 스케일에서 30과 같이 최소 임계 신뢰도 값을 충족시키지 않는 스캔들뿐만 아니라 데이터의 유용성을 보장하기 위해 60일 또는 그 이상 또는 이하의 오래된 타임스탬프를 갖는 스캔들은 노이즈를 제거하도록 필터링될 수 있다. 타임 스탬프는 스캔들의 순서를 지정하는 데에도 사용될 수 있으며, 예를 들어 시간순으로 반전되어 가장 최근 세트(예, 15,000 스캔 이상)만이 하나 이상의 모델을 생성하는 데 사용된다. 또한, 일부 무선 네트워크 액세스 포인트 식별자들은 복수의 스캔 또는 중복으로 나타나는 스캔들에 대해 극히 낮은 발생을 갖는 식별자들을 제거하도록 필터링될 수 있다.
임의의 필터링 후에 남겨진 복수의 각각의 스캔은 타임스탬프, 위치 및 신뢰와 연관된 스캔 벡터에 의해 표현될 수 있다. 예를 들어, 각각의 스캔 벡터(v)는 특정 무선 네트워크 액세스 포인트 식별자에서 특정 신뢰도 값(c)을 갖는 특정한 타임스탬프(t) 및 위치(x, y는 위도 및 경도 좌표를 나타낼 수 있음)에서 수행된 소정의 스캔에 대한 신호 세기로의 매핑에 대응한다. 예를 들어, 타임스탬프(tn), 위치(xvn, yvn) 및 신뢰도(cvn)를 갖는 스캔 벡터(vn)에 대해, 스캔 벡터(vn)는 모델을 만드는데 사용된 복수의 모든 스캔의 모든 무선 네트워크 액세스 포인트 식별자들에 대한 신호 세기들의 리스트를 정의할 수 있다.
K-평균 클러스터링을 사용하기 전에, K의 최대값뿐만 아니라 각각의 클러스터 내의 벡터들에 대한 제1 최소 및 최대 허용 유사도 값들이 정의될 수 있다. 예를 들어, 두 벡터들(v1, v2) 사이의 유사도는 "cos_similarity(v1, v2)" 정의될 수 있으며, "cos_similarity"는 2개의 벡터(v1, v2) 사이의 코사인 유사도를 나타낸다. 두 벡터(v1, v2) 사이의 거리 또는 벡터 차이는 "1 - cos_similarity(v1, v2)"로 정의될 수 있다. 최소 유사도 값은 "cos_similarity (min_cos_similarlity)"의 최소값으로 정의될 수 있으며, 상기 최대값은 "cos_similarity (max_cos_similarlity)"의 최대값으로 정의될 수 있다.
일 예에서, 상기 최소값 및 최대값은 동일한 값으로 설정될 수 있는데, 예를 들어, 0.2와 0.5 또는 0.7과 같이 0과 1 사이의 수이다. 이 값들의 선택은 위치의 유형뿐만 아니라 데이터의 신뢰도를 기반으로 이루어질 수 있다(상기 값이 더 낮을 수 있는 작은 집에 비해 상기 값이 더 높을 수 있는 쇼핑몰). 너무 높으면 클러스터가 너무 많아지고, 너무 낮으면 클러스터가 충분하지 않을 수 있다. K의 최대값은 상기 서버 컴퓨터가 상기 클러스터링을 수행하는 시간을 제한하도록 설정될 수 있다.
상기 클러스터링은 분할 단계 및 병합 단계를 포함하는 적응형 K-평균 클러스터링일 수 있다. 상기 클러스터들은 도 3 내지 도 4에 도시된 바와 같이 분할 단계에서 생성된다. 도 3은 상기 분할 단계의 양태들을 나타내는 의사 코드의 예이고, 도 4는 분할 단계의 양태들을 나타내는 흐름도이다. 도 4의 블록(402)의 분할 단계의 시작에서, 클러스터들의 최대 개수(max_num_clusters)가 설정된다. 또한, 상기 나머지 복수 중 제1 스캔 벡터, 예를 들어 v1은 제1 클러스터에 대한 센터에 상기 벡터 데이터로서 할당될 수 있다. 상기 제1 스캔 벡터의 선택은 랜덤하거나 랜덤하지 않을 수 있다. 효율성을 위해, K의 값은 초기에 1로 설정될 수 있다. 이와 관련하여, 상기 제1 스캔 벡터(v1)와 연관된 벡터 데이터가 상기 제1 클러스터의 센터에 할당되고, 모든 스캔 벡터가 이 제1 클러스터에 할당된다.
그 후, 블록(406)에서, 상기 배드 스캔 벡터와 제1 스캔 벡터(v1)(또는 클러스터의 센터) 사이의 벡터 차이가 최소 유사도 값 또는 "1-min_cos_similarity"보다 큰 스캔 벡터들로서 정의된 모든 "배드" 스캔 벡터들이 식별된다. 블록(408)에서, 이들 배드 스캔 벡터들의 "워스트" 스캔, 또는 상기 클러스터의 센터에 할당된 벡터 데이터와 가장 큰 벡터 차이를 갖는 배드 스캔 벡터, 또는 오히려 "1-cos_similarity"의 가장 큰 값이 식별된다.
블록(410)에 도시된 바와 같이, 새로운 클러스터의 센터에 있는 벡터에 대한 값들로 할당된 상기 식별된 워스트 스캔 벡터로 새로운 클러스터가 생성된다. 이 점에서, K의 값은 1만큼(또는 K = 1에서 K = 2까지) 증가된다. 이 시점에서, K-평균 클러스터링은 블럭(412, 414 및 416)에 도시된 바와 같이 나머지 복수의 스캔 각각을 상기 클러스터들 중 하나에 할당하는데 사용된다. 먼저, 블록(412)에서 각 클러스터의 센터들에 할당된 벡터 데이터가 상기 할당에 따라 재계산된다. 예를 들어, 새로운 벡터 데이터는 임의의 할당된 벡터들의 모든 신호 세기를 +120dB만큼 이동시킴으로써(예를 들어 -120dB는 0dB가 되고, 0dB는 120dB가 됨) 각 클러스터에 대해 생성될 수 있으므로, 각 스캔 벡터 내의 모든 세기는 양의 값을 가지며, 할당된 모든 스캔 벡터의 벡터 평균을 계산할 수 있다. 클러스터에 할당된 스캔 벡터들의 세트의 벡터 평균을 계산하기 위해, 각 네트워크 액세스 포인트 식별자에 대한 평균 세기가 결정된다. 즉, 클러스터의 센터에 대한 새로운 벡터는 해당 클러스터에 대해 할당된 모든 스캔 벡터의 평균으로 계산된다. 블록(416)에서, 상기 센터들에 할당된 벡터 데이터가 변경되면, 블록(414)에서 상기 스캔 벡터가 다시 재할당되고, 블록(412)에서 각 센터에 할당된 벡터 데이터가 재계산된다. 블록(416)에서 이러한 반복들은 클러스터들의 센터들에 할당된 벡터 데이터가 변경되지 않도록 스캔들의 할당이 안정화될 때 종료한다.
블록(418)에 도시된 바와 같이, 클러스터들(K)의 수가 최대 클러스터의 수보다 적으면, 상기 프로세스는 모든 배드 스캔 벡터들이 결정되는 블록(406)으로 되돌아간다. 다시, 블록(408)에서, 이들 배드 스캔 벡터들의 워스트 스캔 벡터가 식별된다. 상기 워스트 스캔 벡터는 가장 큰 벡터 차이 또는 "1 - cos_similarlity"의 가장 큰 값을 갖는 배드 스캔 벡터들의 스캔 벡터로서, 상기 벡터 데이터는 할당된 스캔 벡터들의 수가 가장 많은 클러스터의 센터에 할당된다. 이 워스트 스캔 벡터는 현재 클러스터로부터 제거되고, 블록(410)에서 새로운 클러스터의 센터에 대한 벡터 데이터로서 스캔 벡터가 할당되고, 블록(412, 414 및 416)의 K-평균 클러스터링이 전술한 바와 같이 반복된다. 전술한 프로세스의 반복들은 블록(418)에서 K가 K에 대한 최대값에 도달할 때까지 또는 블록(408)에서 배드 스캔 벡터들이 없을 때까지 계속된다. 즉, "1 - min_cos_similarity"보다 큰 할당된 클러스터들의 센터들과 벡터 차이가 있는 벡터들이 없다. 그 후, 상기 분할 단계는 블록(420)에서 종료한다.
블록(418)에서 K의 최대값에 도달되었지만 다수의 배드 스캔들이 남아있는 경우, 상기 클러스터들은 아웃라이어를 제거하도록 필터링될 수 있다. 이는 그러한 클러스터들이 실제로 아웃라이어가 될 수 있으므로 스캔이 거의 없는 클러스터들이 있는지를 식별하는 것을 포함할 수 있다. 예를 들어, 임계 비율이 사용될 수 있다. 이 임계 비율은 할당된 스캔 벡터들의 수가 가장 많은 클러스터에 할당된 클러스터의 수에 비례하여 소정의 클러스터에 할당된 스캔들의 수가 될 수 있다. 따라서 이 비율 값은 0과 1 사이의 범위일 수 있으며, 상기 데이터의 소스에 좌우될 수 있다. 예를 들어, 상기 임계 비율은 상기 제거 또는 더 많은 스캔 벡터를 허용하기 위해 직접 수집된 데이터에 대해서는 0.1 또는 그 이하, 추론된 방문에 대해서는 0.5로 설정될 수 있다(추론된 방문에는 더 많은 스캔과 잡음이 많은 데이터가 포함된다고 가정). 예를 들어, 상기 임계 비율이 0.1이라고 가정하면, 소정의 클러스터에 할당된 최대 스캔 벡터 수가 20이고 제1 클러스터가 1 스캔(<2,0.1/20)을 갖는 경우 상기 제1 클러스터는 측량 스캔들을 위해 제거될 것이다. 그러나 제2 클러스터가 3 스캔(3 scans)을 갖는 경우 제2 클러스터는 유지되거나 오히려 제거되지 않을 것이다. 마찬가지로, 상기 임계 비율이 0.5이고, 할당된 스캔 벡터들의 수가 가장 많은 클러스터가 100개의 할당된 스캔 벡터를 가지면, 20개의 스캔이 있는 제3 클러스터는 제거될 것이다(<0.5).
아웃라이어 클러스터들이 있는 경우, 이들 클러스터 및 할당된 스캔 벡터들은 제거되고, 상기 분할 단계의 K-평균 클러스터링은 도 4의 블록들(412, 414 및 416)에서 계속된다. 그 후, 상기 분할 단계는 K가 다시 K에 대한 최대값에 도달할 때까지 또는 전술한 바와 같이 배드 스캔 벡터들이 존재하지 않을 때까지 계속된다. 이 필터링의 결과로서, 상기 분할 단계의 결과 클러스터들은 유사한 개수의 할당된 스캔 벡터를 가질 수 있다. 이 필터링은 예를 들어 상기 스캔 벡터들이 추론된 방문과는 반대로 직접 수집된 방문에서 비롯되었을 때와 같이 상기 스캔 벡터들이 매우 신뢰성 있는 것으로 간주되는 경우에도 활용되지 않을 수 있다.
상기 분할 단계에서 생성한 클러스터들은 서로 매우 유사하고 상대적으로 적은 수의 할당된 스캔들을 갖는 할당된 스캔 벡터들을 임의의 클러스터들과 병합하도록 병합 단계에서 다시 처리된다. 도 5는 상기 병합 단계의 양태들을 나타내는 의사 코드의 예이고, 도 6은 상기 병합 단계의 양태들을 나타내는 흐름도이다. 상기 병합 단계는 매우 유사하고 할당된 스캔 벡터들의 수가 상대적으로 적은 한 쌍 또는 2개의 클러스터가 식별되는 블록(502)에서 시작한다(간략화를 위해 흐름도에 도시되지 않음). 예를 들어, 2개의 클러스터의 각각의 센터에 대해 할당된 벡터 값들 사이의 상기 "cos_similarity"가 상기 "max_cos_similarity"보다 큰 경우 상기 2개의 클러스터가 매우 유사하다고 간주될 수 있다. 상기 2개의 클러스터의 각 하나에 할당된 스캔 벡터들의 수가 가장 많은 수의 할당된 스캔 벡터들을 갖는 클러스터에 할당된 스캔 벡터들의 수와 비교하여 상대적으로 작을 때, 상기 2개의 클러스터는 상대적으로 적은 수의 할당된 스캔 벡터들을 갖는 것으로 간주될 수 있다. 제1 임계 비율보다 큰 제2 임계 비율은 할당된 스캔 벡터들의 수가 적은 클러스터들을 식별하는데 사용될 수 있다. 이들 요건들 모두가 충족되면, 블록(504)에서 상기 2개의 클러스터가 병합될 수 있다. 물론, 상기 결합이 임의의 배드 스캔 벡터들을 생성하지 않거나, 식별된 배드 스캔 벡터의 총수가 0, 2 또는 그 이상 또는 이하와 같이 허용 가능한 배드 스캔 벡터들의 미리 결정된 임계치 내에 있는 경우에만 수행되는 것과 같은 다른 요건들에 기초할 수 있다.
블록(504)에서 2개의 클러스터가 병합되면, 클러스터들(K)의 총 개수는 1씩 감소된다. 그 후, K-평균 클러스터링이 블록(506, 508 및 510)에 도시된 바와 같이 수행된다. 이러한 반복들은 도 3과 관련하여 상술한 바와 같이 클러스터들이 안정될 때까지 계속된다. 서로 매우 유사하고, 그리고 할당된 스캔들의 수가 상대적으로 적고, 둘이 결합될 경우, 블록(502)에서 많거나 더 많은 배드 스캔 벡터들을 초래하지 않을 2개의 클러스터가 없을 때까지 프로세스(600)는 반복된다. 그 후 상기 병합 단계는 블록(512)에서 종료한다.
상기 적응형 K-평균 클러스터링의 결과는 특정 특성들을 갖는 클러스터들의 세트를 제공한다. 예를 들어, 소정의 스캔 벡터가 할당된 클러스터의 센터에 할당된 벡터 데이터에 대한 각 소정의 스캔 벡터와의 벡터 차이는 "1 - min_cos_similarity"보다 작거나 상기 유사도는 "min_cos_similarity"보다 크다. 또한, 2개의 클러스터의 센터에 할당된 벡터 데이터 간의 벡터 차이가 "1 - max_cos_similarity"보다 크거나 상기 유사도가 "max_cos_similarity"보다 작다. 임의의 필터링 후에 남아있는 각 클러스터의 위치들(예를 들어, 위도 및 경도 좌표들)은 임의의 할당된 스캔 벡터들의 연관 위치들(예를 들어, 위도 및 경도 좌표들)을 평균함으로써 계산될 수 있다. 이는 상기 클러스터들이 분할 및/또는 병합 단계에서 생성되면 계산될 수 있다.
상기 클러스터들의 센터들의 위치들을 더 개선하기 위해, 각 클러스터는 리센터링될 수 있다. 도 7은 상기 리센터링의 양태들을 나타내는 의사 코드의 예이고, 도 8은 상기 리센터링 프로세스의 양태들을 나타내는 흐름도이다. 이러한 리센터링 프로세스는 각각의 개별 클러스터 및 그 클러스터에 할당된 임의의 스캔 벡터들에 대해 수행될 수 있고, 소정의 클러스터에 할당된 스캔 벡터들로부터 새로운 클러스터 세트를 생성하는 것을 포함할 수 있다. 예를 들어, 도 8에 도시된 바와 같이, 초기에 블록(802)에서, 클러스터들이 없고, 소정의 클러스터에 할당된 스캔 벡터들만이 존재한다. 시작하기 위해, 상기 할당된 스캔 벡터들이 이제 비할당(unassigned)되고, 상기 새로운 클러스터 세트가 비어있다. 블록(804)에서, (비할당된 스캔 벡터의) 제1 스캔 벡터에 대해, 클러스터의 가장 가까운 센터 위치가 식별된다. 상기 제1 스캔 벡터의 선택은 랜덤하거나 랜덤하지 않을 수 있다. 블록(806)에서, 상기 제1 스캔 벡터의 위치와 상기 가장 가까운 센터 위치 사이의 거리가 소정의 할당된 임계 거리 값(예를 들어, X 미터)보다 작으면, 상기 제1 스캔 벡터는 블록(808)에서 상기 가장 가까운 센터 위치를 갖는 클러스터에 할당되고, 상기 소정의 클러스터의 센터의 위치는 블록(810)에서 재계산된다. 예로서, X의 임계 거리 값은 100미터 또는 그 이상 또는 이하로 설정될 수 있다. 각 클러스터의 센터 위치(예를 들어, 위도 및 경도 좌표들)는 임의의 할당된 스캔 벡터들의 연관 위치들(예를 들어, 위도 및 경도 좌표들)을 평균함으로써 계산될 수 있다. 블록(806)으로 돌아가서, 상기 임계 거리 값보다 큰 거리인 경우, 블록(816)에서 상기 제1 스캔 벡터와 연관된 위치에 그 센터 위치를 갖는 새로운 클러스터가 생성된다. 물론, 초기에는 새로운 클러스터 세트에는 클러스터들이 없으므로 센터 위치가 없다. 따라서, 상기 제1 스캔 벡터의 위치의 임계 거리 값 내에 상기 센터 위치가 존재하지 않으므로, 상기 제1 스캔 벡터는 블록(816)에서 (소정의 클러스터에 대한) 상기 새로운 클러스터 세트의 새로운 클러스터에 대한 센터 위치로서 사용된다.
그 다음, 상기 리센터링 프로세스는 블록(812)에서 계속된다. 비할당된 스캔 벡터들이 있을 때, 블록(804)에서 다음 스캔 벡터에 대해 클러스터의 가장 가까운 센터 위치가 식별된다. 블록(806)에서, 상기 다음 스캔 벡터의 위치와 상기 가장 가까운 센터 간의 거리가 소정의 임계 거리 값(X 미터)보다 작으면, 상기 다음 스캔 벡터는 블록(808)에서 상기 가장 가까운 센터 위치를 갖는 클러스터에 할당되고, 블록(810)에서 상기 소정의 클러스터의 센터의 센터 위치가 재계산된다. 다시, 클러스터의 센터 위치(예를 들면, 위도 및 경도 좌표들)는 임의의 할당된 스캔 벡터들의 연관 위치들(예를 들면, 위도 및 경도 좌표들)을 평균함으로써 계산될 수 있다. 다시 한번, 블록(806)으로 돌아가서, 상기 임계 거리 값보다 큰 거리인 경우, 또 다른 새로운 클러스터가 생성되어 블록(816)에서 상기 제1 스캔 벡터의 위치에서 센터를 갖는 상기 새로운 클러스터 세트에 추가된다.
그 후, 비할당된 스캔 벡터들의 나머지는 동일한 방식으로 상기 새로운 클러스터 세트의 새로운 클러스터 또는 기존 클러스터에 할당된다. 즉, 블록들(806 내지 812)을 통한 프로세스의 반복들이 각각의 스캔 벡터가 블록(812)에서 할당되고 그리고 새로운 클러스터 세트가 더이상 비어 있지 않을 때까지 계속된다. 이 시점에서, 가장 많은 수의 할당된 스캔 벡터를 갖는 상기 새로운 클러스터 세트의 클러스터가 블록(818)에서 식별된다. 그 다음 이 식별된 클러스터의 센터 위치는 블록(820)에서 상기 소정의 클러스터의 센터 위치로서 할당된다. 다시, 이 프로세스는 위에서 설명한 분할 및 병합 단계를 사용하여 생성된 각 클러스터에 대해 반복될 수 있다. 이러한 리센터링은 방문의 스캔 벡터들의 위치들이 주변에서 "점프"하는 것과 같이 부정확한 위치 정보에 의해 야기된 스캔 벡터들의 위치로부터의 노이즈의 영향을 감소시킨다.
추가 포스트 필터링은 상기 클러스터들의 유용성을 증가시키기 위해 수행될 수 있다. 여기에는 특정 클러스터의 스캔 횟수 및/또는 상기 클러스터들의 신뢰도 값들을 기준으로 한 상대 및 절대 필터링이 포함될 수 있다. 상기 상대 필터링의 경우, 할당된 스캔 벡터들의 수가 가장 많은 클러스터가 가장 큰 클러스터로 식별된다. 상기 가장 큰 클러스터에 비해 스캔 벡터가 너무 적은 클러스터들은 제거될 수 있다. 따라서, 상대 값은 방문 유형 및 상기 스캔 벡터들의 신뢰도에 기초하여 선택되는 비율일 수 있다. 예를 들어, 상기 스캔 벡터들이 추론된 방문에서 비롯된 경우, 더 높은 비율 또는 0.5 또는 그 이상 또는 이하와 같이 1에 더 가까운 비율이 사용될 수 있다. 상기 스캔 벡터들이 직접 수집된 방문에서 비롯된 경우, 더 낮은 비율 또는 0.1 또는 그 이상 또는 이하와 같이 0에 더 가까운 비율이 사용될 수 있다.
절대 필터링은 소정의 클러스터에 할당된 스캔 벡터들의 수를 최소한의 소정의 최소값으로 요구할 수 있다. 다시, 이 최소 개수의 할당된 스캔 벡터들 또는 최소값은 방문 유형 및 스캔 벡터들의 신뢰도에 기초하여 선택될 수 있다. 예를 들어, 상기 스캔 벡터들이 추론된 방문으로부터 비롯된 경우, 100 스캔 또는 그 이상 또는 이하(나머지 복수 스캔 벡터들에서 15,000 스캔 벡터의 예에서)와 같이 더 높은 최소값이 사용될 수 있다. 상기 스캔 벡터들이 직접 수집된 방문으로부터 비롯된 경우, 10 또는 15 또는 그 이상 또는 이하와 같은 더 낮은 최소값이 사용될 수 있다(예를 들어, 나머지 복수의 스캔 벡터에서 15,000 스캔 벡터의 예에서). 따라서, 각 클러스터로부터의 스캔 벡터들의 수는 상기 최소값과 비교된다. 상기 최소값을 충족하기에 충분한 할당된 스캔 벡터들을 갖지 않는 임의의 클러스터들은 폐기될 수 있다. 다시, 상기 절대 필터링은 상기 스캔 벡터들이 추론된 방문과는 대조적으로 직접 수집된 방문에서 나온 것과 같이, 상기 스캔 벡터들이 매우 신뢰성 있는 것으로 간주되는 경우에도 활용되지 않을 수 있다.
절대 필터링은 소정의 클러스터에 대한 신뢰도 값이 최소값이 되도록 부가적으로 또는 대안적으로 요구할 수 있다. 소정의 클러스터의 신뢰도 값은 상기 소정의 클러스터에 할당된 스캔 벡터들과 연관된 신뢰도 값(c) 중 가장 높은 신뢰도 값으로 설정될 수 있다. 임의의 클러스터에 대한 상기 가장 높은 신뢰도 값이 최소 신뢰도 값보다 작은 경우, 그 클러스터는 삭제(discarded)될 수 있다. 다시, 상기 절대 필터링은 상기 스캔 벡터들이 추론된 방문과는 대조적으로 직접 수집된 방문에서 나온 것과 같이, 상기 스캔 벡터들이 매우 신뢰성 있는 것으로 간주되는 경우에 활용되지 않을 수 있다.
상기 언급된 바와 같이, 상기 모델은 직접 수집된 방문 및/또는 추론된 방문으로부터 생성될 수 있다. 상기 데이터 집합과 달리 하나 또는 다른 유형의 데이터를 사용하면 위의 예와 같이 필터링 단계들에서 상기 스캔들을 보다 간단하게 처리할 수 있으므로, 상기 직접 수집한 방문은 상기 추론된 방문보다 신뢰할 수 있는 것으로 간주될 수 있다. 또한, 모든 데이터를 결합하고 적응형 K-평균 클러스터링을 사용하여 단일 데이터를 생성하는 것보다 개별 모델들을 생성하는 것이 더 빠를 수 있다. 따라서, 직접 수집된 방문을 사용하여 영역의 하나의 모델과 추론된 방문을 사용하여 영역의 다른 하나의 모델을 실제로 생성할 수 있다. 그 다음 이러한 개별 모델들은 집합체 모델(aggregate model)을 생성하도록 함께 결합될 수 있다.
하나의 시나리오에서, 상기 집합체 모델은 다음과 같이 생성될 수 있다. 다른 모델들의 클러스터 각각을 포스트 필터링한 후, 이 기술은 클러스터가 실제로 특정 관심 장소에 속하는지 여부 또는 실제로 인접한 상점 또는 다른 위치와 같은 다른 장소와 연관되는지 여부를 평가할 수 있다. 예를 들어, 일부 실시 예에서, 타임스탬프, 위치, 네트워크 액세스 포인트 식별자 세트 및 연관 신호 세기 및 연관 신뢰도 값 이외에, 각 스캔은 또한 장소 태그와 연관될 수 있다. 상기 장소 태그는 상기 스캔이 수집된 특정 영역을 지정할 수 있다. 이와 관련하여, 장소 태그는 특정 지점 또는 위치(또는 연관된 오류 또는 신뢰도 값을 갖는 위도 및 경도 지점)보다 더 넓을 수 있으며, 쇼핑몰 내의 상점, 건물 또는 다른 넓은 영역과 같은 특정 관심 지점을 나타내는 많은 다른 위치들을 포함할 수 있다. 상기 수집된 방문의 경우, 장소 태그들은 예를 들어, 인접 옵션들의 리스트에서 장소 태그를 구체적으로 입력하거나 선택함으로써, 수집 시점 또는 근사 시점에서 상기 스캔들을 수집한 사용자에 의해 할당될 수 있다. 상기 추론된 방문의 경우, 상기 장소 태그들은 수동으로 할당되거나 스캔 시간으로부터의 GPS 또는 기타 위치 정보를 기반으로 장소 태그를 "추론"함으로써 할당될 수 있다. 이 때문에, 상기 수집된 방문의 장소 태그들은 상기 추론된 방문의 장소 태그들보다 신뢰할 수 있는 것으로 간주될 수 있다. 상기 장소 태그들은 특정 장소의 소정의 모델에 대한 데이터를 식별하는 데 사용될 수 있다. 이와 관련하여, 소정의 모델에 대한 모든 스캔은 동일하거나 유사한 장소 태그와 연관될 수 있다.
위에서 언급했듯이, 수집된 방문으로부터 생성된 모델과 추론된 방문으로부터 생성된 모델을 결합하기 전에, 상기 장소 태그들은 상기 데이터를 필터링하는데 사용될 수 있다. 이를 위해, 결합될 상기 모델들의 각 소정의 클러스터의 센터에 할당된 상기 스캔 데이터는 개별 스캔으로 간주될 수 있다. 이러한 개별 스캔들은 수집된 방문으로부터 생성된 모델의 클러스터들 각각의 센터의 스캔 데이터와 비교될 수 있다. 각각의 개별 스캔에 대해, 상기 비교는 연관된 신뢰도 값을 갖는 각각의 수집된 방문으로부터 생성된 상이한 모델들로부터 장소 태그들의 순위 리스트를 생성하는데 사용될 수 있다. 다시 말해, 두 모델의 클러스터들에 할당된 모든 스캔 데이터는 수집된 방문으로부터 생성된 모델들의 클러스터들의 센터들에 할당된 스캔 데이터하고만 비교될 수 있다. 예를 들어, 상기 신뢰도는 1에서 100 사이의 범위에서 다양할 수 있다. 가장 큰 신뢰도 값을 갖는 장소 태그(또는 상기 리스트의 맨 위에 있는 클러스터)는 소정의 클러스터에 대한 "추론" 또는 "추론" 장소 태그로 불릴 수 있다. 그 다음 이 추론은 소정의 클러스터를 유지할지 여부를 결정하는데 사용될 수 있다.
예를 들어, 일 예에서 수집된 방문, 또는 수집된 방문 모델 A, 수집된 방문, 수집된 방문 모델 B, 수집된 방문 모델 C, 수집된 방문 모델 D를 사용하여 생성된 모델과 연관된 장소 태그들 A, B, C, D의 세트가 있을 수 있다. 또한, 장소 태그들 B, C, D 및 E의 다른 세트는 추론된 방문, 또는 추론된 방문 모델 B, 추론된 방문 모델 C, 추론된 방문 모델 D 및 추론된 방문 모델 E를 사용하여 생성된 모델과 각각 연관될 수 있다. 예를 들어 "B_inferred_1"와 같이 B에 대한 추론된 방문 모델의 클러스터에 대해, 클러스터(B_inferred_1)의 센터에 할당된 벡터 데이터는 수집된 방문 모델 A, 수집된 방문, 수집된 방문 모델 B, 수집된 방문, 수집된 방문 모델 C 및 수집된 방문 모델 D의 클러스터들의 각 센터들에 할당된 벡터 데이터와 매칭된다. 만약 클러스터(B_inferred_1)가 높은 신뢰도(아래의 도 9의 예와 관련하여 설명된 바와 같이 100-Y 신뢰도보다 높음)를 갖는 수집된 방문 모델 B에 속하면, 클러스터(B_inferred_1)는 상기 추론된 방문 모델 B에 유지될 수 있다.
만약 클러스터(B_inferred_1)가 낮은 신뢰도(아래의 도 9의 예와 관련하여 설명된 Y 신뢰도보다 낮음)를 갖는 수집된 방문 모델 A, 수집된 방문, 수집된 방문 모델 C 또는 수집된 방문 모델 D에 속하면, 클러스터(B_inferred_1)는 상기 추론된 방문 모델 B에 유지된다. 반면, 클러스터(B_inferred_1)는 상기 추론된 방문 모델 B로부터 삭제되거나 필터링될 수 있다. 수집된 방문으로부터 생성된 모델이 아닌 "E_inferred_1"인 상기 추론된 방문 모델 E 내의 클러스터에 대해, "E_inferred_1"는 상기 추론된 방문 모델 E에서 삭제되거나 필터링될 수 있다. 상기 클러스터(E-inferred_1)는 임의의 수집된 방문 모델(즉, 수집된 방문 모델 E가 없음)에 존재하지 않기 때문에 장소 태그 E를 추론하지 않을 것이다. 그러나, 상기 클러스터가 낮은 확률로, 수집된 방문 모델 A, 수집된 방문, 수집된 방문 모델 B, 수집된 방문 모델 C 및 수집된 방문 모델 D로 추론되면, 상기 클러스터는 상기 추론된 방문 모델 E에 유지될 수 있다. 반면, "E_inferred_1"은 상기 추론된 방문 모델 E에서 삭제되거나 필터링될 수 있다.
도 9는 이러한 크로스 필터링의 양태를 나타내는 의사 코드의 예이다. 즉, 100-Y 신뢰도보다 높은 다른 장소로 추론되거나 Y 신뢰도 미만으로 자신에게 추론되는 클러스터는 필터링될 수 있다. 도 9의 예에서, Y 신뢰도의 값은 60 내지 90 또는 그 이상 또는 그 이하로 설정될 수 있다. 따라서, 이 필터링 후에, 상기 모델들 내의 클러스터들은 상기 수집된 방문으로부터 생성된 모델과 적어도 일치한다.
그 다음 다른 K-평균 모델들은 K-평균 클러스터들을 병합함으로써 결합될 수 있다. 여기서, 최소 코사인 유사도(min_cos_similarlity)와 최대 코사인 유사도(max_cos_similarlity)인 두 개의 임계값이 평가된다. 이 값들은 위에서 설명한 값들과 같거나 다를 수 있다. 예로서, 도 10은 모델 결합의 양태들을 나타내는 의사 코드의 예이다. 이 예에서는 두 개의 K-평균 모델 A와 B가 있다고 가정한다. 일반적으로, 하위 모델은 상위 모델로 결합될 수 있다. A가 더 신뢰할 수 있는 것으로 간주되면 A는 B보다 상위 모델로 간주될 수 있다. 예로서, A는 수집된 방문으로부터 생성된 모델일 수 있고, B는 추론된 방문으로부터 생성된 모델 일 수 있다. 모델 B의 하나의 클러스터(클러스터 1)는 A에 클러스터(클러스터 2)가 존재하는 경우에만 모델 A에 추가될 수 있으며, 이들 2개의 클러스터(클러스터 1 및 클러스터 2)의 센터들의 벡터 데이터의 코사인 유사도는 최소 코사인 유사도(min_cos_similarlity)보다 크거나 동일하다. 그리고 이것을 기반으로 다음에 모델 B의 해당 클러스터(클러스터 1)와 가장 높은 코사인 유사도를 갖는 모델 A에서 클러스터(클러스터 3)를 찾는다. 이 2개의 클러스터의 코사인 유사도가 최대 코사인 유사도(max_cos_similarlity)보다 큰 경우 상기 프로세스는 이 2개의 클러스터를 병합한다. 이와 관련하여, 제1 임계값(a.)이 충족되지 않으면, B(클러스터 1)의 클러스터가 삭제된다. 그렇지 않으면 제1 임계값(a.)이 충족되지만 제2 임계값(b.)이 충족되지 않으면 모델 B의 클러스터가 모델 A에 추가된다. 이러한 방식으로, 상이한 소스들로부터의 모델들이 결합될 수 있다.
상기 기술은 또한 상술한 분할 및 병합 동작에 의해 제공되는 클러스터링의 적응성으로 인해 서버 컴퓨터가 이들 영역들의 특성에 따라 특정 영역에 대한 K의 맞춤형 값들을 갖는 모델들을 생성할 수 있으므로 계산상 효율적이다. 이는 특정 영역에 대한 모델을 생성할 때 서버 컴퓨터가 필요하거나 바람직한 것보다 더 많은 계산을 수행하지 못하도록 함과 동시에 사용자 장치의 위치를 결정하는데 사용될 때 상기 모델이 매우 효과적임을 보장한다.
전술한 대안적인 예들의 대부분은 상호 배타적이지 않지만, 고유한 장점들을 달성하기 위해 다양한 조합으로 구현될 수 있다. 상술한 특징들의 조합 및 다른 변형이 청구 범위에 정의된 요지를 벗어나지 않고 이용될 수 있기 때문에, 실시 예들의 전술된 설명은 청구 범위에 의해 한정된 요지의 제한이 아닌 예시로서 취해져야 한다. 예를 들어, 선행 동작들은 위에 설명된 정확한 순서로 수행될 필요가 없다. 오히려, 다양한 단계가 역순으로 또는 동시에 다른 순서로 처리될 수 있다. 별도로 명시하지 않는 한 단계를 생략할 수도 있다. 또한, "같은" 및 "포함하는" 등의 구절을 제공하는 본 명세서에 기술된 예들의 제공은 청구항의 요지를 특정 예들로 한정하는 것으로 해석되어서는 안되며, 오히려, 예들은 많은 가능한 실시 예들 중 단지 하나를 설명하기 위한 것이다. 또한, 상이한 도면에서 동일한 참조 번호는 동일하거나 유사한 구성요소들을 식별할 수 있다.
Claims (35)
- 영역 내의 위치들을 결정하기 위한 무선 네트워크 액세스 포인트 모델을 생성하는 컴퓨터로 구현되는 방법에 있어서,
복수의 스캔 벡터들을 수신하는 단계 -각 스캔 벡터는 무선 네트워크 액세스 포인트 식별자들의 세트에 대한 신호 세기들의 세트를 나타내는 데이터를 포함하고, 상기 영역을 통해 이동하는 이동 장치가 상기 신호 세기들의 세트를 측정한 상기 영역 내의 위치와 연관되며-;
클러스터들의 세트를 생성하도록 분할 단계를 수행하는 단계 - 상기 분할 단계는,
상기 스캔 벡터와 상기 스캔 벡터가 할당된 클러스터의 센터에 할당된 벡터 데이터 간의 벡터 차이에 기초하여 상기 복수의 스캔 벡터들의 각 스캔 벡터를 상기 클러스터에 할당하는 단계;
추가 클러스터의 개시를 위한 후보들로서, 상기 스캔 벡터가 할당된 상기 클러스터의 상기 센터에 할당된 상기 벡터 데이터와 상기 스캔 벡터 간의 차이가 상기 클러스터들에 대해 미리 결정된 최소 유사도 값보다 작은 스캔 벡터들로서 상기 복수의 스캔 벡터들 중 하나 이상의 스캔 벡터를 식별하는 단계;
추가 클러스터의 개시를 위한 후보들로서 식별된 상기 하나 이상의 스캔 벡터로부터, 상기 스캔 벡터가 할당된 상기 클러스터의 상기 센터에 할당된 상기 벡터 데이터와 가장 유사한 스캔 벡터를 선택하는 단계;
상기 클러스터들의 세트 내에 추가 클러스터를 생성하고 그리고 상기 선택된 스캔 벡터를 상기 추가 클러스터에 할당하는 단계;
상기 선택된 스캔 벡터의 벡터 데이터를 상기 추가 클러스터의 센터에 할당하는 단계;
상기 클러스터들의 세트의 임의의 클러스터들의 센터들에 할당된 벡터 데이터를 재계산하는 단계; 그리고
상기 클러스터들의 세트 내의 클러스터들의 총수가 미리 결정된 최대 클러스터 수와 동일할 때까지 또는 추가 클러스터의 개시를 위한 추가 후보들이 식별되지 않을 때까지 상기 분할 단계를 반복하는 단계를 포함하며-; 그리고
상기 클러스터들의 세트에 기초하여 상기 영역 내의 위치들을 결정하기 위한 상기 모델을 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 제1항에 있어서, 상기 분할 단계를 수행하기 전에, 클러스터들의 수를 1로 설정하고 그리고 상기 복수의 스캔 벡터들 중 제1 벡터 스캔을 상기 클러스터들의 세트의 제1 클러스터의 센터로 할당하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
- 제1항 또는 제2항에 있어서,
상기 클러스터들의 수가 상기 최대 클러스터 수와 동일할 때, 상기 방법은, 아웃라이어를 식별하도록 상기 클러스터를 필터링하는 단계; 그리고
상기 아웃라이어 및 상기 할당된 스캔 벡터들을 제거함으로써 상기 클러스터들의 세트 내의 클러스터들의 총수를 감소시키는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 제3항에 있어서,
아웃라이어를 제거하도록 필터링한 후, 상기 클러스터들의 수가 다시 상기 최대 클러스터 수와 동일하거나 또는 더 이상 존재하지 않을 때까지, 또는 추가 클러스터의 개시를 위한 추가 후보들이 식별되지 않을 때까지 상기 분할 단계를 반복하여 계속하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 선행하는 어느 항에 있어서,
상기 클러스터들의 세트 내의 클러스터들 중 적어도 2개를 클러스터 병합 동작을 위한 후보들로 식별하는 단계; 그리고
상기 클러스터들의 세트 내의 클러스터들의 총수를 줄이도록 상기 적어도 2개의 클러스터들을 병합된 클러스터로 병합하는 단계를 포함하며, 상기 적어도 2개의 클러스터들에 이전에 할당된 상기 스캔 벡터들은 병합된 클러스터에 재할당되는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 제5항에 있어서,
상기 클러스터들의 세트 내의 상기 적어도 2개의 클러스터들을 상기 클러스터 병합 동작을 위한 후보들로 식별하는 단계는 임계량보다 낮은 스캔 벡터 총수를 포함하는 것으로 상기 클러스터들을 식별하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 제5항 또는 제6항에 있어서, 상기 클러스터들의 세트 내의 상기 적어도 2개의 클러스터들을 상기 클러스터 병합 동작을 위한 후보들로 식별하는 단계는 상기 클러스터들 중 제1 클러스터의 센터에 할당된 상기 벡터 데이터와 상기 클러스터들 중 제2 클러스터의 센터에 할당된 벡터 데이터 간의 차이가 미리결정된 임계 값보다 작은지를 식별하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
- 선행하는 어느 항에 있어서,
상기 클러스터들의 세트 내의 클러스터들로부터, 가장 많은 수의 스캔 벡터들을 포함하는 클러스터를 식별하는 단계;
상기 클러스터들의 세트 내의 다른 클러스터들 각각에 대해, 상기 클러스터 내의 복수의 스캔 벡터들 중 적어도 하나 및 상기 클러스터 내의 상기 스캔 벡터들과 연관된 적어도 하나의 신뢰도 인디케이터를 결정하는 단계;
상기 클러스터 내의 상기 복수의 스캔 벡터들 중 적어도 하나 및 상기 클러스터 내의 상기 스캔 벡터들과 연관된 적어도 하나의 신뢰도 인디케이터에 기초하여 상기 다른 클러스터들을 필터링하는 단계;
상기 필터링에 기초하여, 상기 다른 클러스터들 중 적어도 하나를 선택하는 단계; 그리고
위치 결정 동작에 사용하기 위해 상기 복수의 클러스터의 서브세트를 출력하는 단계를 포함하며, 상기 서브세트는 상기 다른 클러스터들 중 상기 선택된 적어도 하나 및 상기 가장 많은 수의 스캔 벡터들을 포함하는 것으로 식별된 상기 클러스터를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 제8항에 있어서,
상기 모델의 생성의 기반이 되는 상기 클러스터들의 세트는 클러스터들의 상기 서브세트에만 해당되는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 선행하는 어느 항에 있어서,
상기 클러스터들의 세트 내의 각 클러스터에 대해, 상기 클러스터에 할당된 상기 스캔 벡터들과 연관된 상기 위치들에 기초하여 센터 위치를 결정하는 단계; 그리고
각 클러스터에 대해, 상기 클러스터에 할당된 상기 스캔 벡터들과 연관된 위치들과 상기 센터 위치 사이의 거리들에 기초하여 상기 클러스터의 상기 센터 위치를 리센터링하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 선행하는 어느 항의 방법을 수행하기 위한 컴퓨팅 수단을 포함하는 장치.
- 적어도 하나의 컴퓨팅 장치에 의해 실행될 때, 상기 적어도 하나의 컴퓨팅 장치로 하여금 제1항 내지 제10항 중 어느 한 항의 방법을 수행하게 하는 컴퓨터 판독가능 명령어들을 포함하는 컴퓨터 프로그램.
- 컴퓨터로 구현되는 방법에 있어서,
복수의 무선 액세스 포인트들로부터 수신된 신호들로부터 결정된 스캔 벡터들의 복수의 클러스터들을 수신하는 단계;
상기 복수의 클러스터들로부터 가장 많은 수의 스캔 벡터들을 포함하는 클러스터를 식별하는 단계;
상기 가장 많은 수의 스캔 벡터들을 포함하는 것으로 식별된 상기 클러스터 이외의 복수의 클러스터들 각각에 대해, 상기 클러스터 내의 복수의 스캔 벡터들 중 적어도 하나와 상기 클러스터 내의 상기 스캔 벡터들과 연관된 적어도 하나의 신뢰도 인디케이터를 결정하는 단계;
상기 클러스터 내의 상기 복수의 스캔 벡터들 중 적어도 하나와 상기 클러스터 내의 상기 스캔 벡터들과 연관된 상기 적어도 하나의 신뢰도 인디케이터에 기초하여 다른 클러스터들을 필터링하는 단계;
상기 필터링에 기초하여, 상기 다른 클러스터들 중 적어도 하나를 선택하는 단계; 그리고
위치 결정 동작에 사용하기 위해 상기 복수의 클러스터들의 서브세트를 출력하는 단계를 포함하며, 상기 서브세트는 상기 다른 클러스터들 중 상기 선택된 적어도 하나 및 상기 가장 많은 수의 스캔 벡터들을 포함하는 것으로 식별된 상기 클러스터를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법. - 제13항의 방법을 수행하기 위한 수단을 포함하는 장치.
- 적어도 하나의 컴퓨팅 장치에 의해 실행될 때, 상기 적어도 하나의 컴퓨팅 장치로 하여금 제13항의 방법을 수행하게 하는 컴퓨터 판독가능 명령어들을 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
- 영역 내의 위치들을 결정하기 위한 무선 네트워크 액세스 포인트 모델을 생성하는 방법에 있어서,
하나 이상의 프로세서를 갖는 하나 이상의 서버 컴퓨팅 장치에 의해, 복수의 스캔 벡터들을 수신하는 단계 -각각의 스캔 벡터는 무선 네트워크 액세스 포인트 식별자들의 세트에 대한 신호 세기들의 세트를 나타내며, 상기 영역을 통해 이동하는 이동 장치가 상기 신호 세기들의 세트를 측정한 상기 영역 내의 위치와 연관되며-;
상기 하나 이상의 서버 컴퓨팅 장치에 의해 최대 클러스터 수를 설정하는 단계;
상기 하나 이상의 서버 컴퓨팅 장치에 의해, 최소 유사도 값을 설정하는 단계;
상기 하나 이상의 서버 컴퓨팅 장치에 의해 클러스터들의 세트를 생성하도록 분할 단계를 수행하는 단계 -상기 분할 단계는,
소정의 스캔 벡터와 할당된 클러스터의 벡터 데이터 사이의 벡터 차이에 기초하여 상기 복수의 스캔 벡터들 중 각 소정의 스캔 벡터를 클러스터에 할당하는 단계;
하나 이상의 배드 스캔 벡터들 각각이 할당된 클러스터의 센터에 할당된 벡터 데이터 및 상기 하나 이상의 배드 스캔 벡터들의 각 벡터 차이가 최소 유사도 값보다 작은지 여부에 기초하여, 상기 복수의 스캔 벡터들 중 하나 이상의 배드 스캔 벡터들을 식별하는 단계;
워스트 스캔 벡터에 대한 할당된 클러스터의 센터의 벡터 데이터 및 상기 하나 이상의 배드 스캔 벡터들 사이의 가장 큰 벡터 차이를 갖는 상기 하나 이상의 배드 스캔 벡터들 중 상기 워스트 스캔 벡터를 선택하는 단계;
상기 선택된 워스트 스캔 벡터를 새로운 클러스터의 센터로 사용함으로써 상기 클러스터들의 세트 내의 복수의 클러스터를 증가시키는 단계;
상기 클러스터들의 세트 중 임의의 클러스터들의 센터들에 할당된 벡터 데이터를 재계산하는 단계; 그리고
상기 하나 이상의 서버 컴퓨팅 장치에 의해, 상기 클러스터들의 세트 내의 상기 복수의 클러스터들이 최대 클러스터 수와 동일하거나 식별된 하나 이상의 배드 스캔 벡터들이 없을 때까지 상기 분할 단계를 반복하는 단계를 포함하며-; 그리고
상기 클러스터들의 세트에 기초하여 상기 영역의 상기 모델을 생성하는 단계를 포함하는 것을 특징으로 하는 무선 네트워크 액세스 포인트 모델을 생성하는 방법. - 제16항에 있어서,
2개의 스캔 벡터들(v1, v2) 사이의 유사도는 코사인 유사도(v1, v2)로 정의되고, 최소 유사도 값은 최소 코사인 유사도이고,
상기 워스트 스캔 벡터를 선택하는 단계는, 가장 큰 값의 코사인 유사도를 갖는 상기 하나 이상의 배드 스캔들 중 하나를 식별하는 단계로서, 상기 식별된 배드 스캔의 상기 할당된 클러스터의 상기 센터와 상기 식별된 배드 스캔 사이의 상기 가장 큰 값의 코사인 유사도를 갖는 상기 하나 이상의 배드 스캔들 중 하나를 식별하는 단계를 포함하는 것을 특징으로 하는 무선 네트워크 액세스 포인트 모델을 생성하는 방법. - 제16항에 있어서,
상기 분할 단계를 수행하기 전에, 상기 클러스터들의 수를 1로 설정하고 그리고 상기 복수의 스캔 벡터들의 제1 벡터 스캔을 상기 클러스터들의 세트의 제1 클러스터의 센터로 할당하는 단계를 더 포함하는 것을 특징으로 하는 무선 네트워크 액세스 포인트 모델을 생성하는 방법. - 제16항에 있어서, 상기 분할 단계는,
상기 클러스터들의 세트의 임의의 클러스터들의 센터들에 할당된 벡터 데이터를 재계산한 후, 상기 클러스터들의 세트의 임의의 클러스터들의 센터들에 할당된 상기 벡터 데이터가 변경되었는지 여부를 결정하는 단계;
상기 클러스터들의 세트의 임의의 클러스터들의 센터들에 할당된 벡터 데이터가 변경되었을 때, 상기 복수의 스캔 벡터들을 상기 클러스터들의 세트의 클러스터들에 재할당하는 단계; 그리고
상기 임의의 클러스터들의 센터들에 할당된 벡터 데이터가 상기 재계산에서 변경되지 않도록 상기 클러스터들의 세트의 상기 클러스터들이 안정화될 때까지 재계산 및 재할당을 계속하는 단계를 더 포함하는 것을 특징으로 하는 무선 네트워크 액세스 포인트 모델을 생성하는 방법. - 제16항에 있어서, 상기 복수의 클러스터가 최대 클러스터 수와 동일할 때 상기 반복이 종료되면 아웃라이어를 제거하도록 임의의 클러스터를 필터링하는 단계를 포함하는 것을 특징으로 하는 무선 네트워크 액세스 포인트 모델을 생성하는 방법.
- 제20항에 있어서,
필터링 후, 상기 복수의 클러스터들이 상기 최대 클러스터 수와 동일할 때까지 또는 식별된 하나 이상의 배드 스캔 벡터들이 없을 때까지 상기 분할 단계를 반복하여 계속하는 단계를 더 포함하는 것을 특징으로 하는 무선 네트워크 액세스 포인트 모델을 생성하는 방법. - 제16항에 있어서,
상기 하나 이상의 서버 컴퓨팅 장치에 의해 최대 유사도 값을 설정하는 단계; 그리고
병합 단계를 수행하는 단계를 더 포함하며, 상기 병합 단계는,
상기 최대 유사도 값보다 큰 유사도 값을 갖는 한 쌍의 클러스터의 각 센터에 할당된 벡터 데이터를 갖는 상기 클러스터들의 세트의 상기 한 쌍의 클러스터를 식별하는 단계; 그리고
상기 한 쌍의 클러스터 및 임의의 할당된 스캔 벡터들을 함께 병합하는 단계를 포함하는 것을 특징으로 하는 무선 네트워크 액세스 포인트 모델을 생성하는 방법. - 제22항에 있어서,
상기 한 쌍의 클러스터를 식별하는 단계는 상기 각 센터에 할당된 벡터 데이터 간의 코사인 유사도(cosine similarity)에 기초하는 것을 특징으로 하는 무선 네트워크 액세스 포인트 모델을 생성하는 방법. - 제22항에 있어서,
상기 최대 유사도 값보다 큰 유사도 값을 갖는 상기 클러스터들의 세트의 클러스터들의 쌍들이 없을 때까지 상기 병합 단계를 반복하는 단계를 더 포함하는 것을 특징으로 하는 무선 네트워크 액세스 포인트 모델을 생성하는 방법. - 제22항에 있어서, 상기 한 쌍의 클러스터를 식별하는 단계는 상기 한 쌍의 클러스터의 각 클러스터에 할당된 복수의 스캔 벡터들에 더 기초하는 것을 특징으로 하는 무선 네트워크 액세스 포인트 모델을 생성하는 방법.
- 제16항에 있어서, 최대 유사도 값을 설정하는 단계를 더 포함하며, 상기 분할 단계 및 병합 단계를 통한 반복은, 상기 클러스터들의 세트의 각 소정의 클러스터에서, 상기 소정의 클러스터에 할당된 각 스캔 벡터와 상기 소정의 클러스터의 센터의 스캔 벡터 간의 벡터 차이가 상기 최소 유사도 값보다 크고, 그리고 상기 소정의 클러스터의 센터의 스캔 벡터와 상기 클러스터들의 세트 중 임의의 다른 클러스터의 센터의 스캔 벡터 간의 벡터 차이가 최대 유사도 값보다 작도록 상기 클러스터들의 세트를 제공하는 것을 특징으로 하는 무선 네트워크 액세스 포인트 모델을 생성하는 방법.
- 제16항에 있어서,
상기 소정의 클러스터에 할당된 상기 스캔 벡터들과 연관된 위치들에 기초하여 상기 클러스터들의 세트의 각 소정의 클러스터의 센터 위치를 결정하는 단계; 그리고
상기 소정의 클러스터에 할당된 스캔 벡터들과 연관된 위치들과 상기 센터 위치 사이의 거리들에 기초하여 각 소정의 클러스터의 센터 위치를 리센터링하는 단계를 더 포함하는 것을 특징으로 하는 무선 네트워크 액세스 포인트 모델을 생성하는 방법. - 제27항에 있어서, 상기 리센터링 단계는 상기 거리들이 임계 거리 값을 충족하는지 여부에 기초하는 것을 특징으로 하는 무선 네트워크 액세스 포인트 모델을 생성하는 방법.
- 제16항에 있어서,
상기 모델을 생성하기 전에,
가장 많은 수의 할당된 스캔 벡터들을 갖는 상기 클러스터들의 세트의 클러스터를 식별하고, 그리고 상기 가장 많은 수의 상기 할당된 스캔 벡터들에 대한 비교에 기초하여 상기 클러스터들의 세트로부터 하나 이상의 클러스터들을 필터링함으로써 상기 클러스터들의 세트를 필터링하는 단계를 더 포함하는 것을 특징으로 하는 무선 네트워크 액세스 포인트 모델을 생성하는 방법. - 제16항에 있어서,
상기 모델을 생성하기 전에, 할당된 스캔 벡터들의 최소 수를 충족시키지 않는 임의의 클러스터들을 제거하도록 상기 클러스터들의 세트를 필터링하는 단계를 더 포함하는 것을 특징으로 하는 무선 네트워크 액세스 포인트 모델을 생성하는 방법. - 제16항에 있어서,
상기 복수의 스캔 벡터들의 각 소정의 스캔 벡터는 상기 소정의 스캔 벡터에 대한 추정된 위치 및 신호 세기 측정치들의 결합된 정확도 측정치를 나타내는 신뢰도 값과 연관되며,
상기 방법은 상기 모델을 생성하기 전에, 상기 클러스터들의 세트의 각 클러스터에 할당된 상기 스캔 벡터들과 연관된 가장 높은 신뢰도 값에 기초하여 상기 클러스터들의 세트를 필터링하는 단계를 더 포함하는 것을 특징으로 하는 무선 네트워크 액세스 포인트 모델을 생성하는 방법. - 제31항에 있어서,
상기 클러스터들의 세트를 필터링하는 단계는 임계 신뢰도 값을 총족하지 않는 가장 높은 신뢰도 값을 갖는 클러스터들을 상기 클러스터들의 세트로부터 제거하는 단계를 포함하는 것을 특징으로 하는 무선 네트워크 액세스 포인트 모델을 생성하는 방법. - 제16항에 있어서, 상기 복수의 스캔 벡터들의 적어도 하나의 서브세트는 특정 이동 장치에 의한 상기 영역으로의 단일 방문(single visit)에 대응하고, 상기 단일 방문은 복수의 스캔들을 포함하며,
상기 방법은 상기 방문의 시작 경계 및 끝 경계에서 스캔들을 제거하도록 상기 복수의 스캔들을 필터링하는 단계를 더 포함하며, 상기 필터링된 스캔들은 상기 복수의 스캔 벡터들에 포함되지 않는 것을 특징으로 하는 무선 네트워크 액세스 포인트 모델을 생성하는 방법. - 제33항에 있어서,
상기 복수의 스캔들을 필터링하는 단계는 상기 모델을 생성할 때 노이즈를 제거하도록 선택된 추출 레이트(extraction rate)에 기초하는 것을 특징으로 하는 무선 네트워크 액세스 포인트 모델을 생성하는 방법. - 제16항에 있어서,
상기 복수의 스캔 벡터들의 각 소정의 스캔 벡터는 상기 소정의 스캔 벡터에 대한 추정된 위치 및 신호 세기 측정치들의 결합된 정확도 측정치를 나타내는 신뢰도 값과 연관되며,
상기 방법은 상기 분할 단계를 수행하기 전에, 상기 모델로부터 노이즈를 제거하도록 임계 신뢰도 값을 충족시키지 않는 신뢰도 값과 연관된 스캔 벡터들을 제거하도록 상기 복수의 스캔 벡터들을 필터링하는 단계를 더 포함하는 것을 특징으로 하는 무선 네트워크 액세스 포인트 모델을 생성하는 방법.
Applications Claiming Priority (1)
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 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190016481A true KR20190016481A (ko) | 2019-02-18 |
KR102112261B1 KR102112261B1 (ko) | 2020-05-18 |
Family
ID=59297364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187021077A KR102112261B1 (ko) | 2017-06-21 | 2017-06-21 | 클러스터링 기술을 사용하여 무선 네트워크 액세스 포인트 모델 생성 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10820296B2 (ko) |
EP (3) | EP4276487A3 (ko) |
KR (1) | KR102112261B1 (ko) |
CN (2) | CN109104688B (ko) |
DE (2) | DE202018101366U1 (ko) |
WO (1) | WO2018236364A1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102038471B1 (ko) * | 2019-06-20 | 2019-11-26 | 한화시스템(주) | 공중 무인 중계 시스템의 위치 최적화 장치 및 그 방법 |
WO2022004910A1 (ko) * | 2020-06-30 | 2022-01-06 | 삼성전자주식회사 | 무선 통신 시스템에서 클러스터링을 위한 방법 및 장치 |
KR20230102274A (ko) * | 2021-12-30 | 2023-07-07 | 주식회사 에이아이비즈 | 웨이퍼 제조 공정 챔버의 이상 탐지 방법 및 이를 위한 장치 |
Families Citing this family (9)
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 |
CN110198519A (zh) * | 2019-06-26 | 2019-09-03 | 阿里巴巴集团控股有限公司 | 网络接入点的位置估计方法与装置 |
CN110414569B (zh) * | 2019-07-03 | 2022-04-08 | 北京小米智能科技有限公司 | 聚类实现方法及装置 |
CN112488144B (zh) * | 2019-09-12 | 2024-03-19 | 中国移动通信集团广东有限公司 | 网络设置提示生成方法、装置及电子设备、存储介质 |
US11438886B2 (en) * | 2020-02-27 | 2022-09-06 | Psj International Ltd. | System for establishing positioning map data and method for the same |
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 | 深圳市森瑞普电子有限公司 | 一种导电滑环故障数据采集监测方法 |
Citations (2)
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 |
KR101606382B1 (ko) * | 2014-12-04 | 2016-03-25 | 현대모비스 주식회사 | 핑거프린팅 측위를 위한 데이터베이스 구축 방법 및 구축된 데이터베이스를 이용한 핑거프린팅 측위 방법 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US8881301B2 (en) * | 2009-10-05 | 2014-11-04 | Asset Intertech, Inc. | Protection of proprietary embedded instruments |
US8504035B2 (en) * | 2010-11-09 | 2013-08-06 | 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 |
-
2017
- 2017-06-21 EP EP23200232.9A patent/EP4276487A3/en active Pending
- 2017-06-21 EP EP17737104.4A patent/EP3590287B1/en active Active
- 2017-06-21 KR KR1020187021077A patent/KR102112261B1/ko active IP Right Grant
- 2017-06-21 US US16/068,568 patent/US10820296B2/en active Active
- 2017-06-21 WO PCT/US2017/038441 patent/WO2018236364A1/en unknown
- 2017-06-21 EP EP21185246.2A patent/EP3913997B1/en active Active
-
2018
- 2018-03-12 DE DE202018101366.1U patent/DE202018101366U1/de active Active
- 2018-03-12 DE DE202018101368.8U patent/DE202018101368U1/de active Active
- 2018-03-14 CN CN201810229489.8A patent/CN109104688B/zh active Active
- 2018-03-14 CN CN202110147207.1A patent/CN112995903B/zh active Active
Patent Citations (2)
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 |
KR101606382B1 (ko) * | 2014-12-04 | 2016-03-25 | 현대모비스 주식회사 | 핑거프린팅 측위를 위한 데이터베이스 구축 방법 및 구축된 데이터베이스를 이용한 핑거프린팅 측위 방법 |
Non-Patent Citations (1)
Title |
---|
Sian Lun Lau, Wi-Fi Fingerprint Localisation usingDensity-based Clustering for Public Spaces:A Case Study in a Shopping Mall, 2016 6th International Conference. 2016.01.14.* * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102038471B1 (ko) * | 2019-06-20 | 2019-11-26 | 한화시스템(주) | 공중 무인 중계 시스템의 위치 최적화 장치 및 그 방법 |
WO2022004910A1 (ko) * | 2020-06-30 | 2022-01-06 | 삼성전자주식회사 | 무선 통신 시스템에서 클러스터링을 위한 방법 및 장치 |
KR20230102274A (ko) * | 2021-12-30 | 2023-07-07 | 주식회사 에이아이비즈 | 웨이퍼 제조 공정 챔버의 이상 탐지 방법 및 이를 위한 장치 |
Also Published As
Publication number | Publication date |
---|---|
EP3913997B1 (en) | 2023-08-30 |
WO2018236364A1 (en) | 2018-12-27 |
US20200154392A1 (en) | 2020-05-14 |
EP3590287B1 (en) | 2024-01-17 |
EP3590287A1 (en) | 2020-01-08 |
DE202018101366U1 (de) | 2018-05-28 |
CN112995903A (zh) | 2021-06-18 |
KR102112261B1 (ko) | 2020-05-18 |
CN112995903B (zh) | 2024-08-27 |
US10820296B2 (en) | 2020-10-27 |
CN109104688A (zh) | 2018-12-28 |
EP3913997A1 (en) | 2021-11-24 |
EP4276487A3 (en) | 2023-11-29 |
EP4276487A2 (en) | 2023-11-15 |
DE202018101368U1 (de) | 2018-05-28 |
CN109104688B (zh) | 2021-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102112261B1 (ko) | 클러스터링 기술을 사용하여 무선 네트워크 액세스 포인트 모델 생성 | |
CN110191416B (zh) | 用于分析目标实体的移动的装置、系统和方法 | |
US20210374204A1 (en) | Method and apparatus for managing region tag | |
TWI703862B (zh) | 內容推薦方法及裝置 | |
WO2020258905A1 (zh) | 一种信息推送方法和装置 | |
US20160080908A1 (en) | Data Driven Evaluation and Rejection of Trained Gaussian Process-Based Wireless Mean and Standard Deviation Models | |
CN106055630A (zh) | 日志存储的方法及装置 | |
KR102047953B1 (ko) | 얼굴 인식 시스템 및 방법 | |
CN105721629A (zh) | 用户标识匹配方法和装置 | |
CA3152848A1 (en) | User identifying method and device, and computer equipment | |
CN107767155B (zh) | 一种评估用户画像数据的方法及系统 | |
JPWO2021076748A5 (ko) | ||
CN113722409A (zh) | 空间关系的确定方法、装置、计算机设备及存储介质 | |
US20180276696A1 (en) | Association method, and non-transitory computer-readable storage medium | |
CN111177255A (zh) | 一种数据一致性检测方法、装置、存储介质和服务器 | |
CN110990714A (zh) | 一种用户行为意图预测方法和装置 | |
CN115190587A (zh) | Wifi位置确定方法、装置、电子设备及存储介质 | |
JPWO2012036222A1 (ja) | 人口算出システム及び人口算出方法 | |
JP6169471B2 (ja) | 滞留位置推定装置および滞留位置推定方法 | |
CN110457705B (zh) | 一种兴趣点数据处理方法、装置、设备和存储介质 | |
CN105389395B (zh) | 信息获取方法和装置 | |
JP5801242B2 (ja) | 推定興味度スコアデータベース生成装置及び方法及びプログラム | |
CN110110014B (zh) | 目标对象的位置信息的确定方法、服务器及用户客户端 | |
CN112333182A (zh) | 档案处理方法、装置、服务器及存储介质 | |
Alzantot et al. | Demonstrating CrowdInside: A system for the automatic construction of indoor floor-plans |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |