Bagaimana Melakukan Regresi Logistik Di Python?



Regresi logistik di Python menggunakan sklearn untuk meramalkan hasilnya dengan menentukan hubungan antara bergantung dan satu atau lebih pemboleh ubah bebas.

Regresi logistik di Python adalah teknik analisis ramalan. Ia juga digunakan dalam Pembelajaran Mesin untuk masalah klasifikasi binari. Dalam blog ini kita akan membahas topik berikut untuk memahami regresi logistik di Python:

  1. Apa itu Regresi?
  2. Regresi Logistik di Python
  3. Regresi Logistik vs Regresi Linear
  4. Gunakan Kes
  5. Demonstrasi

Anda juga boleh merujuk tutorial terperinci mengenai regresi logistik di python dengan demonstrasi untuk pemahaman yang lebih baik atau melalui untuk menguasai regresi logistik.





Apa itu Regresi?

analisis adalah teknik analisis statistik yang kuat. A bergantung pemboleh ubah minat kami digunakan untuk meramalkan nilai yang lain pemboleh ubah bebas dalam satu set data.

Kami menghadapi regresi dengan cara yang intuitif sepanjang masa. Seperti meramalkan cuaca menggunakan set data keadaan cuaca pada masa lalu.



Ia menggunakan banyak teknik untuk menganalisis dan meramalkan hasilnya, tetapi penekanan terutama pada hubungan antara pemboleh ubah bersandar dan satu atau lebih pemboleh ubah bebas.

analisis meramalkan hasil dalam pemboleh ubah binari yang hanya mempunyai dua kemungkinan hasil.



Regresi Logistik Di Python

Ini adalah teknik untuk menganalisis kumpulan data yang mempunyai pemboleh ubah bersandar dan satu atau lebih pemboleh ubah bebas untuk meramalkan hasil dalam pemboleh ubah binari, yang bermaksud ia hanya akan mempunyai dua hasil.

Pemboleh ubah bersandar adalah kategoris secara semula jadi. Pemboleh ubah bersandar juga disebut sebagai pemboleh ubah sasaran dan pemboleh ubah bebas dipanggil peramal .

Regresi logistik adalah kes regresi linier khas di mana kita hanya meramalkan hasilnya dalam pemboleh ubah kategori. Ia meramalkan kebarangkalian kejadian menggunakan fungsi log.

Kami menggunakan Fungsi / keluk Sigmoid untuk meramal nilai kategorik. Nilai ambang menentukan hasilnya (menang / kalah).

Persamaan regresi linear: y = β0 + β1X1 + β2X2…. + βnXn

  • Y bermaksud pemboleh ubah bersandar yang perlu diramalkan.
  • β0 ialah pintasan-Y, yang pada dasarnya merupakan titik pada garis yang menyentuh paksi-y.
  • β1 adalah cerun garis (cerun boleh menjadi negatif atau positif bergantung pada hubungan antara pemboleh ubah bersandar dan pemboleh ubah tidak bersandar.)
  • X di sini mewakili pemboleh ubah bebas yang digunakan untuk meramalkan nilai bergantung hasil kami.

Fungsi Sigmoid: p = 1/1 + e-Y

Terapkan fungsi sigmoid pada persamaan regresi linear.

regresi logistik di python-edureka

Persamaan Regresi Logistik: p = 1/1 + e- (β0 + β1X1 + β2X2…. + βnXn)

Mari kita lihat pelbagai jenis regresi logistik.

Jenis Regresi Logistik

cara membuka aws cli
    • Regresi logistik binari - Hanya mempunyai dua kemungkinan hasil. Contoh- ya atau tidak
    • Regresi logistik multinomial - Ia mempunyai tiga atau lebih kategori nominal. Contohnya - kucing, anjing, gajah.
    • Regresi logistik biasa - Ia mempunyai tiga atau lebih kategori ordinal, ordinal yang bermaksud bahawa kategori akan mengikut urutan. Contoh- penilaian pengguna (1-5).

Regresi Logistik Linear Vs

