入力値が
[[0.3,"blue"]
[0.5,"red"]
[0.1,yellow"]
[0.7,"green"]]
のような場合の正規化は
[[0.3,0.0]
[0.5,0.33]
[0.1,0.67]
[0.7,1.0]]
で合ってますか?
2列目の値はどこからきたのでしょうか?
正規化は0以上1以下の数値に置き換えるものだと認識しています。
よって数値的な特徴のない色の要素を4分割した数値(0.333ごと)で置き換えています。
色っていうと数値データをイメージしますが、色を表す単語を数値にしたいということでしょうか?
そうです
色の種類が予めいくつか決まっているのであれば、one-hot 表現で数値化するのが一般的ではないでしょうか
https://www.codexa.net/get_dummies/
ちなみに「数値データでないものを数値化すること」と「正規化」は別の話です。質問者さんがやらなければならないことは正規化ではなく、前者です。
[[0.3,[1,0,0,0]]
[0.5,[0,1,0,0]]
[0.1,[0,0,1,0]]
[0.7,[0,0,0,1]]]
ということですか?numpyのndarrayになりません。
コード全体がどうなっているのか不明ですが、
[[0.3,1,0,0,0],
[0.5,0,1,0,0],
[0.1,0,0,1,0],
[0.7,0,0,0,1]]
となるようにコードを書けばいいと思います
初心者質問に丁寧に回答いただきありがとうございました。
質問者さん
blue→0.0
red→0.33
green→1.0
のような数値化をすると、
・「red」は「green」よりも「blue」に近い
・「red」は「blue」と「green」の間である
みたいな意味が(質問者さんにそういう意図が無くても)生じてしまいます
tiitoiさんが紹介した「one-hot表現」なら、そのようなことは生じませんので、順番とか距離とかの意味が勝手に生じてしまうとまずい場合は、そうします
あなたの回答
tips
プレビュー