AI 개발 공부 공간

AI, 머신러닝, 딥러닝, Python & PyTorch, 실전 프로젝트

머신러닝/머신러닝: 기초 내용 8

데이터 불균형 극복방법 2 : 언더샘플링

언더샘플링 (Undersampling)언더샘플링은 다수 클래스의 샘플을 줄이는 방식으로, 희귀 사건들을 모두 선택하고 풍부한 사건들을 적절히 추출하여 데이터셋을 균일하게 만듭니다.이는 큰 데이터셋에서 중요하지 않은 정보를 줄여주어 모델이 핵심 패턴에 더 집중할 수 있게 도와줍니다.언더샘플링을 통해, 모델이 소수 클래스에 더 집중하고, 이를 통해 전반적인 성능을 향상시킬 수 있습니다.1. 언더샘플링의 종류 1) 무작위 언더샘플링 (Random UnderSampling)가장 간단한 형태의 언더샘플링 방법입니다.이 방법은 다수 클래스의 데이터 포인트들을 무작위로 제거합니다.하지만 이 방식은 중요한 데이터를 잃어버릴 위험이 있습니다. 2) NearMiss다수 클래스의 데이터 포인트 중 소수 클래스의 데이터 포인..

데이터 불균형 극복방법 1 : 오버샘플링

오버샘플링  오버샘플링(Oversampling) 은 소수 클래스의 샘플을 인위적으로 늘려, 모든 클래스가 비슷한 수의 샘플을 가지도록 합니다. 균형 잡힌 데이터셋은 모델이 소수 클래스의 패턴을 더 효과적으로 학습하게 함으로써, 전체적인 성능의 향상을 기대할 수 있습니다.1. 오버샘플링의 종류 1) 단순 무작위 복제이 방법은 가장 기본적인 오버샘플링 방식이에요. 마치 파티에 더 많은 손님을 초대하기 위해 친구들의 이름을 여러 번 적어넣는 것과 같죠. 간단하고 쉽지만, 너무 많이 같은 이름을 적으면 파티가 좀 지루해질 수 있어요.  2) SMOTE (Synthetic Minority Over-sampling Technique)SMOTE는 조금 더 복잡하지만 효과적인 방법이에요.이는 새로운 손님들을 만들어내는..

데이터 불균형

1. 데이터 불균형 데이터 불균형은 바로, 데이터 세상에서 일어나는 '불공평'한 일입니다.예를들어 한 가지 유형의 데이터가 너무 많고, 다른 유형은 너무 적을때의 상황입니다. 데이터 불균형은 특히 머신러닝 모델의 성능에 큰 영향을 미칩니다.머신러닝 모델은 데이터를 기반으로 학습하기 때문에 만약 모델이 특정 유형의 데이터만 많이 보고 배우면 다른 중요한 유형을 간과하거나 잘못 이해할 수 있습니다.2. 데이터 불균형의 예시 : 은행에서의 사기 여부 판별은행에서는 하루에 수천, 수만 건의 금융 거래가 일어납니다.이 중에서 대부분은 정상적인 거래들입니다만 가끔은 사기 거래도 섞여 있습니다.여기서 우리가 주목해야 할 부분은, 대부분의 거래가 정상이고 사기 거래는 극히 일부라는 것입니다.'클래스'는 여기서 거래 유..

피처 엔지니어링 입문

1. 데이터 불러오기bicycle = pd.read_csv('train.csv')display(bicycle.head())display(bicycle.info())display(f"{bicycle['date_time'].iloc[0]} ~ {bicycle['date_time'].iloc[-1]}") 2. 날짜 관련 피처 생성하기bicycle.info() 정보를 보면 'date_time' 컬럼이 'object'형으로 문자열(string) 타입임을 알 수 있습니다.모델에 수치형 변수를 넣고 학습시키기 위해선 문자열 타입을 숫자로 바꿔주는 작업이 필요합니다. def seperate_datetime(dataframe): year = [] month = [] day = [] for date ..