Walaupun regresi linear boleh berlaku nilai yang mungkin tidak terhingga, regresi logistik mempunyai hasil yang pasti .

Regresi linier digunakan ketika variabel tindak balas bersifat berterusan, tetapi regresi logistik digunakan ketika pemboleh ubah respons bersifat kategoris.

Meramalkan peminjam di bank menggunakan perincian transaksi pada masa lalu adalah contoh regresi logistik, sementara output berterusan seperti skor pasaran saham adalah contoh regresi linier.

Gunakan Kes

Berikut adalah kes penggunaan di mana kita dapat menggunakan regresi logistik.

Ramalan Cuaca

Ramalan cuaca adalah hasil regresi logik. Di sini, kami menganalisis data laporan cuaca sebelumnya dan meramalkan kemungkinan hasil untuk hari tertentu. Tetapi regresi logik hanya akan meramalkan data kategorik, seperti jika hujan atau tidak.

Menentukan Penyakit

Kita bolehmenggunakanregresi logik dengan bantuan sejarah perubatan pesakit untuk meramalkan jika penyakit itu positif atau negatif dalam apa jua keadaan.

Mari kita mengambil contoh data set untuk membina model ramalan menggunakan regresi logistik.

Demo

Kami akan membina model ramalanmenggunakanregresi logik di Python dengan pertolongandaripadaset data,di dalam inikita akan merangkumi langkah-langkah berikut untuk mencapai regresi logik.

Mengumpul data

Langkah pertama untuk melaksanakan regresi logistik adalah mengumpulkan data. Kami akan memuat fail csv yang berisi kumpulan data ke dalam program menggunakan panda. Kami menggunakan data NBA untuk membangun model ramalan untuk meramalkan kemungkinan permainan di rumah atau permainan tandang, dengan menganalisis hubungan antara data yang relevan.

import panda sebagai pd import numpy sebagai np import seaborn sebagai sns import matplotlib.pyplot sebagai plt df = pd.read_csv (r'C: UsersMohammadWaseemDocumentsdata.csv ') cetak (df.head (5))

Anda akan memasukkan semua data ke dalam format yang dapat dibaca untuk analisis yang lebih mudah. Dan kemudian anda dapat menentukan pemboleh ubah bersandar dan bebas untuk model anda.

Menganalisis Data

Kumpulan data dianalisis untuk menentukan hubungan antara pemboleh ubah. Dengan membuat plot yang berbeza untuk memeriksa hubungan antara pemboleh ubah.

sns.countplot ('Home', hue = 'WINorLOSS', data = df) plt.show ()

Di atas adalah hubungan antara peratusan menang / kalah berkaitan dengan permainan tuan rumah / tandang. Ssamakita dapat merancang grafik hubungan antara entri lain yang relevan dalam data.

Pertengkaran Data

Kumpulan data diubah mengikut pemboleh ubah sasaran. Kami akan menghapuskan semua nilai nol dan nilai rentetan juga dari DataFrame.

cetak (df.isnull (). jumlah ())

Kami akan memeriksa semua data yang tidak relevan seperti nilai null dan nilai yang tidak diperlukan semasa membina model ramalan. Sekiranya tidak ada nilai nol dalam kumpulan data NBA yang kami gunakan, kami akan meneruskan pemisahan data.

Data Ujian dan Latih Tubi

Untuk prestasi model data dibahagikan kepada data ujian dan data kereta api. Data dibahagi menggunakan train_test_split . Data di sini dibahagi dalam nisbah 70:30.

Sekarang, untuk ramalan model fungsi regresi logistik dilaksanakan dengan mengimport model regresi logistik dalam modul sklearn.

Model ini kemudian dipasang pada set kereta api menggunakan fungsi muat. Selepas ini ramalan dilakukan menggunakan fungsi ramalan.

