조회수 높은 글
-
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..
-
Machine Learning
[ML] 스태킹(Stacking) 완벽 정리
이 포스팅만 읽으면 스태킹을 쉽게 이해할 수 있도록 정리해봤습니다 :) 천천히 읽어볼까요? 순서 스태킹의 핵심 개념 스태킹의 원리 목표 기본모델 최종모델 코드 1. 스태킹의 핵심 개념 스태킹은 여러 가지 모델들의 예측값을 최종 모델의 학습 데이터로 사용하는 예측하는 방법 입니다. 아직 잘 와닿지가 않나요? 간단한 예시를 아래 그림과 함께 들어보겠습니다. 저는 knn, logistic regression, randomforest, xgboost 모델을 이용해서 4종류의 예측값을 구했습니다. 그리고 이 예측값을 하나의 데이터 프레임으로 만들어 최종모델인 lightgbm의 학습데이터로 사용했습니다. 지금은 기본 모델로부터 예측된 값들이 최종모델의 학습데이터로 사용된다는 것만 이해하면 됩니다. 자세한 내용은 다..
-
개인적인 프로젝트
[Guesthouse] 경쟁사 가격 조사 - 지금 가격이 적당해?
게스트하우스든 음식점이든 카페든 내가 사장이면 참 해야할게 많습니다. 그 중 하나가 가격 결정인데, 가격을 결정하는데 있어 '시세' 라는게 큰 영향을 미칩니다. 음식점이나 카페와 같이 가격이 고정적이면 처음에 조금만 발품을 팔면 시세를 쉽게 파악할 수 있습니다. 하지만 제가 일하던 게스트하우스와 같이 성수기, 비수기, 평일, 주말, 명절, 연박, 얼리버드 등 다양한 요소에 의해 가격이 끊임없이 변동하는 경우에는 시세를 파악하기 쉽지 않습니다. 그래서 직접 해봤습니다. 실시간 가격 비교 프로그래밍!! 코드와 관련한 내용은 제일 아래의 링크를 참고해주시고, 이번 포스팅은 분석에 포커스를 맞추겠습니다. 결론부터 말씀드리면 '실시간으로 경쟁사들의 가격을 보여주는 프로그램'을 만드는 것은 실패했습니다. 사실 끝까..
-
Career
2021년 제일기획 데이터기획직 대학생 인턴 후기
소중했던 6주 간의 제일기획 인턴 생활을 마치고 이제 후기를 써보려고 합니다! 이 글이 먼 훗날 저 스스로에게도, 그리고 취업 준비를 하는 사람들에게도 도움이 되었으면 좋겠네요 :) 글은 인턴 생활 중에 인상 깊었던 에피소드 형식으로 작성해보려 합니다. 그럼 바로 시작해볼게요! - Ep1. 전국에서 한 명 뽑았다. 그게 바로 나? - Ep2. 내 인생 첫 사회생활, 풀정장으로 시선 집중 - Ep3. 유튜브에서 뵙던 분이 눈 앞에! - Ep4. 서프라이즈 생일파티 - Ep5. 면접을 그렇게 잘봤다고 하던데~ - Ep6. 직접 느껴본 제일기획 장점 - Ep7. 과제 준비 과정과 최종 발표, 그리고 느낀 점 Ep1. 전국에서 한 명 뽑았다. 그게 바로 나? 인턴 선발 최종 발표가 나고 며칠 후, 제일기획 인턴..
-
Career
2021년 제일기획 데이터기획직 대학생 인턴 최종 합격 후기
채용 프로세스 : 서류 > GSAT > 면접 * 면접 구성 및 질의 내용은 대외비이기 때문에 자세하게 말씀드릴 수 없습니다. 따라서 준비 과정과 그 과정에서 느낀 점들을 중심으로 후기를 작성해보겠습니다 :) 0. 지원 자격 오픽 미리 준비하세요! IH 이상을 따두시면 대부분의 직무에 지원하실 수 있습니다. 1. 서류 자기소개서의 핵심은 읽고 싶은 자기소개서가 되어야 한다는 점입니다. 첫 번째 줄을 읽으면 두 번째 줄이 궁금한 글이 되어야 해요! 블로그에 글을 작성하는 것도 같은 맥락입니다. 서두에서 자기소개서의 핵심을 한 마디로 정의하고, 이후에 뒷받침하는 근거들을 나열해야 읽고 싶은 글이 됩니다. 1-1. 전체적인 순서 1. 합격 자기소개서들을 읽으며 회사의 인재상과 전체적인 글의 구조를 파악 2. 각..
-
Data Preprocessing
언더 샘플링(Undersampling)과 오버 샘플링(Oversampling)
* 해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민, 2019) 교재를 참고하여 공부하며 작성한 글입니다. 순서 언더 샘플링과 오버 샘플링의 개념 SMOTE 개념 SMOTE 코드 1. 언더 샘플링과 오버 샘플링의 개념 데이터가 불균형한 분포를 가지는 경우, 모델의 학습이 제대로 이루어지지 않을 확률이 높습니다. 이 문제를 해결하기 위해 나온 개념이 언더 섬플링(Undersampling)과 오버 샘플링(Oversampling)입니다. 언더 샘플링은 불균형한 데이터 셋에서 높은 비율을 차지하던 클래스의 데이터 수를 줄임으로써 데이터 불균형을 해소하는 아이디어 입니다. 하지만 이 방법은 학습에 사용되는 전체 데이터 수를 급격하게 감소시켜 오히려 성능이 떨어질 수 있습니다. 오버 샘플링은 낮은 비율 클래스의 ..
-
Machine Learning
[ML] LightGBM 이해하고 사용하자
순서 개념 기본 구조 파라미터 1. 개념 * 이 글을 읽기 전에 앙상블 포스팅과 XGBoost 포스팅을 읽고 오시는 것을 추천드립니다. XGBoost와 LightGBM은 결정트리(Decision Tree) 알고리즘 기반의 대표적 부스팅 앙상블 기법입니다. 간단하게 설명드리자면 트리의 오차(loss)를 점점 수정해나가는 방법으로 성능을 향상시키는 아이디어 인데요, 최근 캐글과 데이콘의 상위권 커널들에서 주로 사용되어 유명세를 타고 있습니다!! 그렇다면 지난번에 공부한 XGBoost와 LightGBM은 어떤 차이가 있을까요? 우선 LightGBM은 XGBoost의 시간적 한계를 보완한 알고리즘이라고 기억하시면 될 것 같습니다. 어떻게 시간적 한계를 보완했을까요? 바로 노드의 분할 방법에 차이를 두었습니다. ..
-
Data Visualizing
matplotlib 완벽 정리
데이터 분야 공부를 시작할때 가장 먼저 만나는 세 가지 라이브러리를 꼽자면 numpy, pandas, matplotlib 입니다. 오늘은 그 중 matplotlib 에 대해서 정리해볼텐데요, 개인적으로 처음 이 라이브러리를 접했을때 정말 헷갈렸습니다. 어떤 커널에서는 plt.plot으로 표현하고, 또 다른 커널에서는 ax.plot 혹은 axes[0,0].plot으로 표현되어있기 때문입니다. 그리고 가령 히스토그램을 그린다면 누구는 plt.hist로 구현했는데, 또 다른 누구는 plt.plot(kind='hist)로 구현했기 때문에 일목요연하게 정리되지 않았습니다. 그래서 오늘 포스팅을 기획하게 되었는데요, 해당 포스팅의 목적은 두 가지 입니다. 첫 번째, 왜 이렇게 표현방식이 다양하고, 어떻게 정리할 수..
-
Data Preprocessing
IQR 방식을 이용한 이상치 데이터(Outlier) 제거
* 해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민, 2019) 교재를 참고하여 공부하며 작성한 글입니다. 이상치 데이터(Outlier)는 모델의 성능을 떨어뜨리는 불필요한 요소이기 때문에 꼭 제거해주어야 합니다. 그렇다면 어떻게 이상치 데이터를 찾을 수 있을까요? 1차적으로 EDA 과정에서 그래프를 통해 발견할 수 있습니다. 하지만 이 방법은 소수의 데이터가 평균으로부터 눈에 띄게 떨어진 경우에만 가능하다는 한계가 있습니다. 따라서 "어디까지가 이상치 데이터다" 라고 판단하는 기준이 필요하게 되는데요, 여러가지 방법들 중 오늘은 IQR(Inter Quantile Range) 방식에 대해서 정리해보겠습니다. IQR 방식은 사분위(Quantile) 개념으로부터 출발합니다. 전체 데이터들을 오름차순으로 정..
-
Machine Learning
[ML] 결정트리(Decision Tree) 한 번에 정리하기
* 해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민, 2019) 교재를 참고하여 공부하며 작성한 글입니다. 순서 결정트리 알고리즘의 개념 개념 구조 하이퍼파라미터 튜닝 특성중요도 1. 결정트리 알고리즘의 개념 1-1. 개념 결정트리 알고리즘을 한 마디로 설명하면 스무고개 입니다. 그런데 기가막히게 예리한 질문지들을 척척 만들어내는 녀석입니다. 예를 들어 강아지, 고양이, 새 사진이 각각 100장씩 섞여있는 그룹에서 이 세 가지를 정확하게 분류하려면 어떤 질문들이 필요할까요? 일단 날개가 있는지로 새를 정확하게 분류할 수 있을 것 같습니다. 그리고 날개가 없는 강아지와 고양이는 눈동자의 모양이 날카로운지에 따라 분류할 수 있을 것입니다. 하지만 이 기준으로 강아지와 고양이를 100% 분류할 수 없기 때문..
-
Summary
딥러닝 입문자를 위한 모델 구조 (Computer Vision)
머신러닝을 처음 공부할때 어려웠던 점 중 하나는 지금 어떤 부분을 공부하고 있는지 몰랐던 겁니다. 예를 들어, tree 기반 알고리즘을 공부할때 '불순도' 라는 개념을 공부했을 것입니다. 그 당시에는 불순도가 이런거고, gini계수랑 엔트로피가 이런거구나!! 했지만, 전체적인 머신러닝 모델 관점에서 봤을때는 이 개념이 왜 필요한지, 어디 부분인지를 몰랐습니다. 하지만 머신러닝에 대한 지식이 어느 정도 쌓인 지금은 대답할 수 있습니다. 전처리, 모델링, 학습 및 평가 중 모델링에 속하고, 모델링의 알고리즘에는 로지스틱, 랜덤포레스트, XGBoost 등 다양한 알고리즘이 존재하지만, 그 중 tree 기반의 알고리즘에서 노드가 분할하기 위한 기준으로 불순도가 사용된다는것을요! 만약 불순도를 처음 공부할 때 이..
-
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..
-
Deep Learning
[cs231n] 컴퓨터는 고양이 사진을 보고 고양이인지 알까?
순서 컴퓨터는 이미지를 어떻게 인식할까? 컴퓨터에게 이미지를 어떻게 학습시킬까? NN (Nearest Neighbor) k-NN (k-Nearest Neighbor) 결론 1. 컴퓨터는 이미지를 어떻게 인식할까? 위 사진은 강아지와 고양이 중에 어떤 사진인가요? 네!! 바로 고양이 사진입니다. 어떻게 고양이 사진이라고 생각하게 되었나요? 아마 어렸을때부터 수많은 고양이들을 봤고, 그 동물이 고양이라는 것을 학습했기 때문일 것입니다. 그렇다면 컴퓨터가 이 사진이 고양이 사진이라는 것을 알 수 있게 하려면 어떻게 해야할까요? 우리가 고양이를 학습한 것과 마찬가지로, 컴퓨터에게 수억만장의 고양이 사진을 보여주면서 고양이라고 학습시키면 될 것 같습니다. 이렇게 학습시키는 방법을 '데이터 기반 접근법(Data-D..
-
Machine Learning
[ML] Linear Regression
Linear regression : 데이터를 가장 잘 대변하는 직선을 구하는 것 Q : '데이터를 잘 대변한다' 는게 뭔데? A : 예측값과 실제값의 차이가 크지 않은 것!! Q : 그런 직선을 어떻게 구하는데? A : 일단 지금 말한 것들을 식으로 만들어보자!! 파란 점선 : Hypothesis (H(x)) = w*x + b 빨간 직선 : Cost (loss, error) = H(x) - y = 예측값 - 실제값 Q : 데이터를 잘 대변하는 직선을 만들기 위해서는 cost가 가장 작아야 하는구나!! 그럼 cost가 가장 작은 직선을 어떻게 찾아? A : 고등학교때 2차함수의 최솟값을 구할때 f(x)를 미분하고 어쩌구 했던거 기억나? 마찬가지로 f(x)를 정의하고 그걸 미분한걸로 cost가 가장 작은 직..
-
Summary
모델 평가하기 - 정확도만 높으면 좋은 모델?
* 카테고리 별로 읽기보다, 글 순서대로 읽는걸 추천드려요. 순서 정확도의 문제 재현율, 정밀도 F score 임계값 조절 PR curve vs ROC curve Confusion Matrix 1. 정확도의 문제 모델 성능을 비교할 때 그리고 그리드 서치를 이용하여 최적은 매개변수를 구할 때, 어떤 값을 기준으로 모델을 선택하고 매개변수를 선택하시나요? 이 주제에 대한 고민을 안해보셨다면 대부분 정확도를 기준으로 선택하셨을텐데, 정확도만을 가지고 성능을 비교하면 어떤 문제점이 있는지 알려드릴게요! 가장 유명하게 알려진 예시로 암 환자의 진단을 들어보겠습니다. 어떤 회사에서 두 종류의 암 진단 키트를 발명했다고 가정해봅시다 !! A 키트의 정확도는 99% B 키트의 정확도는 95% 라고 발표했을 때, 우리..