본문 바로가기

분류 전체보기

(102)
갈아먹는 통계 기초[3] 표본 추출 지난 글 갈아먹는 통계 기초[1] 확률 분포 정리 갈아먹는 통계 기초[2] 공분산과 피어슨 상관계수 들어가며 TV 드라마의 시청률을 조사하는 상황을 생각해보겠습니다. 먼저 모든 가구들의 TV에 어느 체널을 보는지 측정할 수 있는 장비를 설치하고 시청률을 측정하는 방법을 생각해 볼 수 있습니다. 이를 전수 조사라고 합니다. 하지만 이는 너무 많은 비용과 시간이 소요됩니다. 그렇기 때문에 전체 가구들 중 일부 가구의 시청 체널을 조사하는 방법을 택할 수 있습니다. 이를 표본 조사라고 합니다. 하지만 여기서 고민이 생깁니다. 표본을 얼만큼, 어떻게 뽑아야만 신뢰할 만한 시청률을 측정할 수 있을까요? 이번 시간에는 이러한 표본 집계에 대해서 알아보도록 하겠습니다. 표본 조사 전국민 조사에서 국민과 같이 원래 통..
갈아먹는 통계 기초[2] 공분산과 피어슨 상관 계수 지난 글 갈아먹는 통계 기초[1] 확률 분포 정리 들어가며 캐글 컴페티션 같은 데이터 사이언스 테스크를 풀 때 주어진 데이터의 특성을 분석하는 작업을 EDA라고 합니다. EDA를 수행할 때 필수적으로 분석하는 것이 자료들 간의 상관관계입니다. 가령 직원들의 근무 성과 데이터가 주어졌다고 하면 직원들의 거주 지역과 성과 사이의 상관관계를 분석하고 싶을 수 있습니다. 만일 상관관계가 높다면 직원들의 성과를 예측하는데 적절한 데이터로 활용이 가능하겠죠? 이렇듯 데이터 간의 상관관계를 분석하고 싶을 때 사용되는 것이 공분산입니다. 이번 포스팅에서는 공분산의 기초 개념과 실질적으로 많이 사용되는 피어슨 상관 계수에 대해서 알아보겠습니다. 공분산(covariance) 공분산은 두 측정값 사이에 연관성을 분석하기 위..
갈아먹는 통계 기초 [1] 확률 분포 정리 들어가며 머신러닝에서 통계학은 뗄레야 뗄 수 없는 관계에 있습니다. 데이터가 어떠한 특성을 가지고 있고, 어떠한 분포를 띄는 지에 따라서 수행해야하는 전처리나 알고리즘이 달라지기도 합니다. 그런 의미에서 통계학의 기초 개념들을 쭉 복습하며 핵심적인 내용들을 정리해보려 합니다. 확률 변수 확률 변수(random variable)은 확률 실험의 결과에 대한 숫자적 표현입니다. 가령 동전을 던진다고 했을 때 앞면을 1, 뒷면을 0이라고 표현한다고 하면 이는 실험 결과의 숫자적 표현이고 확률 변수입니다.[1] 확률 변수는 그것이 취할 수 있는 값들이 한 개, 두개와 같이 셀 수 있으면 이산형 확률 변수(discrete random variable), 셀 수 없을 경우 연속형 확률 변수(continuous ran..
갈아먹는 추천 알고리즘[6] 추천 엔진 성능 지표 지난 글 갈아먹는 추천 알고리즘 [1] 추천 알고리즘의 종류 갈아먹는 추천 알고리즘 [2] Collaborative Filtering 갈아먹는 추천 알고리즘 [3] Matrix Factorization 갈아먹는 추천 알고리즘 [4] Alternating Least Squares 갈아먹는 추천 알고리즘 [5] ALS 구현하기 들어가며 오랜만에 추천 알고리즘에 관련된 내용을 포스팅 해봅니다. 바로 추천 엔진의 성능은 어떻게 평가할 것인가 입니다. 클래시피케이션 모델의 경우에는 accuracy, precision, recall, f1-score 등의 지표가 있고 object detection의 경우에는 mAP, 리그레션 모델 같은 경우에는 r2-score 등의 지표들이 있습니다. 이러한 성능 평가 지표들을 우..
갈아먹는 BigData [1] MapReduce 이해하기 들어가며 빅 쿼리에 대한 포스팅을 작성하면서 맵 리듀스나 스파크 등 빅 데이터 분산 처리 기술들에 대한 지식이 부족함을 느꼈습니다. 이전에 잠깐 공부해보았던 기술들이지만 찬찬히 페이퍼를 읽어보고 개념들을 다시 정리해보려 합니다. 가장 먼저 리뷰해 볼 것은 분산 처리와 빅 데이터의 포문을 연 구글의 맵 리듀스 논문입니다. 맵 리듀스를 구현하여 오픈 소스화 시킨게 하둡이고, 많은 기업들에서 지난 십수년간 많은 사랑을 받아왔습니다. 맵 리듀스 역시 단점이 있어서 현재는 스파크나 빅 쿼리 등에 자리를 많이 내주었지만 여전히 대용량 데이터의 배치 처리에서 많이 사용된다고 합니다. 또한 맵 리듀스의 한계점을 극복하는 방향으로 빅데이터 분석 기술이 발전하였다고 하니 충분히 살펴볼 가치가 있습니다. 영향력: 맵 리듀스..
갈아먹는 BigQuery[4] 빅쿼리 아키텍쳐 지난 글 갈아먹는 BigQuery [1] 빅쿼리 소개 갈아먹는 BigQuery [2] 빅쿼리 스키마 및 데이터 모델 갈아먹는 BigQuery [3] 빅쿼리 SQL 분산 실행 갈아먹는 BigData [1] MapReduce 이해하기 들어가며 지난 포스팅들에서 빅 쿼리가 무엇이고 어떠한 특징이 있는지 살펴보았습니다. 그리고 로우 레벨의 관점에서 어떻게 데이터를 저장하고 SQL 쿼리를 분산처리 하는지 살펴보았습니다. 이번에는 빅 쿼리의 아키텍쳐에 대해서 좀 더 자세히 알아보겠습니다. BigQuery Architecture 빅 쿼리는 크게 네 가지 구성 요소로 이루어져 있습니다.[1] Dremel(Compute): 방대한 분산 노드들에서 SQL 쿼리를 실행 Colossus(Storage): 데이터를 저장하고 실..
갈아먹는 BigQuery[3] 빅쿼리 SQL 분산 실행 지난 글 갈아먹는 BigQuery [1] 빅쿼리 소개 갈아먹는 BigQuery [2] 빅쿼리 스키마 및 데이터 모델 갈아먹는 BigData [1] MapReduce 이해하기 들어가며 지난 시간에 BigQuery의 큰 특징 중 하나인 Columnar Storage에 대해서 알아보았습니다. 이번에는 또 다른 특징인 트리 기반의 쿼리 분산 실행에 대해서 알아보겠습니다. 컬럼 기반으로 저장된 데이터에 대해서 어떻게 SQL문을 적용하는 지에 대한 세부적인 내용 보다는 어떻게 방대한 양의 서버들에 SQL 쿼리를 분산시키고 이를 수합하는 지에 초점을 맞추어 진행하겠습니다. (지난 포스팅과 마찬가지로 빅 쿼리의 전신인 Dremel의 논문에 기반합니다.) Tree Architecture Dremel은 입력 쿼리가 들어오..
갈아먹는 BigQuery [2] 빅쿼리 스키마 및 데이터 모델 지난 글 갈아먹는 BigQuery [1] 빅쿼리 소개 들어가며 지난 시간에 빅 쿼리에 대한 간략한 소개와 빅 쿼리의 전신인 Dremel에 대해서 알아보았습니다. 그리고 Dremel의 가장 큰 특징은 Columnar Storage와 Tree Architecture를 살펴봤습니다. 이번에는 빅 쿼리의 재미있는 특징 중에 하나인 Array와 Struct를 소개하면서 빅 쿼리가 지향하는 스키마 설계 방식을 다뤄보겠습니다. 또한 이를 Columnar Storage 상에서 구현하기 위한 Dremel의 데이터 모델을 자세히 알아보겠습니다. Big Query 스키마 BigQuery는 RDBMS 처럼 일정한 스키마를 가진 테이블을 생성하고, 정형화 된 데이터(structured data)를 저장합니다. 그렇기 때문에 r..