machine learning
-
train _vs_ valid _vs_ testmachine learning 2024. 3. 15. 00:42
Dataset을 train data, valid data, test data로 구분하는 이유에 대해 간단하게 정리한다. 이를 통해 valid data의 중요성을 정확하게 기억하고자 한다. dataset을 구분하는 이유는 본질적으로 model의 overfitting을 막기 위함이다. overfitting : 훈련 데이터에 대해서는 성능이 높게 나타나지만, 훈련 데이터가 아닌 데이터에 대해서는 성능이 낮게 나오는 현상으로, model이 훈련 dataset에 지나치게 과적합 되어 있을 경우 발생 Train data와 Test data를 구분하는 이유 Overfitting의 발생 여부를 확인하기 위함 train data의 loss 값은 안정적이나 test data의 loss 값이 안정적이지 않거나 너무 높은 경..
-
classification _vs_ regressionmachine learning 2024. 3. 15. 00:38
레이블의 고유 값이 2개인 경우, 해당 문제를 classification task로 접근할 것인지, regression task로 접근할 것인지 헷갈리기에, 해당 내용을 간단하게 나마 정리해본다. 레이블의 고유 값이 2개인 경우, 즉 이진 분류 문제(Binary Classification Problem)를 회귀(Regression) 문제로 접근하거나 분류(Classification) 문제로 접근하는 것은 데이터 과학과 머신러닝에서 흔히 볼 수 있는 상황입니다. 각 접근 방식의 의미와 차이점은 다음과 같습니다: 분류 문제로 접근 의미 이진 분류 문제에서는 레이블이 두 가지 범주 중 하나에 속하는지를 예측합니다. 예를 들어, 이메일이 스팸인지 아닌지, 환자가 특정 질병을 가지고 있는지 없는지 등이 이에 해당..
-
가상 데이터의 활용machine learning 2024. 2. 25. 16:32
가상 데이터를 생성하는 이유 테스트 이전에 모델의 정상 작동 여부를 확인하기 위함 알고리즘의 특성을 이해하거나 성능의 평가를 위함 1. make_blob을 사용한 가상 데이터 생성 make_blob을 통해 생성되는 데이터는 정규 분포를 따르는 가상의 데이터로, 여러 개의 클러스터가 존재하는 형태로 데이터가 생성되어, 다중 분류를 위한 클러스터 데이터 생성이 가능 from sklearn.datasets import make_blobs x, y = make_blobs(n_samples=100, centers=3, n_features=2, random_state=1234) print(x.shape, y.shape) # n_samples : 생성할 데이터 샘플의 수 # centers : 생성할 클러스터의 수 #..
-
-
데이터 변환_인코딩machine learning 2024. 2. 25. 16:18
인코딩(Encoding)은 범주형 데이터를 수치형 데이터로 변환하는 과정이다. 이는 텍스트나 범주형 데이터를 모델이 이해할 수 있는 형태로 변환하는 것으로, 데이터에 포함된 정보를 모델이 해석하기 쉬운 형태로 변환하는 것이다. 다양한 인코딩 방식을 사용한다면 데이터의 의미를 수치적으로 표현할 수 있다. 원 핫 인코딩의 경우, 범주 간의 명확한 구분을 제공하는 인코딩 방식인 반면, 차원의 갯수가 늘어나 차원의 저주가 발생할 수 있는 반면, 레이블 인코딩의 경우 범주 간의 순서나 등급 정보를 제공하여 표현할 수있다. 대표적인 인코딩 방식에 대한 설명과 사용 목적, 의의와 한계를 한번 살펴보자. 1. One Hot Encoding 단어 집합의 크기를 벡터의 차원으로 하고, 표현하고 싶은 단어의 인덱스에 1의 ..
-
데이터 변환_스케일링machine learning 2024. 2. 25. 16:17
데이터 스케일링(data scaling)은 데이터 전처리 과정의 핵심 단계 중 하나로, dataset의 features를 특정 범위로 조정하거나, 데이터의 분포를 표준화하는 과정으로, 주요 목적은 다음과 같다. 1. 특성 간의 균형 조정 (★★★) 데이터 feature를 특정 범위 값으로 조절하여 feature 크기에 따른 불균형을 조정할 수 있다. 이를 통해 특성의 중요도를 공정하게 해석하여 overfitting을 극복할 수 있다. 이는 특히 거리 기반의 알고리즘(KNN, K-Means Clustering 등)에 있어 특성 간 거리 측정이 더 공정하게 이루어지도록 하여 알고리즘의 정확도와 성능을 향상시킨다. 2. 모델의 수렴 속도 향상 scale을 일치시킴으로서 최적화 알고리즘이 수렴하는 속도를 일정하..
-
데이터 정제machine learning 2024. 2. 25. 16:16
- 결측치 확인 - 결측치 제거, 결측치 대체 - 이상치 탐지 및 처리 - 중복 데이터 탐지 및 제거 from sklearn.impute import SimpleImputer params = {"strategy" : ["mean", "median", "most_frequent", "constant"], "fill_value" : ,#strategy == constant 인 경우에만 사용 (대체할 값) "missing_value" : np.nan(default),# 결측치를 식별하는데 사용할 값 "add_indicator" : [True or False],# True일 때 대체된 결측치의 위치를 나타내는 지표열 생성 "copy" : [True or False],# inplace와 같음 (default = ..
-
데이터 전처리 과정machine learning 2024. 2. 25. 15:41
데이터 분석을 위해 모델을 사용하거나, 특정 목적에 사용하기 위한 모델을 학습시키려고 하는 경우, 데이터에 대한 전처리 과정은 굉장히 중요하다. 특히 모델이 잘 학습할 수 있도록 data를 scaling하고 불필요하거나 잘못 입력된 결측 값들을 사전에 제거하는 것은, 정제된 데이터를 사용함으로써 효율적으로 모델이 학습되고 사용할 수 있는 도구로서 잘 기능할 수 있도록 하는 첫 걸음이다. 사실상 다양한 라이브러리를 통해 모델을 쉽게 import 하여 사용할 수 있다는 점에서, 어떤 problem을 해결하고자 모델을 사용할 것인지에 관한 목적을 명확히 설정하는 것과 더불어, 이를 위해 데이터를 어떻게 구축하여 사용할 것인가 하는 것 역시 굉장히 중요한 문제이다. 효과적인 데이터 전처리를 위해서는 정말 다양한..