Pemodelan Sains Data: Bagaimana Menggunakan Regresi Linear dengan Python

Melihat R², Kesilapan Maksimum Kuadrat, dan banyak lagi

oleh Brian Henriquez, Chris Kazakis, dan Dean Sublett

Foto oleh Pencipta Kempen pada Unsplash

Pengenalan dan Objektif

Regresi linear adalah teknik yang digunakan secara meluas dalam sains data kerana kesederhanaan relatif dalam melaksanakan dan mentafsirkan model regresi linear.

Tutorial ini akan melalui model regresi linear sederhana dan berganda dari 80 dataset Bijirin menggunakan Python dan akan membincangkan beberapa metrik regresi yang relevan, tetapi kita tidak menganggap pengalaman sebelumnya dengan regresi linear dalam Python. Dataset Biji 80 boleh didapati di sini.

Berikut adalah beberapa objektif:

  • Memahami makna dan batasan R²
  • Ketahui tentang metrik penilaian untuk regresi linier dan bila menggunakannya
  • Melaksanakan model regresi linear sederhana dan berganda dengan 80 dataset Bijirin

Meneroka Data

Selepas memuat turun dataset, import pakej Python yang diperlukan dan dataset bijirin itu sendiri:

Output dari sereal.head ()

Di sini kita melihat bahawa setiap baris adalah satu jenama bijirin, dan setiap lajur adalah nutrisi (protein, lemak, dll) atau mengenal pasti ciri (pengeluar, jenis) bijirin. Perhatikan bahawa penarafan adalah pembolehubah sambutan atau bergantung.

Seterusnya, kami membuat plot pasangan korelasi di antara setiap ciri dalam dataset, dan dari visualisasi ini kami memilih tiga pemboleh ubah ramalan: kalori, serat, dan gula. Plot yang memaparkan setiap korelasi adalah terlalu besar untuk dikongsi di sini, tetapi kita boleh melihat lebih dekat dengan plot pasangan yang lebih kecil yang merangkumi hanya pemboleh ubah peramal kami. Dengan menggunakan seaborn.pairplot, kita dapat melihat tiga plot bertaburan dengan garis petak paling kurang dipasang:

Pasangan plot setiap pemboleh ubah ramalan dengan pembolehubah tindak balas

Sekarang kita lebih akrab dengan data, kita boleh mula membuat model regresi linear kita.

Nota: Demi mudah menyampaikan konsep, kita tidak mengira R² dan nilai R² yang diselaraskan menggunakan pecahan ujian / kereta data. Tetapi sila maklum bahawa menggunakan ujian / pameran keretapi pemerhatian yang dipilih secara rawak dianggap sebagai amalan terbaik, dan ini adalah bagaimana kami membentangkan kesilapan kami dan AIC / BIC berhampiran hujung tutorial.

Model Regresi Linear

Kami ingin membincangkan R² dan pentingnya kepada model regresi linear. Tetapi untuk memahami dengan tepat apa R² adalah, pertama kita perlu memahami apa model linier. Mari kita lihat plot serpihan membandingkan kalori dalam hidangan bijirin dan penarafannya:

Meratakan penarafan dan kalori

Kita dapat melihat dengan jelas bahawa porsi bijirin dengan lebih banyak kalori umumnya mendapat ulasan yang lebih buruk. Jika kita menganggap ada hubungan antara dua pembolehubah ini, maka kita dapat membina sebuah model yang meramalkan penarafan bijirin berdasarkan bilangan kalori.

Untuk mengesahkan bahawa hubungan itu, sebenarnya, linear, kita boleh merancang sisa-sisa model kita pada grafik dan mencari corak. Corak yang jelas dalam baki mungkin menunjukkan bahawa model lain, seperti kuadratik atau logaritma, mungkin lebih menggambarkan hubungan antara kedua pembolehubah tersebut. Mari kita periksa sisa-sisa:

Tidak ada corak yang jelas dalam sisa-sisa, jadi tidak ada bukti bahawa terdapat persamaan yang lebih baik dan tidak linear.

Untuk regresi linear, kami akan berminat dengan formula:

x ialah pembolehubah ramalan bagi pembolehubah tindak balas y

Untuk membuat model, kita boleh menggunakan kaedah linregress scipy.

Dan kita mendapat output berikut:

  • LinregressResult (slope = -0.49701318979564285, intercept = 95.78802384439143, rvalue = -0.6893760311652586, pvalue = 4.1402774000064275e-12, stderr = 0.06030617024600228)

Item pertama ialah b_1, yang kedua ialah b_0, dan nilai ketiga adalah nilai R, juga dikenali sebagai koefisien korelasi. Nilai R berkisar antara 1 hingga -1 dan mengukur kekuatan hubungan antara pemboleh ubah penjelasan dan pembolehubah tindak balas. Nilai R untuk kalori berbanding penarafan ialah -.689, yang menunjukkan terdapat hubungan negatif yang kuat antara kedua-dua pembolehubah. Selanjutnya nilai R adalah dari 0, model yang lebih baik adalah untuk meramalkan nilai.

Dengan mengkuadratkan R, kami mendapat pekali penentuan, R². R² adalah nilai yang mewakili peratusan variasi dalam pemboleh ubah y boleh dijelaskan oleh variasi dalam pemboleh ubah x. Nilai R² yang tinggi menunjukkan model yang lebih kuat. Mari lihat beberapa nilai R² dalam dataset kami:

Kami mencetak perkara berikut:

  • R² model dengan Predictor Piala: 0.0412740112014871
  • R² model dengan Predictor Kalori: 0.4752393123451636

Nilai R² ini menunjukkan kepada kita bahawa kalori adalah peramal penilaian yang lebih baik daripada cawan.

Regresi linear mudah berguna, tetapi, sering kali kita ingin melihat bagaimana beberapa pembolehubah boleh digunakan untuk meramal pembolehubah tunggal. Mari kita dapatkan pelbagai prediktor 2D dari bijirin dengan mengambil sepotong dari itu dengan semua pemboleh ubah kami. kalori, serat, dan gula kelihatan sebagai peramal yang bagus apabila kita mengkaji semula pasangan pasang korelasi sebelum ini, jadi mari kita lihat satu model dengan menggunakan tiga:

Kami mendapat output berikut:

  • R²: 0.8483669504178866
  • R² Diselaraskan: 0.8070124823500374

Kami mendapati bahawa nilai R² telah meningkat kepada dari .475 dalam satu model yang berubah-ubah (dengan kalori sebagai prediktor), hingga .848. Ini seolah-olah menunjukkan bahawa kuasa ramalan model kami telah meningkat.

Walau bagaimanapun, mari tambahkan peramal, cawan, kepada model regresi linear berganda ini dan lihat apa yang berlaku:

Kod ini memberikan output berikut:

  • R²: 0.8490487016343364
  • R² Diselaraskan: 0.788668182288071

Ingatlah bahawa jumlah cawan setiap hidangan bijirin kelihatan hampir tidak mempunyai kaitan dengan penarafan pengguna dalam kes pembolehubah tunggal. Tetapi apabila kita menambahnya kepada model, keseluruhan R² meningkat kepada .849, yang menunjukkan kekuatan ramalan model bertambah baik. Walau bagaimanapun, berdasarkan kepada apa yang kita ketahui, model empat-pemboleh ubah ini tidak boleh lebih baik daripada model tiga-berubah. Oleh sebab nilai R² dikira, menambah lebih banyak pemboleh ubah kepada model akan sentiasa meningkatkan nilai R². Oleh itu, kita perlu membandingkan nilai R² yang diselaraskan, yang mengurangkan peningkatan R² disebabkan pembolehubah tambahan. Rumusan untuk R² yang diselaraskan adalah

Saiz sampel total n, p-nombor peramal

Dengan menggunakan ini kita dapati bahawa model tiga-variabel mempunyai R² yang diselaraskan .807, manakala model empat-ubah mempunyai R² yang diselaraskan .788. Oleh itu, model tiga-ubah adalah lebih baik oleh metrik ini.

R² adalah salah satu metrik yang paling penting untuk menilai bagaimana model linear sesuai dengan data, jadi penting untuk mempunyai pemahaman intuitif tentang apa yang dimaksudkan. Mengetahui batasan R² dan bagaimana batasan-batasan tersebut dapat dikurangkan sama pentingnya apabila melaksanakan model regresi linier.

Kesalahan Mean Squared (MSE)

Model regresi mempunyai beberapa metrik penilaian yang berbeza. Salah satu metrik yang paling popular dan apa yang akan kita bincangkan terlebih dahulu ialah ralat kuadrat minima (MSE).

Sumber

MSE adalah metrik penilaian yang mengukur purata perbezaan kuadrat antara nilai yang diperhatikan dan yang diramalkan. Dalam erti kata lain, MSE memberitahu kita betapa tepat atau tidak tepat model regresi linier kita - semakin rendah MSE, model "lebih baik" adalah untuk meramalkan nilai. Mari temukan MSE model regresi kami:

Mse pembolehubah kami pulangan sebagai 26.6329.

