Pengekodan Label Berbilang Lajur DataFrame dengan Scikit-Learn
Apabila bekerja dengan label rentetan dalam DataFrame panda, selalunya perlu mengekodnya ke dalam integer untuk keserasian dengan algoritma pembelajaran mesin. LabelEncoder Scikit-learn ialah alat yang mudah untuk tugas ini, tetapi menggunakan berbilang objek LabelEncoder untuk setiap lajur boleh membosankan.
Untuk memintas ini, anda boleh memanfaatkan pendekatan berikut:
df.apply(LabelEncoder().fit_transform)
Ini menggunakan LabelEncoder pada setiap lajur dalam DataFrame, dengan berkesan mengekod semua label rentetan integer.
Pengekodan Dipertingkatkan dengan OneHotEncoder
Dalam versi terbaru Scikit-Learn (0.20 dan ke atas), kelas OneHotEncoder() disyorkan untuk input rentetan pengekodan label :
OneHotEncoder().fit_transform(df)
OneHotEncoder menyediakan one-hot yang cekap pengekodan, yang selalunya diperlukan untuk data kategori.
Operasi Songsang dan Transformasi
Untuk mengubah songsang atau mengubah label yang dikodkan, anda boleh menggunakan teknik berikut:
from collections import defaultdict d = defaultdict(LabelEncoder) # Encoding fit = df.apply(lambda x: d[x.name].fit_transform(x)) # Inverse transform fit.apply(lambda x: d[x.name].inverse_transform(x)) # Transform future data df.apply(lambda x: d[x.name].transform(x))
from sklearn.preprocessing import ColumnTransformer, OneHotEncoder # Select specific columns for encoding encoder = OneHotEncoder() transformer = ColumnTransformer(transformers=[('ohe', encoder, ['col1', 'col2', 'col3'])]) # Transform the DataFrame encoded_df = transformer.fit_transform(df)
from neuraxle.preprocessing import FlattenForEach # Flatten all columns and apply LabelEncoder encoded_df = FlattenForEach(LabelEncoder(), then_unflatten=True).fit_transform(df)
Bergantung pada keperluan khusus anda, anda boleh memilih kaedah yang paling sesuai untuk pengekodan label berbilang lajur dalam Scikit-Learn.
Atas ialah kandungan terperinci Bagaimana untuk Mengekodkan Berbilang Lajur DataFrame dengan Cekap dengan Scikit-Learn?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!