전체 글

Deep Learning

[딥러닝을 이용한 자연어처리] Basic ML : 지도학습 (1)

본 포스팅은 조경현 교수님의 부스트코스 딥러닝을 이용한 자연어처리 강의를 듣고 주요 내용을 다시 한 번 정리하고자 하였다. 강의 내용이 꽤 어렵다고 느꼈지만, 그러면서도 뻔한 이야기보다 좀 더 다양한 시각에서의 접근법을 알아갈 수 있는 강의라고 생각이 들었다. [Overview] 알고리즘이란? - 어떤 문제를 푸는데 있어서 필요한 일련의 명령들이다. 알고리즘을 정의하자면 여러가지 Definition들이 있다. 하지만 가장 간단하게 정의하자면 instruction set을 어떻게 sequence로 나열해서, 그 나열된 sequence대로 instruction set이 실행되었을 때 우리가 원하는 대로 결과가 나올 것이냐의 문제라고 정의할 수 있다. 전통적인 알고리즘은 input, output, constr..

Project

DACON 여행 상품 신청 여부 예측 경진대회 후기

여름방학을 맞아 데이콘에서 진행하는 경진대회에 지난대회에 이어 다시 한 번 참가했다. 지난 대회에서는 아쉽게 Private에서 등수가 많이 하락해 수상을 하지 못했지만 이번 대회에서는 2등으로 수상할 수 있었다 ! 분석 초보자들을 위한 Basic대회이기 때문에 드라마틱한 분석과정이나 결론은 없지만, 머신러닝을 공부해가는 입장에서 이러한 성과는 나름대로 동기부여가 되는 것 같다. 전반적인 코드와 진행 과정은 github에 올려놓았다. https://dacon.io/competitions/official/235959/overview/description 데이콘 Basic 여행 상품 신청 여부 예측 경진대회 - DACON 분석시각화 대회 코드 공유 게시물은 내용 확인 후 좋아요(투표) 가능합니다. dacon...

Deep Learning

[Deep Learning] Pytorch의 nn.Module 이해하기

nn.Module을 상속받는 클래스에서의 forward() 함수 토치에서 모델을 만들 때, 다음과 같은 형태로 모델을 만든다. PyTorch 내장 모델과 사용자 정의 모델 모두 이 형태로 만들어야 한다. 1. torch.nn.Module을 상속받아야 한다. 2. __init__()과 forward()를 override 해줘야 한다. __init__()에서는 사용될 모듈, 활성화 함수 등을 정의한다. forward()에서는 모델에서 실행되어야 하는 계산을 정의한다. backward 계산은 backward()를 이용하면 알아서 해주기 때문에 forward()만 정의하면 된다. input을 넣고 어떤 과정을 거쳐 output이 나올지를 정의해 준다는 느낌이다. class GRU(nn.Module): def _..

Machine Learning

[Machine Learning] Data Leakage

데이콘에서 대회를 참여하다 보면 규칙 중에 Data Laekage 부정행위가 있다. 머신러닝을 공부하며 대회에 처음 참가하는 초보자 입장에서는 이게 무엇을 의미하는지 잘 모를 수 있다고 생각한다. (필자가 그랬기 때문이다..) 따라서 이 Data Leakage라는 부정행위에 대해 알아보고자 한다. Data Leakage란? Data Leakage는 train data 외의 정보가 모델을 만드는데 사용될 때 발생한다. 이러한 추가적인 정보를 통해 모델은 다른 방법으로는 알지 못하는 무언가를 배우거나 알 수 있으며, 생성되는 모델의 예측 성능을 무효화할 수 있다. 결론적으로 Data Leakge로 인해 엉뚱한 모델이 만들어지고, 이는 곧 해석이 무의미해짐을 의미한다. 간단하게 말하자면, test 데이터의 개..

Machine Learning

[Machine Learning] 상관관계와 Feature Importance