다변량 이상치

다변량 이상치다변량 이상치는 여러 특징을 함께 고려하여 찾는 것인데, 예를들어 사람의 키와 몸무게를 같이 고려하는 것입니다.대부분의 사람들이 키 대비 몸무게가 비슷비슷한데, 어떤 사람은 키에 비해 몸무게가 너무 적거나 많으면 그 사람은 다변량 이상치에 속하게 됩니다.예를 들어, 180cm에 50kg이거나 또는 160cm에 100kg인 경우가 이에 해당할 것입니다.1. 이상치 탐지를 위한 흡연 여부 예측 데이터셋 준비import pandas as pdimport numpy as npfrom sklearn.model_selection import train_test_splittrain = pd.read_csv('train.csv')X = train.drop('label', axis=1)y = train['l..

단변량 이상치

1. 단변량 이상치 탐지 기법1.1 Z-Score (Z-점수)Z-Score는 데이터에서 표준 편차를 활용해 이상치를 감지하는 간단하면서도 강력한 방법입니다.이 방법은 데이터를 표준화하고, 각 데이터 포인트가 평균으로부터 얼마나 떨어져 있는지를 계산하여 이상치를 식별합니다. 특히 표준화된 데이터 세트에 효과적입니다. 1.2 IQR (Interquartile Range, 사분범위)IQR은 데이터의 중앙값을 기준으로 하여 '정상 범위'를 벗어나는 데이터 포인트를 찾아냅니다.Q1(제1사분위수)과 Q3(제3사분위수)를 계산하고, 이를 기반으로 IQR을 구한 후, IQR을 이용하여 이상치를 탐지합니다.2. Z-Score2.1. Z-Score 란?Z-Score는 데이터 포인트가 데이터 세트의 평균으로부터 얼마나 떨어..

데이터 전처리 입문

1. 데이터 전처리 입문 1.1 데이터 전처리데이터 전처리는 머신러능 모델 학습을 시작하기 전에 수행되는 데이터 준비과정입니다.이 과정에는 누락된 값 처리, 데이터 정규화, 이상치 처리, 데이터 변환, 노이즈 제거 등 다양한 방법이 있습니다.데이터 전처리 과정을 통해 정제된 데이터를 얻을 수 있고 모델의 예측 정확도와 일반화 능력을 향상시킬 수 있습니다. 1.2 데이터 전처리 주의사항데이터를 너무 많이 제거하거나 변형시킬 경우 중요한 정보가 손실될 수 있습니다.전처리 과정을 일관되게 적용하지 않을 경우 데이터의 품질을 떨어뜨릴 수 있습니다.2. 결측치 2.1 결측치결측치는 데이터셋에서 값이 누락된 항목을 의미하는데, 데이터가 수집되거나 저장과정 중에 제대로 기록되지 않아 발생합니다.결측치는 데이터 분석과..

머신러닝 입문

1. 머신러닝의 정의1.1 머신러닝머신러닝은 데이터를 기반으로 패턴을 자동으로 학습하고, 입력 데이터와 출력 데이터 사이의 관계를 모델링하는 인공지능의 한 분야입니다.수학적 모델을 사용하여 데이터를 분석하고, 데이터셋의 특징을 파악한 후 모델을 만들어 새로운 데이터에 대한 예측이나 분류를 수행합니다. 1.2 머신러닝의 장점선형 모델과 같은 일부 모델의 결과는 해석이 용이하여 의사결정에 도움이 됩니다.또한, 자동화 과정에서 반복적인 작업들을 머신러닝 모델을 통해 자동화할 수 있어 생상성과 효율성을 높일 수 있으며, 다양한 알고리즘을 선택할 수 있어 다양한 문제에 적합한 해결책을 제공할 수 있습니다. 1.3 주의사항머신러닝 모델은 대량의 고품질 데이터에 크게 의존합니다.데이터가 불충분하거나 편향되어 있으면,..