조회수 높은 글
-
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) 개념으로부터 출발합니다. 전체 데이터들을 오름차순으로 정..
-
Machine Learning
[ML] 스태킹(Stacking) 완벽 정리
이 포스팅만 읽으면 스태킹을 쉽게 이해할 수 있도록 정리해봤습니다 :) 천천히 읽어볼까요? 순서 스태킹의 핵심 개념 스태킹의 원리 목표 기본모델 최종모델 코드 1. 스태킹의 핵심 개념 스태킹은 여러 가지 모델들의 예측값을 최종 모델의 학습 데이터로 사용하는 예측하는 방법 입니다. 아직 잘 와닿지가 않나요? 간단한 예시를 아래 그림과 함께 들어보겠습니다. 저는 knn, logistic regression, randomforest, xgboost 모델을 이용해서 4종류의 예측값을 구했습니다. 그리고 이 예측값을 하나의 데이터 프레임으로 만들어 최종모델인 lightgbm의 학습데이터로 사용했습니다. 지금은 기본 모델로부터 예측된 값들이 최종모델의 학습데이터로 사용된다는 것만 이해하면 됩니다. 자세한 내용은 다..
-
Machine Learning
[ML] 앙상블(Ensemble)이 뭐야?
머신러닝을 공부하다보면 '앙상블' 이라는 단어가 종종 나옵니다. 처음 앙상블을 접한 곳은 캐글이었는데, 무슨 뜻인지 짐작할 수도 없어서 거부감이 들었습니다. 개념도 복잡하고 어려울 것 같아서 최대한 그 단어를 피해다니다가 '파이썬 라이브러리를 활용한 머신러닝' 도서를 정독하면서 개념을 정리할 수 있었습니다. 그리고 이해한 내용을 이렇게 글로 정리하면서 한번 더 공부하고자 합니다! 그럼 앙상블이 뭔지 한번 볼까요? 순서 앙상블이란? 앙상블의 종류 1. 앙상블이란? 앙상블을 검색해보면 물리학, 통계학, 뮤지컬, 연주 등 다양한 영역의 연관검색을 확인할 수 있습니다. 아하! 앙상블이라는 단어가 코딩의 전문용어가 아니였습니다. '앙상블(Ensemble)'은 프랑스어로써 '전체적인 어울림이나 통일' 이라고 위키백..
-
Data Preprocessing
언더 샘플링(Undersampling)과 오버 샘플링(Oversampling)
* 해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민, 2019) 교재를 참고하여 공부하며 작성한 글입니다. 순서 언더 샘플링과 오버 샘플링의 개념 SMOTE 개념 SMOTE 코드 1. 언더 샘플링과 오버 샘플링의 개념 데이터가 불균형한 분포를 가지는 경우, 모델의 학습이 제대로 이루어지지 않을 확률이 높습니다. 이 문제를 해결하기 위해 나온 개념이 언더 섬플링(Undersampling)과 오버 샘플링(Oversampling)입니다. 언더 샘플링은 불균형한 데이터 셋에서 높은 비율을 차지하던 클래스의 데이터 수를 줄임으로써 데이터 불균형을 해소하는 아이디어 입니다. 하지만 이 방법은 학습에 사용되는 전체 데이터 수를 급격하게 감소시켜 오히려 성능이 떨어질 수 있습니다. 오버 샘플링은 낮은 비율 클래스의 ..
-
Career
2021년 제일기획 데이터기획직 대학생 인턴 후기
소중했던 6주 간의 제일기획 인턴 생활을 마치고 이제 후기를 써보려고 합니다! 이 글이 먼 훗날 저 스스로에게도, 그리고 취업 준비를 하는 사람들에게도 도움이 되었으면 좋겠네요 :) 글은 인턴 생활 중에 인상 깊었던 에피소드 형식으로 작성해보려 합니다. 그럼 바로 시작해볼게요! - Ep1. 전국에서 한 명 뽑았다. 그게 바로 나? - Ep2. 내 인생 첫 사회생활, 풀정장으로 시선 집중 - Ep3. 유튜브에서 뵙던 분이 눈 앞에! - Ep4. 서프라이즈 생일파티 - Ep5. 면접을 그렇게 잘봤다고 하던데~ - Ep6. 직접 느껴본 제일기획 장점 - Ep7. 과제 준비 과정과 최종 발표, 그리고 느낀 점 Ep1. 전국에서 한 명 뽑았다. 그게 바로 나? 인턴 선발 최종 발표가 나고 며칠 후, 제일기획 인턴..
-
Summary
딥러닝 입문자를 위한 모델 구조 (Computer Vision)
머신러닝을 처음 공부할때 어려웠던 점 중 하나는 지금 어떤 부분을 공부하고 있는지 몰랐던 겁니다. 예를 들어, tree 기반 알고리즘을 공부할때 '불순도' 라는 개념을 공부했을 것입니다. 그 당시에는 불순도가 이런거고, gini계수랑 엔트로피가 이런거구나!! 했지만, 전체적인 머신러닝 모델 관점에서 봤을때는 이 개념이 왜 필요한지, 어디 부분인지를 몰랐습니다. 하지만 머신러닝에 대한 지식이 어느 정도 쌓인 지금은 대답할 수 있습니다. 전처리, 모델링, 학습 및 평가 중 모델링에 속하고, 모델링의 알고리즘에는 로지스틱, 랜덤포레스트, XGBoost 등 다양한 알고리즘이 존재하지만, 그 중 tree 기반의 알고리즘에서 노드가 분할하기 위한 기준으로 불순도가 사용된다는것을요! 만약 불순도를 처음 공부할 때 이..
-
Life
세상에 완전히 똑같은 인생은 없다
‘인생은 선택의 연속이다’ 작게는 오늘 점심으로 무엇을 먹을지, 오늘은 운동을 몇 시에 갈지, 더 나아가서 나는 어떤 공부를 할지, 어떤 취미생활을 가질지, 어떻게 방학을 보낼지, 또 더 나아가면 결혼을 할지, 이직을 할지, 집을 살지 등이 있다. 모든 순간은 본인이 선택하는 것이고, 옳은 선택은 없다. 그저 지금의 선택으로 인해 다음의 선택지가 바뀔 뿐이다. 그리고 시간이 지나면 그게 ‘나’의 인생이 된다. 그래서 세상에 완전히 똑같은 인생은 없다. 내가 하고 싶은 말은 너무 불안해하지 않아도 된다는 거다. 지금 하는 일이 잘 되지 않더라도, 다른 친구들은 벌써 이만큼 했는데 나는 아무것도 하지 않았더라도, 그냥 지금 나에게 놓인 선택지에 최선을 다하면 된다. 주변을 둘러보면 그럴싸하다. 누군가는 재수..
-
Machine Learning
[ML] 결정트리(Decision Tree) 한 번에 정리하기
* 해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민, 2019) 교재를 참고하여 공부하며 작성한 글입니다. 순서 결정트리 알고리즘의 개념 개념 구조 하이퍼파라미터 튜닝 특성중요도 1. 결정트리 알고리즘의 개념 1-1. 개념 결정트리 알고리즘을 한 마디로 설명하면 스무고개 입니다. 그런데 기가막히게 예리한 질문지들을 척척 만들어내는 녀석입니다. 예를 들어 강아지, 고양이, 새 사진이 각각 100장씩 섞여있는 그룹에서 이 세 가지를 정확하게 분류하려면 어떤 질문들이 필요할까요? 일단 날개가 있는지로 새를 정확하게 분류할 수 있을 것 같습니다. 그리고 날개가 없는 강아지와 고양이는 눈동자의 모양이 날카로운지에 따라 분류할 수 있을 것입니다. 하지만 이 기준으로 강아지와 고양이를 100% 분류할 수 없기 때문..
-
Data Collecting
selenium - 부킹닷컴 객실 가격 크롤링
selenium을 사용하기 이전, beautifulsoup으로 먼저 시도해보았습니다. 하지만 이상하게도 가격 정보에 관해서만 계속 빈리스트로 반환 되었습니다. 아무리 공부하고 고민해도 해결이 되지 않아 크롤링 전문가를 찾아 자문을 구하고자 구글링을 했습니다. 정말 감사하게도 한 분이 답장을 주셨고, 실제 오프라인으로 만나 도움을 주셨습니다. -- '코딩 좀 알려주라(이하 코알라)'의 이** 매니저님 감사합니다 -- 그 이유를 보자면 가격 정보는 수정이 많고(부킹닷컴 자체 할인/ 특가 등), 어떤 이유에서인지 다른 공간에서 따로 관리하고 있는것 같다고 합니다. 그래서 html을 불러오는 과정에서 가격 정보는 빠지는 것이라고 하는데요, 이럴 때의 솔루션으로 selenium을 알려주셨습니다. selenium은..
-
BOAZ
[BOAZ] 보아즈 데이터 분석 부문 수료 및 활동 후기
보아즈 활동을 하기 전까지만 해도 데이터 분석을 독학하는데 어려움이 정말 많았습니다. 말이 쉬워 데이터 분석이지, 처음 공부를 결심하고 뛰어들었을때에는 뭐가 이렇게 생소한 용어가 많은지,, 파이프라인, 파이썬, C언어, 자바, 코딩테스트, 하이브, 하둡, 머신러닝, 딥러닝, SQL 등 모든걸 공부해야하는 줄 알았고, 그래서 무엇부터 공부해야할지, 어떻게 공부해야할지 감도 안잡혔습니다. 첫 한 달 동안은 이것저것 다 해봤던것 같아요! 무작정 서점에 가서 이런저런 책을 뒤져보기도 하고, 캐글이라는 사이트를 알게돼서 코드를 필사해보기도 하고, 유튜브에서 컴피티션 솔루션 강의를 찾아보기도 했습니다. 하지만 뭔가,, 계속해서 커다란 벽이 느껴졌습니다. 독학이다보니 딱 내가 아는 것 까지만 알 수 있었고, 보이는 ..
-
Career
너 대학 다닐 때 뭐 했냐?
인생에는 몇 가지 큰 갈림길이 있다. 지금까지는 대학 입시 혹은 취업 정도로 생각된다. 갈림길에 섰을때, 이 글이 나에게 도움이 되길 바란다. 2015 - 대학교 입학, 산업공학 전공 - 학과 소모임 '컨포인트' (기술경영&컨설팅 학술 동아리) 기업 성공 사례 분석 및 주 1회 케이스 스터디 - 교내 농구 동아리 'SMASH' 2016 ~ 2017 - 군대 2018 - 학과 소모임 '컨포인트' (기술경영&컨설팅 학술 동아리) 프리미엄 과일 판매 기업('위버켓') 실제 컨설팅 고객 세분화를 통해 고객 맞춤형 과일컵 전략 제안/ "비타민 B가 부족한 수험생을 위한 과일컵", "철분이 부족한 임산부를 위한 과일컵" 과 같은 형태 - 인액터스 (사회적 기업형 창업 동아리) 주제 : 자활근로자와 함께하는 못난이 ..
-
Data Visualizing
matplotlib 완벽 정리
데이터 분야 공부를 시작할때 가장 먼저 만나는 세 가지 라이브러리를 꼽자면 numpy, pandas, matplotlib 입니다. 오늘은 그 중 matplotlib 에 대해서 정리해볼텐데요, 개인적으로 처음 이 라이브러리를 접했을때 정말 헷갈렸습니다. 어떤 커널에서는 plt.plot으로 표현하고, 또 다른 커널에서는 ax.plot 혹은 axes[0,0].plot으로 표현되어있기 때문입니다. 그리고 가령 히스토그램을 그린다면 누구는 plt.hist로 구현했는데, 또 다른 누구는 plt.plot(kind='hist)로 구현했기 때문에 일목요연하게 정리되지 않았습니다. 그래서 오늘 포스팅을 기획하게 되었는데요, 해당 포스팅의 목적은 두 가지 입니다. 첫 번째, 왜 이렇게 표현방식이 다양하고, 어떻게 정리할 수..
-
Deep Learning
[cs231n] Recurrent Neural Network (RNN)
지난 시간까지 딥러닝의 한 분야였던 CNN에 대해서 공부했습니다. 이미지를 처리할때 어떻게 하는지, 어떤 layer를 어떤 구조로 얼마나 쌓을지 등을 공부했었죠! 오늘은 딥러닝의 또 다른 방법인 RNN에 대해서 알아볼게요. CNN은 Neral Network에서 Convolution을 적용한 개념이었다면, RNN은 NN에서 Recurrent를 적용한 개념이라고 생각하면 될 것 같습니다. recurrent 라고 하니 약간 재귀적이니 느낌이 나죠? 그럼 한 번 자세히 알아볼게요!! 순서 RNN 종류 RNN 작동 원리 RNN 을 이용한 예시 Language Model Image Captioning Visual Question Answering Long Short Term Memory (LSTM) 1. RNN 종..
-
Machine Learning
[ML] LightGBM 이해하고 사용하자
순서 개념 기본 구조 파라미터 1. 개념 * 이 글을 읽기 전에 앙상블 포스팅과 XGBoost 포스팅을 읽고 오시는 것을 추천드립니다. XGBoost와 LightGBM은 결정트리(Decision Tree) 알고리즘 기반의 대표적 부스팅 앙상블 기법입니다. 간단하게 설명드리자면 트리의 오차(loss)를 점점 수정해나가는 방법으로 성능을 향상시키는 아이디어 인데요, 최근 캐글과 데이콘의 상위권 커널들에서 주로 사용되어 유명세를 타고 있습니다!! 그렇다면 지난번에 공부한 XGBoost와 LightGBM은 어떤 차이가 있을까요? 우선 LightGBM은 XGBoost의 시간적 한계를 보완한 알고리즘이라고 기억하시면 될 것 같습니다. 어떻게 시간적 한계를 보완했을까요? 바로 노드의 분할 방법에 차이를 두었습니다. ..