ホームページ  >  記事  >  バックエンド開発  >  NumPy でインデックス配列をワンホット エンコードするにはどうすればよいですか?

NumPy でインデックス配列をワンホット エンコードするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-30 22:50:03566ブラウズ

How to One-Hot Encode Index Arrays in NumPy?

NumPy でのインデックス配列のワンホット エンコーディング

インデックスの配列を指定すると、それをワンホット エンコードされた配列に変換できます。さまざまな機械学習アプリケーションに役立つテクニックです。ワンホット エンコーディングは、各インデックスをバイナリ ベクトルとして表します。インデックスの対応する要素は 1 で、その他の要素はすべて 0 です。この手法は、カテゴリ データを扱う場合、またはインデックスが特徴値として機能する状況で特に役立ちます。

NumPy でワンホット エンコーディングを実現するには、次の簡単なプロセスに従います。

  1. 十分な列を含むゼロで初期化された配列を作成します。ここで、列の数はインデックスの最大値と同じです。配列に 1 を加えたものです。
  2. 結果の配列の各行について、その行のインデックスに対応する列を 1 に設定します。

次の例を考えてみましょう。

<code class="python">a = np.array([1, 0, 3])
b = np.zeros((a.size, a.max() + 1))
b[np.arange(a.size), a] = 1</code>

この例では、インデックス配列 a の値は 0 から 3 までの範囲なので、4 列のゼロ埋め配列 b を作成します。次に、np.arange() 関数を使用して b の行インデックスの配列を生成し、a の値に基づいて適切な列を 1 に設定します。

結果の配列 b はワンホット エンコードされます。元のインデックス配列の表現 a:

array([[ 0.,  1.,  0.,  0.],
       [ 1.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  1.]])

このワンホット エンコードされた配列は、インデックス値のカテゴリカルな性質を保持し、機械学習アルゴリズムでの効率的な処理を可能にします。

以上がNumPy でインデックス配列をワンホット エンコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。