Correlation Analysis 상관분석은 확률론과 통계학에서 두 변수 간에 어떤 선형적 관계를 갖고 있는지를 분석하는 방법이다. 두 변수는 서로 독립적인 관계로부터 서로 상관된 관계일 수 있으며, 이때 두 변수 간의 관계의 강도를 상관관계라고 한다. 상관관계의 정도를 나타내는 상관계수(Correlation coefficient)는 두 변수 간의 선형관계를 나타낼 뿐 인과관계를 설명하는 것은 아니다. Feature Importance feature importance는 트리기반 모델에서 사용된다. 즉 중요도를 구분하는 데에 트리의 분할과 밀접한 관련이 있다는 말이다. 쉽게 생각하면 특정 feature가 트리를 분할하는데 얼마나 기여를 했는지에 따라 중요도가 결정되는 것이다. 트리가 분할하는 원리는 ..

Project

DACON 쇼핑몰 지점별 매출액 예측 경진대회 후기

여름방학을 맞아 데이콘 Basic에서 진행하는 쇼핑몰 지점별 매출액 예측 경진대회에 참가했다. 머신러닝을 공부하면서 데이콘 교육용 대회에 참가하거나 이미 끝난 대회에 연습용으로 참가해봤던 경험밖에 없어서 실제 진행 중인 대회를 참가하는 것은 처음이었다. 결론부터 말하자면 Public 점수에서는 1등을 달성했고 대회 종료 후 나온 Private 점수에서는 11등을 달성했다. Private 점수로 최종 등수가 매겨지는 것이기 때문에 사실상 11등을 기록했다고 보면 된다. 물론 11등도 상위 1%에 해당하는 성적이므로 못한 것은 아니지만 Public Score에서 1등을 기록했었기에 다소 아쉬움이 남는다. 따라서 본 포스팅은 대회를 진행하면서 마주쳤던 문제들과 지식들에 대해 정리하고 결론적으로 왜 Public..

Machine Learning

[Machine Learning] 피처 스케일링(Feature Scailing)

데이콘 대회를 진행하던 중 전처리 과정에서 피처 스케일링에 대한 의문점이 들었다. 주어진 데이터셋의 각 칼럼의 값들이 굉장히 넓은 범위를 가지고 있고, 회귀 분석을 할 것이기에 단순히 스케일링을 해줘야겠다고 생각했다. 하지만 스케일링을 진행한 모델의 성능과 진행하지 않은 모델의 성능이 동일했다. (모델링의 문제일 수도 있다) 이렇게 된 이유를 곰곰히 생각해보니 내가 사용한 모델은 Tree 기반의 XGBoostRegressor, CatBoostRegressor이었기 때문에 스케일링의 영향을 받지 않은 것 같다는 생각을 했다. 따라서 피처 스케일링에 대한 개념을 다시 제대로 정리하고자 이 포스팅을 쓴다. 피처 스케일링이란? 서로 다른 변수의 값 범위를 일정한 수준으로 맞추는 작업 피처 스케일링의 대표적인 방..

Machine Learning

[Machine Learning] Kuggle 정규세션 - 1주차

머신러닝(Machine Learning)의 개념은 다양하게 표현할 수 있으나, 일반적으로는 애플리케이션을 수정하지 않고도 데이터를 기반으로 패턴을 학습하고 결과를 예측하는 알고리즘 기법을 통칭한다. 현실 세계의 매우 복잡한 조건으로 인해 기존의 소프트웨어 코드만으로는 해결하기 어려웠던 많은 문제점들을 이제 머신러닝을 이용해 해결해 나가고 있다. 업무적으로 복잡한 조건/규칙들이 다양한 형태로 결합하고 시시각각 변하면서 도저히 소프트웨어 코드로 로직을 구성하여 이들을 관통하는 일정한 패턴을 찾기 어려운 경우에 머신러닝은 훌륭한 솔루션을 제공한다. 머신러닝 알고리즘은 데이터를 기반으로 통계적인 신뢰도를 강화하고 예측 오류를 최소화하기 위한 다양한 수학적 기법을 적용해 데이터 내의 패턴을 스스로 인지하고 신뢰도..

seungseop
꾸준한 성장일기