조회수 높은 글
-
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의 학습데이터로 사용했습니다. 지금은 기본 모델로부터 예측된 값들이 최종모델의 학습데이터로 사용된다는 것만 이해하면 됩니다. 자세한 내용은 다..
-
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) 개념으로부터 출발합니다. 전체 데이터들을 오름차순으로 정..
-
Data Preprocessing
언더 샘플링(Undersampling)과 오버 샘플링(Oversampling)
* 해당 포스팅은 파이썬 머신러닝 완벽 가이드(권철민, 2019) 교재를 참고하여 공부하며 작성한 글입니다. 순서 언더 샘플링과 오버 샘플링의 개념 SMOTE 개념 SMOTE 코드 1. 언더 샘플링과 오버 샘플링의 개념 데이터가 불균형한 분포를 가지는 경우, 모델의 학습이 제대로 이루어지지 않을 확률이 높습니다. 이 문제를 해결하기 위해 나온 개념이 언더 섬플링(Undersampling)과 오버 샘플링(Oversampling)입니다. 언더 샘플링은 불균형한 데이터 셋에서 높은 비율을 차지하던 클래스의 데이터 수를 줄임으로써 데이터 불균형을 해소하는 아이디어 입니다. 하지만 이 방법은 학습에 사용되는 전체 데이터 수를 급격하게 감소시켜 오히려 성능이 떨어질 수 있습니다. 오버 샘플링은 낮은 비율 클래스의 ..
-
Summary
딥러닝 입문자를 위한 모델 구조 (Computer Vision)
머신러닝을 처음 공부할때 어려웠던 점 중 하나는 지금 어떤 부분을 공부하고 있는지 몰랐던 겁니다. 예를 들어, tree 기반 알고리즘을 공부할때 '불순도' 라는 개념을 공부했을 것입니다. 그 당시에는 불순도가 이런거고, gini계수랑 엔트로피가 이런거구나!! 했지만, 전체적인 머신러닝 모델 관점에서 봤을때는 이 개념이 왜 필요한지, 어디 부분인지를 몰랐습니다. 하지만 머신러닝에 대한 지식이 어느 정도 쌓인 지금은 대답할 수 있습니다. 전처리, 모델링, 학습 및 평가 중 모델링에 속하고, 모델링의 알고리즘에는 로지스틱, 랜덤포레스트, XGBoost 등 다양한 알고리즘이 존재하지만, 그 중 tree 기반의 알고리즘에서 노드가 분할하기 위한 기준으로 불순도가 사용된다는것을요! 만약 불순도를 처음 공부할 때 이..
-
Python
[Python] 모듈 사용법, pip의 원리
지난 포스팅에서 비슷한 코드의 작성을 피하기 위해 클래스가 필요하다고 했습니다. 오늘은 이 클래스를 파일로 저장하고, 필요할 때마다 호출해서 사용하는 방법을 공부해보겠습니다. 클래스와 함수들을 모아둔 파일(.py)을 모듈이라고 합니다. 코딩을 시작하기 전 import numpy as np 혹은 import pandas as pd 를 작성해본 적 있으시죠? 이게 쉽게 말하면 내 컴퓨터에 저장되어 있는 numpy.py 라는 파일과 pandas.py 라는 파일을 호출하는 것입니다. 나는 컴퓨터에 그런 파일을 저장한 적이 없으시다구요? numpy와 pandas의 경우에는 아주 기본적인 모듈이기 때문에 파이썬을 설치하면 자동으로 컴퓨터 저장됩니다. 그래서 따로 저장할 필요가 없었던거죠. 새로운 모듈의 경우에는 별..
-
Machine Learning
[ML] 앙상블(Ensemble)이 뭐야?
머신러닝을 공부하다보면 '앙상블' 이라는 단어가 종종 나옵니다. 처음 앙상블을 접한 곳은 캐글이었는데, 무슨 뜻인지 짐작할 수도 없어서 거부감이 들었습니다. 개념도 복잡하고 어려울 것 같아서 최대한 그 단어를 피해다니다가 '파이썬 라이브러리를 활용한 머신러닝' 도서를 정독하면서 개념을 정리할 수 있었습니다. 그리고 이해한 내용을 이렇게 글로 정리하면서 한번 더 공부하고자 합니다! 그럼 앙상블이 뭔지 한번 볼까요? 순서 앙상블이란? 앙상블의 종류 1. 앙상블이란? 앙상블을 검색해보면 물리학, 통계학, 뮤지컬, 연주 등 다양한 영역의 연관검색을 확인할 수 있습니다. 아하! 앙상블이라는 단어가 코딩의 전문용어가 아니였습니다. '앙상블(Ensemble)'은 프랑스어로써 '전체적인 어울림이나 통일' 이라고 위키백..
-
Kaggle
[Kaggle] 통신사 고객 이탈 예측 - 코드 및 결과 분석
2. 코드 분석 및 결과 분석 2-1. 코드분석 전체 코드는 아래 깃허브를 참고해 주세요. https://github.com/sanghwi-git/predict_churn/blob/master/Final%20handling.ipynb sanghwi-git/predict_churn Contribute to sanghwi-git/predict_churn development by creating an account on GitHub. github.com 과정 데이터 전처리 데이터 로드 결측치 처리 타입 변경하기 이탈 =1/ 이탈하지 않음=0 : 이탈율 확인을 위함 탐색적 자료 분석(EDA) 특성별 빈도수 파악 특성별 이탈율 파악 카테고리형 연속형 상관관계 행렬 EDA 결과 분석 특성 공학(Feature En..
-
Life
가장 기분 좋았던 칭찬
지난 학기에 학점이 남아서 교양 수업을 많이 들었다. 9학점 전공으로 편하게 학교를 다닐 수도 있었지만, 사실 대학교에서 좀 재미있는 수업도 들어보고 싶었고 그런 로망이 있기도 했다. 그래서 신청했다. '요가 및 필라테스', '작곡 실습', '배드민턴', '초급 일본어' 그 중 작곡 실습과 초급 일본어는 학점이 있었기 때문에(2학점과 3학점), '괜히 들었다가 평균 졸업 학점을 깎아먹으면 어떡하지' 하며 걱정했지만 안하면 나중에 후회할 것 같아서 했다. 교양과목들은 정말 재미있었다. 그래서 매 수업마다 열심히 했고, 학점을 잘 받는게 목표가 아니었기 때문에 더 열심히 했던 것 같다. 그래서 그런지 수업시간이 끝날 즈음에는 교양과목 교수님들에게 칭찬을 자주 들었다. 한 번은 요가 및 필라테스 교수님께서 이..
-
Career
2021년 SK 주식회사 (C&C) Data Analytics/ Engineering 직군 인턴 서류, 필기 합격 후기
채용 프로세스 : 서류 > 필기 (SKCT, 데이터 분석 역량 평가) > 면접 * 면접 구성 및 질의 내용은 대외비이기 때문에 자세하게 말씀드릴 수 없습니다. 따라서 준비 과정과 그 과정에서 느낀 점들을 중심으로 후기를 작성해보겠습니다 :) 1. 서류 자기소개서 작성 요령은 제일기획 인턴 합격 후기 포스팅에 자세히 작성했습니다. 따라서 이번에는 SK C&C 자기소개서에서 특히 신경 쓴 부분만을 말씀드릴게요! C&C 문항을 보시면 다른 회사들과는 다르게 구체적으로 무엇을 쓰라는 가이드라인이 있습니다 (ex. 본인이 설정한 목표/ 목표의 수립 과정/ 처음에 생각했던 목표 달성 가능성 등). 즉 자기소개서를 다 작성했을때, 가이드라인에서 주어진 모든 질문에 대한 답이 자기소개서에 녹아있어야 합니다. (답변 나..
-
Career
2021년 제일기획 데이터기획직 대학생 인턴 최종 합격 후기
채용 프로세스 : 서류 > GSAT > 면접 * 면접 구성 및 질의 내용은 대외비이기 때문에 자세하게 말씀드릴 수 없습니다. 따라서 준비 과정과 그 과정에서 느낀 점들을 중심으로 후기를 작성해보겠습니다 :) 0. 지원 자격 오픽 미리 준비하세요! IH 이상을 따두시면 대부분의 직무에 지원하실 수 있습니다. 1. 서류 자기소개서의 핵심은 읽고 싶은 자기소개서가 되어야 한다는 점입니다. 첫 번째 줄을 읽으면 두 번째 줄이 궁금한 글이 되어야 해요! 블로그에 글을 작성하는 것도 같은 맥락입니다. 서두에서 자기소개서의 핵심을 한 마디로 정의하고, 이후에 뒷받침하는 근거들을 나열해야 읽고 싶은 글이 됩니다. 1-1. 전체적인 순서 1. 합격 자기소개서들을 읽으며 회사의 인재상과 전체적인 글의 구조를 파악 2. 각..
-
개인적인 프로젝트
갤럭시 S21 광고에 대한 소비자 반응 분석 (유튜브, 네이버 지식인)
광고를 기획하는 것만큼 중요한 것이 광고 효과를 분석하는 것이라고 생각합니다. 최근 갤럭시 S21 광고가 소비자들에게 어떻게 다가왔는지, 유튜브 댓글과 네이버 지식인 글을 크롤링하여 워드 클라우드를 생성함으로써 분석해보겠습니다. 전체적인 순서는 다음과 같습니다. 1. 크롤링 1-1. 유튜브 크롤링 1-2. 네이버 지식인 크롤링 2. 형태소 분석, 명사 추출, 불용어 제거 2-1. 유튜브 2-2. 네이버 지식인 3. 워드 클라우드 생성 4. 결과 분석 5. 참고 자료 1. 크롤링 1-1. 유튜브 댓글 크롤링 크롤링과 관련한 포스팅은 이전에 다루었기 때문에 새롭게 추가되는 개념만 말씀드리면, 스크롤 다운 명령을 필요로 한다는 점입니다. 유튜브 댓글의 html 특성상 스크롤을 아래로 내려야 댓글들이 보이기 때..
-
한이음 ICT 멘토링 (KT 연계)
한이음 공모전 입선, 한국정보처리학회 추계학술대회 은상 수상 후기
2020년 7월부터 12월까지 약 6개월간의 장기 프로젝트를 마쳤습니다~~ 해당 프로젝트는 타 대학교 4명의 학생들과 KT 직원 한 분까지 총 6명으로 구성하여 진행되었고, 주제는 '머신러닝/ 딥러닝을 이용한 통신서비스 이용고객 분석 및 이탈예측' 이었습니다. 프로젝트의 타임라인은 아래와 같이 크게 4부분으로 나뉠 수 있는데요, 한 번 살펴봅시다. 1. 캐글의 통신사 고객 데이터를 이용하여 이탈 예측 모델링 연습 2. 실제 KT 고객 데이터를 이용하여 데이터 전처리 및 모델링 3. 태블로(Tableau)를 이용한 대쉬보드 시각화 4. 장고(Django)를 이용한 웹 구현 그리고 대망의 결과는.. 한이음 공모전 입선!!! 한국정보처리학회 추계학술대회 은상!!! 그럼 그 수상작을 가볍게 보여드리겠습니다 ㅎㅎ..
-
Data Collecting
selenium - 지하철역 인근 점포 수(카페, 호프집, 제과점 등) 크롤링
서울역 근처에는 카페가 몇 개 있을까? 강남역 근처에는 빵집이 몇 개 있을까? 이태원역 근처에는 술집이 몇 개 있을까? 오늘은 이 물음에 대한 솔루션을 주제로 포스팅을 준비해봤습니다. 바로 시작해볼게요! 준비물 서울시 상권 데이터 - 크롤링 지하철역 주소 데이터 - 파일 다운 법정동, 행정동 맵핑 데이터 - 파일 다운 1. 서울시 상권 데이터 먼저 서울시의 '상권분석서비스'에서 특정 지역의 점포 수를 크롤링하는 과정입니다. 준비물에 걸어둔 링크로 들어가시면, 지역별로 다양한 형태의 데이터를 제공하는 것을 확인할 수 있습니다. 그 중 저는 2018년 1, 2, 3, 4분기, 2019년 1분기의 외식업 데이터, 특히 제과점, 호프/주점, 카페 수 데이터를 필요로 합니다. 해당 데이터는 url로 들어가면 바로..