일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- Image Segmentation
- 협업필터링
- MySQL
- Segmentation
- Python
- hackerrank
- 큐
- DFS
- Semantic Segmentation
- eda
- 튜토리얼
- 스택
- 3줄 논문
- 알고리즘
- DilatedNet
- Recsys-KR
- 한빛미디어
- 나는리뷰어다
- 엘리스
- Object Detection
- TEAM-EDA
- pytorch
- 프로그래머스
- Machine Learning Advanced
- 파이썬
- 입문
- 코딩테스트
- 나는 리뷰어다
- TEAM EDA
- 추천시스템
- Today
- Total
목록2023/08 (11)
TEAM EDA

이번 글에서는 캐글에서 활용되는 알아두면 좋은 몇가지 팁들에 대해 알아보도록 하겠습니다. 먼저, 베이스라인을 만든 이후에 고려하면 좋을 사항들에 대해서 살펴본 이후 마지막 성능을 쥐어짤 테크닉들을 몇개 살펴보겠습니다. 실험을 하기 전 고려하면 좋을 사항들 첫째, 디버깅 모드가 있습니다. 디버깅은 프로그래밍에서 오류를 찾아내고 수정하는 필수적인 과정입니다. 특히 머신러닝에서는 전체 프로세스가 상당히 시간이 오래 걸리기 때문에 디버깅의 중요성이 크게 증가합니다. 예를 들어, Amazon KDD 추천 대회에 참여했을 때 전체 파이프라인을 완료하는 데 2~3일이 걸렸습니다. 딥러닝 대회에서도 학습 단계만으로 며칠이 소요되는 경우가 흔하며, 최근 인기 있는 LLM 모델의 경우 학습에 몇 십일이 걸릴 때도 있습니다..

연속형 변수를 전처리해야하는 이유는 무엇이 있을까요? 첫째, 일부 머신러닝 알고리즘은 입력 변수의 스케일에 따라 영향을 받아 학습이 불안정할 수 있습니다. 예를들어, 최근접이웃모델(KNN)의 경우 스케일의 전 후에 따라서 모델의 결과가 완전히 달라집니다. 해당 모델의 경우 간단하게 설명하면 새로운 입력이 들어왔을때 자신과 거리가 가까운 K개의 다른 데이터와 거리를 통해 분류 (or 회귀)를 수행하는 방법입니다. 하지만, 하나의 변수의 스케일이 너무 클 경우 거리의 계산이 해당 변수에 의해서만 진행됩니다. 유킬리디안 거리를 통해 보면 x가 proline, y가 hue로 보면거리가 proline 부분이 (800-700)^2으로 만단위이고 hue가 (1-0)^2으로 일의 단위라서 proline 변수에 의해서 ..

이번 강의에서는 머신러닝 모델 중에서 Non-Linear 모델 중 두번째인 KNN(K-Nearest Neighborhood) 방법에 대해 알아보도록 하겠습니다. KNN 모델이란 무엇이고 왜 알아야 하는 것일까요? KNN (최근접 이웃법)은 비선형모델의 하나로서 Tree 방식과는 다르게, 가장 가까운 K개의 데이터를 보고 해당 데이터가 속할 그룹을 판단하는 방법입니다. 아래의 예시에서는 삼각형에 대한 분류를 K=1일때는 보라색 사각형으로, K=3일때는 핑크색 원으로 분류한 것을 볼 수 있습니다. 이러한 KNN은 모델을 별도로 구축하지 않는다는 의미로 게으른 모델(Lazy model)이라고 부르기도하고, memory-based learning, instance based model 등 여러 표현으로 부르기도..

이번 강의에서는 파생 변수를 만드는 방법(Feature Engineering)에 대해 알아보겠습니다. 파생 변수를 만드는 것은 ML의 성능을 좌지우지하는 가장 중요한 부분 중 하나입니다. 대회에서 많은 사람들이 시간을 투자하는 부분이고, 많이 어렵기도 한 부분입니다. 도메인이나 데이터의 특성마다 적용하는 방법이 다르며, 데이터의 분석이 뒷받침이 되어야 의미가 있는 경우도 많습니다. 해당 강의에서는 일반적으로 적용할 수 있는 Feature Engineering 기법들에 대해 살펴보고, 몇몇 사례를 통해서 특정 데이터나 도메인에 대해 파생 변수를 어떻게 만들었는지 익혀보겠습니다. 파생변수란 무엇이고, 왜 중요할까요? 파생변수란 기존의 데이터를 통해서 새롭게 만들어 낸 변수를 의미합니다. 이전에 배웠던 연속형..

이번 강의에서는 머신러닝 모델 중에서 Non-Linear 모델 중 첫번째인 의사 결정 나무(Decision Tree)에 대해 살펴보도록 하겠습니다. Tree 모델이란 무엇이고 왜 알아야 하는 것일까요? 트리 구조의 모델은 스무고개처럼 여러 개의 분기를 통해 데이터 내의 규칙을 찾아 Tree 구조로 데이터를 분류 / 회귀하는 모델입니다. 선형 모델과 달리 비선형 데이터의 패턴을 파악할 수 있다는 장점이 있으며, 최근 경진대회에서 사용되는 모델들인 LightGBM이 Tree 기반의 모델입니다. 이러한 Tree 모델들의 경우 의사결정 나무(Decision Tree)를 시작으로 Random Forest, AdaBoost, GBM 등 많은 확장을 가졌으며 현업에서 굉장히 중요한 모델 중 하나입니다. 실제 Ligh..

