Rumah >pembangunan bahagian belakang >Tutorial Python >Penjelasan terperinci tentang model regresi logistik dalam Python

Penjelasan terperinci tentang model regresi logistik dalam Python

PHPz
PHPzasal
2023-06-10 19:07:362680semak imbas

Penjelasan terperinci tentang model regresi logistik dalam Python

Regresi logistik ialah algoritma pembelajaran mesin yang digunakan secara meluas dalam masalah pengelasan. Ia boleh menyambungkan data input dan label yang sepadan untuk mengklasifikasikan data baharu. Dalam Python, regresi logistik ialah algoritma klasifikasi yang biasa digunakan. Artikel ini akan memperkenalkan secara terperinci prinsip dan penggunaan model regresi logistik.

Prinsip regresi logistik

Regresi logistik ialah algoritma pengelasan binari klasik, yang biasanya digunakan untuk meramalkan kategori mana sesuatu data tergolong. Hasil keluaran ialah nilai kebarangkalian, yang mewakili kebarangkalian sampel itu tergolong dalam kelas tertentu, biasanya nombor nyata antara 0 dan 1. Intipati regresi logistik ialah pengelas linear, yang meramalkan data input dan parameter melalui fungsi linear, dan melakukan pemetaan kebarangkalian melalui fungsi sigmoid untuk mengeluarkan hasil pengelasan.

Fungsi hipotesis model regresi logistik ditakrifkan seperti berikut:

$$h_{ heta}(x)= rac{1}{1+e^{- heta^Tx} }$$

Antaranya, $ heta $ ialah vektor parameter model, dan $ x $ ialah vektor data input. Jika $h_{ heta}(x)geq0.5$, sampel diramalkan sebagai kelas positif, jika tidak sampel diramalkan sebagai kelas negatif.

Fungsi kehilangan model regresi logistik ialah fungsi kehilangan logaritma, yang menunjukkan sejauh mana model itu sesuai dengan data latihan ia ditakrifkan seperti berikut:

$$J( heta)= - rac{1}{ m}sum_{i=1}^{m}{[y^{(i)}log{h_{ heta}(x^{(i)})}+(1-y^{ (i)})log (1-h_{ heta}(x^{(i)}))]}$$

Di mana, $y^{(i)}$ ialah label sebenar sampel $i$, $x^ {(i)}$ ialah vektor ciri sampel $i$ dan $m$ ialah jumlah bilangan sampel.

Proses latihan model regresi logistik ialah proses menyelesaikan parameter model $ heta $ dengan meminimumkan fungsi kehilangan. Algoritma pengoptimuman yang biasa digunakan termasuk kaedah penurunan kecerunan, kaedah Newton, dsb.

Pelaksanaan model regresi logistik dalam Python

Dalam Python, kita boleh menggunakan perpustakaan Scikit-Learn untuk membina model regresi logistik. Scikit-Learn ialah perpustakaan pembelajaran mesin yang biasa digunakan dalam Python. Ia menyediakan pelbagai algoritma dan alatan untuk memudahkan operasi pengguna seperti prapemprosesan ciri, pemilihan model, penilaian dan pengoptimuman.

Pertama, kita perlu mengimport perpustakaan dan set data yang berkaitan, contohnya:

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn import metrics
from sklearn.datasets import load_iris
 
iris = load_iris()
X = iris.data
y = iris.target

Seterusnya, kami membahagikan set data kepada set latihan dan set ujian:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)

Kemudian , kita boleh menggunakan model regresi logistik untuk latihan dan ramalan:

lr = LogisticRegression()
lr.fit(X_train, y_train)
y_pred = lr.predict(X_test)

Akhir sekali, kita boleh menilai prestasi model melalui penunjuk seperti matriks kekeliruan dan ketepatan:

cnf_matrix = metrics.confusion_matrix(y_test, y_pred)
print(cnf_matrix)
print("Accuracy:",metrics.accuracy_score(y_test, y_pred))

Ringkasan

Regresi logistik ialah algoritma klasifikasi yang biasa digunakan yang boleh meramalkan masalah klasifikasi binari dengan berkesan. Dalam Python, kita boleh menggunakan perpustakaan Scikit-Learn untuk membina dan melatih model regresi logistik. Tetapi harus diingat bahawa dalam aplikasi praktikal, kita perlu praproses dan memilih ciri untuk meningkatkan prestasi dan keteguhan model.

Atas ialah kandungan terperinci Penjelasan terperinci tentang model regresi logistik dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn