ML, DL & Python
-
Train Test data distribution(Covariate Shift) - 2ML, DL & Python/Train Test Distribution 2020. 11. 29. 18:51
저번 포스팅에서 Train과 Test의 분포가 다른 것이 모델을 구축하거나 학습을 진행할 때 어떤 문제점이 있는지 알아보고, 분포가 다른 것을 어떻게 확인할 수 있는지 PCA, t-sne 분석 방법론을 통해서 확인해봤습니다. 이번 글에서는 두 클래스(Train, Test)의 분포가 다른 것을 ML로 간단한 모델을 구축하여 확인할 수 있는 방법과 분포가 다른 특정 input 변수들을 직접 도출하여 소거하는 과정을 거쳐서 분포도를 최적화하는 과정을 진행해보겠습니다. 1. Train, Test classification 이 방법론은 처음 접해보시는 분들도 많으실텐데요. 이해하면 다른 어떠한 비교들보다 굉장히 직관적인 파악 방법입니다. 말 그대로 input 데이터들로 Train과 Test를 분류하는 모델을 만드..
-
Train Test data distribution(Covariate Shift) - 1ML, DL & Python/Train Test Distribution 2020. 11. 29. 15:39
이번에 다뤄볼 내용은 ML,DL관련 대회에서 자주 등장하지는 않지만 분석을 진행하기 전에 꼭 확인해야할 사항으로 학습셋과 테스트셋의 분포가 다른 것에서 올 수 있는 문제점과 다른 분포(dissimilar)를 사전에 체크할 수 있는 방법론에 대하여 다뤄보겠습니다. 분포가 다르다는 것은 어떤 것을 의미할까요? 저희가 예측하고자 하는 본질을 알고 계시다면 위의 질문에 대한 답이 쉽게 도출될 것입니다. 저희가 예측하고자 하는 것은 학습셋을 8:2 분할, 7:3분할 과정을 거쳐서 만든 테스트셋? 아니면 검증셋(validation)? 이것일까요? 아닙니다. 저희는 real world 데이터 즉, 실제 사용되고 활용되어야 할 데이터 여기서는 학습셋을 분할한 테스트 데이터가 아닌 진짜 테스트 데이터셋을 말합니다. 그러..
-
하이퍼 파라미터 Bayesian OptimizeML, DL & Python/ML optimize 2020. 11. 15. 18:53
1. 들어가며 베이지안 최적화(Bayesian Optimize)를 통한 하이퍼 파라미터 최적화 방법을 소개해드리겠습니다. 요즘 대회들을 많이 참가하면서 모델 선택 및 Feature engineering이 어느정도 마무리 된 후에 하이퍼 파라미터 최적화 단계에서 어떻게 하면 적절한 파라미터를 선택할 수 있을지에 대한 고민을 많이 가지고 있습니다. 그래서 다양한 파라미터 최적화 방법중에 bayesian optimization에 대해서 소개해드리겠습니다. 먼저 하이퍼 파라미터 최적화 방법론에 대해서 알아보겠습니다. RandomGrid Search Manual Search Random Search Grid Search Bayesian Search 위와 같이 다양한 최적화 방법론이 존재하고 있는데 이중에서 어떤것..
-
Python XML ParsingML, DL & Python/Web Parsing 2020. 8. 28. 00:10
안녕하세요. 오늘은 html소스 코드를 파싱해서 파이썬으로 읽는 것이 아닌, XML형식의 데이터를 파이썬으로 불러와서 처리하는 과정을 알아보려합니다. XML 관련 라이브러리 xml.etree를 활용하면 되지만 관련 구글링을 진행하고 제 데이터를 파싱해보려고 여러 노력을 했는데 결국은 실패했습니다.. 그래서 저와 같은 분이 또 있을수도 있으니 저희가 소스코드를 파싱할 때 가장 친숙하게 사용하는 requests, BS4를 활용하여 XML데이터를 파싱해보겠습니다. XML구조는 html구조와는 약간 다르니 이점을 참고해주시면 되겠습니다. 글이 짧은만큼 핵심정보만 제공하니 앞으로 xml데이터를 파싱할 때 이와 같은 방법도 있다라고 생각해주시고 봐주시면 감사하겠습니다. import requests from bs4 ..
-
pythonic하게 코드 작성하기ML, DL & Python/Pythonic Code 2020. 8. 15. 17:10
요새 분석일을 하면서 최대한 제가 짜는 코드를 pythonic하게 맞추려고 하는데요. 그렇다면 pythonic한 코드 작성은 어떻게 하는 것일까요? 이 부분에 대해서 여러 케이스를 찾아보고 공부해보면서 일단 대표적으로 PEP8에서 정의한 pythonic한 코드 작성법이 있는데 여기에 각 개인의 특성에 맞게 변형도 되고, 추가 및 제거도 되는 것을 확인할 수 있었습니다. 이에 저도 정의한 모든 경우가 아닌 제 기준으로 중요하다고 생각하는 pythonic한 코드 작성법 몇가지를 공유하려고 합니다. 학부생부터 취업을 해서 코드를 작성하기까지 결과를 보는게 중요하지 내가 작성한 코드를 좀 더 정형적으로, 이해하기 쉽게, 빠르게 등등 방법을 변형해서 작성하는 것에 대해서는 고민해보지 못했는데요. 점차 일을 하다보..
-
Riot API(라이엇 api) Timeline API를 활용한 리그오브레전드 게임별 게임 시작 후 n분 까지의 데이터 수집ML, DL & Python/Riot API를 활용환 데이터 분석 2020. 5. 5. 17:43
안녕하세요. 일단 본론으로 들어가기 전에 구글에 라이엇 데이터 수집 관련해서 검색을 하게 되면 제 블로그가 최상단이더라구요! 일단 너무 신기하기도 했고, 더 열심히 해서 많은 사람들에게 좀 더 쉽게 정보를 전달할 수 있게끔 노력할 수 있는 원동력이 되더라구요 ㅎㅎ 정말 감사했습니다. 지금까지 Riot API를 통해서 수집했던 데이터는 경기가 완료되고 최종적인 통계 데이터를 수집했는데요. 이 부분만으로도 충분히 게임 결과를 예측하고, 여러 분석을 하신 분들도 많으실 것입니다. 여기까지의 데이터 셋을 확인하고 싶으신 분들은 아래의 링크를 참조해주세요. 1. 챌린저, 그마, 마스터 랭크게임(바로 분석할 수 있도록 정교하게 데이터 셋 구축한 버전) League Of Legends High elo Ranked G..
-
Riot API를 활용한 리그오브레전드(lol) 데이터 셋 구축(kaggle dataset) - User League/ item / champion / Ranked Games(랭겜)ML, DL & Python/Riot API를 활용환 데이터 분석 2020. 3. 28. 16:41
안녕하세요. 요즘 푹 빠져서 하고 있는 내용이 있는데요. 바로 Riot api를 활용한 리그오브레전드 데이터 셋 구축입니다. API의 비용문제가 있어서(2분에 최대 100requests) 수집하는데 마냥 자유롭지가 않아 꾸준히 수집하고 있습니다. 현재 1. 리그오브레전드 item, champion 정보 2. 리그오브레전드 챌린저, 그랜드마스터, 마스터 티어의 전체 유저 정보 이렇게 두가지를 kaggle에 업로드한 상태이구요 데이터에 관심이 있으시거나 필요한 데이터가 있으신 분들은 다운로드 해주시면 될 것 같습니다. 1. League of Legends(lol) item, champion information League of Legends(LOL) CHAMPION and ITEM - 2020 riot g..
-
리그오브레전드 데이터 분석 - Match Data Analytics(3)ML, DL & Python/Riot API를 활용환 데이터 분석 2020. 3. 15. 17:20
이번 포스팅은 리그오브레전드의 경기기록(오브젝트 위주)이 승패에 얼만큼 영향을 미치는지 확인해보겠습니다. 저번 분석에서는 상관도를 파악하고, 승리와 패배에 따른 오브젝트 변수의 비율 차이를 EDA를 통해서 알아보았는데요. 실제로 우리가 게임을 하면서 말하는 얘기들에 일맥상통하는 인사이트들이 비교적 많이 도출되었습니다. 이처럼 게임 승패에 상관성이 있는 변수들은 "과연 승패에 얼만큼 영향을 미칠까?" 라는 고민까지 이어졌습니다. 따라서 이번에는 Logistic Regression 을 활용하여 오브젝트 변수들이 승패에 미치는 영향을 분석해보려고 합니다. 1. Logistic Regression 분석에 앞서 Logistic Regression에 대해서 간략하게 설명하고 넘어가도록 하겠습니다. 위의 그림은 Si..