import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 데이터 프레임에서 모든 컬럼 표시(None : 모든 컬럼을 전부 표시함)
pd.set_option("display.max_columns", None)
# delimiter : 데이터 파일에서 구분자를 설정해주는 명령
data = pd.read_csv("/content/drive/MyDrive/Colab Notebooks/빅데이터 13차(딥러닝)/data/student-mat.csv", delimiter = ";")
data
# 문제, 정답 분리
X = data['studytime'] # 문제
y = data['G3'] # 정답
X.shape, y.shape
((395,), (395,))
# 학습, 평가 데이터 분리
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state = 5)
print(X_train.shape)
print(y_train.shape)
print(X_test.shape)
print(y_test.shape)
(276,)
(276,)
(119,)
(119,)
# Sequential : 신경망의 뼈대를 구축하기 위한 모듈
from tensorflow.keras import Sequential
# InputLayer : 신경망의 입력층을 생성(데이터가 들어오는 입구 부분)
# Dense : 신경망에서 뉴런들의 묶음을 생성(층을 쌓아주는 역할)
from tensorflow.keras.layers import InputLayer, Dense
# 1. 신경망 구조 설계
# 신경망 뼈대 설정
model = Sequential()
# 입력층 설정
# input_shape : 입력 데이터의 특성 형태를 설정(특성이 1개면 1)
model.add(InputLayer(input_shape=(1,)))
# 출력층 설정
# Dense 안의 숫자는 하나의 층에 생성해줄 뉴런의 수
model.add(Dense(1))
# 설계된 신경망의 정보를 요약해서 출력
model.summary()
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense (Dense) (None, 1) 2
=================================================================
Total params: 2
Trainable params: 2
Non-trainable params: 0
_________________________________________________________________
# 2.신경망 학습 및 평가방법 설정
model.compile(loss='mse', # 손실함수(=비용함수) : MSE(평균제곱오차), 회귀문제이기 때문에 MSE를 사용
optimizer='SGD' # 최적화함수 : 경사하강법의 방법을 설정(SGD : 확률적 경사하강법), 딥러닝에서는 최소 SGD이상 사용
)
# 3.학습
h = model.fit(X_train, y_train,
epochs=100 # epochs : 학습 횟수 설정
)
# 3. 시각화
plt.figure(figsize=(15,5))
# 라인 차트 생성
plt.plot(h.history['loss'],
label='loss'
)
plt.legend()
plt.show

# 4.모델평가
model.evaluate(X_test, y_test)
4/4 [==============================] - 2s 7ms/step - loss: 21.9250
21.924957275390625
'딥러닝' 카테고리의 다른 글
[딥러닝] Iris 품종 분류 (0) | 2022.07.18 |
---|---|
[딥러닝] 유방암 데이터분류(keras) (0) | 2022.07.18 |
[딥러닝] 활성화 함수(Activation Function) (0) | 2022.07.14 |
[딥러닝] 퍼셉트론, 다층 퍼셉트론(Perceptron, MLP) (0) | 2022.07.14 |
[딥러닝] 개요 (0) | 2022.07.12 |