조회수 높은 글
-
Machine Learning
[ML] XGBoost 이해하고 사용하자
순서 개념 기본 구조 파라미터 GridSearchCV 1. 개념 'XGBoost (Extreme Gradient Boosting)' 는 앙상블의 부스팅 기법의 한 종류입니다. 이전 모델의 오류를 순차적으로 보완해나가는 방식으로 모델을 형성하는데, 더 자세히 알아보자면, 이전 모델에서의 실제값과 예측값의 오차(loss)를 훈련데이터 투입하고 gradient를 이용하여 오류를 보완하는 방식을 사용합니다. 수식으로 설명하자면, 1번 모델 : Y = w1 * H(x) + error1 1번 모델 오차(loss)의 보완 : error1 = w2 * G(x) + error2 2번 모델 : Y = w1 * H(x) + w2 * G(x) + error2 2번 모델 오차의 보완 : error2 = w3 * M(x) + e..
-
Data Preprocessing
IQR 방식을 이용한 이상치 데이터(Outlier) 제거
* 해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민, 2019) 교재를 참고하여 공부하며 작성한 글입니다. 이상치 데이터(Outlier)는 모델의 성능을 떨어뜨리는 불필요한 요소이기 때문에 꼭 제거해주어야 합니다. 그렇다면 어떻게 이상치 데이터를 찾을 수 있을까요? 1차적으로 EDA 과정에서 그래프를 통해 발견할 수 있습니다. 하지만 이 방법은 소수의 데이터가 평균으로부터 눈에 띄게 떨어진 경우에만 가능하다는 한계가 있습니다. 따라서 "어디까지가 이상치 데이터다" 라고 판단하는 기준이 필요하게 되는데요, 여러가지 방법들 중 오늘은 IQR(Inter Quantile Range) 방식에 대해서 정리해보겠습니다. IQR 방식은 사분위(Quantile) 개념으로부터 출발합니다. 전체 데이터들을 오름차순으로 정..
-
Data Preprocessing
언더 샘플링(Undersampling)과 오버 샘플링(Oversampling)
* 해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민, 2019) 교재를 참고하여 공부하며 작성한 글입니다. 순서 언더 샘플링과 오버 샘플링의 개념 SMOTE 개념 SMOTE 코드 1. 언더 샘플링과 오버 샘플링의 개념 데이터가 불균형한 분포를 가지는 경우, 모델의 학습이 제대로 이루어지지 않을 확률이 높습니다. 이 문제를 해결하기 위해 나온 개념이 언더 섬플링(Undersampling)과 오버 샘플링(Oversampling)입니다. 언더 샘플링은 불균형한 데이터 셋에서 높은 비율을 차지하던 클래스의 데이터 수를 줄임으로써 데이터 불균형을 해소하는 아이디어 입니다. 하지만 이 방법은 학습에 사용되는 전체 데이터 수를 급격하게 감소시켜 오히려 성능이 떨어질 수 있습니다. 오버 샘플링은 낮은 비율 클래스의 ..
-
Machine Learning
[ML] 스태킹(Stacking) 완벽 정리
이 포스팅만 읽으면 스태킹을 쉽게 이해할 수 있도록 정리해봤습니다 :) 천천히 읽어볼까요? 순서 스태킹의 핵심 개념 스태킹의 원리 목표 기본모델 최종모델 코드 1. 스태킹의 핵심 개념 스태킹은 여러 가지 모델들의 예측값을 최종 모델의 학습 데이터로 사용하는 예측하는 방법 입니다. 아직 잘 와닿지가 않나요? 간단한 예시를 아래 그림과 함께 들어보겠습니다. 저는 knn, logistic regression, randomforest, xgboost 모델을 이용해서 4종류의 예측값을 구했습니다. 그리고 이 예측값을 하나의 데이터 프레임으로 만들어 최종모델인 lightgbm의 학습데이터로 사용했습니다. 지금은 기본 모델로부터 예측된 값들이 최종모델의 학습데이터로 사용된다는 것만 이해하면 됩니다. 자세한 내용은 다..
-
Machine Learning
[ML] 앙상블(Ensemble)이 뭐야?
머신러닝을 공부하다보면 '앙상블' 이라는 단어가 종종 나옵니다. 처음 앙상블을 접한 곳은 캐글이었는데, 무슨 뜻인지 짐작할 수도 없어서 거부감이 들었습니다. 개념도 복잡하고 어려울 것 같아서 최대한 그 단어를 피해다니다가 '파이썬 라이브러리를 활용한 머신러닝' 도서를 정독하면서 개념을 정리할 수 있었습니다. 그리고 이해한 내용을 이렇게 글로 정리하면서 한번 더 공부하고자 합니다! 그럼 앙상블이 뭔지 한번 볼까요? 순서 앙상블이란? 앙상블의 종류 1. 앙상블이란? 앙상블을 검색해보면 물리학, 통계학, 뮤지컬, 연주 등 다양한 영역의 연관검색을 확인할 수 있습니다. 아하! 앙상블이라는 단어가 코딩의 전문용어가 아니였습니다. '앙상블(Ensemble)'은 프랑스어로써 '전체적인 어울림이나 통일' 이라고 위키백..
-
Career
2021년 제일기획 데이터기획직 대학생 인턴 후기
소중했던 6주 간의 제일기획 인턴 생활을 마치고 이제 후기를 써보려고 합니다! 이 글이 먼 훗날 저 스스로에게도, 그리고 취업 준비를 하는 사람들에게도 도움이 되었으면 좋겠네요 :) 글은 인턴 생활 중에 인상 깊었던 에피소드 형식으로 작성해보려 합니다. 그럼 바로 시작해볼게요! - Ep1. 전국에서 한 명 뽑았다. 그게 바로 나? - Ep2. 내 인생 첫 사회생활, 풀정장으로 시선 집중 - Ep3. 유튜브에서 뵙던 분이 눈 앞에! - Ep4. 서프라이즈 생일파티 - Ep5. 면접을 그렇게 잘봤다고 하던데~ - Ep6. 직접 느껴본 제일기획 장점 - Ep7. 과제 준비 과정과 최종 발표, 그리고 느낀 점 Ep1. 전국에서 한 명 뽑았다. 그게 바로 나? 인턴 선발 최종 발표가 나고 며칠 후, 제일기획 인턴..
-
Career
2021년 제일기획 데이터기획직 대학생 인턴 최종 합격 후기
채용 프로세스 : 서류 > GSAT > 면접 * 면접 구성 및 질의 내용은 대외비이기 때문에 자세하게 말씀드릴 수 없습니다. 따라서 준비 과정과 그 과정에서 느낀 점들을 중심으로 후기를 작성해보겠습니다 :) 0. 지원 자격 오픽 미리 준비하세요! IH 이상을 따두시면 대부분의 직무에 지원하실 수 있습니다. 1. 서류 자기소개서의 핵심은 읽고 싶은 자기소개서가 되어야 한다는 점입니다. 첫 번째 줄을 읽으면 두 번째 줄이 궁금한 글이 되어야 해요! 블로그에 글을 작성하는 것도 같은 맥락입니다. 서두에서 자기소개서의 핵심을 한 마디로 정의하고, 이후에 뒷받침하는 근거들을 나열해야 읽고 싶은 글이 됩니다. 1-1. 전체적인 순서 1. 합격 자기소개서들을 읽으며 회사의 인재상과 전체적인 글의 구조를 파악 2. 각..
-
Data Visualizing
matplotlib 완벽 정리
데이터 분야 공부를 시작할때 가장 먼저 만나는 세 가지 라이브러리를 꼽자면 numpy, pandas, matplotlib 입니다. 오늘은 그 중 matplotlib 에 대해서 정리해볼텐데요, 개인적으로 처음 이 라이브러리를 접했을때 정말 헷갈렸습니다. 어떤 커널에서는 plt.plot으로 표현하고, 또 다른 커널에서는 ax.plot 혹은 axes[0,0].plot으로 표현되어있기 때문입니다. 그리고 가령 히스토그램을 그린다면 누구는 plt.hist로 구현했는데, 또 다른 누구는 plt.plot(kind='hist)로 구현했기 때문에 일목요연하게 정리되지 않았습니다. 그래서 오늘 포스팅을 기획하게 되었는데요, 해당 포스팅의 목적은 두 가지 입니다. 첫 번째, 왜 이렇게 표현방식이 다양하고, 어떻게 정리할 수..
-
Python
[Python] 모듈 사용법, pip의 원리
지난 포스팅에서 비슷한 코드의 작성을 피하기 위해 클래스가 필요하다고 했습니다. 오늘은 이 클래스를 파일로 저장하고, 필요할 때마다 호출해서 사용하는 방법을 공부해보겠습니다. 클래스와 함수들을 모아둔 파일(.py)을 모듈이라고 합니다. 코딩을 시작하기 전 import numpy as np 혹은 import pandas as pd 를 작성해본 적 있으시죠? 이게 쉽게 말하면 내 컴퓨터에 저장되어 있는 numpy.py 라는 파일과 pandas.py 라는 파일을 호출하는 것입니다. 나는 컴퓨터에 그런 파일을 저장한 적이 없으시다구요? numpy와 pandas의 경우에는 아주 기본적인 모듈이기 때문에 파이썬을 설치하면 자동으로 컴퓨터 저장됩니다. 그래서 따로 저장할 필요가 없었던거죠. 새로운 모듈의 경우에는 별..
-
Summary
딥러닝 입문자를 위한 모델 구조 (Computer Vision)
머신러닝을 처음 공부할때 어려웠던 점 중 하나는 지금 어떤 부분을 공부하고 있는지 몰랐던 겁니다. 예를 들어, tree 기반 알고리즘을 공부할때 '불순도' 라는 개념을 공부했을 것입니다. 그 당시에는 불순도가 이런거고, gini계수랑 엔트로피가 이런거구나!! 했지만, 전체적인 머신러닝 모델 관점에서 봤을때는 이 개념이 왜 필요한지, 어디 부분인지를 몰랐습니다. 하지만 머신러닝에 대한 지식이 어느 정도 쌓인 지금은 대답할 수 있습니다. 전처리, 모델링, 학습 및 평가 중 모델링에 속하고, 모델링의 알고리즘에는 로지스틱, 랜덤포레스트, XGBoost 등 다양한 알고리즘이 존재하지만, 그 중 tree 기반의 알고리즘에서 노드가 분할하기 위한 기준으로 불순도가 사용된다는것을요! 만약 불순도를 처음 공부할 때 이..
-
Data Visualizing
seaborn 완벽 정리
여러분은 처음 seaborn을 어떻게 사용했나요? seaborn이 시각화에 좋다고 해서 그냥 import seaborn as sns 를 하고, 있을 법한 그래프를 메소드로 써서 실행시켜보시지는 않았나요? displot이 어떤 plot인지도 모른채로, sns.distplot 인가, sns.displot 인가 고민하시지는 않았나요? 네, 제가 그랬습니다. 그래서 정리했습니다. seaborn!! * 참고 자료 : seaborn.pydata.org/tutorial/function_overview.html seaborn은 matplotlib 기반의 파이썬 시각화 라이브러리 입니다. matplotlib 보다 더 이쁘고 쉽게 만들수 있다고 알려져 있죠. 그런데 이 seaborn 도 크게 두 가지 함수로 나뉘어져 있다..
-
Deep Learning
[cs231n] 오차역전파(propagation)를 이용한 gradient 계산
지난 포스팅에서 최적화의 방법으로 두 가지 개념이 나왔습니다. 바로 numerical gradient와 analytic gradient 인데요, numerical gradient 방법은 하나하나 다 계산하기 때문에 정확하지만 시간이 너무 오래걸린다는 단점이 있다고 했습니다. 그래서 보통 w를 구할때 analytic gradient 방법을 사용한다고 공부했었는데, 오늘은 analytic gradient 방법의 원리에 대해서 자세히 공부해보겠습니다. 순서 computational graph 스칼라의 backpropagation backpropagation의 이해 local gradient/ global gradient(upstream gradient) 벡터의 backpropagation 1. computat..
-
Summary
모델 평가하기 - 정확도만 높으면 좋은 모델?
* 카테고리 별로 읽기보다, 글 순서대로 읽는걸 추천드려요. 순서 정확도의 문제 재현율, 정밀도 F score 임계값 조절 PR curve vs ROC curve Confusion Matrix 1. 정확도의 문제 모델 성능을 비교할 때 그리고 그리드 서치를 이용하여 최적은 매개변수를 구할 때, 어떤 값을 기준으로 모델을 선택하고 매개변수를 선택하시나요? 이 주제에 대한 고민을 안해보셨다면 대부분 정확도를 기준으로 선택하셨을텐데, 정확도만을 가지고 성능을 비교하면 어떤 문제점이 있는지 알려드릴게요! 가장 유명하게 알려진 예시로 암 환자의 진단을 들어보겠습니다. 어떤 회사에서 두 종류의 암 진단 키트를 발명했다고 가정해봅시다 !! A 키트의 정확도는 99% B 키트의 정확도는 95% 라고 발표했을 때, 우리..
-
Data Collecting
공공데이터포털 API - 대한민국 국경일 및 공휴일
순서 key 받기 url 준비 requests를 사용하여 url로부터 정보 가져오기 상위/하위 등을 파악하기 쉽게 xmltodict로 파싱 (xml 파일이라면 json으로 변환 - dumps) json을 파이썬으로 load 원하는 정보 지정해서 담기 0. 라이브러리 import requests # url로부터 정보를 가져올때 사용 import xmltodict # orderedDict 형태로 변환 - 보기 쉽게 import json # xml을 json으로 json을 파이썬으로 변환 1. key 받기 홈페이지에서 발급 받으세요. 2. url 준비 해당 홈페이지에는 받고자 하는 데이터에 대해 설명하는 문서 파일이 첨부되어 있을 것입니다. 문서파일에서 받고자 하는 url과 key를 합쳐 새로운 url을 만들..
-
BOAZ
[BOAZ] 보아즈 데이터 분석 부문 수료 및 활동 후기
보아즈 활동을 하기 전까지만 해도 데이터 분석을 독학하는데 어려움이 정말 많았습니다. 말이 쉬워 데이터 분석이지, 처음 공부를 결심하고 뛰어들었을때에는 뭐가 이렇게 생소한 용어가 많은지,, 파이프라인, 파이썬, C언어, 자바, 코딩테스트, 하이브, 하둡, 머신러닝, 딥러닝, SQL 등 모든걸 공부해야하는 줄 알았고, 그래서 무엇부터 공부해야할지, 어떻게 공부해야할지 감도 안잡혔습니다. 첫 한 달 동안은 이것저것 다 해봤던것 같아요! 무작정 서점에 가서 이런저런 책을 뒤져보기도 하고, 캐글이라는 사이트를 알게돼서 코드를 필사해보기도 하고, 유튜브에서 컴피티션 솔루션 강의를 찾아보기도 했습니다. 하지만 뭔가,, 계속해서 커다란 벽이 느껴졌습니다. 독학이다보니 딱 내가 아는 것 까지만 알 수 있었고, 보이는 ..