✅ Scikit-Learn (sklearn) 이란?
- scikit-learn 사이킷런은 Python에서 가장 널리 사용되는 머신러닝 라이브러리 중 하나
- 간단하고 일관된 API를 통해 다양한 머신러닝 알고리즘을 사용할 수 있도록 도와줌

✅ 설치 방법
- pip install scikit-learn
✅ fit() / transform() / fit_transform() / inverse_transform()
- Python의 사이킷런에서 머신러닝 전처리 시 자주 쓰이는 메서드
- fit(): 데이터의 통계 정보(ex. 평균, 표준편차 등)를 계산해서 저장만 함 (변환 X) => return None
- transform(): 계산된 정보로 데이터 변환 => return ndarray (변환된 데이터)
- fit_transform(): fit() + transform() 저장하고 동시에 데이터를 변환 => return ndarray (변환된 데이터)
- inverse_transform(): 변환된 데이터를 원래 스케일로 되돌림 => return ndarray (되돌린 데이터)
❕ 예시
from sklearn.preprocessing import StandardScaler
# 학습/테스트 데이터 분할
(X_train, X_test, y_train, y_test) = train_test_split(fish_data, fish_target, test_size=0.2, random_state=42, stratify=fish_target)
# 학습/테스트 데이터 전처리(스케일링)
# 스케일러 객체 생성
scaler = StandardScaler()
# 다른 방식으로 바꾸고 싶으면 MinMaxScaler, RobustScaler 등의 다른 스케일러 사용
# StandardScaler는 오직 평균/표준편차 기반
# X_train의 속성별 평균/표준편차 구하는 fit
# 이를 토대로 실제 데이터를 변환하는 transform 작업을 한번에 진행
# ‼️fit + transform을 한 번에
X_train_scaled = scaler.fit_transform(X_train)
# 학습 환경과 테스트 환경은 동일하게 맞춰줘야 함
# 이미 scaler에 학습된(fit) 평균/표준편차를 토대로 테스트 데이터도 변경(transform)
# ‼️계산한 통계치로 변환
X_test_scaled = scaler.transform(X_test)
# 실제 길이, 무게가 아닌 표준점수로 표현됨
print(X_train_scaled)
# [[-1.58299969 -1.3623164 ]
# [-0.18349562 -0.64945483]
# [-1.53337188 -1.35864973]
# ...
print(X_test_scaled)
# [[-0.09416558 -0.50278807]
# [-1.53337188 -1.35834417]
# [ 0.6701026 0.70415714]
# ...
# 모델 생성/학습
kn_clf_new_new = KNeighborsClassifier()
# ‼️평균과 표준편차만 계산 (변환은 하지 않음)
kn_clf_new_new.fit(X_train_scaled, y_train)
kn_clf_new_new.score(X_test_scaled, y_test) # => 1.0 (100점)
📌 정리
- 훈련 데이터에는 fit_transfrom()
- 테스트 데이터에는 transform() ➡︎ 훈련 데이터로 fit 한 후, 테스트 데이터는 같은 기준으로 변환만 해야함
- 예측이나 분석 후 원래 값으로 복원하고 싶을 때는 inverse_transform() ➡︎ 모델 학습 전에 데이터를 정규화 또는 표준화하면 숫자의 범위가 바뀌기 때문에, 결과를 해석하거나 시각화할 때는 원래의 값으로 복원해야 할 수 있음
'개발 > Python' 카테고리의 다른 글
Python > Deep Learning > PyTorch (0) | 2025.06.03 |
---|---|
Python > Meachine Learning > cross_val_score, cross_validate (0) | 2025.06.03 |
DB > fetchmany, fetchone, fetchall (0) | 2025.04.27 |
🪄매직 메소드 __xxx__ (0) | 2025.04.17 |
🦭바다코끼리 연산자 (0) | 2025.04.13 |