인공지능

[Keras] to_categorial 함수

sujin7837 2021. 2. 19. 21:50
반응형

to_categorial 함수

-keras.utils.np_utils 패키지에 있는 to_categorial 함수는 one_hot 인코딩을 해주는 함수입니다. one-hot 인코딩은 10진 정수 형식을 특수한 2진 바이너리 형식으로 변경하는 것입니다. 파라미터로 값에 크기만큼 0으로 된 배열을 만들고, 파라미터 값 위치에만 1(hot)을 넣어줍니다.

-to_categorial 함수의 첫 번째 인자는 파라미터 값의 위치(1이 들어갈 위치), 두 번째 인자는 배열의 크기, 세 번째 인자는 데이터 타입을 나타냅니다.

import pandas as pd
import tensorflow as tf

##########데이터 로드

#hour, attendance, grade
df = pd.DataFrame([
    [2, 1, 2],
    [3, 2, 2],
    [3, 4, 2],
    [5, 5, 1],
    [7, 5, 1],
    [2, 5, 2],
    [8, 9, 0],
    [9, 10, 0],
    [6, 12, 0],
    [9, 2, 1],
    [6, 10, 0],
    [2, 4, 2]
], columns=['hour', 'attendance', 'grade'])

##########데이터 분석

##########데이터 전처리

x_data = df.drop(['grade'], axis=1) 
y_data = df['grade']

y_data = tf.keras.utils.to_categorical(y_data)
print(y_data) 
'''
[[0. 0. 1.]
 [0. 0. 1.]
 [0. 0. 1.]
 [0. 1. 0.]
 [0. 1. 0.]
 [0. 0. 1.]
 [1. 0. 0.]
 [1. 0. 0.]
 [1. 0. 0.]
 [0. 1. 0.]
 [1. 0. 0.]
 [0. 0. 1.]]
'''
import tensorflow as tf

##########데이터 로드

x_data = [
    [2, 1],
    [3, 2],
    [3, 4],
    [5, 5],
    [7, 5],
    [2, 5],
    [8, 9],
    [9, 10],
    [6, 12],
    [9, 2],
    [6, 10],
    [2, 4]
]
y_data = [2, 2, 2, 1, 1, 2, 0, 0, 0, 1, 0, 2]
#y_data = [[2], [2], [2], [1], [1], [2], [0], [0], [0], [1], [0], [2]]

##########데이터 분석

##########데이터 전처리

y_data = tf.keras.utils.to_categorical(y_data)
print(y_data) 
'''
[[0. 0. 1.]
 [0. 0. 1.]
 [0. 0. 1.]
 [0. 1. 0.]
 [0. 1. 0.]
 [0. 0. 1.]
 [1. 0. 0.]
 [1. 0. 0.]
 [1. 0. 0.]
 [0. 1. 0.]
 [1. 0. 0.]
 [0. 0. 1.]]
'''

 

y_data = tf.keras.utils.to_categorical(y_data, num_classes=4)

import pandas as pd
import tensorflow as tf

##########데이터 로드

#hour, attendance, grade
df = pd.DataFrame([
    [2, 1, 2],
    [3, 2, 2],
    [3, 4, 2],
    [5, 5, 1],
    [7, 5, 1],
    [2, 5, 2],
    [8, 9, 0],
    [9, 10, 0],
    [6, 12, 0],
    [9, 2, 1],
    [6, 10, 0],
    [2, 4, 2]
], columns=['hour', 'attendance', 'grade'])

##########데이터 분석

##########데이터 전처리

x_data = df.drop(['grade'], axis=1) 
y_data = df['grade']

y_data = tf.keras.utils.to_categorical(y_data, num_classes=4)
print(y_data) 
'''
[[0. 0. 1. 0.]
 [0. 0. 1. 0.]
 [0. 0. 1. 0.]
 [0. 1. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [1. 0. 0. 0.]
 [1. 0. 0. 0.]
 [1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [1. 0. 0. 0.]
 [0. 0. 1. 0.]]
'''
import tensorflow as tf

##########데이터 로드

x_data = [
    [2, 1],
    [3, 2],
    [3, 4],
    [5, 5],
    [7, 5],
    [2, 5],
    [8, 9],
    [9, 10],
    [6, 12],
    [9, 2],
    [6, 10],
    [2, 4]
]
y_data = [2, 2, 2, 1, 1, 2, 0, 0, 0, 1, 0, 2]
#y_data = [[2], [2], [2], [1], [1], [2], [0], [0], [0], [1], [0], [2]]

##########데이터 분석

##########데이터 전처리

y_data = tf.keras.utils.to_categorical(y_data, num_classes=4)
print(y_data) 
'''
[[0. 0. 1. 0.]
 [0. 0. 1. 0.]
 [0. 0. 1. 0.]
 [0. 1. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [1. 0. 0. 0.]
 [1. 0. 0. 0.]
 [1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [1. 0. 0. 0.]
 [0. 0. 1. 0.]]
'''

 

 

출처: wikidocs.net/74664,

blog.naver.com/PostView.nhn?blogId=ksg97031&logNo=221302568652

반응형