6 Teknik Teratas yang Digunakan dalam Rekayasa Fitur [Machine Learning]
Diterbitkan: 2021-03-12Daftar isi
pengantar
Rekayasa fitur adalah salah satu aspek terpenting dari setiap proyek ilmu data. Rekayasa fitur mengacu pada teknik yang digunakan untuk mengekstraksi dan menyempurnakan fitur dari data mentah. Teknik rekayasa fitur digunakan untuk membuat data masukan yang tepat untuk model dan untuk meningkatkan kinerja model.
Model dilatih dan dibangun di atas fitur yang kami peroleh dari data mentah untuk memberikan output yang diperlukan. Mungkin saja data yang kita miliki tidak cukup baik bagi model untuk mempelajari sesuatu darinya. Jika kami dapat memperoleh fitur yang menemukan solusi untuk masalah mendasar kami, itu akan menjadi representasi data yang baik. Representasi data yang lebih baik, kecocokan model yang lebih baik dan hasil yang lebih baik akan ditunjukkan oleh model.
Alur kerja proyek ilmu data apa pun adalah proses berulang, bukan proses satu kali. Di sebagian besar proyek ilmu data, model dasar dibuat setelah membuat dan menyempurnakan fitur dari data mentah. Setelah mendapatkan hasil model dasar, beberapa fitur yang ada dapat diubah, dan beberapa fitur baru juga diturunkan dari data untuk mengoptimalkan hasil model.
Rekayasa Fitur
Teknik yang digunakan dalam proses rekayasa fitur dapat memberikan hasil dengan cara yang sama untuk semua algoritma dan kumpulan data. Beberapa teknik umum yang digunakan dalam proses rekayasa fitur adalah sebagai berikut:
1. Transformasi Nilai
Nilai fitur dapat diubah menjadi beberapa metrik lain dengan menggunakan parameter seperti fungsi logaritmik, fungsi akar, fungsi eksponensial, dll. Ada beberapa batasan untuk fungsi ini dan mungkin tidak digunakan untuk semua jenis kumpulan data. Misalnya, transformasi akar atau transformasi logaritmik tidak dapat diterapkan pada fitur yang mengandung nilai negatif.
Salah satu fungsi yang sering digunakan adalah fungsi logaritma. Fungsi logaritma dapat membantu mengurangi kemiringan data yang mungkin miring ke satu ujung. Transformasi log cenderung menormalkan data yang mengurangi efek outlier pada kinerja model.
Ini juga membantu dalam mengurangi besarnya nilai dalam sebuah fitur. Ini berguna ketika kita menggunakan beberapa algoritme yang menganggap fitur dengan nilai lebih besar lebih penting daripada yang lain.
2. Imputasi Data
Imputasi data mengacu pada pengisian nilai yang hilang dalam kumpulan data dengan beberapa nilai statistik. Teknik ini penting karena beberapa algoritme tidak bekerja pada nilai yang hilang yang membatasi kita untuk menggunakan algoritme lain atau mengaitkan nilai yang hilang ini. Lebih disukai untuk menggunakannya jika persentase nilai yang hilang dalam suatu fitur lebih kecil (sekitar 5 hingga 10%) jika tidak, akan menyebabkan lebih banyak distorsi dalam distribusi data. Ada berbagai metode untuk melakukannya untuk fitur numerik dan kategoris.
Kita dapat menghitung nilai yang hilang dalam fitur numerik dengan nilai arbitrer dalam rentang tertentu atau dengan ukuran statistik seperti mean, median, dll. Imputasi ini harus dilakukan dengan hati-hati karena ukuran statistik rentan terhadap outlier yang akan menurunkan kinerja model . Untuk fitur kategorikal, kita dapat menghubungkan nilai yang hilang dengan kategori tambahan yang tidak ada dalam kumpulan data atau cukup menganggapnya sebagai hilang jika kategorinya tidak diketahui.
Yang pertama membutuhkan rasa pengetahuan domain yang baik untuk dapat menemukan kategori yang benar sedangkan yang kedua lebih merupakan alternatif untuk generalisasi. Kami juga dapat menggunakan mode untuk menghubungkan fitur kategoris. Menghubungkan data dengan mode juga dapat menyebabkan representasi berlebihan dari label yang paling sering terjadi jika nilai yang hilang terlalu tinggi jumlahnya.
Bergabunglah dengan kursus Kecerdasan Buatan online dari Universitas top Dunia – Magister, Program Pascasarjana Eksekutif, dan Program Sertifikat Tingkat Lanjut di ML & AI untuk mempercepat karier Anda.
3. Pengkodean Kategoris
Salah satu persyaratan dalam banyak algoritma adalah bahwa data input harus bersifat numerik. Ini ternyata menjadi kendala untuk menggunakan fitur kategoris dalam algoritma tersebut. Untuk merepresentasikan fitur kategorikal sebagai angka, kita perlu melakukan pengkodean kategoris. Beberapa metode untuk mengubah fitur kategorikal menjadi angka adalah sebagai berikut:
1. Encoding satu-panas: – Enkode satu-panas membuat fitur baru yang mengambil nilai (baik 0 atau 1) untuk setiap label dalam fitur kategoris. Fitur baru ini menunjukkan apakah label kategori tersebut ada untuk setiap pengamatan. Misalnya, asumsikan ada 4 label dalam fitur kategoris, maka setelah menerapkan penyandian satu-panas, itu akan membuat 4 fitur Boolean.
Jumlah informasi yang sama juga dapat diekstraksi dengan 3 fitur seolah-olah semua fitur mengandung 0, maka nilai fitur kategoris akan menjadi label ke-4. Penerapan metode ini meningkatkan ruang fitur jika ada banyak fitur kategoris dengan jumlah label yang tinggi dalam kumpulan data.
2. Pengkodean frekuensi: – Metode ini menghitung jumlah atau persentase setiap label dalam fitur kategorikal dan memetakannya ke label yang sama. Metode ini tidak memperluas ruang fitur dari kumpulan data. Salah satu kelemahan dari metode ini adalah jika dua atau lebih label memiliki jumlah yang sama dalam kumpulan data, itu akan memberikan peta nomor yang sama untuk semua label. Ini akan menyebabkan hilangnya informasi penting.
3. Pengkodean ordinal: – Juga dikenal sebagai pengkodean Label, metode ini memetakan nilai-nilai yang berbeda dari fitur kategoris dengan nomor mulai dari 0 sampai n-1, dengan n menjadi jumlah yang berbeda dari label dalam fitur tersebut. Metode ini tidak memperbesar ruang fitur dari kumpulan data. Tapi itu menciptakan hubungan ordinal di dalam label dalam sebuah fitur.
4. Penanganan Outlier
Pencilan adalah titik data yang nilainya sangat berbeda dari lot lainnya. Untuk menangani outlier ini, kita perlu mendeteksinya terlebih dahulu. Kita bisa mendeteksinya menggunakan visualisasi seperti box-plot dan scatter-plot dengan Python, atau kita bisa menggunakan interquartile range (IQR). Rentang interkuartil adalah selisih antara kuartal pertama (persentil ke-25) dan kuartal ketiga (persentil ke-75).
Nilai yang tidak termasuk dalam kisaran (Q1 – 1,5*IQR) dan (Q3 + 1,5*IQR) disebut sebagai outlier. Setelah mendeteksi outlier, kita dapat menanganinya dengan menghapusnya dari kumpulan data, menerapkan beberapa transformasi, memperlakukannya sebagai nilai yang hilang untuk menghubungkannya menggunakan beberapa metode, dll.
5. Penskalaan Fitur
Penskalaan fitur digunakan untuk mengubah nilai fitur dan membawanya ke dalam rentang. Penting untuk menerapkan proses ini jika kita menggunakan algoritma seperti SVM, Regresi linier, KNN, dll yang sensitif terhadap besarnya nilai. Untuk menskalakan fitur, kita dapat melakukan standarisasi, normalisasi, penskalaan min-maks. Normalisasi mengubah skala nilai rentang fitur dari -1 ke 1. Ini adalah rasio pengurangan setiap pengamatan dan rata-rata untuk pengurangan nilai maksimum dan minimum fitur itu. yaitu [X – mean(X)]/[max(X) – min(X)].
Dalam penskalaan min-max, ia menggunakan nilai minimum fitur alih-alih rata-rata. Metode ini sangat sensitif terhadap outlier karena hanya mempertimbangkan nilai akhir fitur. Standardisasi mengubah skala nilai fitur dari 0 menjadi 1. Ini tidak menormalkan distribusi data sedangkan metode sebelumnya akan melakukannya.
6. Menangani Variabel Tanggal dan Waktu
Kami menemukan banyak variabel yang menunjukkan tanggal dan waktu dalam format yang berbeda. Kami dapat memperoleh lebih banyak fitur dari tanggal seperti bulan, hari dalam seminggu/bulan, tahun, akhir pekan atau tidak, perbedaan antara tanggal, dll. Ini memungkinkan kami untuk mengekstrak informasi yang lebih mendalam dari kumpulan data. Dari fitur waktu, kami juga dapat mengekstrak informasi seperti jam, menit, detik, dll.
Satu hal yang kebanyakan orang lewatkan adalah bahwa semua variabel tanggal dan waktu adalah fitur siklus. Misalnya, kita perlu memeriksa hari mana antara Rabu (3) dan Sabtu (7) lebih dekat ke Minggu (menjadi 1). Sekarang kita tahu bahwa hari Sabtu lebih dekat tetapi secara numerik, itu akan menjadi hari Rabu karena jarak antara 3 dan 1 kurang dari 7 dan 1. Hal yang sama dapat diterapkan ketika format waktu dalam format 24 jam.
Untuk mengatasi masalah ini, kita dapat mengekspresikan variabel-variabel ini sebagai representasi dari fungsi sin dan cos. Untuk fitur 'menit', kita dapat menerapkan fungsi sin dan cos menggunakan NumPy untuk merepresentasikannya dalam sifat siklik sebagai berikut:
menit_fitur_sin = np.sin(df['menit_fitur']*(2*π/60))
menit_fitur_cos = np.cos(df['menit_fitur']*(2*π/60))
(Catatan: Bagi dengan 60 karena ada 60 menit dalam satu jam. Jika Anda ingin melakukannya selama berbulan-bulan, bagilah dengan 12 dan seterusnya)
Dengan memplot fitur-fitur ini pada plot pencar, Anda akan melihat bahwa fitur-fitur ini menunjukkan hubungan siklik di antara mereka.
Baca Juga: Ide & Topik Proyek Pembelajaran Mesin
Kesimpulan
Artikel ini berfokus pada pentingnya rekayasa fitur bersama dengan mengutip beberapa teknik umum yang digunakan dalam proses rekayasa fitur. Itu tergantung pada algoritme dan data yang ada untuk memutuskan teknik mana dari semua yang tercantum di atas akan memberikan wawasan yang lebih baik.
Tapi itu benar-benar sulit dan tidak aman untuk diasumsikan karena kumpulan data bisa berbeda dan algoritme yang digunakan untuk data juga bisa bervariasi. Pendekatan yang lebih baik adalah mengikuti pendekatan inkremental dan melacak model yang telah dibangun beserta hasilnya daripada melakukan rekayasa fitur secara sembarangan.
Jika Anda tertarik untuk mempelajari lebih lanjut tentang pembelajaran mesin, lihat Program PG Eksekutif IIIT-B & upGrad dalam Pembelajaran Mesin & AI yang dirancang untuk para profesional yang bekerja dan menawarkan 450+ jam pelatihan ketat, 30+ studi kasus & tugas, IIIT -B Status Alumni, 5+ proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.
Apa kerugian menggunakan teknik imputasi data berbasis median rata-rata?
Saat menggunakan imputasi rata-rata, hubungan dan korelasi antar variabel tidak dipertahankan. Tetapi memasukkan rata-rata mempertahankan rata-rata data yang diamati. Akibatnya, bahkan jika semua data hilang secara acak, perkiraan rata-rata akan tetap tidak bias. Varians dari variabel yang diperhitungkan dikurangi dengan menggunakan imputasi rata-rata. Imputasi rata-rata mengurangi kesalahan standar, membuat sebagian besar pengujian hipotesis dan perhitungan interval kepercayaan menjadi tidak akurat. Seperti ini, kesalahan tipe I dibuat secara tidak sadar.
Mengapa ekstraksi fitur diperlukan?
Ekstraksi fitur digunakan untuk menemukan kumpulan fitur terkecil dan paling informatif (pola yang berbeda) untuk meningkatkan efektivitas pengklasifikasi. Ekstraksi fitur membantu dalam pengurangan data yang tidak perlu dalam pengumpulan data sehingga penekanan hanya diberikan pada informasi dan fitur yang relevan. Terakhir, pengurangan data memudahkan mesin untuk mengembangkan model dengan sedikit usaha, serta mempercepat proses pembelajaran dan generalisasi dalam proses pembelajaran mesin. Aplikasi yang paling penting dari rekayasa fitur adalah dalam klasifikasi sinyal biomedis, di mana ekstraksi fitur merupakan elemen penting, karena jika fitur tidak dipilih dengan hati-hati, kinerja klasifikasi mungkin terganggu.
Apakah ada kekurangan menggunakan teknik ekstraksi fitur?
Ekstraksi fitur telah menghasilkan beberapa fitur baru yang tidak dapat dibaca atau dipahami oleh orang biasa. Skalabilitas adalah tantangan lain yang dihadapi selama ekstraksi fitur. Jika dataset besar, beberapa teknik ekstraksi fitur tidak akan dapat dijalankan. Pendekatan ekstraksi fitur non-linier yang kompleks, khususnya, tidak mungkin untuk diterapkan. Sebagian besar teknik mengandalkan beberapa bentuk pendekatan untuk menangani masalah pemilihan fitur secara efisien, yang dalam situasi tertentu tidak mampu menangani masalah yang tepat.