개인 재정 데이터 스트림에서 요소의 수를 찾는 방법 - 꽃

데이터 스트림에서 요소의 수를 찾는 방법 - 꽃

비디오: 트랙 3-4. BigQuery를 이용한 데이터 웨어하우징 (하정애) 2024

비디오: 트랙 3-4. BigQuery를 이용한 데이터 웨어하우징 (하정애) 2024
Anonim

Bloom 필터는 스트림에서 도착하는 객체를 추적 할 수 있지만 몇 개의 객체가 있는지 확인할 수 없습니다. 1로 채워지는 비트 벡터는 (해시 수와 충돌 확률에 따라) 같은 주소에서 해시되는 객체의 실제 수를 숨길 수 있습니다.

개체의 고유 번호를 알면 특정 웹 사이트 페이지를 본 별개 사용자의 수 또는 고유 한 검색 엔진 쿼리의 수를 파악하려는 경우와 같이 다양한 상황에서 유용합니다. 모든 요소를 ​​저장하고 그 중 중복 요소를 찾는 것은 특히 스트림에서 오는 수백만 개의 요소에서 작동하지 않습니다. 스트림에서 고유 한 객체의 수를 알고 싶다면 해시 함수를 사용해야하지만 접근 방법은 숫자 스케치를 사용하는 것입니다.

스케 칭 은 근사값을 취하는 것을 의미합니다. 즉, 정확하지는 않지만 완전히 잘못된 값이 아닙니다. 근사값은 실제 값이 너무 멀지 않으므로 근사값을 사용할 수 있습니다. 이 스마트 알고리즘에서는 확률 및 근사를 기반으로하는 HyperLogLog 를 사용하면 스트림에서 생성 된 숫자의 특성을 관찰 할 수 있습니다. HyperLogLog는 컴퓨터 과학자 인 Nigel Martin과 Philippe Flajolet의 연구에서 유래되었습니다. Flajolet는 초기 알고리즘 인 Flajolet-Martin (또는 LogLog 알고리즘)을 다음과 같이 작동하는보다 강력한 HyperLogLog 버전으로 향상 시켰습니다.

  1. 해시는 스트림에서받은 모든 요소를 ​​숫자로 변환합니다.
  2. 알고리즘은 숫자를 컴퓨터가 사용하는 기본 2 숫자 표준 인 이진수로 변환합니다.
  3. 이 알고리즘은 이진수의 처음 0 수와 999 n 999 인 최대 수를 추적합니다. 알고리즘은 n을 사용하여 스트림에서 전달 된 개별 요소의 수를 추정한다. 구별되는 요소의 수는 2 ^ n 입니다.
  4. 예를 들어, 문자열의 첫 번째 요소는 라는 단어입니다.
알고리즘은이를 정수 값으로 해시하고 결과를 01101010과 함께 2 진수로 변환합니다. 숫자의 시작 부분에 0이 하나만 나타나므로 알고리즘은이를 최대 후행 0 수로 기록합니다. 알고리즘은 이진 값이 11101011과 01101110 인

앵무새 와 늑대를 보게되며, n은 변경되지 않습니다. 그러나 단어 cat 가 통과하면 출력은 00101110이므로 n은 2가됩니다. 구별되는 요소의 수를 계산하기 위해 알고리즘은 2 ^ n, 즉 2 ^ 2 = 4를 계산합니다. 이 그림은이 과정을 보여줍니다. 앞에 오는 0 만 센다. 알고리즘의 트릭은 해시가 균등하게 분산 된 (블룸 필터 에서처럼) 이진 표현을보고 임의의 결과를 생성하는 경우 일련의 0이 나타날 확률을 계산할 수 있다는 것입니다. 단일 이진수가 0이 될 확률이 두 개 중 하나이기 때문에 0의 시퀀스 확률을 계산할 때는 0의 시퀀스 길이만큼 1/2 확률을 곱하면됩니다. 50 % 00 12로 시작하는 숫자에 대해 0 999 25 퍼센트 (1/2 * 1/2) 확률로 시작하는 숫자의 (1/2) 확률. k 제로로 시작하는 숫자에 대해 000 999 (1/2) ^ k 확률로 시작하는 숫자의 5 % (1/2 * 1/2 * 1/2) 확률 (많은 곱셈의 같은 번호)

HyperLogLog가 보는 숫자가 적을수록 부정확도가 커집니다. 서로 다른 해시 함수를 사용하여 HyperLogLog 계산을 여러 번 사용하고 각 계산의 해답을 평균하면 정확도가 높아 지지만 여러 번 해싱하는 데 시간이 오래 걸리며 스트림이 빠릅니다. 또는 동일한 해시를 사용할 수도 있지만 스트림을 그룹으로 나누는 방법 (예: 도착 순서에 따라 도착할 때 요소를 그룹으로 분리하는 방법)을 사용할 수 있으며 각 그룹에 대해 최대 후행 0 수를 추적 할 수 있습니다. 결국, 각 그룹에 대해 별개 요소 추정을 계산하고 모든 추정치의 산술 평균을 계산합니다. 이 접근법은 전체 스트림에 알고리즘을 적용하는 것보다 확률 적 평균이며 정확한 추정을 제공합니다.
데이터 스트림에서 요소의 수를 찾는 방법 - 꽃

