Sains data dan pembelajaran mesin menjadi semakin popular, dan bilangan orang dalam bidang ini semakin meningkat setiap hari. Ini bermakna terdapat ramai saintis data yang tidak mempunyai banyak pengalaman membina model pembelajaran mesin pertama mereka, dan di sinilah kesilapan boleh berlaku.
Baru-baru ini, arkitek perisian, saintis data dan pakar Kaggle Agnis Liukis menulis artikel yang mana beliau bercakap tentang cara menyelesaikan beberapa kesilapan pemula yang paling biasa dalam skema pembelajaran mesin pemula memahami dan mengelakkannya.
Dengan lebih 15 tahun pengalaman seni bina dan pembangunan perisian, Agnis Liukis mahir dalam Bahasa seperti Java, JavaScript, Spring Boot, React.JS dan Python. Selain itu, Liukis juga berminat dalam sains data dan pembelajaran mesin Dia telah menyertai pertandingan Kaggle berkali-kali dan mencapai keputusan yang baik, dan telah mencapai tahap induk pertandingan Kaggle.
Berikut ialah kandungan artikel:
Normalkan data, kemudian dapatkan ciri dan masukkannya ke dalam model , sangat mudah untuk membiarkan model membuat ramalan. Tetapi dalam beberapa kes, hasil pendekatan mudah ini boleh mengecewakan kerana ia kehilangan bahagian yang sangat penting.
Sesetengah jenis model memerlukan penormalan data, seperti regresi linear, rangkaian neural klasik, dsb. Model jenis ini menggunakan nilai ciri untuk mendarabkan berat nilai latihan. Dalam kes ciri yang tidak dinormalkan, julat yang mungkin bagi satu nilai ciri mungkin berbeza daripada julat yang mungkin bagi nilai ciri yang lain.
Andaikan nilai satu ciri berada dalam julat [0, 0.001] dan nilai ciri lain berada dalam julat [100000, 200000]. Untuk model yang menjadikan dua ciri sama penting, berat ciri pertama akan menjadi 100 juta kali lebih besar daripada berat ciri kedua. Berat yang besar boleh menyebabkan masalah serius untuk model, seperti apabila terdapat beberapa kelebihan. Tambahan pula, menganggarkan kepentingan pelbagai ciri menjadi sukar kerana berat yang besar mungkin bermakna ciri itu penting, tetapi ini juga mungkin bermakna nilai cirinya adalah kecil.
Selepas normalisasi, nilai semua ciri berada dalam julat yang sama, biasanya [0, 1] atau [-1, 1]. Dalam kes ini, pemberat akan berada dalam julat yang sama dan hampir sepadan dengan kepentingan sebenar setiap ciri.
Secara keseluruhan, menggunakan penormalan data di mana diperlukan akan menghasilkan ramalan yang lebih baik dan tepat.
Sesetengah orang mungkin berpendapat bahawa menambah semua ciri adalah idea yang baik, memikirkan bahawa model akan memilih dan menggunakan secara automatik. ciri terbaik. Malah, idea ini sukar untuk menjadi kenyataan.
Semakin banyak ciri yang dimiliki oleh model, semakin besar risiko pemasangan berlebihan. Walaupun dalam data rawak sepenuhnya, model ini dapat mencari beberapa ciri (isyarat), walaupun kadangkala ia lebih lemah dan kadangkala ia lebih kuat. Sudah tentu, tiada isyarat sebenar dalam bunyi rawak. Tetapi jika kita mempunyai lajur bising yang mencukupi, model mungkin menggunakan sebahagian daripadanya berdasarkan isyarat kerosakan yang dikesan. Apabila ini berlaku, kualiti ramalan model akan merosot kerana sebahagiannya berdasarkan hingar rawak.
Terdapat banyak teknik untuk membantu kami dengan pemilihan ciri. Tetapi anda perlu ingat bahawa anda perlu menerangkan setiap ciri yang anda miliki dan sebab ciri itu akan membantu model anda.
Model berasaskan pokok mudah digunakan dan berkuasa, itulah sebabnya ia popular . Walau bagaimanapun, dalam beberapa kes mungkin salah untuk menggunakan model berasaskan pokok.
Model berasaskan pokok tidak boleh diekstrapolasi, nilai ramalan model ini tidak akan lebih besar daripada nilai maksimum dalam data latihan dan nilai output dalam latihan tidak akan pernah lebih kecil daripada nilai ramalan nilai minimum.
Dalam sesetengah tugas, kebolehan untuk mengekstrapolasi boleh menjadi sangat penting. Sebagai contoh, jika model meramalkan harga saham, harga saham mungkin lebih tinggi pada masa hadapan berbanding sebelum ini. Dalam kes ini, model berasaskan pokok tidak akan berguna secara langsung kerana ramalannya hampir melebihi harga sejarah tertinggi.
Terdapat pelbagai penyelesaian untuk masalah ini, satu penyelesaian adalah dengan meramalkan perubahan atau perbezaan dan bukannya meramalkan nilai secara langsung. Penyelesaian lain ialah menggunakan pelbagai jenis model untuk tugasan tersebut. Regresi linear atau rangkaian saraf boleh melakukan ekstrapolasi.
Artikel sebelumnya bercakap tentang keperluan penormalan data, tetapi ini tidak selalunya model berasaskan pokok tidak memerlukan data . Rangkaian saraf juga mungkin tidak memerlukan normalisasi eksplisit, kerana sesetengah rangkaian sudah menyertakan lapisan normalisasi secara dalaman, seperti operasi BatchNormalization perpustakaan Keras.
Dalam sesetengah kes, regresi linear pun mungkin tidak memerlukan penormalan data, yang bermaksud bahawa semua ciri sudah berada dalam julat nilai yang sama dan mempunyai makna yang sama. Sebagai contoh, jika model digunakan pada data siri masa dan semua ciri adalah nilai sejarah parameter yang sama.
Menyebabkan kebocoran data lebih mudah daripada yang orang fikirkan, pertimbangkan coretan kod berikut:
Contoh Ciri Kebocoran Data
Sebenar Kedua-dua ciri (sum_feature dan diff_feature) adalah tidak betul. Mereka membocorkan maklumat kerana selepas berpecah kepada set kereta api/ujian, bahagian dengan data latihan akan mengandungi beberapa maklumat daripada ujian. Ini akan menghasilkan skor pengesahan yang lebih tinggi, tetapi prestasi yang lebih buruk apabila digunakan pada model data sebenar.
Pendekatan yang betul adalah dengan mengasingkan set latihan/set ujian dahulu dan kemudian menggunakan fungsi penjanaan ciri. Secara amnya, ia adalah corak kejuruteraan ciri yang baik untuk memproses set latihan dan set ujian secara berasingan.
Dalam sesetengah kes, anda mungkin perlu menghantar beberapa maklumat antara kedua-duanya - contohnya, kami mungkin mahu menggunakan StandardScaler yang sama pada kedua-dua set ujian dan set latihan.
Secara keseluruhan, adalah baik untuk belajar daripada kesilapan anda, dan saya harap contoh kesilapan yang disediakan di atas akan membantu anda.
Atas ialah kandungan terperinci Ringkasan pengalaman 15 tahun sebagai arkitek perisian: Dalam bidang ML, lima masalah yang dihadapi oleh pemula. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!