Baru-baru ini saya membuat sedikit di aplikasi browser yang dapat Anda gunakan untuk bermain dengan ide-ide ini: Scatterplot Smoothers (*).
Berikut adalah beberapa data yang saya buat, dengan tingkat polinomial yang rendah
Jelas bahwa polinomial kuadrat tidak cukup fleksibel untuk memberikan data yang cocok. Kami memiliki daerah dengan bias sangat tinggi, antara dan semua data di bawah fit, dan setelah semua data berada di atas kurva.0,85 0,850,60,850,85
Untuk menghilangkan bias, kita dapat meningkatkan derajat kurva menjadi tiga, tetapi masalahnya tetap, kurva kubik masih terlalu kaku
Jadi kami terus meningkatkan derajat, tetapi sekarang kami mengalami masalah yang berlawanan
Kurva ini melacak data terlalu dekat, dan memiliki kecenderungan untuk terbang ke arah yang tidak begitu baik ditunjukkan oleh pola umum dalam data. Di sinilah regularisasi masuk. Dengan kurva derajat yang sama (sepuluh) dan beberapa regularisasi dipilih dengan baik
Kami mendapatkan yang sangat bagus!
Perlu sedikit fokus pada satu aspek yang dipilih dengan baik di atas. Ketika Anda menyesuaikan polinomial dengan data, Anda memiliki serangkaian pilihan untuk gelar. Jika kurva derajat tiga underfit dan kurva derajat empat overfit, Anda tidak punya tempat lain di tengah. Regularisasi menyelesaikan masalah ini, karena memberikan Anda berbagai parameter kompleksitas yang berkesinambungan untuk dimainkan.
bagaimana Anda mengklaim "Kami mendapatkan hasil yang sangat bagus!". Bagi saya mereka semua terlihat sama, yaitu tidak dapat disimpulkan. Rasional mana yang Anda gunakan untuk memutuskan mana yang bagus dan tidak pas?
Titik adil.
Asumsi yang saya buat di sini adalah bahwa model yang cocok seharusnya tidak memiliki pola yang jelas dalam residu. Sekarang, saya tidak merencanakan residu, jadi Anda harus melakukan sedikit pekerjaan saat melihat gambar, tetapi Anda harus dapat menggunakan imajinasi Anda.
Pada gambar pertama, dengan kurva kuadrat yang cocok dengan data, saya dapat melihat pola berikut dalam residual
- Dari 0,0 hingga 0,3 mereka ditempatkan secara merata di atas dan di bawah kurva.
- Dari 0,3 hingga sekitar 0,55 semua titik data berada di atas kurva.
- Dari 0,55 hingga sekitar 0,85 semua titik data berada di bawah kurva.
- Dari 0,85 dan seterusnya, mereka semua berada di atas kurva lagi.
Saya menyebut perilaku ini sebagai bias lokal , ada daerah di mana kurva tidak mendekati rata-rata kondisional data.
Bandingkan ini dengan pas terakhir, dengan spline kubik. Saya tidak dapat memilih daerah mana pun dengan mata yang cocok tidak terlihat tepat melalui pusat massa titik data. Ini umumnya (meskipun tidak tepat) yang saya maksud dengan kecocokan.
Catatan Akhir : Ambil semua ini sebagai ilustrasi. Dalam praktiknya, saya tidak merekomendasikan menggunakan ekspansi basis polinomial untuk tingkat lebih tinggi dari . Masalah mereka dibahas dengan baik di tempat lain, tetapi, misalnya:2
- Perilaku mereka di batas data Anda bisa sangat kacau, bahkan dengan regularisasi.
- Mereka bukan lokal dalam arti apa pun. Mengubah data Anda di satu tempat dapat secara signifikan memengaruhi kecocokan di tempat yang sangat berbeda.
Sebagai gantinya, saya dalam situasi seperti yang Anda gambarkan, merekomendasikan menggunakan spline kubik alami bersama dengan regularisasi, yang memberikan kompromi terbaik antara fleksibilitas dan stabilitas. Anda dapat melihatnya sendiri dengan memasang beberapa splines di aplikasi.
(*) Saya percaya ini hanya bekerja di chrome dan firefox karena saya menggunakan beberapa fitur javascript modern (dan kemalasan keseluruhan untuk memperbaikinya dalam safari dan ie). Kode sumber ada di sini , jika Anda tertarik.