ケアレス.utils.to_categoricalとone hotフォーマット解析


ケアレス.utils.to_categoricalという方法は、ソースの中で、このように書かれています。
Coverts a class vector(integers)to binary clast marix.
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_です。クラスはタイプの総数です。
これは分かりやすいです。
npで1000*1次元の値が0-9のマトリクスを生成してから、kers.utils.to_を通過します。categorical方法は1000×10次元の二元行列になります。
y_trin=kers.utils.to_categorical(np.random.radint(10,size=(1000,1))、num_clases=10)
こんなに多いと言っていますが、実はonehotを使ってタイプラベルをエンコードします。以下もこのように解釈します。
one hotコードは、カテゴリ変数をマシン学習アルゴリズムに変換して利用しやすい形式のプロセスである。
例を通して、この概念がより分かりやすいかもしれません。
もし私たちがミニデータセットを持っているとします。
社名分類値価格
VW 1 20000
Acura 2 10011
Honda 3 50000
Honda 3 10000
ここで、カテゴリ値は、データセット項目に割り当てられた数値番号です。例えば、私たちがデータ集中に新たに会社に入社したら、この会社に新しいタイプの価値を4つあげます。ユニークなエントリが増加すると、カテゴリ値は比例して増加します。
上記の表の中で、カテゴリ値は1から始まり、日常生活の習慣に合っています。実際のプロジェクトでは、カテゴリ値は0から開始されます(ほとんどのコンピュータシステムのカウント)ので、Nカテゴリがあれば、カテゴリ値は0からN-1までです。
slearのLabel Encersはこのカテゴリの値配分作業を完了するのを手伝ってくれます。
これからもone hotコードについて議論していきます。上記のデータセットをone hotコード化した後、以下のように表します。
VW Acura Honda価格
1 0,20000
0 1 0 10011
0 0 1 50000
0 0 1 10000
簡単に言えば、**ケアレス.utils.to_categorical関数はカテゴリラベルをone hotコードに変換します。
Onehotコードはコンピューター処理に便利な二元コードです。
補足知識:シーケンス前処理:シーケンス充填のpad_sequences()とone-hotの転化のケミカル.utils.to_categorical
tenssorflow文書処理において、paddingとone-hotの操作がしばしば現れるので、以下の2つの方法が有効で常用される方法です。
一、kers.preprocessing.sequence.pad_sequences()

例:

>>>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)
二、ケアレス.utils.to_categorical
to_categorical(y,num_clases=None,dtype='float 32')
全体のラベルをone hotに変えます。yはint配列、num_clasesはラベルカテゴリの総数で、max(y)(ラベルは0から開始します)。
もしnum_clases=Noneは、len(y)*[max(y)+1](次元、m*nはm行n列行列、以下同じ)を返します。そうでないとlen(y)*num_クラスes話が複雑になりますが、次の例を見てください。

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.]]
"""
以上のこのkers.utils.to_categoricalとone hot形式解析は小編集が皆さんに提供した内容の全部です。参考にしていただければと思います。よろしくお願いします。