조회수 높은 글
-
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의 학습데이터로 사용했습니다. 지금은 기본 모델로부터 예측된 값들이 최종모델의 학습데이터로 사용된다는 것만 이해하면 됩니다. 자세한 내용은 다..
-
Machine Learning
[ML] 앙상블(Ensemble)이 뭐야?
머신러닝을 공부하다보면 '앙상블' 이라는 단어가 종종 나옵니다. 처음 앙상블을 접한 곳은 캐글이었는데, 무슨 뜻인지 짐작할 수도 없어서 거부감이 들었습니다. 개념도 복잡하고 어려울 것 같아서 최대한 그 단어를 피해다니다가 '파이썬 라이브러리를 활용한 머신러닝' 도서를 정독하면서 개념을 정리할 수 있었습니다. 그리고 이해한 내용을 이렇게 글로 정리하면서 한번 더 공부하고자 합니다! 그럼 앙상블이 뭔지 한번 볼까요? 순서 앙상블이란? 앙상블의 종류 1. 앙상블이란? 앙상블을 검색해보면 물리학, 통계학, 뮤지컬, 연주 등 다양한 영역의 연관검색을 확인할 수 있습니다. 아하! 앙상블이라는 단어가 코딩의 전문용어가 아니였습니다. '앙상블(Ensemble)'은 프랑스어로써 '전체적인 어울림이나 통일' 이라고 위키백..
-
Data Preprocessing
언더 샘플링(Undersampling)과 오버 샘플링(Oversampling)
* 해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민, 2019) 교재를 참고하여 공부하며 작성한 글입니다. 순서 언더 샘플링과 오버 샘플링의 개념 SMOTE 개념 SMOTE 코드 1. 언더 샘플링과 오버 샘플링의 개념 데이터가 불균형한 분포를 가지는 경우, 모델의 학습이 제대로 이루어지지 않을 확률이 높습니다. 이 문제를 해결하기 위해 나온 개념이 언더 섬플링(Undersampling)과 오버 샘플링(Oversampling)입니다. 언더 샘플링은 불균형한 데이터 셋에서 높은 비율을 차지하던 클래스의 데이터 수를 줄임으로써 데이터 불균형을 해소하는 아이디어 입니다. 하지만 이 방법은 학습에 사용되는 전체 데이터 수를 급격하게 감소시켜 오히려 성능이 떨어질 수 있습니다. 오버 샘플링은 낮은 비율 클래스의 ..
-
Data Preprocessing
IQR 방식을 이용한 이상치 데이터(Outlier) 제거
* 해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민, 2019) 교재를 참고하여 공부하며 작성한 글입니다. 이상치 데이터(Outlier)는 모델의 성능을 떨어뜨리는 불필요한 요소이기 때문에 꼭 제거해주어야 합니다. 그렇다면 어떻게 이상치 데이터를 찾을 수 있을까요? 1차적으로 EDA 과정에서 그래프를 통해 발견할 수 있습니다. 하지만 이 방법은 소수의 데이터가 평균으로부터 눈에 띄게 떨어진 경우에만 가능하다는 한계가 있습니다. 따라서 "어디까지가 이상치 데이터다" 라고 판단하는 기준이 필요하게 되는데요, 여러가지 방법들 중 오늘은 IQR(Inter Quantile Range) 방식에 대해서 정리해보겠습니다. IQR 방식은 사분위(Quantile) 개념으로부터 출발합니다. 전체 데이터들을 오름차순으로 정..
-
Life
[Italki] 한국어 가르치기 아르바이트와 인터뷰
2020년 코로나로 인해 게스트하우스 아르바이트를 못하게 되고, 6개월의 공백기가 생기게 되어 시작하게 된 아이토키(Italki) : 온라인 언어 학습 플랫폼 내가 원하는 시간에, 원하는 가격으로, 컴퓨터 앞에 앉아서 편하게 돈을 벌 수 있었고, 매번 새로운 전세계 사람들을 만날 수 있었기 때문에 너무너무 재밌었다. 이탈리아 소방관, 미국 마이크로소프트 개발자, 호주 바리스타, 남아프리카공화국 의사, 벨기에 대학생 등 다양한 국적, 직업의 사람들과 대화할 수 있다는 점이 정말 매력적이었고, 한국어를 배우고 싶어하는 사람들이었기 때문에 나에게 매우 호의적이어서 좋았다. 그리고 한 번은 아이토키를 하고 있는데 이런 메세지가 왔다! " 안녕하세요! 상휘 선생님! 저희는 한국어 교육 스타트업인 한그루라고 합니다..
-
Data Preprocessing
Feature selection : feature importance vs permutation importance
안녕하세요, 오늘은 Feature selection 에 대해 다뤄보려고 합니다! Feature selection은 말 그대로 모델에 사용될 feature를 선택하는 과정입니다. feature가 그냥 많으면 많을수록 좋은거 아닌구요? 네!! 아닙니다!! 예측에 도움이 되는 feature는 많으면 많을수록 좋지만, 어떤 특성들은 예측에 아무런 도움이 되지 않아 시간만 소모하기도 하고 또 어떤 특성들은 오히려 성능을 떨어뜨리기도 하기 때문에 제거해주는편이 좋습니다. 그럼 어떤 기준으로 중요한 특성과 그렇지 못한 특성으로 구분할까요? 오늘 소개해드릴 기준은 feature importance와 permutation importance 입니다. 순서 feature importance 개념 및 코드 동작 원리 per..
-
Machine Learning
[ML] LightGBM 이해하고 사용하자
순서 개념 기본 구조 파라미터 1. 개념 * 이 글을 읽기 전에 앙상블 포스팅과 XGBoost 포스팅을 읽고 오시는 것을 추천드립니다. XGBoost와 LightGBM은 결정트리(Decision Tree) 알고리즘 기반의 대표적 부스팅 앙상블 기법입니다. 간단하게 설명드리자면 트리의 오차(loss)를 점점 수정해나가는 방법으로 성능을 향상시키는 아이디어 인데요, 최근 캐글과 데이콘의 상위권 커널들에서 주로 사용되어 유명세를 타고 있습니다!! 그렇다면 지난번에 공부한 XGBoost와 LightGBM은 어떤 차이가 있을까요? 우선 LightGBM은 XGBoost의 시간적 한계를 보완한 알고리즘이라고 기억하시면 될 것 같습니다. 어떻게 시간적 한계를 보완했을까요? 바로 노드의 분할 방법에 차이를 두었습니다. ..
-
Data Preprocessing
시계열 특징(년, 월, 일, 주말 등) 쉽게 추출하기 - to_datetime()
'2018. 05. 01 12:12:30' 라는 데이터에서 계절, 요일, 주중/주말, 오전/오후인 특성을 어떻게 추출할 수 있을까요? 저는 x[:4] 을 사용해서 '연도'를 분리하고, 같은 방법으로 '월'을 분리하고, '일'을 분리해서 if 문을 이용해 여름인지, 주말인지, 오전인지 등을 파악했습니다. 좀 더 나아가서 def 을 사용하여 이 모든 것을 해주는 함수를 만들어 사용했었는데요, 알고보니 5줄 이내로 처리해주는 함수가 있다고 합니다 !! pandas의 to_datetime() 1. 다음과 같은 데이터가 있다고 합시다. data['date'] 2. 직관적으로 해석하자면, 'pandas 의 datetime으로 바꿔주는 함수' 가 되겠네요. 이렇게 datetime 형태로 바꿔주고, import pan..
-
Life
세상에 완전히 똑같은 인생은 없다
‘인생은 선택의 연속이다’ 작게는 오늘 점심으로 무엇을 먹을지, 오늘은 운동을 몇 시에 갈지, 더 나아가서 나는 어떤 공부를 할지, 어떤 취미생활을 가질지, 어떻게 방학을 보낼지, 또 더 나아가면 결혼을 할지, 이직을 할지, 집을 살지 등이 있다. 모든 순간은 본인이 선택하는 것이고, 옳은 선택은 없다. 그저 지금의 선택으로 인해 다음의 선택지가 바뀔 뿐이다. 그리고 시간이 지나면 그게 ‘나’의 인생이 된다. 그래서 세상에 완전히 똑같은 인생은 없다. 내가 하고 싶은 말은 너무 불안해하지 않아도 된다는 거다. 지금 하는 일이 잘 되지 않더라도, 다른 친구들은 벌써 이만큼 했는데 나는 아무것도 하지 않았더라도, 그냥 지금 나에게 놓인 선택지에 최선을 다하면 된다. 주변을 둘러보면 그럴싸하다. 누군가는 재수..
-
Career
2021년 제일기획 데이터기획직 대학생 인턴 최종 합격 후기
채용 프로세스 : 서류 > GSAT > 면접 * 면접 구성 및 질의 내용은 대외비이기 때문에 자세하게 말씀드릴 수 없습니다. 따라서 준비 과정과 그 과정에서 느낀 점들을 중심으로 후기를 작성해보겠습니다 :) 0. 지원 자격 오픽 미리 준비하세요! IH 이상을 따두시면 대부분의 직무에 지원하실 수 있습니다. 1. 서류 자기소개서의 핵심은 읽고 싶은 자기소개서가 되어야 한다는 점입니다. 첫 번째 줄을 읽으면 두 번째 줄이 궁금한 글이 되어야 해요! 블로그에 글을 작성하는 것도 같은 맥락입니다. 서두에서 자기소개서의 핵심을 한 마디로 정의하고, 이후에 뒷받침하는 근거들을 나열해야 읽고 싶은 글이 됩니다. 1-1. 전체적인 순서 1. 합격 자기소개서들을 읽으며 회사의 인재상과 전체적인 글의 구조를 파악 2. 각..
-
한이음 ICT 멘토링 (KT 연계)
한이음 공모전 입선, 한국정보처리학회 추계학술대회 은상 수상 후기
2020년 7월부터 12월까지 약 6개월간의 장기 프로젝트를 마쳤습니다~~ 해당 프로젝트는 타 대학교 4명의 학생들과 KT 직원 한 분까지 총 6명으로 구성하여 진행되었고, 주제는 '머신러닝/ 딥러닝을 이용한 통신서비스 이용고객 분석 및 이탈예측' 이었습니다. 프로젝트의 타임라인은 아래와 같이 크게 4부분으로 나뉠 수 있는데요, 한 번 살펴봅시다. 1. 캐글의 통신사 고객 데이터를 이용하여 이탈 예측 모델링 연습 2. 실제 KT 고객 데이터를 이용하여 데이터 전처리 및 모델링 3. 태블로(Tableau)를 이용한 대쉬보드 시각화 4. 장고(Django)를 이용한 웹 구현 그리고 대망의 결과는.. 한이음 공모전 입선!!! 한국정보처리학회 추계학술대회 은상!!! 그럼 그 수상작을 가볍게 보여드리겠습니다 ㅎㅎ..
-
Deep Learning
[cs231n] CNN Architecture
지금까지 CNN의 전체적인 프로세스와 그 속에 있는 layer들을 자세히 공부했습니다. convolutional layer를 지나고 batch normalization를 지나고 다시 conv layer를 지나고,, 이렇게 층을 쌓아 마지막에 FC layer를 통해 score를 냅니다. 이제는 conv layer를 어떤 filter size로 언제 몇번 할지, batch normalization을 얼마나 언제 할지, drop out 을 할지, pooling 을 할지, learning rate는 얼마로 할지 등을 고려해서 CNN의 전체 구조를 세워야 합니다. 하지만 저희는 아직 딥러닝 초보자 입니다. 성능 좋은 구조를 처음부터 끝까지 뚝딱뚝딱 만들기가 현실적으로 불가능하죠. 따라서 사람들에게 널리 알려진, ..
-
Kaggle
[Kaggle] 산탄데르 은행 제품 추천 - Baseline
캐글 대회 링크 : https://www.kaggle.com/c/santander-product-recommendation Santander Product Recommendation Can you pair products with people? www.kaggle.com 안녕하세요! 오늘은 캐글의 'Santander Product Recommendation' 대회를 주제로 포스팅하려 합니다. 시작하기 앞서 이번 포스팅은 '캐글 우승작으로 배우는 머신러닝 탐구생활' 도서의 베이스라인 코드를 분석한 것임을 밝힙니다. 오늘은 저자의 베이스라인 코드를 자세히 들여다보고 느낀 점과 배운 점을 정리하며 마무리 할 계획입니다. 바로 시작해볼게요!! 순서 데이터 구성 파악 뼈대 구상 전체 코드 공유 느낀 점 및 배운 ..
-
Summary
모델 평가하기 - 정확도만 높으면 좋은 모델?
* 카테고리 별로 읽기보다, 글 순서대로 읽는걸 추천드려요. 순서 정확도의 문제 재현율, 정밀도 F score 임계값 조절 PR curve vs ROC curve Confusion Matrix 1. 정확도의 문제 모델 성능을 비교할 때 그리고 그리드 서치를 이용하여 최적은 매개변수를 구할 때, 어떤 값을 기준으로 모델을 선택하고 매개변수를 선택하시나요? 이 주제에 대한 고민을 안해보셨다면 대부분 정확도를 기준으로 선택하셨을텐데, 정확도만을 가지고 성능을 비교하면 어떤 문제점이 있는지 알려드릴게요! 가장 유명하게 알려진 예시로 암 환자의 진단을 들어보겠습니다. 어떤 회사에서 두 종류의 암 진단 키트를 발명했다고 가정해봅시다 !! A 키트의 정확도는 99% B 키트의 정확도는 95% 라고 발표했을 때, 우리..