수업소개
아이리스 품종을 분류하는 딥러닝 모델을 텐서플로우를 이용하여 만들어 보고, 분류모델과 회귀모델의 차이점을 이해합니다. 범주형 변수의 처리 방법인 원핫인코딩을 해야하는 이유와 활성화함수 softmax를 사용하는 이유를 학습합니다.
강의
원핫인코딩
소프트맥스
실습
소스코드
########################### # 라이브러리 사용 import tensorflow as tf import pandas as pd ########################### # 1.과거의 데이터를 준비합니다. 파일경로 = 'https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/iris.csv' 아이리스 = pd.read_csv(파일경로) 아이리스.head() # 원핫인코딩 아이리스 = pd.get_dummies(아이리스) # 종속변수, 독립변수 독립 = 아이리스[['꽃잎길이', '꽃잎폭', '꽃받침길이', '꽃받침폭']] 종속 = 아이리스[['품종_setosa', '품종_versicolor', '품종_virginica']] print(독립.shape, 종속.shape) ########################### # 2. 모델의 구조를 만듭니다 X = tf.keras.layers.Input(shape=[4]) Y = tf.keras.layers.Dense(3, activation='softmax')(X) model = tf.keras.models.Model(X, Y) model.compile(loss='categorical_crossentropy', metrics='accuracy') ########################### # 3.데이터로 모델을 학습(FIT)합니다. model.fit(독립, 종속, epochs=1000, verbose=0) model.fit(독립, 종속, epochs=10) ########################### # 4. 모델을 이용합니다 # 맨 처음 데이터 5개 print(model.predict(독립[:5])) print(종속[:5]) # 맨 마지막 데이터 5개 print(model.predict(독립[-5:])) print(종속[-5:]) ########################### # weights & bias 출력 print(model.get_weights())