Satu lagi metrik penilaian pada pelupusan kami adalah ralat kekurangan kuadrat akar (RMSE), yang merupakan punca kuasa dua MSE kami. Menggunakan fungsi root square dari modul matematik Python, sqrt (mse) mengembalikan sebagai 5.1607.

Penting untuk diketahui bahawa nilai RMSE kami berkongsi unit yang sama dengan pembolehubah tindak balas (kami mengambil punca kuadrat kesilapan). Nilai RMSE kami 5,1607 turun dengan rendah pada variasi 0-100 pembolehubah penarafan, jadi model regresi linear berganda kami adalah "baik" pada meramalkan penarafan jenama bijirin. Tetapi terdapat ralat lain yang mungkin kita gunakan.

Ralat Mutlak Maksimum (MAE)

Metrik penilaian regresi seterusnya yang akan kami pertimbangkan adalah kesilapan ralat mutlak (MAE).

Sumber

Memandangkan MSE mempunyai perbezaan selebihnya, perbezaan yang lebih besar antara nilai sebenar dan yang diramal adalah "dihukum" lebih keras oleh MSE berbanding dengan MAE. Kerana segi kuasa dua, MSE lebih sensitif terhadap outlier daripada MAE.

Sekiranya kami memutuskan bahawa outlier dalam dataset kami tidak penting dalam menganalisis data, kami boleh beralih kepada MAE sebelum MSE kerana sisa-sisa outliers tidak akan dibesar-besarkan dari squaring residuals. Mari cari MAE:

Pemboleh ubah mae kami mengembalikan 3.6153. MAE kami agak kecil memandangkan penarafan 0-100, jadi MAE kami menunjukkan bahawa model kami cukup tepat dalam ramalannya.

Ralat Peratusan Maksimum (MAPE)

Metrik penilaian regresi akhir yang akan kami pertimbangkan adalah kesilapan peratusan mutlak (MAPE).

Sumber

MAPE memberikan ketepatan model ramalan sebagai peratusan. Perhatikan persamaan dalam formula MAE dan MAPE. Seperti MAE, MAPE tidak banyak dipengaruhi oleh outlier. Bagaimanapun, gunakan MAPE dengan berhati-hati kerana

  • MAPE terdedah kepada pembahagian oleh sifar kesilapan (lihat penyebut dalam penjumlahan);
  • MAPE boleh berkembang sangat besar jika nilai sebenar sangat kecil (sekali lagi, lihat operasi pembahagian dalam penjumlahan);
  • MAPE adalah berat sebelah terhadap ramalan yang lebih kecil daripada nilai yang diperhatikan.

Mari kita cari MAPE untuk model kami:

Fungsi MAPE kami mengembalikan peratusan berikut: 8.458%. Jadi ramalan kami adalah kira-kira sekitar 8.5% secara purata.

AIC dan BIC

AIC (Kriteria Maklumat Akaike) dan BIC (Kriteria Maklumat Bayesian) adalah kaedah objektif menilai model regresi anda dan menentukan subset peramal yang terbaik (model yang lebih sesuai).

Apabila anda menambah parameter pada model anda, ia akan sentiasa sesuai dengan sedikit lebih baik. Tetapi anda mempunyai risiko kehilangan maklumat mengenai corak asas sebenar. Oleh itu, terdapat pertukaran antara jumlah parameter dan jumlah kesilapan akaun model anda. AIC dan BIC menilai keupayaan model untuk mengambil kira variasi tambahan dalam pemboleh ubah yang anda ramalkan tetapi tanpa mengatasi model tersebut.

AIC

AIC membolehkan anda menganggarkan jumlah maklumat yang hilang dalam model anda supaya anda dapat membandingkan model mana yang paling berkesan dan memilih subset prediktor yang lebih sesuai. Lebih khusus lagi, nilai AIC melihat jarak relatif antara fungsi kemungkinan sebenar data dan fungsi likelihood yang sesuai model anda. Jarak yang lebih kecil itu, maka lebih dekat model adalah untuk perwakilan sebenar data anda. AIC dilambangkan dengan formula ini:

N-bilangan pemerhatian, K-bilangan parameter bersesuaian + 1

Sekiranya kita membandingkan kesesuaian dua model menggunakan kaedah AIC, model dengan nilai AIC yang lebih rendah adalah lebih baik.

Mari kita cari nilai AIC bagi dua model regresi berganda yang kami gunakan sebelum ini. Satu mempunyai tiga peramal dan yang lain mempunyai empat. Mula-mula kita akan menentukan nilai-nilai yang akan kita masukkan ke formula, dan kemudian kita akan menjalankan formula:

Ini memberikan output berikut:

  • AIC Model dengan Tiga Peramal: 60.51438447233831
  • AIC Model dengan Empat Prediktor: 62.31365180026097

