목록ML (10)
Joonas' Note
시작하기 앞서 sklearn에서는 다양하고 많은 클러스터링 module들을 제공한다. 공식 문서에서도 여러 데이터 분포에 대해서 비교한 것이 있길래 직접 해보고자 했다. sklearn에서는 make_blob과 같이 데이터를 생성해주는 함수가 있다. 범위와 분포값을 설정해서 임의로 만들 수 있지만, 이것은 사용하지 않기로했다. 데이터 만들기 현실에서는 이렇게 고른 분포가 나오기 힘들다고 생각했고, 2차원 평면 상에서 직접 데이터를 만들기로 했다. GUI tool to create points for clustering www.joonas.io 캔버스와 마우스 이벤트를 이용해서 그림판처럼 데이터를 그릴 수 있게 했고, csv로 (x 좌표, y좌표, 색상 번호)를 추출할 수 있도록 간단하게 만들었다. 데이터셋..
Dataset https://www.kaggle.com/datasets/joonasyoon/file-format-detection Programming Laungages and File Format Detection can you know what file format is? and written in which language? www.kaggle.com Code https://www.kaggle.com/code/joonasyoon/ml-content-based-file-format-detection [ML] 💾 Content-based File Format Detection 📃 Explore and run machine learning code with Kaggle Notebooks | Using d..
이번 글에서 사용되는 데이터셋은 Kaggle의 한 Competition인 house-prices-advanced-regression-techniques이다. 개와 고양이 분류 이후로, 회귀(Regression) 모델을 연습하기 위해서 적당한 주제를 잡던 중에 먼저 ML 모델로 데이터 전처리(preprocessing)부터 연습하기로 했다. Regression 모델로 LinearRegression, Ridge, Lasso 이렇게 3개로 학습하면서 튜닝해봤는데, LightGBM이 가장 loss가 낮아서 그걸로 제출했더니 가장 순위가 좋았다. 그래도 RMSE 0.17812(상위 77%)로 매우 낮은 예측을 보였다. https://www.kaggle.com/code/joonasyoon/ml-practice-on-..
ROC(Receiver Operating Characteristic) curve는 TPR(True Positive Rate)와 FPR(False Positive Rate)의 변화값을 보는 데 이용한다. 분류가 잘 되었는 지 확인할 수 있는 성능 지표 중 하나이다. sklearn에서는 이것을 차트로 그려주는 RocCurveDisplay 모듈이 있다. 3가지 방법이 있는데, 직접 TPR과 FPR을 넘겨서 그리는 방법은 문서에서 권장하지 않고, 모델로부터 그리는 from_estimator와, 정답 레이블과 예측 레이블을 넘겨서 그리는 from_predictions를 권장하고 있다. import matplotlib.pyplot as plt from sklearn.datasets import make_classi..
이전 글 - [딥러닝 일지] 데이터 늘리기 (Data Augmentation) Convolution 2D 이미지를 다루는 딥러닝에서 핵심적인 요소로 쓰이고 있다. 이걸 쌓은 네트워크가 CNN. 학습 데이터로 들어가는 텐서는 아래와 같이 벡터 덩어리(?)의 모습이므로, 오른쪽의 RGB 이미지도 왼쪽과 같은 (3, 4, 4) 크기의 텐서가 된다. 하지만 같은 이미지를 조금만 회전해도 배열의 순서가 완전히 다른 모습이 되기 때문에, 학습하려는 그래프의 입장에서는 의미있는 특징(feature)들을 뽑아내기 힘들어진다. 이미지는 그 특성상, 인접한 픽셀끼리 뭉쳐서 해석하는 것이 어떤 의미를 가질 수 있다고 생각한 접근이 아닐까한다. 필터, 커널 그렇다면 덩어리 단위로 묶어주는 작업이 필요한데, 이것은 슬라이딩 윈..
이전 글 - [딥러닝 일지] 다른 모델도 써보기 (Transfer Learning) 오늘은 다음 주제를 다루는 과정에서, 이미지를 여러 방법으로 조작하는 것에 대해서 알아보았다. PIL 먼저, 파이썬에서는 이미지 라이브러리로 PIL(Python Imaging Library) 패키지가 매우 많이 쓰이는 것 같다. 많이 쓰이는 만큼, NumPy와 Tensor와도 호환되는 만들어주는 함수들이 있어서 자주 쓰는데 헷갈린다. 그래서 아래처럼 정리했다. from torchvision.transforms.functional import to_pil_image def pil_to_tensor(pil_image): # PIL: [width, height] # -> NumPy: [width, height, channel]..
이전 글 - [딥러닝 일지] 학습 조기 종료 (Early Stop) [딥러닝 일지] 학습 조기 종료 (Early Stop) 이전 글 - [딥러닝 일지] 과적합 문제, 그리고 배치 전략 [딥러닝 일지] 과적합 문제, 그리고 배치 전략 (교차 검증) 이전 글 - [딥러닝 일지] 이진 분류를 위한 CNN 모델 작성 (개 vs 고양이) [딥러닝 blog.joonas.io 들어가기 전에 이번에 하려던 것을 하기 위해 검색을 많이 해봤는데, 관용적으로 부르는 건지 실제 용어 정의가 있는 지는 모르겠다. 전이 학습(Transfer Learning)이라고도 부르고, 파인 튜닝(Fine Tuning)이라고도 부르는 것 같은 데, 찾아보기로는 다음과 같은 미묘한 차이가 있다. 전이 학습(Transfer Learning)은..
이전 글 - [딥러닝 일지] 과적합 문제, 그리고 배치 전략 [딥러닝 일지] 과적합 문제, 그리고 배치 전략 (교차 검증) 이전 글 - [딥러닝 일지] 이진 분류를 위한 CNN 모델 작성 (개 vs 고양이) [딥러닝 일지] 이진 분류를 위한 CNN 모델 작성 (개 vs 고양이) 이전 글 : [딥러닝 기록] 시작하기 - 개 vs 고양이 분류 [딥러닝 blog.joonas.io 이번 글은 Version 26을 기준으로 설명한다. Dogs vs. Cats Classification Explore and run machine learning code with Kaggle Notebooks | Using data from multiple data sources www.kaggle.com 적당할 때 끝내기 실험을 ..