실습 3회차

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(아이리스)
인코딩.head()

print(인코딩.columns)

# 독립변수, 종속변수
독립 = 인코딩[['꽃잎길이', '꽃잎폭', '꽃받침길이', '꽃받침폭']]
종속 = 인코딩[['품종_setosa', '품종_versicolor', '품종_virginica']]
print(독립.shape, 종속.shape)

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. 데이터로 모델을 학습 한다.
model.fit(독립, 종속, epochs=1000)

model.predict(독립[0:5])

print(종속[0:5])

#학습한 가중치
model.get_weights()

범주화 데이터 변환

인코딩 = pd.get_dummies(아이리스)
인코딩.head()

소프트맥스 함수 사용

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')

결과

model.predict(독립[0:5])
array([[9.9998069e-01, 1.9271389e-05, 3.8648112e-12],
       [9.9982738e-01, 1.7263557e-04, 1.3001746e-10],
       [9.9994361e-01, 5.6370383e-05, 2.9580630e-11],
       [9.9973112e-01, 2.6883400e-04, 3.1293579e-10],
       [9.9998569e-01, 1.4359864e-05, 2.6887982e-12]], dtype=float32)

추가 코드

#학습한 가중치
model.get_weights()