본문 바로가기
파이썬. 머신러닝/sklearn

분류 분석 모델링 (MinMaxScaler, LabelEncoder, train_test_split)

by 한국수달보호협회장 2024. 10. 12.

 

 

 

import matplotlib.pylab as plt
import seaborn as sns
import numpy as np
import pandas as pd

penguins = sns.load_dataset('penguins')
penguins

 

 

penguins = penguins.dropna().reset_index(drop=True)
penguins

 

 

 

 

MinMaxScaler로 정규화

수치들을 0 ~ 1로 바꿔준다.

 

정규화 참고

https://beneagain.tistory.com/183

 

sklearn : 전처리 스케일링(Scaling) - 정규화(Normalization)

본격적인 머신러닝을 배우다보니 새로운 단어를 많이 접했는데, 일반적으로도 사용되는 통계용어다. 수치를 분석할 때 단위나 스케일 차이가 크면 학습모델 성능이 저하된다. 데이터 단위를 맞

beneagain.tistory.com

 

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()

features = penguins[['bill_length_mm','bill_depth_mm','flipper_length_mm','body_mass_g']]
features_normed = scaler.fit_transform(features)

penguins = penguins.assign(bill_length_mm = features_normed[:, 0],
                           bill_depth_mm = features_normed[:, 1],
                           flipper_length_mm = features_normed[:, 2],
                           body_mass_g = features_normed[:, 3])
penguins

 

 

 

 

 

 

 

from sklearn.preprocessing import LabelEncoder
encoder = LabelEncoder()

features = penguins[['species', 'island', 'sex']]
encoded = features.apply(encoder.fit_transform)

penguins = penguins.assign(species = encoded['species'],
                           island = encoded['island'],
                           sex = encoded['sex'])
penguins

 

 

 

 

from sklearn.model_selection import train_test_split

X = penguins.drop('sex', axis=1)
Y = penguins['sex']

X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, shuffle=True)