편집자의 선택

말 라이더를위한 웨스턴 마운팅 - 서양 안장으로 붙잡을 것이 많고 라이더가 더 긴 스터럽을 착용하기 때문에 인형

말 라이더를위한 웨스턴 마운팅 - 서양 안장으로 붙잡을 것이 많고 라이더가 더 긴 스터럽을 착용하기 때문에 인형

서구 안장에 장착하는 것은 영어로 장착하는 것보다 쉽습니다. 서양 스타일을 마운트하려면 다음 단계를 따르십시오. 마운트하려는 지역으로 말을 인도하십시오. 자신을 위치시키고 말을 조종하십시오. 장소 ...

테니스 수업 받기 - 인형

테니스 수업 받기 - 인형

테니스는 당신의 스트로크를 맞추고 더 효율적이고, 효과적인 선수. 게임을 향상 시키면 더 나은 선수가되지 않습니다. 또한 기술 습득의 만족도를 얻을 수 있습니다. 프로 선수가 아닌 프로 교육 전문가 및 테니스가 있습니다.

편집자의 선택

클라우드가 빅 데이터 - 인형에 필수적인 이유

클라우드가 빅 데이터 - 인형에 필수적인 이유

클라우드의 데이터 예를 들어 공용 클라우드 IaaS 또는 사설 클라우드 IaaS를 사용할 수 있습니다. 그렇다면 커다란 데이터의 의미는 무엇이며 클라우드가 적합한 이유는 무엇입니까? 대용량 데이터에는 분산 컴퓨팅 클러스터가 필요합니다. ...

NoSQL - 더미로 데이터 레이어 확장하기

NoSQL - 더미로 데이터 레이어 확장하기

데이터베이스는 데이터를 잘 저장합니다. 그러나 모든 응용 프로그램에는 추가 소프트웨어가 필요하기 때문에 선택한 NoSQL 데이터베이스에 필요한 확장 기능을 제공하는 도구와 파트너 소프트웨어가 있어야합니다. 확장 기능이 지원되는지 확인하지 않으면 설치가 끝날 것입니다.

데이터 스트림에서 요소의 수를 찾는 방법 - 꽃

데이터 스트림에서 요소의 수를 찾는 방법 - 꽃

필터는 스트림에서 도착하는 객체를 추적 할 수 있기 때문에 객체의 수를 알 수 없습니다. 1로 채워지는 비트 벡터는 (해시 수와 충돌 확률에 따라) 같은 주소에서 해시되는 객체의 실제 수를 숨길 수 있습니다. 서로 다른 수를 알고있는 경우 ...

편집자의 선택

블로그 디자인에서 반복 사용 - 인형

블로그 디자인에서 반복 사용 - 인형

을 반복적으로 사용한다는 의미는 동일하거나 유사한 요소를 반복적으로 사용한다는 것을 의미합니다. 디자인. 블로그 디자인의 모든 요소를 ​​(가상) 테이블에 분산 시키려면 모든 조각을 더 큰 부분처럼 보이게하십시오. 반복은 다른 디자인을 연결하여 블로그 디자인의 흐름을 향상시킵니다.

Google 애널리틱스를 사용하여 블로그의 추천 트래픽 - 인형

Google 애널리틱스를 사용하여 블로그의 추천 트래픽 - 인형

추천 트래픽은 트래픽입니다 당신은 수색 엔진 이외에 위치에서 올린다 그것을 받는다. Facebook, Twitter 또는 StumbleUpon과 같은 소셜 미디어 사이트에서 트래픽을받을 수 있습니다. 또는 다른 블로그 나 링크 된 웹 사이트로부터 트래픽을받을 수도 있습니다. 귀하의 트래픽이 발생한 곳을보고 (그리고 오지 않습니다.)

블로그 디자인에서 다른 소스의 이미지 - 인형

블로그 디자인에서 다른 소스의 이미지 - 인형

을 사용하여 블로그 디자인을 개선하고 자신의 이미지 또는 재고 이미지와 같은 다른 출처의 이미지를 사용할 수 있습니다. 인터넷에서 귀하의 블로그에서 합법적으로 사용할 수있는 주식 이미지를 찾을 수있는 곳이 많기 때문에 귀하의 블로그에 재고 이미지를 사용하는 것은 쉽습니다. 재고 이미지는 라이센스가 부여 된 사진입니다.