본문 바로가기
반응형

Data Science/Project10

[홀로서기 #10] 하이퍼 파라미터 튜닝 & Feature Engineering 경험하기 (Feat. 다중공선성, VIF, Z-test) # 홀로서기 기획 연재물은 최근 개인 프로젝트를 진행하면서 겪은 어려움들을 기록한 지극히 개인적인 콘텐츠입니다. Isolation Forest의 하이퍼 파라미터...? 하이퍼 파라미터(Hyper parameter)는 초매개변수라고도 하며, 모델링할 때 사용자가 직접 세팅해주는 값을 뜻한다. 베이스라인에서 성능을 대폭 올릴 수는 없지만, 어느 정도 상위로 끌어올리기 위해서는 하이퍼 파라미터를 튜닝하는 작업이 필요하다. 보통은 GridSearchCV(그리드서치 교차검증)를 통해서, 교차검증과 최적의 하이퍼파라미터 튜닝을 한번에 수행하는 것이 일반적인 듯하다. 하지만, 내 프로젝트에서 사용하기 어렵다는 것을 알게 되었다. 그래서 그냥 파라미터를 일일히 리스트에 넣어서 for문으로 돌려버렸다. GridSearc.. 2022. 7. 15.
[홀로서기 #09] 이상 탐지 모델링 베이스라인(Isolation Forest) 빠르게 훑기 # 홀로서기 기획 연재물은 최근 개인 프로젝트를 진행하면서 겪은 어려움들을 기록한 지극히 개인적인 콘텐츠입니다. 비지도학습 기반 이상탐지 모델 비지도학습에 활용되는 ML 모델로는 크게 아래와 같이 정리된다. (물론 딥러닝이나 최신 모델도 많지만 내 구글링 기준으로..) 1. Isolation Forest (가장 흔하고 쉽고 인기 있는 모델, 트리 기반) 2. Local Outlier Factor Algorithm (근접 기반) 3. One Class SVM 4. Random Cut Forest(Isolation Forest 변형) IF는 흔히 AI콘테스트에서 이상탐지 모델링 문제가 나왔을 때, 베이스라인 코드로도 많이 활용되는 기초 모델이다. 한번도 활용해본 적이 없기 때문에, 현재 내 프로젝트 데이터를.. 2022. 7. 14.
[홀로서기 #08] 이상 탐지(Anomaly Detection) 베이직. # 홀로서기 기획 연재물은 최근 개인 프로젝트를 진행하면서 겪은 어려움들을 기록한 지극히 개인적인 콘텐츠입니다. 하찮은 변명을 잠시.. 부트캠프 이후에 최근 데이터분석가로 취업하고, 포스팅 작업을 잠시 쉬었다. 그러면서 자연스럽게, 예전에 진행하던 데이터 프로젝트를 기록하지 못했다. 최근에 분석가로서 자신을 돌아보면서, 학문에 많이 소홀해졌다는 생각이 들어서, 이렇게 다시 포스트를 쓰고 있다. 이전 포스트를 확인해보니 이상탐지 모델링에 꽤나 진심이었던거 같기도 하다. 당시에 많은 논문들도 리뷰하면서 딥러닝 모델을 꾸렸었는데, 결론적으로 해당 프로젝트 모델 성능은 좋지 않았다. 원인을 생각해보면 하나는, 전처리 이슈, 다른 하나는 적합한 모델을 사용하지 않았다는 판단도 선다. 그래서 이상탐지와 관련한 기본.. 2022. 7. 13.
[홀로서기 #07] 80 Features, 8M Records... Pandas 말고 Dask! # 홀로서기 기획 연재물은 최근 개인 프로젝트를 진행하면서 겪은 어려움들을 기록한 지극히 개인적인 콘텐츠입니다. 빅데이터에 압도되다. 누가 보면 비웃을 수도 있을 것이다. '이 친구, 초짜구만. 고작 800만 개로 빅데이터라니!'. 그렇다. 필자는 아직 주니어다. 기업 데이터라고 해도 많아 봐야 고작 몇 십만개 정도였다. 그리고 그런 경험 정도로, 이번 새로운 프로젝트를 시작했다. 무려 8M(M은 흔히 1백만 개를 이르는 말이다) 사이즈의 데이터를 다루는 프로젝트이다. 기존에 Python으로 프로젝트를 진행할 때는, Pandas 모듈의 DataFrame을 활용했다. 기본 통계 분석부터, Matplotlib, Seaborn, Plotly Express까지 간편하게 연계하여 시각화를 진행했고, 잘 갖춰진 도.. 2022. 1. 19.
[홀로서기 #06] 회귀 Regression 결정계수(R^2), 알파(alpha) # 홀로서기 기획 연재물은 최근 개인 프로젝트를 진행하면서 겪은 어려움들을 기록한 지극히 개인적인 콘텐츠입니다. R^2, R-squared, 결정계수, 그게 뭔데. 지난 시간에 필자는 기본 회귀모델(Linear Regression)을 포함해서, Lasso, Ridge, ElasticNet까지 모두 돌려봤었다. 회귀 모델이 정규분포일 때 가장 성능이 좋다는 것을 간과하면 안 된다는 점을 깨닫고 Log Transformation(홀로서기 #05)까지 했었는데, 결국 R-sqaured 값은 쓸만하지 못했다. 다시 한번 살펴보면 아래와 같았다. 대체 '결정계수'라고 불리우는 R^2 값의 정체는 무엇일까. 데이터를 잘 정리해서 모델을 돌려도, 이 모델이 정말 유효한 모델인지 판단하는 데에는 '통계학적 지식'이 매.. 2022. 1. 11.
[홀로서기 #05] 회귀 모델링 하기 전에 꼭 확인하기 (2) - 타겟 분포 (Log Transformation) # 홀로서기 기획 연재물은 최근 개인 프로젝트를 진행하면서 겪은 어려움들을 기록한 지극히 개인적인 콘텐츠입니다. 무작정 모델링 하기 지난 시간(OneHotEncoding: 홀로서기 #04)에 이어서 본격적으로 모델링을 진행했다. 결론부터 말하자면, 모델 성능은 처참했다. 꼭 확인해주어야 하는 부분을 확인해주지 않고 넘어갔기 때문인데, 그 부분은 뒷부분에서 확인할 수 있다. 회귀모델에 대표적으로 Linear Regression 이 있고, 각 제약식을 어떻게 주느냐에 따라서, Ridge, Lasso, ElasticNet으로 분화된다. 기본적인 회귀 분석에는 제약식이 포함될 수 있는데, 제약이 없으면 우리가 추정하려는 가중치 w가 폭발적으로 커질 수 있고, 이로 인해서 분산이 커지는 문제가 발생할 수 있다. .. 2022. 1. 3.
[홀로서기 #04] 회귀 모델링 하기 전에 꼭 확인하기 (1) - 범주형 특성 변수(Categorical Features) # 홀로서기 기획 연재물은 최근 개인 프로젝트를 진행하면서 겪은 어려움들을 기록한 지극히 개인적인 콘텐츠입니다. SQL로 최종 데이터 가져오기 지난 시간에 이어서 서울권 공유자전거(따릉이) 이용 데이터를 살펴본다. 시각화를 통해 데이터의 전체적인 모양과 흐름 파악을 마쳤으니, 예측 모델링을 위한 최종 전처리를 진행하고 실제로 ML(Machine Learning) 모델을 적용해봤다. 지금까지(홀로서기 #03)는 서울 강남역 근처의 5개소 대여소만을 기준으로 데이터를 봤다면, 최종 모델링은 전체 데이터를 활용해서 진행했다. 아래 Python 코드는 AWS의 RDS(데이터베이스)에 저장된 데이터 중 최종 모델링에 활용할 데이터를 SQL Query로 불러오는 예시를 나타낸 것이다. conn_aws = mysql.. 2021. 12. 28.
[홀로서기 #03] SQL EDA, Python으로 쉽게 시각화하기 # 홀로서기 기획 연재물은 최근 개인 프로젝트를 진행하면서 겪은 어려움들을 기록한 지극히 개인적인 콘텐츠입니다. SQL로 데이터를 훑어보는 일 AWS 데이터베이스를 쓰면서도, 대용량 데이터에 빠르게 접근할 수 있는, 파이썬보다 직관적인 언어인 SQL! 최근 필자는 mysql을 통해 자전거 수요량 예측 프로젝트를 수행하고 있다. Bulk insert와 View를 통해서, 대용량 데이터와 친해진 후에는, 쿼리를 써 내려가면서, 데이터가 어떻게 생겼는지 확인하고 있다. 그러던 중에, 매번 Python으로만 EDA를 하던 습관이 남아, 데이터를 그려보고 싶다는 생각을 했다. 아쉽게도, SQL 환경에서는 간단하게 그리는 것은 테이블 집계(Groupby)정도만 가능한 것을 깨달았다. (물론, 내가 모르는 것일 수 .. 2021. 12. 21.
[홀로서기 #02] SQL 대량 데이터, VIEW로 핸들링하기 # 홀로서기 기획 연재물은 최근 개인 프로젝트를 진행하면서 겪은 어려움들을 기록한 지극히 개인적인 콘텐츠입니다. VS Code + SQL = 신세계 !! 필자는 데이터 비전공자다. 2021년 초에 스마트시티 관련 사업에 참여하면서, 데이터 비즈니스에 대한 전망을 봤다. 그리고 하반기부터 데이터를 공부하겠다고 마음 먹고, 전업을 잠시 접고 ML과 데이터 관련 학습에 매진하는 중이다. 파이썬의 '파', 아니지 'ㅍ'도 몰랐던 시절이 있었는데, 지금은 Jupyter Notebook의 테마를 바꿔보자며, 취향껏 공부를 하는 수준에 이르렀다. 그리고 최근에는 SQL 프로젝트를 진행하면서, VS Code를 쓰기 시작했다. 터미널 따로, Jupyter 웹 따로 두니까 너무 불편했었다. 하지만 지금은 VS Code에서.. 2021. 12. 14.
반응형