Dari apa yang kita lihat, model dengan tiga peramal mempunyai nilai AIC yang lebih rendah dan dengan itu adalah lebih baik daripada model dengan empat peramal (tetapi tidak banyak dalam contoh ini).

BIC

BIC adalah serupa dengan AIC, tetapi lebih ketat dari segi menghukum model anda untuk menambahkan lebih banyak parameter. Ia dilambangkan dengan formula ini:

N-bilangan pemerhatian, K-bilangan parameter bersesuaian + 1

Jika kita membandingkan kesesuaian dua model dengan menggunakan kaedah BIC, model dengan nilai BIC yang lebih rendah mempunyai kelebihan yang lebih baik, sama seperti proses untuk kaedah AIC.

Mari cari nilai BIC untuk dua model yang sama yang kami gunakan. Di sini satu-satunya perbezaan ialah penalti yang kita kalikan jumlah parameter dengan:

Ini memberikan output berikut:

  • BIC Model dengan Tiga Peramal: 63.60473936129743
  • BIC Model dengan Empat Prediktor: 66.17659541145987

Dari apa yang kita lihat di sini, model dengan tiga peramal mempunyai nilai BIC yang lebih rendah dan dengan itu adalah lebih baik daripada model dengan empat peramal. Memandangkan penalti BIC lebih ketat daripada penalti AIC, nilai untuk kaedah BIC adalah lebih besar daripada kaedah AIC untuk model masing-masing.

Disebabkan perbezaan penalti, AIC boleh memilih model dengan lebih banyak parameter daripada BIC. Adalah disyorkan bahawa anda menggunakan AIC dan BIC bersama-sama dan membuat keputusan mengenai model anda berdasarkan kedua-dua set keputusan. Dalam kes ini, AIC dan BIC bersetuju dengan satu sama lain dan memilih model yang sama.

Perbendaharaan kata kunci

Sebagai kesimpulan, kita berbincang

  • R²: penunjuk betapa kuatnya model regresi linier meramalkan pembolehubah tindak balas
  • Diselaraskan R²: indikator betapa kuatnya model model regresi linear berganda bagi varians dalam pembolehubah yang bergantung kepada sementara membetulkan bilangan parameter dalam model
  • MSE (min min kesilapan): metrik penilaian yang sangat menghukum outliers; mungkin ralat pertama yang akan anda kira dan digunakan apabila outlier mewakili fenomena sebenar dataset
  • RMSE (kekurangan kuadrat kuadrat root): akar kuasa MSE; berkongsi unit yang sama dengan pembolehubah tindak balas, jadi RMSE mungkin lebih "difahami" daripada MSE
  • MAE (bermakna kesilapan mutlak): metrik penilaian yang digunakan untuk mengurangkan kepentingan kelebihan apabila mengukur ralat; digunakan apabila outlier tidak mewakili fenomena sebenar dataset
  • MAPE (bermakna kesilapan peratusan mutlak): satu ukuran ketepatan model regresi sebagai peratusan; terdedah kepada ralat runtime atau nilai yang luar biasa besar apabila pembolehubah tindak balas mengambil nilai kecil
  • AIC (Kriteria Maklumat Akaike): penilaian terhadap jumlah maklumat yang hilang dalam model-model yang berbeza yang menghukum untuk peningkatan parameter. Terlepas dari saiz data anda, ia selalu mempunyai peluang untuk memilih terlalu besar model. Terbaik digunakan bersempena dengan BIC.
  • BIC (Criteria Information Bayesian): sama dengan AIC tetapi menghukum lebih banyak. Terlepas dari saiz data anda, ia sentiasa mempunyai peluang untuk memilih terlalu kecil model. Terbaik digunakan bersempena dengan AIC.

Kesimpulannya

Dalam tutorial ini, kami menunjukkan bagaimana untuk melaksanakan model regresi linear sederhana dan berganda dengan Python dan kaedah yang berbeza untuk menilai model-model ini dan kesilapan mereka.

Apabila bekerja dengan dataset anda sendiri, anda boleh memilih untuk menggunakan mana-mana kaedah ini untuk menilai model regresi dan kesilapan anda. Bagaimanapun, mungkin minat anda untuk menggunakan beberapa perkara ini dan melihat bagaimana keputusan mereka menyelaraskan atau berbeza untuk menentukan model mana yang mana anda mempunyai perwakilan terbaik data anda.

Sekarang anda harus lebih selesa dengan melaksanakan model regresi linear anda sendiri dan lebih menyedari persamaan dan perbezaan di antara semua metrik regresi yang dibincangkan.