본문 바로가기

분류 전체보기

(76)
[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..
[ML] 앙상블(Ensemble)이 뭐야? 머신러닝을 공부하다보면 '앙상블' 이라는 단어가 종종 나옵니다. 처음 앙상블을 접한 곳은 캐글이었는데, 무슨 뜻인지 짐작할 수도 없어서 거부감이 들었습니다. 개념도 복잡하고 어려울 것 같아서 최대한 그 단어를 피해다니다가 '파이썬 라이브러리를 활용한 머신러닝' 도서를 정독하면서 개념을 정리할 수 있었습니다. 그리고 이해한 내용을 이렇게 글로 정리하면서 한번 더 공부하고자 합니다! 그럼 앙상블이 뭔지 한번 볼까요? 순서 앙상블이란? 앙상블의 종류 1. 앙상블이란? 앙상블을 검색해보면 물리학, 통계학, 뮤지컬, 연주 등 다양한 영역의 연관검색을 확인할 수 있습니다. 아하! 앙상블이라는 단어가 코딩의 전문용어가 아니였습니다. '앙상블(Ensemble)'은 프랑스어로써 '전체적인 어울림이나 통일' 이라고 위키백..
[Kaggle] 통신사 고객 이탈 예측 - 재현율/ 정밀도의 손익분기점 3. 실전이라면? - 손익분기점 파악 이전 포스팅인 Part 2 에서 예측의 두 가지 오류에 대해서 언급했습니다. 1) 이탈할 사람을 이탈하지 않을 것이라고 잘못 예측한 경우 2) 이탈하지 않을 사람을 이탈할 것이라고 잘못 예측한 경우 1번의 경우에는 이탈을 막지 못해 손해가 발생하고, 2번의 경우에는 불필요한 사람에게 솔루션을 제공해서 손해가 발생합니다. 그리고 1번의 경우에는 낮은 재현율에 따른 손해이고, 2번의 경우에는 낮은 정밀도에 따른 손해입니다. 우리는 재현율이 정밀도보다 중요하다고 여기기 때문에 재현율을 높이는 것을 목표로 하지만, 재현율을 높이게 되면 정밀도가 낮아지기 때문에 적당한 선까지만 재현율을 높여야 합니다. 즉 이탈할 사람 대부분을 예측하는 것이 중요하지만, 적자가 되면 안된다는 ..
모델 평가하기 - 정확도만 높으면 좋은 모델? * 카테고리 별로 읽기보다, 글 순서대로 읽는걸 추천드려요. 순서 정확도의 문제 재현율, 정밀도 F score 임계값 조절 PR curve vs ROC curve Confusion Matrix 1. 정확도의 문제 모델 성능을 비교할 때 그리고 그리드 서치를 이용하여 최적은 매개변수를 구할 때, 어떤 값을 기준으로 모델을 선택하고 매개변수를 선택하시나요? 이 주제에 대한 고민을 안해보셨다면 대부분 정확도를 기준으로 선택하셨을텐데, 정확도만을 가지고 성능을 비교하면 어떤 문제점이 있는지 알려드릴게요! 가장 유명하게 알려진 예시로 암 환자의 진단을 들어보겠습니다. 어떤 회사에서 두 종류의 암 진단 키트를 발명했다고 가정해봅시다 !! A 키트의 정확도는 99% B 키트의 정확도는 95% 라고 발표했을 때, 우리..
[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..
[Kaggle] 통신사 고객 이탈 예측 - 뼈대 구상 캐글 커널 링크 : https://www.kaggle.com/pavanraj159/telecom-customer-churn-prediction Telecom Customer Churn Prediction Explore and run machine learning code with Kaggle Notebooks | Using data from Telco Customer Churn www.kaggle.com 안녕하세요! 오늘은 캐글의 'Telecom Customer Churn Prediction'에 대해서 포스팅 해보려 합니다. 대회는 아니지만 좋은 커널이기도 하고, 요즘 진행하는 프로젝트와 연관이 있어서 정리를 해봤습니다. 포스팅은 총 세 번으로 나눠서 진행할 예정이고, 순서는 다음과 같습니다. 데이터 구..
selenium - 부킹닷컴 객실 가격 크롤링 selenium을 사용하기 이전, beautifulsoup으로 먼저 시도해보았습니다. 하지만 이상하게도 가격 정보에 관해서만 계속 빈리스트로 반환 되었습니다. 아무리 공부하고 고민해도 해결이 되지 않아 크롤링 전문가를 찾아 자문을 구하고자 구글링을 했습니다. 정말 감사하게도 한 분이 답장을 주셨고, 실제 오프라인으로 만나 도움을 주셨습니다. -- '코딩 좀 알려주라(이하 코알라)'의 이** 매니저님 감사합니다 -- 그 이유를 보자면 가격 정보는 수정이 많고(부킹닷컴 자체 할인/ 특가 등), 어떤 이유에서인지 다른 공간에서 따로 관리하고 있는것 같다고 합니다. 그래서 html을 불러오는 과정에서 가격 정보는 빠지는 것이라고 하는데요, 이럴 때의 솔루션으로 selenium을 알려주셨습니다. selenium은..
beautifulsoup - 부킹닷컴 호텔 이름, 평점 크롤링 순서 url 준비 requests를 사용하여 url로부터 정보 가져오기 beautifulsoup을 사용하여 html 형식으로 파싱하기 원하는 정보 지정해서 담기 문자열만 추출 0. 라이브러리 import requests # url에서 정보 요구!! from bs4 import BeautifulSoup # 이걸로 가져온 정보를 정리할거야 1. url 준비 url = '찾고자 하는 정보가 포함된 페이지 url' 2. requests를 사용하여 url로부터 정보 가져오기 content = requests.get(url).content # url로부터 정보(content)를 가져와 url에 담긴 정보가 이렇게나 많습니다. 이걸 컴퓨터가 이해하기 쉽게 정리하는 작업을 beautifulsoup이 도와줍니다. 3. ..