어떤 데이터를 어떻게 볼지는 엔지니어링 이전에 결정되어야 한다. 데이터가 없는 회사는 없다. 활용하지 않을 뿐이다. 모든 회사는 데이터를 가지고 있다. 그리고 그러한 데이터가 보다 전사에 체계적으로 흐를 필요가 있다고 느낄 시점이 될 때 대부분 회사는 데이터 조직을 꾸리기 위해서 시장에 뛰어든다. 그리고 그 시작점으로 데이터 엔지니어 채용부터 시작하는 경우들이 있다. 하지만 실상은 그렇지 않다. 오히려 문제를 복잡하게 만들
Pandas Aggregation을 대체하는 RDB 라이브러리, DuckDB Data Prep * New York City Taxi and Limousine Commission (TLC) Trip Record Data 데이터 활용 * https://www.nyc.gov/site/tlc/about/tlc-trip-record-data.page * 사용관련 라이센스 정보: nyc.gov * 테스트 테이터: 2021.01 ~ 2024.01, 1.79 GB of disk space: * 111,835,256개 레코드, 20개 컬럼 Code * Pandas * Single
AB테스트 시 비회원의 그룹할당을 고민해야 하는 이유 A/B테스트 시, 비회원은 어떻게 그룹할당할지 고민하지 않으면, 특정 그룹으로 쏠리거나, 아예 반영되지 않는 상황을 야기할 수 있다. 통상 비회원은 회원번호를 공통으로 처리하고 있기 때문이다. 예를 들어 "000000000000"으로 한다. 회원번호를 문자로 하기보다는 Sequence 형태로 Integer Type으로 하는 경우가 많기 때문에 비회원도 수치로 표현하는 경우가 많다. 이렇게 수치로 할 경우,
Multi Task 기반 확률 모델링으로 배달시간플랫폼을 구축한 DoorDash Overview Multi Task Model * Multi Task(MT) Model 사용시 장점 * 신규 서비스 배달시간 예측시, Foundation Layer에 추가적으로 레이어릅 붙이는 식으로 대응이 가능 * 플랫폼 내부에서 고객의 여정에 따라 여러번 배달시간을 업데이트해줘야 하는데, 이 부분에 대해서 빠르게 대응 가능, 기존에 별도 모델 사용할 경우,모델간 시간예측 결과 일관성을 보장하기 어려웠음 * 최대한 많은
PYMC 5 설치 배경 * PYMC3는 Python 3.12이상의 버전과 호환이 잘 되지 않던 차에 PYMC가 있다는 것을 알게 되었다. * 설치를 하려고 하는데 에러가 꽤 많이 난다. 이에 대해 별도로 정리를 해놓았다 핵심 conda create -c conda-forge -c nodefaults --name FootballAnalytics "pymc>=5.10" "numpy=1.25.2" 설명 * Numpy는 1.25.2가 가장
Gibbs Sampling과 MH Sampling 공통점과 차이점 정리 공통점 * MCMC 알고리즘: 두 알고리즘 모두 마르코프 체인을 사용하여 확률 분포에서 샘플링합니다. 마르코프 체인은 과거 상태만 고려하여 다음 상태를 결정하는 확률적 모델입니다. * 베이즈 추론: 두 알고리즘 모두 베이즈 추론에서 사후 분포를 추정하는 데 사용됩니다. 베이즈 추론은 사전 정보와 관측 데이터를 결합하여 사후 분포를 계산하는 방법입니다. 차이점 * 제안 분포: 깁스 샘플링은
Python Decorator @Propery를 이용, Overwrite를 방지할 수 있다. Property Decorator를 이용, 직접 할당을 제한하여 클래스 Attribute를 덮어쓰지 않도록 보호할 수 있다. 이는 실수로 모델이나 데이터를 Overwrite할 수 있는 가능성을 원천차단할 수 있다. class SimpleMLModel: def __init__(self): self._trained = False self._model_parameters = None @property def trained(self): """check if the model has been trained.""" return self._trained