이번 강의에서는 머신러닝 모델 중에서도 특히, 선형 모델인 선형 회귀 (Linear Regression)에 대해 살펴보도록 하겠습니다. 선형 회귀가 어떤 것인지 개념에 대해 살펴본 후, 해당 모델의 장점, 주의해야할 점, 단점에 대해 살펴본 후 해당 모델의 한계를 개선할 모델인 Ridge, Lasso, ElasticNet에 대해 살펴보겠습니다. 선형 회귀란 무엇이고 왜 해야하는 것일까요? 선형 회귀는 x라는 독립변수(independent variable)에 대해서 y라는 종속변수(dependent variable)의 관계를 선형으로 학습하는 방법을 의미합니다. 여기서 독립변수 x가 한개인 경우 (ex. y = b0 + b1*x1)를 단순 선형 회귀라고 하고, x가 여러개인 경우를 다중 선형 회귀라고 부릅..

이번 강의서부터는 본격적으로 모델들에 대해 알아보겠습니다. 머신러닝 모델 프로세스에서 이제까지 배운 것들을 상기해보면, 저희는 데이터가 있다고 가정했을때 전처리를 진행했습니다. 해당 과정에서 결측치, 이상치에 대해 처리를 했고 연속형 변수와 범주형 변수를 컴퓨터가 더 잘 이해할 수 있도록 만들었습니다. 그리고, 필요에 따라 파생 변수의 생성 또한 진행했습니다. 이제 이렇게 준비한 재료들을 기반으로 모델을 구울 차례입니다. 모델의 종류가 어떤 것들이 있는지 대표 모델들에 대해서 살펴본 이후에, 최근 대회에서 많이 사용하는 Boosting 계열의 모델인 LightGBM과 CatBoost에 대해 공부해보겠습니다. 머신러닝 모델의 종류 먼저, 머신러닝 모델은 목적에 따라 분류를 수행하는 분류 모델과 예측을 진행..

이번 강의에서는 학습 된 모델을 평가하는 과정에 대해 알아보겠습니다. 주어진 데이터를 학습 및 검증, 평가 셋으로 나누는 방법론에 대해 배우고 장단점과 언제 어떤 방법을 선택할지에 대해 살펴봅니다. 평가함수에 대해 모델의 성능을 측정하고, 결과를 해석해서 머신러닝 프로세스를 반복하는 과정에 대해 이해해보도록 하겠습니다. 데이터 셋 분할은 무엇을 의미하며, 왜 하는 것일까요? 선택한 모델을 학습하기 위해서는 먼저 데이터를 Train / Valid / Test 총 3가지의 데이터로 나눠야 합니다. 일반적으로 저희가 가진 데이터는 전체 데이터의 일부분입니다. 그렇기에, 학습 데이터에서 엄청 잘 나온다고 실제 미래 데이터가 들어왔을때 잘 나온다는 보장이 없습니다. 그렇기에, 이러한 모델의 성능을 보장해줄 데이터..

이번 강의에서는 변수의 선택 (Feature Selection)에 대해 알아보겠습니다. 변수의 선택은 파생 변수가 만들어진 이후에 진행되기도 하고, 모델의 학습이 끝난 이후에 진행되기도 합니다. 어떤 방법, 모델, 목적에 따라 다른 모습을 보이는데 이번 강의에서는 Feature Selection의 의미와 왜 해야 하는지, 어떤 방법들이 있는지 살펴보고 마지막으로 최근 대회에서 사용되는 실용적인 기법들을 보면서 마무리하겠습니다. Feature Selection이란 무엇이고 왜 해야하는 것일까요? Feature Selection (변수 선택)은 학습에 필요한 변수들을 선택하는 과정을 의미합니다. 이 과정을 통해서 변수를 줄이게 되면 얻는 장점은 1. 차원의 저주 (Curse of Dimensionality)..

이전의 강의까지 해서 변수란 무엇인지, 변수에 결측치나 이상치가 있는 경우 어떻게 처리하는지, 연속형 변수의 값을 어떻게 변환하는지에 대해 살펴봤습니다. 이번 강의에서는 범주형 변수와 그 외 변수의 인코딩, 임베딩 방법에 대해 알아보도록 하겠습니다. 범주형 변수는 무엇이며 왜 처리해야하는 것일까요? 정형 데이터에서 범주형 변수를 처리하는 방법은 되게 까다롭습니다. 범주형 변수란 일종의 카테고리를 가지는 변수를 의미합니다. 예를들어 식물의 종도 일종의 카테고리가 되고 음식점의 종류 등 어떠한 집단을 의미하는 변수들을 의미합니다. 이러한 변수들은 컴퓨터가 인식할 수 없기에 인식할 수 있도록 해주는 작업이 필요합니다. 대표적으로 많이 알려진 방법으로는 One-Hot Encoding, Label Encoding..