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

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

비디오: 트랙 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 수를 추적 할 수 있습니다. 결국, 각 그룹에 대해 별개 요소 추정을 계산하고 모든 추정치의 산술 평균을 계산합니다. 이 접근법은 전체 스트림에 알고리즘을 적용하는 것보다 확률 적 평균이며 정확한 추정을 제공합니다.
데이터 스트림에서 요소의 수를 찾는 방법 - 꽃

편집자의 선택

행사에서 연설을 신청하는 방법 - 인형

행사에서 연설을 신청하는 방법 - 인형

강연을 제안 할 수 있어야합니다 다른 잠재적 인 연사보다 이벤트 참석자에게 더 많은 가치를 제공 할 수 있음을 입증하십시오. 연설 인재 풀은 가능한 연설 기회 수보다 빠르게 증가하고 있습니다. 당신은 이벤트 기획자에게 당신이 원하는 바를 물어볼 수있었습니다. ...

새로운 온라인 커뮤니티 회원 유치 방법 - 온라인 커뮤니티의 인형

새로운 온라인 커뮤니티 회원 유치 방법 - 온라인 커뮤니티의 인형

회원은 일시적입니다. 많은 사람들은 그들이 특정한 목표를 성취 할 때까지 주변에 머물러 있습니다. 다른 사람들은 관심을 잃고 새로운 행 아웃을 찾습니다. 따라서 정기적으로 신입 회원을 영입하지 않으면 커뮤니티가 사라집니다. 사람들이 교류 할 수있는 장소를 마련하는 데 어려움을 겪고 있습니다.

엄마 블로거로서 언론의 관심을 끄는 방법 - 인형

엄마 블로거로서 언론의 관심을 끄는 방법 - 인형

수십만 (또는 수백만)의 사람들이 엄청난 성과를 거두고 있습니다. 예상대로, 쉽게 성취되지는 않습니다. 뉴욕 타임스에 언급되거나 투데이 쇼에 출연하기 위해서는 많은 시간과 노력과 신뢰가 필요합니다. 아마도 ...

편집자의 선택

Ning 사용자 기고에 대한 코멘트 방법 - 인형

Ning 사용자 기고에 대한 코멘트 방법 - 인형

Ning 계정에 로그인하면 다른 Ning 사용자의 블로그 게시물, 회신 한 이벤트, 사진 및 비디오에 대한 의견을 남깁니다. 회원님의 논평 벽에 남긴 댓글, 순수 텍스트, 다른 웹 사이트 링크 및 퍼간 동영상과 같은 요소가 귀하의 댓글에 포함될 수 있습니다 ...

닝 네트워크의 광고 제어 방법 - 덤프

닝 네트워크의 광고 제어 방법 - 덤프

기본적으로 닝 네트워크는 애드 센스 광고는 오른쪽 열에 있습니다. 누군가 광고를 클릭하면 생성 된 모든 수익이 Ning으로 이동합니다. 네트워크에서 광고를 게재하여 수익을 얻고 싶거나 광고를 전혀 원하지 않는 경우 제어 광고 프리미엄 서비스를 구입해야합니다.

Ning에서 그룹을 만드는 방법 - Dingy

Ning에서 그룹을 만드는 방법 - Dingy

Ning에서 새로운 그룹을 시작하는 것은 가장 멋진 방법 중 하나입니다. 네가 닝 네트워크에서 할 수있는 일. 그룹을 만들 수 있도록 네트워크가 설정되어 있다면 다음 단계를 따르십시오.

편집자의 선택

Canon Rebel T3 시리즈 카메라로 원시 이미지 파일 처리하기 - 더미 파일

Canon Rebel T3 시리즈 카메라로 원시 이미지 파일 처리하기 - 더미 파일

Canon Rebel T3 또는 T3i로 촬영 한 이미지를 원시 데이터로 캡처 할 수 있습니다. Canon 소프트웨어를 사용하는 경우 Raw 파일을 즉시 인쇄 할 수는 있지만 인쇄하기 전에 사진 작업실로 가져 가서 온라인으로 공유하거나 사진 소프트웨어에서 편집 할 수 있습니다.

Canon Rebel T3 시리즈 카메라에서 자동 초점 포인트 설정 - 인형

Canon Rebel T3 시리즈 카메라에서 자동 초점 포인트 설정 - 인형

Canon Rebel T3 또는 T3i를 사용하는 스포츠 모드에서는 카메라가 중심 초점 위치에 초점을 둡니다. Creative 자동 및 A-DEP 모드뿐만 아니라 다른 완전 자동 노출 모드 (장면 인텔리전스 자동, 인물, 풍경 등)에서 카메라의 자동 초점 시스템은 9 개의 자동 초점을 모두 찾습니다 ...