[tensorflow] #4. 여러 데이터로 정확도 조절하기

exoluse·2021년 10월 23일
0

python - tensorflow

목록 보기
4/7

아래와 같은 영어점수, 평점, 합불 데이터가 있다.

자세히 보면 같은 데이터의 중복이다.

텐서플로우 import, csv 읽기

import tensorflow as tf
import pandas as pd
import numpy as np

# pandas 엑셀 읽기
data = pd.read_csv('score.csv')

기준이 되는 데이터와 결과 데이터 저장

# x데이터 (영어점수, 평점)
xData = []
for i,rows in data.iterrows():
    xData.append( [ rows['eng_score'], rows['tot_score'] ] )

# y데이터(합불)
yData = data['yn'].values

뉴럴 네트워크의 레이어 설정

# layer의 갯수 세팅
model = tf.keras.models.Sequential([
    tf.keras.layers.Dense(64, activation='tanh'),
    tf.keras.layers.Dense(128, activation='tanh'),
    tf.keras.layers.Dense(1, activation='sigmoid')
])

뉴럴 네트워크의 최적화 알고리즘, 손실 알고리즘, 결과값 설정

model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'] )

모델에 넘파이 데이터 입력 및 루프 설정

1000번만 돌리자. 노트북 뜨거워진다...

model.fit( np.array(xData), np.array(yData), epochs=1000 )

모델 검증의 시간

# 영어점수와 학점으로 합불 예측
print(model.predict( [[9, 3.5]] ))
print(model.predict( [[9, 3.6]] ))
print(model.predict( [[9, 3.7]] ))
print(model.predict( [[9, 3.8]] ))
print(model.predict( [[9, 3.9]] ))

결과

영어점수 9점, 평점 4는 있지만 3.5는 없다. 그러나 3.6~3.9 구간의 합격 확률이 높아지는 것을 볼 수 있다.

[[0.08848792]]
[[0.21077263]]
[[0.40116122]]
[[0.60247815]]
[[0.7551091]]

0개의 댓글