Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Melakukan Pengekodan Label Merentas Berbilang Lajur dalam Scikit-Learn?
Pengekodan Label merentas Berbilang Lajur dalam Scikit-Learn
Apabila berurusan dengan set data yang mengandungi berbilang lajur data kategori, ia menjadi perlu untuk mengekod ini label secara berangka untuk digunakan dalam algoritma pembelajaran mesin. Scikit-learn menyediakan kelas LabelEncoder untuk tujuan ini. Walau bagaimanapun, penggunaannya secara langsung pada DataFrame dengan banyak lajur (cth., 50) boleh menyebabkan ralat disebabkan bentuk input yang salah.
Untuk mengatasi cabaran ini, cara yang elegan untuk melaksanakan pengekodan label merentas semua lajur secara serentak ialah:
df.apply(LabelEncoder().fit_transform)
Sebagai alternatif, terutamanya untuk scikit-learn versi 0.20 dan ke atas, pertimbangkan untuk menggunakan OneHotEncoder:
OneHotEncoder().fit_transform(df)
OneHotEncoder secara asli menyokong input rentetan dan menjana vektor berkod satu panas .
Sebagai alternatif, jika anda memerlukan kawalan ke atas kejadian LabelEncoder untuk lajur yang berbeza atau hanya perlu mengekod subset lajur, anda boleh menggunakan ColumnTransformer:
from sklearn.compose import ColumnTransformer from sklearn.preprocessing import LabelEncoder transformer = ColumnTransformer( transformers=[('labels', LabelEncoder(), ['column1', 'column2'])], ) transformed_data = transformer.fit_transform(df)
Dengan menggunakan ColumnTransformer, anda boleh nyatakan lajur untuk dikodkan dan kekalkan kejadian LabelEncoder yang berasingan, membolehkan lebih fleksibiliti dalam penyediaan data anda.
Atas ialah kandungan terperinci Bagaimana untuk Melakukan Pengekodan Label Merentas Berbilang Lajur dalam Scikit-Learn?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!