Apabila kami mencipta algoritma regresi dan ingin mengetahui sejauh mana keberkesanan model ini, kami menggunakan metrik ralat untuk mendapatkan nilai yang mewakili ralat model pembelajaran mesin kami. Metrik dalam artikel ini penting apabila kita ingin mengukur ralat model ramalan untuk nilai berangka (nyata, integer).
Dalam artikel ini kami akan merangkumi metrik ralat utama untuk algoritma regresi, melakukan pengiraan secara manual dalam Python dan mengukur ralat model pembelajaran mesin pada set data sebut harga dolar.
Kedua-dua metrik adalah sedikit serupa, di mana kami mempunyai metrik untuk purata dan peratusan ralat dan metrik untuk purata dan peratusan ralat mutlak, dibezakan supaya hanya satu kumpulan memperoleh nilai sebenar perbezaan dan satu lagi memperoleh nilai mutlak daripada perbezaan. Adalah penting untuk diingat bahawa dalam kedua-dua metrik, lebih rendah nilai, lebih baik ramalan kami.
Metrik SE adalah yang paling mudah antara semua dalam artikel ini, dengan formulanya ialah:
SE = εR — P
Oleh itu, ia adalah jumlah perbezaan antara nilai sebenar (pembolehubah sasaran model) dan nilai ramalan. Metrik ini mempunyai beberapa mata negatif, seperti tidak menganggap nilai sebagai mutlak, yang seterusnya akan menghasilkan nilai palsu.
Metrik ME ialah "pelengkap" SE, di mana kita pada asasnya mempunyai perbezaan bahawa kita akan memperoleh purata SE memandangkan bilangan elemen:
ME = ε(R-P)/N
Tidak seperti SE, kami hanya membahagikan hasil SE dengan bilangan elemen. Metrik ini, seperti SE, bergantung pada skala, iaitu, kita mesti menggunakan set data yang sama dan boleh membandingkan dengan model ramalan yang berbeza.
Metrik MAE ialah ME tetapi hanya mengambil kira nilai mutlak (bukan negatif). Apabila kita mengira perbezaan antara sebenar dan ramalan, kita mungkin mempunyai keputusan negatif dan perbezaan negatif ini digunakan pada metrik sebelumnya. Dalam metrik ini, kita perlu mengubah perbezaan menjadi nilai positif dan kemudian mengambil purata berdasarkan bilangan elemen.
Metrik MPE ialah ralat purata sebagai peratusan daripada jumlah setiap perbezaan. Di sini kita perlu mengambil peratusan perbezaan, menambahnya dan kemudian membahagikannya dengan bilangan elemen untuk mendapatkan purata. Oleh itu, perbezaan antara nilai sebenar dan nilai ramalan dibuat, dibahagikan dengan nilai sebenar, didarab dengan 100, kami menjumlahkan semua peratusan ini dan membahagikan dengan bilangan elemen. Metrik ini bebas daripada skala (%).
Metrik MAPAE sangat serupa dengan metrik sebelumnya, tetapi perbezaan antara ramalan x sebenar dibuat secara mutlak, iaitu, anda mengiranya dengan nilai positif. Oleh itu, metrik ini ialah perbezaan mutlak dalam peratusan ralat. Metrik ini juga bebas skala.
Memandangkan penjelasan setiap metrik, kami akan mengira kedua-duanya secara manual dalam Python berdasarkan ramalan daripada model pembelajaran mesin kadar pertukaran dolar. Pada masa ini, kebanyakan metrik regresi wujud dalam fungsi sedia dalam pakej Sklearn, namun di sini kami akan mengiranya secara manual untuk tujuan pengajaran sahaja.
Kami akan menggunakan algoritma RandomForest dan Decision Tree sahaja untuk membandingkan hasil antara kedua-dua model.
Dalam set data kami, kami mempunyai lajur SaldoMercado dan saldoMercado_2 yang merupakan maklumat yang mempengaruhi lajur Nilai (sebut harga dolar kami). Seperti yang dapat kita lihat, baki MercadoMercado mempunyai hubungan yang lebih rapat dengan sebut harga berbanding baki Merado_2. Anda juga boleh melihat bahawa kami tidak mempunyai nilai yang hilang (nilai tak terhingga atau Nan) dan lajur balanceMercado_2 mempunyai banyak nilai bukan mutlak.
Kami menyediakan nilai kami untuk model pembelajaran mesin dengan mentakrifkan pembolehubah peramal dan pembolehubah yang ingin kami ramalkan. Kami menggunakan train_test_split untuk membahagikan data secara rawak kepada 30% untuk ujian dan 70% untuk latihan.
Akhir sekali, kami memulakan kedua-dua algoritma (RandomForest dan DecisionTree), menyesuaikan data dan mengukur skor kedua-duanya dengan data ujian. Kami memperoleh skor 83% untuk TreeRegressor dan 90% untuk ForestRegressor, yang secara teori menunjukkan bahawa ForestRegressor berprestasi lebih baik.
Memandangkan prestasi ForestRegressor yang diperhatikan separa, kami mencipta set data dengan data yang diperlukan untuk menggunakan metrik. Kami melakukan ramalan pada data ujian dan mencipta DataFrame dengan nilai sebenar dan ramalan, termasuk lajur untuk perbezaan dan peratusan.
Kami dapat melihat bahawa berhubung dengan jumlah sebenar kadar dolar berbanding kadar yang diramalkan oleh model kami:
Saya menegaskan bahawa di sini kami melakukan pengiraan secara manual untuk tujuan pengajaran. Walau bagaimanapun, adalah disyorkan untuk menggunakan fungsi metrik daripada pakej Sklearn kerana prestasi yang lebih baik dan kemungkinan ralat yang rendah dalam pengiraan.
Kod lengkap tersedia di GitHub saya: github.com/AirtonLira/artigo_metricasregressao
Pengarang: Airton Lira Junior
LinkedIn: linkedin.com/in/airton-lira-junior-6b81a661/
Atas ialah kandungan terperinci Metrik untuk algoritma regresi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!