Bagaimana untuk Satu-Hot Encode Index Arrays dalam NumPy?

Linda Hamilton
Lepaskan: 2024-10-30 22:50:03
asal
630 orang telah melayarinya

How to One-Hot Encode Index Arrays in NumPy?

Pengekodan Satu Panas Tatasusunan Indeks dalam NumPy

Memandangkan tatasusunan indeks, menukarnya menjadi tatasusunan terkod satu panas boleh teknik yang berguna untuk pelbagai aplikasi pembelajaran mesin. Pengekodan satu-panas mewakili setiap indeks sebagai vektor binari, di mana elemen sepadan indeks ialah 1 dan semua yang lain adalah 0. Teknik ini amat berharga apabila berurusan dengan data kategori atau dalam situasi di mana indeks berfungsi sebagai nilai ciri.

Untuk mencapai pengekodan satu-panas dalam NumPy, kami mengikuti proses mudah:

  1. Buat tatasusunan yang dimulakan sifar dengan lajur yang mencukupi, di mana bilangan lajur adalah sama dengan nilai maksimum indeks tatasusunan tambah satu.
  2. Untuk setiap baris dalam tatasusunan yang terhasil, tetapkan lajur yang sepadan dengan indeks pada baris itu kepada 1.

Pertimbangkan contoh yang disediakan:

<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>
Salin selepas log masuk

Dalam contoh ini, tatasusunan indeks a mempunyai nilai antara 0 hingga 3, jadi kami mencipta tatasusunan b diisi sifar dengan 4 lajur. Kami kemudian menggunakan fungsi np.arange() untuk menjana tatasusunan indeks baris untuk b dan menetapkan lajur yang sesuai kepada 1 berdasarkan nilai dalam a.

Tatasusunan b yang terhasil kini dikodkan satu-panas perwakilan tatasusunan indeks asal a:

array([[ 0.,  1.,  0.,  0.],
       [ 1.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  1.]])
Salin selepas log masuk

Tatasusunan berkod satu panas ini mengekalkan sifat kategori bagi nilai indeks dan membolehkan pemprosesan yang cekap dalam algoritma pembelajaran mesin.

Atas ialah kandungan terperinci Bagaimana untuk Satu-Hot Encode Index Arrays dalam NumPy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan