Rumah > Peranti teknologi > AI > Apakah satu pengekodan panas dan bagaimana melaksanakannya di Python

Apakah satu pengekodan panas dan bagaimana melaksanakannya di Python

Lisa Kudrow
Lepaskan: 2025-03-06 11:34:09
asal
714 orang telah melayarinya

Pembelajaran Mesin sering menemui cabaran pengendalian pembolehubah kategori (seperti warna, jenis produk, atau lokasi) kerana keutamaan algoritma untuk input berangka. Pengekodan satu panas menawarkan penyelesaian yang mantap.

Pengekodan satu-panas mengubah data kategori ke dalam vektor berangka. Setiap kategori unik mendapat lajur binari sendiri; A '1' menandakan kehadirannya, dan '0' ketiadaannya. Artikel ini meneroka pengekodan satu panas, kelebihannya, dan pelaksanaan python praktikal menggunakan pandas dan scikit-learn. Berminat dengan kurikulum pembelajaran mesin berstruktur? Terokai asas pembelajaran mesin empat kursus ini dengan trek Python.

Memahami pengekodan satu-panas

Pengekodan satu-panas menukarkan pembolehubah kategori ke dalam format mesra mesin-pembelajaran, meningkatkan ketepatan ramalan. Ia mewujudkan lajur binari baru untuk setiap kategori unik dalam ciri. A '1' atau '0' menunjukkan kehadiran atau ketiadaan kategori.

Pertimbangkan dataset dengan ciri 'warna' (merah, hijau, biru). Pengekodan satu panas mengubahnya seperti berikut:

What Is One Hot Encoding and How to Implement It in Python

lajur 'warna' asal digantikan oleh tiga lajur binari, satu untuk setiap warna. A '1' menunjukkan kehadiran warna dalam baris itu.

faedah pengekodan satu-panas

pengekodan satu-panas sangat penting dalam pra-proses data kerana ia:

  • Meningkatkan Keserasian Pembelajaran Mesin: Mengubah data kategori ke dalam format yang mudah difahami dan digunakan oleh model pembelajaran mesin. Setiap kategori dirawat secara bebas, menghalang hubungan palsu.
  • Mengelakkan isu-isu ordinal: Tidak seperti pengekodan label (memberikan nombor kepada kategori), pengekodan satu panas menghalang model daripada salah menafsirkan perintah atau kedudukan di mana tidak ada. Pengekodan label, memberikan 1 ke merah, 2 ke hijau, dan 3 hingga biru, mungkin palsu mencadangkan Green & GT; Merah. Pengekodan satu panas mengelakkan ini. Pengekodan label adalah sesuai untuk data ordinal yang sememangnya (mis., Tahap pendidikan: Sekolah Menengah, Sarjana Muda, Sarjana, PhD).

Melaksanakan pengekodan satu-panas dalam python

pandas dan scikit-learn memudahkan pengekodan satu panas di python.

pandas : get_dummies() kaedah mudah untuk pengekodan langsung.

import pandas as pd

data = {'Color': ['Red', 'Green', 'Blue', 'Red']}
df = pd.DataFrame(data)
df_encoded = pd.get_dummies(df, dtype=int)
print(df_encoded)
Salin selepas log masuk

What Is One Hot Encoding and How to Implement It in Python

Scikit-Learn's

: menawarkan lebih banyak kawalan, terutama untuk senario kompleks. OneHotEncoder

from sklearn.preprocessing import OneHotEncoder
import numpy as np

enc = OneHotEncoder(handle_unknown='ignore')
X = [['Red'], ['Green'], ['Blue']]
enc.fit(X)
result = enc.transform([['Red']]).toarray()
print(result)
Salin selepas log masuk
<code>[[1. 0. 0.]]</code>
Salin selepas log masuk
Mengendalikan ciri-ciri kardinaliti tinggi

Ciri-ciri kategori kardinaliti tinggi (banyak nilai unik) membentangkan cabaran ("Kutukan Dimensi"). Penyelesaian termasuk:

  • Ciri Hashing: Kategori hash ke dalam bilangan lajur tetap, menguruskan dimensi dengan cekap.
  • pengurangan dimensi (PCA): mengurangkan dimensi selepas pengekodan satu panas, memelihara maklumat penting.

Amalan Terbaik

  • Mengendalikan Kategori Tidak Dikenal: Scikit-- 🎜> mengendalikan kategori yang tidak kelihatan semasa penggunaan model menggunakan OneHotEncoder. handle_unknown='ignore'
  • menjatuhkan lajur asal: Elakkan multicollinearity dengan mengeluarkan lajur kategori asal selepas pengekodan satu panas.
  • vs OneHotEncoder: get_dummies() Pilih berdasarkan kerumitan; untuk kesederhanaan, get_dummies() untuk lebih banyak kawalan. OneHotEncoder

Kesimpulan

Pengekodan satu-panas adalah teknik penting untuk menyediakan data kategori untuk pembelajaran mesin. Ia meningkatkan ketepatan dan kecekapan model. Perpustakaan Python seperti Pandas dan Scikit-Learn menyediakan pelaksanaan yang cekap. Ingatlah untuk mempertimbangkan dimensi dan kategori yang tidak diketahui. Untuk pembelajaran selanjutnya, terokai pra -proses ini untuk pembelajaran mesin dalam kursus Python.

FAQs

  • Nilai yang hilang: Pengekodan satu-panas tidak mengendalikan nilai yang hilang secara langsung; alamat mereka terlebih dahulu.
  • kesesuaian:
  • sesuai untuk data nominal, kurang begitu untuk data ordinal.
  • dataset besar:
  • peningkatan dimensi boleh memberi kesan kepada prestasi; Gunakan Hashing Ciri atau Pengurangan Dimensi.
  • Data teks:
  • Embeddings Word atau TF-IDF sering disukai daripada pengekodan satu panas untuk teks.
  • memilih teknik pengekodan:
  • Pertimbangkan sifat data, keperluan model, dan kesan dimensi.

Atas ialah kandungan terperinci Apakah satu pengekodan panas dan bagaimana melaksanakannya di Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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