import tensorflow as tf
print(tf.version)
버전확인
설치버전 확인하는 이유는?
프로젝트 진행시 이미 개방된 딥러닝 모델을 가져다 쓰는 경우
버전을 일치시켜줘야지 출돌나지 않음
!pwd
# 작업이랙토리 변경
# %cd : change directory (% 의미: 영구적실행)
%cd "/content/drive/MyDrive/Colab Notebooks/Deep Learning"
/content/drive/MyDrive/Colab Notebooks/Deep Learning
머신러닝과 딥러닝 모델 비교
실습
똑같은 데이터를 가지고 너신러닝 딥러닝 모델링을 통하여 차이점 알아보기~
공부시간에 따른 학생 수학설적을 예측하는 회귀모델 만들어보자
머신러닝
모델생성 (완성된 객체 사용) > 모델학습> 모델 예측 >모델 편가
완제품로봇 - 팔정도만 움직일 수 있음 (하이퍼파라미터 조정정도만 가능)
딥러닝
모델생성(모델을 직접 구성) > 모델 학습 > 모델 예측 > 모델 평가
조립식로복 (우리가 만들고 싶은 모양으로 구성 가능)
다양한 결과를 만들어 낼 수 있음
# 리이브러리 불러오기
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('./data/student-mat.csv', delimiter=';')
data
# 정답으로 사용할 컬럼 : G3 (3학년 성적)
# 학생 성적을 예측하는 모델링
# 티이블 정보확인
data.info()
# 결측치 유무
문제와정답로 분리
문제, 입력특성 1개: studytime
정답, 라벵 1 개: G3
#X: 독립변수, 문제, 특성,속성
#Y: 라벨, 타겟, 정답
x = data['studytime']
y = data['G3']
# train, test 분리
from sklearn.model_selection import train_test_split
x_train, x_test , y_train, y_test = train_test_split(x,y, random_state =3, test_size = 0.2)
#크기 확인
print ('훈련용 문제: ', x_train.shape )
print('훈련용 정답', y_train.shape)
print('테스트용 문제',x_test.shape)
print('테스트용 정답', y_test.shape)
훈련용 문제: (316,)
훈련용 정답 (316,)
테스트용 문제 (79,)
테스트용 정답 (79,)
# tensorflow 도구 불로오기
from tensorflow.keras.models import Sequential # 뼈대
# 레고시작할 때 바닥의 큰판이라고 생각라기 기준이 있어야함
from tensorflow.keras.layers import InputLayer, Dense, Activation
# 신경망 구성요소 (조립)
# InputLayer: 입력충
# dense: 중간층의 밀집도
#Activation: 활성화함수(인간을 모방하기 위해거 사용하는 함수)
# 1. 신경망 구조설계
# 뼈대생성 framㄷ
model = Sequential()
# add 기능을 사용해서 층을 하나씩 더해나가보자!
#입력층
model.add(InputLayer(input_shape = (1, ))) # 입력특성의 객수 입력
# 중간층 (은닉층)
model.add(Dense(units =10)) #뉴런 10개를 연결 -> 학습능력을 결정
#Dense: 신경망의 핵심파트
model.add(Activation('sigmoid')) #활성화함수
# 츨력층
model.add(Dense(units = 1)) #출력되는 데이터의 형태 설계
#2.신경망 학습방법 및 평가방법 설정
model.compile(loss = 'mean_squared_error', # 모델의 잘못된 정도를 측정하는 일고리즘
optimizer = 'SGD', metrics = ['mse'])
# loss : 모델이 얼마나 틀렸는지 정도를 알랴준다
# 회귀모델은 mse, 분류모델은 crossentropy 사용
# optimizer : 최적화방법 -> 경사하강법
# metrics: 최종 평가 방법 (회귀: mse)
# 3. 모델학습
h1= model.fit(x_train, y_train, validation_split = 0.2, epochs = 20)
# validation_split: 훈련데이터 내부에서 20%를 검증데이터로 사용하겠다
# epochs: 모델의 최적화 횟수 (w,b 값의 업데이트 횟수)
# h1에 담아주는 이유: 학습 history 출력을 위함
# 4. 모델 평가
model.evaluate(x_test, y_test)
# 머신러니엥서 score 와 같은 기능
# 매 회차마다의 오차(loss)값 시각화
h1.history['loss']
plt.figure(figsize = (10,5))
plt.plot(h1.history['loss'], label = 'train_loss')
plt.plot(h1.history['val_loss'], label = 'validation_loss')
plt.legend()
plt.show()
import tensorflow as tf
print(tf.version)
버전확인
설치버전 확인하는 이유는?
프로젝트 진행시 이미 개방된 딥러닝 모델을 가져다 쓰는 경우
버전을 일치시켜줘야지 출돌나지 않음
!pwd
# 작업이랙토리 변경
# %cd : change directory (% 의미: 영구적실행)
%cd "/content/drive/MyDrive/Colab Notebooks/Deep Learning"
/content/drive/MyDrive/Colab Notebooks/Deep Learning
머신러닝과 딥러닝 모델 비교
실습
똑같은 데이터를 가지고 너신러닝 딥러닝 모델링을 통하여 차이점 알아보기~
공부시간에 따른 학생 수학설적을 예측하는 회귀모델 만들어보자
머신러닝
모델생성 (완성된 객체 사용) > 모델학습> 모델 예측 >모델 편가
완제품로봇 - 팔정도만 움직일 수 있음 (하이퍼파라미터 조정정도만 가능)
딥러닝
모델생성(모델을 직접 구성) > 모델 학습 > 모델 예측 > 모델 평가
조립식로복 (우리가 만들고 싶은 모양으로 구성 가능)
다양한 결과를 만들어 낼 수 있음
# 리이브러리 불러오기
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('./data/student-mat.csv', delimiter=';')
data
# 정답으로 사용할 컬럼 : G3 (3학년 성적)
# 학생 성적을 예측하는 모델링
# 티이블 정보확인
data.info()
# 결측치 유무
문제와정답로 분리
문제, 입력특성 1개: studytime
정답, 라벵 1 개: G3
#X: 독립변수, 문제, 특성,속성
#Y: 라벨, 타겟, 정답
x = data['studytime']
y = data['G3']
# train, test 분리
from sklearn.model_selection import train_test_split
x_train, x_test , y_train, y_test = train_test_split(x,y, random_state =3, test_size = 0.2)
#크기 확인
print ('훈련용 문제: ', x_train.shape )
print('훈련용 정답', y_train.shape)
print('테스트용 문제',x_test.shape)
print('테스트용 정답', y_test.shape)
훈련용 문제: (316,)
훈련용 정답 (316,)
테스트용 문제 (79,)
테스트용 정답 (79,)
# tensorflow 도구 불로오기
from tensorflow.keras.models import Sequential # 뼈대
# 레고시작할 때 바닥의 큰판이라고 생각라기 기준이 있어야함
from tensorflow.keras.layers import InputLayer, Dense, Activation
# 신경망 구성요소 (조립)
# InputLayer: 입력충
# dense: 중간층의 밀집도
#Activation: 활성화함수(인간을 모방하기 위해거 사용하는 함수)
# 1. 신경망 구조설계
# 뼈대생성 framㄷ
model = Sequential()
# add 기능을 사용해서 층을 하나씩 더해나가보자!
#입력층
model.add(InputLayer(input_shape = (1, ))) # 입력특성의 객수 입력
# 중간층 (은닉층)
model.add(Dense(units =10)) #뉴런 10개를 연결 -> 학습능력을 결정
#Dense: 신경망의 핵심파트
model.add(Activation('sigmoid')) #활성화함수
# 츨력층
model.add(Dense(units = 1)) #출력되는 데이터의 형태 설계
#2.신경망 학습방법 및 평가방법 설정
model.compile(loss = 'mean_squared_error', # 모델의 잘못된 정도를 측정하는 일고리즘
optimizer = 'SGD', metrics = ['mse'])
# loss : 모델이 얼마나 틀렸는지 정도를 알랴준다
# 회귀모델은 mse, 분류모델은 crossentropy 사용
# optimizer : 최적화방법 -> 경사하강법
# metrics: 최종 평가 방법 (회귀: mse)
# 3. 모델학습
model.fit(x_train, y_train, validation_split = 0.2, epochs = 20)
# validation_split: 훈련데이터 내부에서 20%를 검증데이터로 사용하겠다
# epochs: 모델의 최적화 횟수 (w,b 값의 업데이트 횟수)
# h1에 담아주는 이유: 학습 history 출력을 위함
# 4. 모델 평가
model.evaluate(x_test, y_test)
# 머신러니엥서 score 와 같은 기능