Baru-baru ini saya telah belajar bahwa salah satu cara untuk menemukan solusi yang lebih baik untuk masalah ML adalah dengan membuat fitur. Seseorang dapat melakukannya dengan, misalnya, menjumlahkan dua fitur.
Sebagai contoh, kami memiliki dua fitur "serangan" dan "pertahanan" semacam pahlawan. Kami kemudian membuat fitur tambahan yang disebut "total" yang merupakan jumlah dari "serangan" dan "pertahanan". Sekarang yang menurut saya aneh adalah bahwa "serangan" dan "pertahanan" yang tangguh sekalipun hampir sepenuhnya berkorelasi dengan "total" kita masih mendapatkan informasi yang bermanfaat.
Apa matematika di balik itu? Atau apakah saya beralasan salah?
Selain itu, apakah itu bukan masalah, untuk pengklasifikasi seperti kNN, bahwa "total" akan selalu lebih besar dari "serangan" atau "pertahanan"? Jadi, bahkan setelah standarisasi kita akan memiliki fitur yang mengandung nilai dari rentang yang berbeda?
sumber
Jawaban:
Anda mempertanyakan judul dan isinya sepertinya tidak cocok untuk saya. Jika Anda menggunakan model linier, tambahkan fitur total selain serangan dan pertahanan akan memperburuk keadaan.
Pertama saya akan menjawab mengapa fitur rekayasa bekerja secara umum.
Sebuah gambar bernilai ribuan kata. Gambar ini dapat memberi tahu Anda beberapa wawasan tentang rekayasa fitur dan mengapa ia bekerja ( sumber gambar ):
Data dalam koordinat Cartesian lebih rumit, dan relatif sulit untuk menulis aturan / membangun model untuk mengklasifikasikan dua jenis.
Data dalam koordinat Polar jauh lebih mudah :, kita dapat menulis aturan sederhana tentang untuk mengklasifikasikan dua jenis.r
Ini memberi tahu kami bahwa representasi data sangat penting. Di ruang tertentu, jauh lebih mudah untuk melakukan tugas-tugas tertentu daripada ruang lain.
Di sini saya menjawab pertanyaan yang disebutkan dalam contoh Anda (total pada serangan dan pertahanan)
Bahkan, rekayasa fitur yang disebutkan dalam contoh serangan dan pertahanan ini, tidak akan bekerja dengan baik untuk banyak model seperti model linier dan itu akan menyebabkan beberapa masalah. Lihat Multikolinearitas . Di sisi lain, rekayasa fitur tersebut dapat bekerja pada model lain, seperti pohon keputusan / hutan acak. Lihat jawaban @ Imran untuk detailnya.
Jadi, jawabannya adalah tergantung pada model yang Anda gunakan, beberapa rekayasa fitur akan membantu pada beberapa model, tetapi tidak untuk model lain.
sumber
Jenis model yang kami gunakan mungkin tidak terlalu efisien untuk mempelajari kombinasi fitur tertentu yang ada.
Sebagai contoh, perhatikan contoh Anda di mana fitur berada0 a + d< 0 1 a + d≥ 0
a
dand
, dan kami menggunakan pohon keputusan untuk memprediksi hasil biner yang akan menjadi jika dan jika .a + d < 0 1 a + d ≥ 0Karena pohon keputusan hanya dapat dibagi sepanjang sumbu fitur individual, model kami pada akhirnya akan mencoba membangun tangga agar sesuai dengan garis, yang akan terlihat seperti ini:
Seperti yang Anda lihat ini tidak akan menggeneralisasi dengan sempurna ke data baru. Kita dapat memiliki lingkaran di atas garis keputusan sebenarnya yang berada di bawah batas keputusan kita dan sebaliknya untuk persilangan.
Namun, jika kita menambahkan
a+d
sebagai fitur maka masalahnya menjadi sepele untuk pohon keputusan. Itu dapat mengabaikan individua
dand
fitur dan memecahkan masalah dengana+d<0
tunggul keputusan tunggal .Namun, jika Anda menggunakan regresi linier, maka model Anda akan benar-benar mampu mempelajari tanpa menambahkan fitur tambahan.a + d
Singkatnya, fitur tambahan tertentu dapat membantu tergantung pada jenis model yang Anda gunakan, dan Anda harus berhati-hati untuk mempertimbangkan data dan model ketika fitur teknik.
sumber
a
dand
akan cukup dan menambahkana+d
sebagai fitur tidak akan membuat perbedaan.total
total
attack
defense
attack
defense
total
attack
total
defense
Jika Anda ingin membakukan prediktor Anda, Anda harus melakukannya setelah semuanya dibuat.
sumber
[attack, defense, total]
tentu saja peringkat 2. Saya bisa membayangkan dalam sesuatu seperti model linier yang dihukum itu bisa membuat perbedaan, tetapi itu didasarkan pada intuisi daripada sepenuhnya bekerja melewatinya. Bisakah Anda menjelaskan mengapa jikaattack
dandefense
tidak berkorelasi kuattotal
(yang terjadi ketikaattack
dandefense
berkorelasi negatif sangat), mengapatotal
dapat membantu?total
tidak perlu berkorelasi kuat denganattack
ataudefense
, tetapi Anda tidak akan pernah menggunakan dua prediktor dan jumlah mereka dalam model yang sama, karena linier ketergantungan, dengan menyiratkan korelasi yang kuat antara beberapa dua dari tiga.Untuk memberikan jawaban umum, rekayasa fitur dalam kebanyakan kasus adalah tentang mengekstraksi fitur yang berarti dari data Anda, jadi jika Anda memberikan lebih banyak informasi ke model Anda, itu jelas harus berperilaku lebih baik. Katakan bahwa data Anda terdiri dari alamat email dalam bentuk '[email protected]'. Jika Anda menggunakannya sebagaimana adanya dalam model Anda, setiap orang akan ditandai dengan email unik, jadi ini tidak akan banyak memberi tahu kami. Itu hanya memberi tahu kita bahwa satu email mungkin milik orang yang berbeda dari yang lain. Dengan rekayasa fitur, dari alamat seperti itu Anda dapat mengekstrak informasi tentang kemungkinan jenis kelamin (nama), latar belakang keluarga dan etnis (nama keluarga), kebangsaan (domain) dan banyak lagi - ini memberi Anda cukup banyak informasi, bukan?
sumber
Apa yang ingin Anda capai dengan total "fitur" Anda ? Jika Anda hanya membandingkan pahlawan, serangan dan pertahanan mungkin lebih bermanfaat. Jika Anda akan menemukan tipe build (bagaimana ofensif berorientasi versus seberapa defensif berorientasi) berguna, mungkin serangan / pertahanan akan lebih berguna. Atau mungkin MyAttack - YourDefense lebih berguna.
Itu benar-benar tergantung pada tujuan Anda dan bermuara pada Anda menyuntikkan pengetahuan tambahan ke masalah sehingga Anda bisa mendapatkan jawaban yang lebih baik. Anda mungkin pernah mendengar orang-orang melempar log dan kuadrat dan rasio dan segala macam cara Anda bisa membuat fitur, tetapi intinya adalah bahwa "berguna" tergantung pada tugas yang ada dan melibatkan mengubah data yang Anda miliki menjadi domain di mana keputusan diambil lebih sederhana.
sumber