본문 바로가기

ALL100

2-3. 데이터 전처리 - 범주형 변수 처리 범주형 변수는 질적 변수라고도 하며 그 자체로 수학적 의미를 가지지 않기 때문에 처리가 필요하다. 더미변수(One-Hot-Encoding) 더미변수는 범주형 변수의 범주 각각을 열로 변경하고, 원본 컬럼의 값이 해당 범주에 속하는지 여부에 따라 1 혹은 0으로 채운 변수이다. from sklearn.datasets import load_iris iris_load = load_iris() iris = pd.DataFrame(iris_load.data, columns = iris_load.feature_names) iris['Class'] = load_iris().target iris['Class'] = iris['Class'].map({0:'Setosa', 1:'Versicolour', 2:'Virgini.. 2024. 2. 14.
2-2. 데이터 전처리 - 이상치 처리 이상치는 측정의 변동성이나 실험의 오류, 측정 장비의 이상 등의 이유로 발생할 수 있다. 결측값을 대체했을 때의 값이 이상치로 확인될 수 있기 때문에 결측값 처리 이후 이상치에 대한 처리를 진행한다.(이상치를 결측값으로 만든 후, 다른 결측값들과 같이 처리하는 방법도 있다) IQR IQR은 Box Plot의 이상치 결정 방법을 그대로 사용하는 것인데, 3분위수를 Q3, 1분위수를 Q1이라 할 때 Q3-Q1를 IQR이라고 하고, Q3 + 1.5*IQR보다 크거나 Q1 - 1.5*IQR보다 작을 때 이상치로 간주한다. 여기서 IQR에 곱해지는 상수(1.5)는 조절해서 쓴다(나는) import pandas as pd import numpy as np from sklearn.datasets import load.. 2024. 2. 14.
2-1. 데이터 전처리 - 결측값 처리 1. 결측값의 종류 Missing completely at random(MCAR) - 완전 무작위 결측 결측값의 발생이 다른 변수와 상관 없는 경우 Mssing at random(MAR) - 무작위 결측 결측값 발생이 특정 변수와 관련 있으나 얻고자 하는 결과와 상관 없는 경우 Not missing at random(NMAR) - 비무작위 결측 결측값 발생이 다른 변수와 상관 있는 경우 2. 결측치 처리 종류 단순 치환, 행제거/열제거 같은 경우 간단해서 코드는 skip 1. 냅두기 - 일부 ML은 결측치를 고려해서 학습해서 파라미터 설정 잘 하면 됨. 2. 행or열 제거 - 특정 열의 결측값이 50%이상이면 변수를 제거 - 50%미만의 경우 제거, 치환, imputation library사용 - 하지.. 2024. 2. 13.
1. EDA / 시각화 EDA(Exploratory Data Analysis, 탐색적 데이터 분석)이란, 모델링에 앞서 데이터를 살피는 모든 과정을 의미한다. EDA는 데이터 분석의 가장 첫 번째 단계로, 다음과 같은 일을 진행한다. 데이터의 특징과 데이터에 내재된 관계를 알아내기 위해 그래프와 통계적 분석 방법을 활용해 데이터를 탐구한다. 분석하고자 하는 자료들의 유형과 범위, 수준을 확인하고 단독/여러 변수를 사용해 그 분포와 의미를 고찰한다. 분석 목적을 달성하기 위한 알고리즘을 결정하기 전 데이터를 전처리하는 방법과 적합한 알고리즘을 결정하기 위한 자료로 사용된다. 또한, 다음과 같은 네 가지 주제로 구분된다. 저항성의 강조 : 이상치 등 부분적 변동에 대한 민감성 확인 잔차 계산 : 관찰 값들이 주 경향에서 벗어난 정.. 2024. 1. 30.
Vision Transformer (AN IMAGE IS WORTH 16X16 WORDS:TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE) 논문 발표 당시 Transformer는 NLP 분야의 표준으로 자리잡았는데, CV에서의 적용은 한정적이었다. CV에서 attention은 CNN과 함께 적용되거나, CNN 구조를 유지하면서 특정 컴포넌트만 대체하는 데 사용되었다. 본 논문에서는 pure transforemr를 image pathes의 시퀀스에 직접 적용하는 것이 image classification 분야에서 좋은 성능을 낸다는 것을 입증한다. ViT의 특징 기존 CNN 기반 SOTA 모델보다 성능이 좋으면서 Fine-Tuning 과정에서 더 적은 리소스로도 더 좋은 성능을 보여준다. 기존 Transformer 모델처럼 parameter의 한계가 아직 없다. 더 많은 데이터와 더 많은 parameter로 더 좋은 성능을 보여줄 수 있다. .. 2024. 1. 29.
YOLOv3 Pytorch 코드 리뷰 코드 : https://github.com/aladdinpersson/Machine-Learning-Collection/tree/master/ML/Pytorch/object_detection/YOLOv3 1. DarkNet + Multi-scale feature map extracter YOLO v3에서는 DarkNet-53이라는 새로운 Backbone network가 등장한다. 총 53개의 conv layer로 이루어져있다. """ Implementation of YOLOv3 architecture """ import torch import torch.nn as nn """ Information about architecture config: Tuple is structured by (filters, .. 2024. 1. 26.
FLOPs FLOPs는 다양한 딥러닝 모델들의 논문을 볼 때 연산량을 나타내는 지표로써 많이 사용된다. FLOPs를 포함한 연산량과 관련된 지표를 간단히 정리하면 다음과 같다. FLOPs는 FLoating point Operations의 약자로, 부동소수점 연산을 의미한다. FLOPs의 연산은 산칙연산을 포함해 Root, log, exp 등의 연산도 포함되며, 각각을 1회의 연산으로 계산한다. FLOPS는 Floating point Operations Per Second로, 초당 부동소수점 연산을 의미함으로, 하드웨어의 퍼포먼스 측면을 확인하는 지표이다. MAC은 현대 하드웨어들이 tensor의 연산을 할 때 사용되는 명령어 셋인 FMA가 a*x+b를 하나의 연산으로 처리하여 이 연산이 몇 번 실행되었는지 세는 것.. 2024. 1. 25.
YOLOv1 Pytorch 코드 리뷰 코드 : https://github.com/aladdinpersson/Machine-Learning-Collection/tree/master/ML/Pytorch/object_detection/YOLO 1. DarkNet DarkNet은 YOLOv1이 feature map을 생성하기 위해 만들어진 독자적인 CNN이다. ## model.py """ Implementation of Yolo (v1) architecture with slight modification with added BatchNorm. """ import torch import torch.nn as nn """ Information about architecture config: Tuple is structured by (kernel_siz.. 2024. 1. 25.
DETR : End-to-End Object Detection with Transformers 논문 발표 당시 최근까지 나온 detection 모델을 설명하기 위해서는 Region proposl, Anchor box, NMS 등 새로운 개념들이 많이 등장했다. 이런 개념들은 실제로 구현하기 어렵고 코드가 길어진다는 단점이 있었는데, 2020년 당시 Facebook(현 META)은 이런 개념들을 적용하지 않고 네트워크 구조가 단순하면서 end-to-end 학습이 가능한 DETR을 제안한다. 기존 Object detection 본 논문에서는 객체 인식을 bbox와 category라는 set을 예측하는 task로 정의한다. 이 때 기존의 모델들은 다수의 proposal, anchor, window center 등을 기반으로 set을 찾는 간접적인 방법에 기반을 두고 있다. 본 논문에서는 이러한 pipe.. 2024. 1. 25.