Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Satu-Hot Encode Index Arrays dalam NumPy?

Bagaimana untuk Satu-Hot Encode Index Arrays dalam NumPy?

Linda Hamilton
Linda Hamiltonasal
2024-10-30 22:50:03566semak imbas

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>

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.]])

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!

Kenyataan:
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