Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 신경쓰기의 기술
- pandas profiling
- kaggle
- 웨어하우스 보관 최적화
- TensorFlowGPU
- 코딩테스트연습
- Labor Management System
- SKU Consolidation
- 데이터분석
- Inventory Optimization
- 프로그래머스
- HackerRank
- SQL
- Product Demand
- 파이썬
- 딥러닝
- oracle
- leetcode
- 당신의 인생이 왜 힘들지 않아야 한다고 생각하십니까
- ABC Analysis
- MS SQL Server
- MySQL
- eda
- Gaimification
- 피그마인디언
- ProfileReport
- ModelCheckPoint
- tensorflow
- 코딩테스트
- forecast
Archives
- Today
- Total
오늘도 배운다
피마 인디언 데이터 분석 - TensorFlow로 모델 학습 / 모두의 딥러닝 본문
머신러닝&딥러닝/모두의 딥러닝 구현 기록
피마 인디언 데이터 분석 - TensorFlow로 모델 학습 / 모두의 딥러닝
LearnerToRunner 2022. 12. 5. 20:21목표
피그마 인디언 당뇨병 여부 예측하는 모델 생성하기
불러오기
import os
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.callbacks import ModelCheckpoint
from tensorflow.keras.callbacks import EarlyStopping
import numpy as np
import tensorflow as tf
import pandas as pd
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt
시드설정
tf.random.set_seed(1)
데이터셋 불러오기
df = pd.read_csv('pima-indians-diabetes3.csv')
y = df['diabetes']
x = df.drop(columns = ['diabetes'])
표준화
scaler = StandardScaler()
x_prcd = scaler.fit_transform(x) #표준화된 X
모델생성
### 모델 생성
input_dim = len(x.columns.tolist())
model = Sequential()
model.add(Dense(50, input_dim= input_dim, activation='relu')) # 500개의 노드 생성, input feature가 8개, 활성화 함수는 relu로 사용
model.add(Dense(10, activation= 'relu'))
model.add(Dense(1, activation= 'sigmoid'))
하이퍼 패러미터 설정 / 컴파일
### 모델 컴파일 및 요약정보 확인
params = {'optimizer':'adam', 'lr': 0.1,'loss': 'binary_crossentropy', 'metrics':['accuracy'], 'epoch': 100, 'batch_size':10, 'validation_split': 0.3}
model.compile(loss=params['loss'], optimizer=params['optimizer'], metrics=params['metrics'])
model.summary()
모델 저장 위치 및 이름 설정
MODEL_DIR = './models/'
if not os.path.exists(MODEL_DIR):
os.mkdir(MODEL_DIR)
model_name = MODEL_DIR+'{epoch:02d}-{val_loss:.4f}.hdf5'
모델 콜백 셋업
# 체크포인터
check_pointer = ModelCheckpoint(filepath=model_name, monitor='val_loss', verbose=1, save_best_only=True)
# 얼리스타핑
early_stopping = EarlyStopping(monitor='val_loss', min_delta = 0.01, patience=50, verbose=1)
학습
result = model.fit(x_prcd, y, epochs=params['epoch'], batch_size=params['batch_size'], validation_split=params['validation_split'], callbacks=[check_pointer, early_stopping])
학습결과 시각화
# LOG
acc = result.history['accuracy']
loss = result.history['loss']
val_loss = result.history['val_loss']
val_acc = result.history['val_accuracy']
### 시각화
e = np.arange(len(val_acc))
plt.plot(e, acc, label = 'accuracy')
plt.plot(e, loss, label = 'loss')
plt.plot(e, val_acc, label = 'val_accuracy')
plt.plot(e, val_loss, label = 'val_loss')
plt.legend()
plt.show()
728x90
'머신러닝&딥러닝 > 모두의 딥러닝 구현 기록' 카테고리의 다른 글
피마 인디언 데이터 분석 - AutoViz로 탐색적 데이터 분석(EDA) / 모두의 딥러닝 (0) | 2022.12.01 |
---|
Comments