Rekayasa fitur pada data terkelompok
Sekarang Anda akan melanjutkan latihan sebelumnya dengan mempertimbangkan satu fitur tambahan: jumlah protokol unik yang digunakan oleh setiap komputer sumber. Perhatikan bahwa pada data terkelompok, selalu mungkin untuk membangun fitur dengan cara ini: Anda dapat mengambil jumlah elemen unik dari semua kolom kategorikal, dan rata-rata dari semua kolom numerik sebagai titik awal. Seperti sebelumnya, flows telah dimuat, cross_val_score() untuk mengukur akurasi, AdaBoostClassifier(), pandas sebagai pd, dan numpy sebagai np.
Latihan ini adalah bagian dari kursus
Merancang Alur Kerja Machine Learning di Python
Petunjuk latihan
- Terapkan fungsi
lambdapada iterator grup yang disediakan untuk menghitung jumlah protokol unik yang digunakan oleh setiap komputer sumber. Anda dapat menggunakanset()untuk mereduksi kolomprotocolmenjadi himpunan nilai unik. - Konversikan hasilnya menjadi data frame dengan bentuk yang benar dengan memberikan indeks dan menamai kolomnya
protocol. - Konkatenasikan data frame baru dengan yang lama, yang tersedia sebagai
X. - Nilai akurasi
AdaBoostClassifier()pada himpunan data baru ini menggunakancross_val_score().
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Create a feature counting unique protocols per source
protocols = flows.groupby('source_computer').apply(
lambda df: ____)
# Convert this feature into a dataframe, naming the column
protocols_DF = pd.DataFrame(
protocols, index=____, columns=____)
# Now concatenate this feature with the previous dataset, X
X_more = pd.concat([X, ____], axis=____)
# Refit the classifier and report its accuracy
print(____(____(
AdaBoostClassifier(), ____, y)))