中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

keras.utils.to_categorical和one hot格式是怎么樣的

發布時間:2020-07-02 14:23:20 來源:億速云 閱讀:319 作者:清晨 欄目:開發技術

小編給大家分享一下keras.utils.to_categorical和one hot格式是怎么樣的,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討方法吧!

keras.utils.to_categorical這個方法,源碼中,它是這樣寫的:

Converts a class vector (integers) to binary class matrix.

E.g. for use with categorical_crossentropy.

也就是說它是對于一個類型的容器(整型)的轉化為二元類型矩陣。比如用來計算多類別交叉熵來使用的。

其參數也很簡單:

def to_categorical(y, num_classes=None): 
Arguments 
y: class vector to be converted into a matrix 
(integers from 0 to num_classes). 
num_classes: total number of classes.

說的很明白了,y就是待轉換容器(其類型為從0到類型數目),而num_classes則是類型的總數。

這樣這一句就比較容易理解了:

先通過np生成一個1000*1維的其值為0-9的矩陣,然后再通過keras.utils.to_categorical方法獲取成一個1000*10維的二元矩陣。

y_train = keras.utils.to_categorical(np.random.randint(10, size=(1000, 1)), num_classes=10)

說了這么多,其實就是使用onehot對類型標簽進行編碼。下面的也都是這樣解釋。

one hot編碼是將類別變量轉換為機器學習算法易于利用的一種形式的過程。

通過例子可能更容易理解這個概念。

假設我們有一個迷你數據集:

公司名 類別值 價格
VW 1 20000
Acura 2 10011
Honda 3 50000
Honda 3 10000

其中,類別值是分配給數據集中條目的數值編號。比如,如果我們在數據集中新加入一個公司,那么我們會給這家公司一個新類別值4。當獨特的條目增加時,類別值將成比例增加。

在上面的表格中,類別值從1開始,更符合日常生活中的習慣。實際項目中,類別值從0開始(因為大多數計算機系統計數),所以,如果有N個類別,類別值為0至N-1.

sklear的LabelEncoder可以幫我們完成這一類別值分配工作。

現在讓我們繼續討論one hot編碼,將以上數據集one hot編碼后,我們得到的表示如下:

VW Acura Honda 價格
1 0 0 20000
0 1 0 10011
0 0 1 50000
0 0 1 10000

簡單來說:**keras.utils.to_categorical函數是把類別標簽轉換為onehot編碼(categorical就是類別標簽的意思,表示現實世界中你分類的各類別),

而onehot編碼是一種方便計算機處理的二元編碼。**

補充知識:序列預處理:序列填充之pad_sequences()和one-hot轉化之keras.utils.to_categorical()

tensorflow文本處理中,經常會將 padding 和 one-hot 操作共同出現,所以以下兩種方法為有效且常用的方法:

一、keras.preprocessing.sequence.pad_sequences()

keras.utils.to_categorical和one hot格式是怎么樣的

實例:

>>>list_1 = [[2,3,4]]
>>>keras.preprocessing.sequence.pad_sequences(list_1, maxlen=10)
array([[0, 0, 0, 0, 0, 0, 0, 2, 3, 4]], dtype=int32)

>>>list_2 = [[1,2,3,4,5]]
>>>keras.preprocessing.sequence.pad_sequences(list_2, maxlen=10)
array([[0, 0, 0, 0, 0, 1, 2, 3, 4, 5]], dtype=int32)

二、keras.utils.to_categorical()

to_categorical(y, num_classes=None, dtype='float32')

將整型標簽轉為onehot。y為int數組,num_classes為標簽類別總數,大于max(y)(標簽從0開始的)。

返回:如果num_classes=None,返回len(y) * [max(y)+1](維度,m*n表示m行n列矩陣,下同),否則為len(y) * num_classes。說出來顯得復雜,請看下面實例。

import keras

ohl=keras.utils.to_categorical([1,3])
# ohl=keras.utils.to_categorical([[1],[3]])
print(ohl)
"""
[[0. 1. 0. 0.]
 [0. 0. 0. 1.]]
"""
ohl=keras.utils.to_categorical([1,3],num_classes=5)
print(ohl)
"""
[[0. 1. 0. 0. 0.]
 [0. 0. 0. 1. 0.]]
"""

看完了這篇文章,相信你對keras.utils.to_categorical和one hot格式是怎么樣的有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

池州市| 昭平县| 楚雄市| 中江县| 民乐县| 威信县| 信阳市| 福清市| 盐池县| 湘潭市| 历史| 武陟县| 开鲁县| 陆河县| 通河县| 施甸县| 榆社县| 宜都市| 甘洛县| 台东市| 乌兰县| 临西县| 文安县| 集贤县| 石柱| 伊宁市| 博乐市| 酒泉市| 乡城县| 安化县| 永定县| 天全县| 肥乡县| 丘北县| 广丰县| 蛟河市| 社会| 长宁县| 黄浦区| 榆林市| 石狮市|