728x90
반응형
반응형
1. 지도 학습(Supervised Learning)이란?
지도 학습은 머신 러닝의 한 종류로, **입력 데이터(Input)**와 이에 상응하는 **정답 데이터(Output)**를 사용하여 학습하는 알고리즘입니다. 모델은 주어진 데이터를 학습한 후, 새로운 데이터에 대한 예측을 수행합니다.
- 입력 데이터(X): 모델이 학습할 특징(Features) 데이터
- 정답 데이터(y): 각 입력 데이터에 대한 실제 정답(Label)
# Data Preprocessing Template
# Importing the libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
2. 지도 학습의 주요 유형
2-1. 회귀(Regression)
목표: 연속적인 값을 예측
- 예시:
- 주택 가격 예측
- 주식 시장 예측
- 대표 알고리즘:
- 선형 회귀(Linear Regression)
- 결정 트리 회귀(Decision Tree Regressor)
- 랜덤 포레스트 회귀(Random Forest Regressor)
- 서포트 벡터 회귀(SVR)
2-2. 분류(Classification)
- 목표: 데이터가 특정 카테고리에 속하는지 분류
- 예시:
- 이메일 스팸 여부 분류(스팸/정상)
- 이미지 속 객체 분류(고양이/강아지/새 등)
- 대표 알고리즘:
- 로지스틱 회귀(Logistic Regression)
- 결정 트리(Classification Tree)
- 랜덤 포레스트(Random Forest Classifier)
- 서포트 벡터 머신(SVM)
- K-최근접 이웃(KNN)
3. 지도 학습의 주요 단계
3-1.데이터 준비
- 데이터를 불러오고 전처리 수행
- 결측값 처리, 이상치 제거, 범주형 변수 인코딩, 데이터 정규화/표준화
df=pd.read_csv('../data/Data.csv')
df['Country'].unique()
출력
array(['France', 'Spain', 'Germany'], dtype=object)
3-2.NaN 유무확인
3-3.NaN 처리
- 삭제
- 다른값으로 채우기
df = df.dropna()
df.dropna(inplace = True) 위와 같은 방법
df.fillna(df.mean(numeric_only = True))
삭제하는 방법을 선택
TIP💡
Feature Scaling
- 정규화 (Normalization):
- 데이터를 0과 1 사이의 범위로 변환합니다.
- 공식: (x - min(x)) / (max(x) - min(x))
- 주로 이미지 처리나 신경망에서 사용됩니다.
- 표준화 (Standardization):
- 데이터를 평균 0, 표준편차 1로 변환합니다.
- 공식: (x - μ) / σ (μ: 평균, σ: 표준편차)
- 대부분의 머신러닝 알고리즘에서 사용됩니다.
3-4. X, Y 데이터 분리
y = df['Purchased']
X = df.loc[ :,'Country':'Salary']
3-5. 인코딩
카테코리컬 데이터에서 종류가 3개 이상이면, 원핫 인코딩을 해야하고,
종류가 2개이이면, 0과 1로만 바꾸면 됩니다.
X['Country'].nunique()
# 3
y.nunique()
#2
3개 이상 => 원핫 인코딩진행 을 위해 정렬진행합니다.
정렬
sorted(X['Country'].unique())
#['France', 'Germany', 'Spain']
from sklearn.preprocessing import LabelEncoder,OneHotEncoder
from sklearn.compose import ColumnTransformer
# 원화 인코딩
# 컬럼 트랜스포머를 만들때는, 튜플의 세번째에, 원하는 컬럼 인텍스를 넣는다.
ct = ColumnTransformer( [ ( 'encoder',OneHotEncoder(), [ 0 ] )],remainder = 'passthrough')
# 형태변환
X = ct.fit_transform(X)
X
출력
# 레이블 인코딩한다.
encoder = LabelEncoder()
# 형태변환
y = encoder.fit_transform(y)
y
출력
3-6. 데이터분할
- 학습 데이터(Training Data): 모델 학습에 사용
- 검증 데이터(Validation Data): 모델 성능 평가 및 하이퍼파라미터 조정에 사용
- 테스트 데이터(Test Data): 최종 모델 성능 평가
- 일반적으로 train_test_split 함수로 데이터를 분할
from sklearn.model_selection import train_test_split
# random_state = 결과값 같게 세팅
train_test_split(X, y, test_size = 0.2, random_state = 24)
sccaler_X = StandardScaler()
X = sccaler_X.fit_transform( X )
X
728x90
반응형
'AI > 실습' 카테고리의 다른 글
127. [Python] [Multiple Linear Regression] : 병원 진료비 예측 (Regression) (1) | 2025.01.28 |
---|---|
126. [Python] [Multiple Linear Regression] : 이커머스(온라인 쇼핑몰) 상품 일간 판매량 예측 (0) | 2025.01.27 |
121. [Python] [Pandas] 프로그래밍 실습 : 범죄현장 (1) | 2025.01.25 |
120. [Python] [Pandas] 프로그래밍 실습 : 구글맵API 연동 (0) | 2025.01.24 |
119. [Python] [Pandas] 프로그래밍 실습 : (피어슨 상관 계수)CCTV (0) | 2025.01.24 |