dari sklearn.model_selection import train_test_split dari sklearn.linear_model import LogisticRegression from sklearn.metrics import classification_report from sklearn.metrics import confusion_matrix, ketepatan_score x = df.drop ('Home', axis = 1) y = df ['Home'] x_tr x_test, y_train, y_test = train_test_split (x, y, test_size = 0.33, random_state = 1) logmodel = LogisticRegression () logmodel.fit (x_train, y_train) ramalan = logmodel.predict (x_test) print (y_test) cetak (confusion_matrix (y_test, ramalan)) cetak (ketepatan_ skor (y_test, ramalan))

Laporan Pengelasan:

Laporan klasifikasi memaparkan Ketepatan , Ingat semula, F1 dan Sokongan skor untuk model.

Ketepatan skor bermaksud tahap ke atas sehingga ramalan yang dibuat oleh model tepat. Ketepatan untuk permainan rumah adalah 0.62 dan untuk permainan tandang adalah 0.58 .

Ingat semula adalah jumlah sehingga model dapat meramalkan hasilnya. Ingat untuk permainan rumah adalah 0.57 dan untuk permainan tandang adalah 0.64 . Skor F1 dan Sokongan adalah jumlah data yang diuji untuk ramalan tersebut. Dalam kumpulan data NBA data yang diuji untuk permainan rumah adalah 1662 dan untuk permainan tandang adalah 1586 .

percikan apache berbanding hadoop mapreduce

Matriks kekeliruan:

Matriks kekeliruan adalah jadual yang menerangkan prestasi model ramalan. Matriks kekeliruan mengandungi nilai sebenar dan nilai ramalan. kita boleh menggunakan nilai-nilai ini untuk mengira skor ketepatan model.

Peta panas matriks kekeliruan:

Mari plot peta panas matriks kekeliruan menggunakan laut dan untuk menggambarkan model ramalan yang telah kita bina. Untuk merancang peta panas, sintaks berikut diperlukan.

sns.heatmap (pd.DataFrame (confusion_matrix (y_test, ramalan))) plt.show ()

Dengan melihat peta panas, kita dapat menyimpulkan perkara berikut:

  • Daripada semua ramalan tersebut, pengkelas meramalkan ya untuk jumlah keseluruhan 1730 kali, di mana 1012 adalah benar.
  • daripada semua ramalan, pengklasifikasi meramalkan tidak untuk jumlah keseluruhan 1518 kali, di mana 944 adalah bilangan sebenarnya.

Dengan analisis matriks kekeliruan ini kita dapat menyimpulkan skor ketepatan untuk model ramalan kita.

Skor ketepatan:

Skor ketepatan adalah peratusan ketepatan ramalan yang dibuat oleh model. Untuk model kami skor ketepatan adalah 0.60, yang cukup tepat. Tetapi semakin tinggi skor ketepatan yang efisien adalah model ramalan anda. Anda mesti sentiasa menginginkan skor ketepatan yang lebih tinggi untuk model ramalan yang lebih baik.

Dengan mengikuti langkah-langkah yang dibincangkan di atas, kami telah meramalkan kemungkinan permainan rumah / tandang menggunakan set data NBA. Setelah menganalisis laporan klasifikasi, kami dapat mengandaikan kemungkinan permainan di tempat sendiri atau di tempat lawan.

Di blog ini kita telah membincangkan regresi logistik dalam konsep python, bagaimana ia berbeza dengan pendekatan linear. Juga, kami telah membuat demonstrasi menggunakan NBA Dataset. Untuk lebih banyak pandangan dan praktik, anda boleh menggunakan set data pilihan anda dan ikuti langkah-langkah yang dibincangkan untuk melaksanakan regresi logistik di Python.

Juga, lihat pelbagai blog Data-Science di platform edureka untuk menguasai saintis data dalam diri anda.

Sekiranya anda ingin belajar Python dan membina kerjaya dalam sains Data, lihatlah interaktif kami secara langsung dalam talian di sini, disertakan dengan sokongan 24 * 7 untuk membimbing anda sepanjang tempoh pembelajaran anda.
Ada soalan? Sila sebutkan dalam komen dan kami akan menghubungi anda.