본문 바로가기
코딩공부/Machine Learning

머신러닝 이진 논리회귀 순서 / TIL_221011

by Dong_Devlog 2022. 10. 11.

이진 논리회귀 일 경우 머신러닝 실습 순서

 

  • 데이터 다운받기

kaggle 유저네임과 키 값으로 접속하여 실습해볼 데이터셋 다운로드 후 압축풀기

import os
os.environ['KAGGLE_USERNAME'] = 'username' # username
os.environ['KAGGLE_KEY'] = 'key' # key

!kaggle datasets download -d test
!unzip test

 

  • 이진 논리회귀에 필요한 패키이 임포트
from tensorflow.keras.models import Sequential
...
from sklearn.preprocessing import StandardScaler

 

  • 데이터 로딩하기
df = pd.read_csv('test.csv')

 

  • 전처리하기

전처리는 넓은 범위의 데이터 정체 작업을 뜻함.

필요 없는 데이터를 지우고, null 값이 있는 행 삭제, 정규화, 표준화 작업을 포함.

 

- 불필요한 컬럼을 빼고 사용할 컬럼만 추출

df = pd.read_csv('test.csv', usecols=[
  'Age', # 나이
  ...
  '2urvived' # 생존 여부 (0: 사망, 1: 생존)
])

 

- 비어 있는 행이 있다면 드랍

df = df.dropna()

 

- X,Y 데이터 분할하기

x_data = df.drop(columns=['2urvived'], axis=1)
x_data = x_data.astype(np.float32)

y_data = df[['2urvived']]
y_data = y_data.astype(np.float32)

 

- 표준화하기

scaler = StandardScaler()
x_data_scaled = scaler.fit_transform(x_data)

 

- 학습/검증 데이터 분할하기

x_train, x_val, y_train, y_val = train_test_split(x_data, y_data, test_size=0.2, random_state=2021)

 

  • 모델 학습시키기
model = Sequential([
  Dense(1, activation='sigmoid')
])

model.compile(loss='binary_crossentropy', optimizer=Adam(lr=0.01), metrics=['acc'])

model.fit(
    x_train,
    y_train,
    validation_data=(x_val, y_val),
    epochs=20
)

댓글