OneHot編碼 Tensorflow實現和keras實現
阿新 • • 發佈:2019-02-09
tensorflow中tf.one_hot()函式的作用是將一個值化為一個概率分佈的向量,一般用於分類問題。
具體用法以及作用見以下程式碼:
結果:y_train_dataset = np.concatenate((y_dataset_cate1,y_dataset_cate6,y_dataset_cate7,y_dataset_cate10),axis=0) encoder = LabelEncoder() encoder.fit(y_train_dataset) y_train_dataset = encoder.transform(y_train_dataset) print y_train_dataset b = tf.one_hot(y_train_dataset,4,1,0) with tf.Session() as sess: sess.run(tf.global_variables_initializer()) sess.run(b) print('after one_hot',sess.run(b)) # y_train_dataset = np_utils.to_categorical(y_train_dataset,num_classes=4)
利用keras的 from keras.utils import np_utils可以實現相同的功能,程式碼如下:
y_train_dataset = np.concatenate((y_dataset_cate1,y_dataset_cate6,y_dataset_cate7,y_dataset_cate10),axis=0) encoder = LabelEncoder() encoder.fit(y_train_dataset) y_train_dataset = encoder.transform(y_train_dataset) y_train_dataset = np_utils.to_categorical(y_train_dataset,num_classes=4) print y_train_dataset
結果:
其中,共同用到了from sklearn.preprocessing import LabelEncoder
將原來的中文標籤轉換成數字,然後再分別用tf或者keras完成OneHot變換!