전체 글
-
Pseudo Labeling, TTA(Test Time Augmentation) 기법CV 2020. 12. 13. 21:17
안녕하세요. 요즘 이미지 관련 대회를 참여하면서 굉장히 많은 난관을 겪고 있습니다... A를 공부하면 A'을 알아야하고, A'을 배우기 위해서는 A''을 알아야하고 무한의 굴레인 것 같습니다. 하지만 이와 같은 과정을 계속 반복하다보면 언젠가는 제 것이 될 것이라고 생각합니다 (화이팅!) 이번 글은 image, Tabular Data, voice, text 등의 다양한 도메인 데이터에서 활용할 수 있는 예측 성능을 높이기 위한 방법론인 Pseudo labeling, TTA 기법에 대해서 다뤄보겠습니다. 해당 방법은 보통은 성능을 쥐어짜내는? 부분에서 굉장한 효과를 나타내기도 하지만 특정 대회에서는 Data leakage로 인해서 사용을 아예 못할 수도 있습니다. 즉, 해당 방법론은 Test dataset..
-
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 데이터 즉, 실제 사용되고 활용되어야 할 데이터 여기서는 학습셋을 분할한 테스트 데이터가 아닌 진짜 테스트 데이터셋을 말합니다. 그러..
-
About meAbout me 2020. 11. 29. 15:20
신민용 e-mail: tlsalsdyd1995@gmail.com kaggle: www.kaggle.com/gyejr95 dacon: dacon.io/myprofile/123352/home/ linkedin: www.linkedin.com/in/minyong-shin-53752b1a0/ github: github.com/minyong-shin 세상의 다양한 도메인을 다룰 수 있는 분석가를 꿈꾸고 있으며, 스타트업에 관심이 많습니다. 경력 heronation 2019/03 ~ 2019/06 Data scientist(intern) - ML을 통한 신체치수 예측 방법론 및 모델 개발 - 예측 치수 오차 최적화 - shopping mall crawling quantastic 2019/06 ~ 2019/10 Da..
-
하이퍼 파라미터 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한 코드 작성법 몇가지를 공유하려고 합니다. 학부생부터 취업을 해서 코드를 작성하기까지 결과를 보는게 중요하지 내가 작성한 코드를 좀 더 정형적으로, 이해하기 쉽게, 빠르게 등등 방법을 변형해서 작성하는 것에 대해서는 고민해보지 못했는데요. 점차 일을 하다보..
-
Machine Learning Imbalanced Data(불균형 데이터)Statistics 2020. 7. 25. 23:17
안녕하세요. 이번에 다룰 내용은 불균형 데이터에 대해서 다뤄보겠습니다. 먼저 분류문제를 해결할 때 데이터의 분포를 가장 먼저 확인합니다. 이 때 예측해야하는 결과값의 분포가 100:1, 200:1, 400:1 ... 정도로 굉장히 불균형한 분포를 띄고 있는 데이터들을 많이 만나곤 하는데요. 불균형한 데이터를 그대로 예측하게 과적합문제가 발생할 가능성이 높아집니다. 그렇기 때문에 예측시 이러한 과적합 문제를 해결하기 위해서는 다양한 방법론이 있지만 기본적으로 데이터가 불균형하다면 불균형 문제를 해결한 뒤 문제에 접근을 해야합니다. 여담으로 최근에 참여했던 프로젝트에서 데이터의 불균형성을 인지하고 있지만 해결하지 않아서 Public Score와 Local 예측값과의 차이가 심하게 났던 과적합을 일으켰으며, ..