Scikit-Learn을 활용한 데이터 전처리 및 모델 평가
전처리(preprocessing)
는 데이터를 모델에 적합하게 변환하는 과정입니다.
머신러닝 모델을 학습시키기 전에, 학습 데이터를 준비하고 전처리하는 작업이 필요합니다.
Scikit-Learn
은 데이터 전처리를 위한 다양한 기능을 제공하며, 모델 평가를 위한 지표도 제공합니다.
데이터 전처리
데이터를 전처리하는 과정은 다음과 같은 단계로 이루어집니다.
결측값 처리
결측값은 데이터셋에 비어 있는 값이 존재하는 경우를 의미합니다.
데이터셋에 비어 있는 값이 있는 경우, 평균이나 중앙값으로 채울 수 있습니다.
from sklearn.impute import SimpleImputer
import numpy as np
data = np.array([[1, 2, np.nan], [4, np.nan, 6]])
imputer = SimpleImputer(strategy="mean")
filled_data = imputer.fit_transform(data)
특성 스케일링
특성 스케일링은 모든 특성의 범위를 동일하게 만드는 작업입니다.
특성 값의 크기가 다르면 모델 성능이 저하될 수 있으므로, 정규화를 통해 특성의 범위를 일정하게 만들어줍니다.
from sklearn.preprocessing import StandardScaler
X = np.array([[1, 100], [2, 200], [3, 300]])
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
print(X_scaled)
위 코드에서 StandardScaler
는 평균이 0, 표준편차가 1이 되도록 특성을 변환합니다.
따라서 X_scaled
는 평균이 0, 표준편차가 1인 값으로 변환됩니다.
모델 평가
모델 성능을 평가하는 다양한 지표가 존재합니다.
분류 모델 평가
분류 모델은 데이터를 여러 클래스로 분류하는 모델입니다.
정확도(Accuracy)를 계산하여 모델이 얼마나 올바르게 예측했는지 확인합니다.
from sklearn.metrics import accuracy_score
y_true = [0, 1, 1, 0]
y_pred = [0, 1, 0, 0]
accuracy = accuracy_score(y_true, y_pred)
print(f"정확도: {accuracy:.2f}")
정확도는 예측값과 실제값이 일치하는 비율로, 값이 높을수록 모델의 성능이 좋다고 할 수 있습니다.
회귀 모델 평가
회귀 분석은 데이터 변수들간에 관계를 파악하여 통계적으로 예측하는 것을 뜻합니다.
회귀 모델은 회귀 분석을 통해 예측한 값과 실제 값의 차이를 계산합니다.
from sklearn.metrics import mean_squared_error
y_true = [3.0, -0.5, 2.0, 7.0]
y_pred = [2.5, 0.0, 2.0, 8.0]
mse = mean_squared_error(y_true, y_pred)
print(f"MSE: {mse:.2f}")
위 코드는 평균 제곱 오차(Mean Squared Error, MSE)를 계산하여 예측값과 실제값의 차이를 측정합니다.
평균 제곱 오차는 예측값과 실제값의 차이를 제곱하여 평균한 값으로, 값이 작을수록 모델의 성능이 좋다고 할 수 있습니다.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!