Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penjelasan terperinci tentang cara melaksanakan model regresi linear berbilang dalam Python

Penjelasan terperinci tentang cara melaksanakan model regresi linear berbilang dalam Python

WBOY
WBOYke hadapan
2024-01-24 09:27:061728semak imbas

Penjelasan terperinci tentang cara melaksanakan model regresi linear berbilang dalam Python

Regresi linear berbilang ialah model statistik yang digunakan secara meluas dalam analisis data dan pembelajaran mesin. Ia meramalkan nilai satu atau lebih pembolehubah bersandar dengan menggunakan berbilang pembolehubah bebas. Dalam Python, kita boleh menggunakan banyak perpustakaan dan rangka kerja yang berbeza untuk melaksanakan model regresi linear berbilang, seperti NumPy, Pandas, Scikit-Learn, dll.

Di bawah, kami akan menggunakan perpustakaan Scikit-Learn untuk membina model regresi linear berganda untuk meramalkan harga rumah. Dalam contoh ini, kami akan menggunakan data daripada set data Harga Rumah. Set data mengandungi 506 sampel dan 13 pembolehubah bebas, termasuk kadar jenayah bandar, purata bilangan bilik dalam rumah, umur rumah, dsb.

Pertama, kita perlu mengimport pustaka dan set data yang diperlukan:

import numpy as np
import pandas as pd
from sklearn.datasets import load_boston

boston = load_boston()
X = pd.DataFrame(boston.data, columns=boston.feature_names)
y = pd.DataFrame(boston.target, columns=['MEDV'])

Di sini, kami menggunakan pustaka Pandas untuk memuatkan set data ke dalam objek DataFrame dan menyimpan pembolehubah bebas dan bersandar dalam X dan y masing-masing.

Seterusnya, kita perlu membahagikan set data kepada set latihan dan set ujian. Set latihan digunakan untuk menyesuaikan model, manakala set ujian digunakan untuk menilai prestasi model.

from sklearn.model_selection import train_test_split

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

Di sini, kami menggunakan fungsi train_test_split daripada perpustakaan Scikit-Learn untuk membahagikan set data kepada set latihan dan ujian. Kami menggunakan parameter test_size untuk menentukan saiz set ujian dan parameter random_state untuk menetapkan benih rawak untuk memastikan kebolehulangan hasil.

Seterusnya, kita boleh menggunakan model regresi linear untuk menyesuaikan set data.

from sklearn.linear_model import LinearRegression

regressor = LinearRegression()
regressor.fit(X_train, y_train)

Di sini, kami menggunakan kelas LinearRegression dalam perpustakaan Scikit-Learn untuk mencipta model regresi linear dan menggunakan kaedah muat untuk menyesuaikan data latihan.

Kini kita boleh menggunakan model untuk meramal harga rumah dalam set ujian.

y_pred = regressor.predict(X_test)

Di sini, kami menggunakan kaedah predict untuk meramal harga rumah dalam set ujian.

Akhir sekali, kami boleh menggunakan beberapa metrik penilaian daripada perpustakaan Scikit-Learn untuk menilai prestasi model.

from sklearn.metrics import mean_squared_error, r2_score

print('Mean squared error: %.2f' % mean_squared_error(y_test, y_pred))
print('Coefficient of determination: %.2f' % r2_score(y_test, y_pred))

Di sini, kami menggunakan fungsi mean_squared_error untuk mengira ralat min kuasa dua dan fungsi r2_score untuk mengira pekali penentuan. Metrik ini membantu kami memahami prestasi dan ketepatan model.

Ringkasnya, reka bentuk model regresi linear berbilang boleh menjadi sangat mudah menggunakan Python. Kami hanya perlu mengimport pustaka dan set data yang diperlukan, menyesuaikan model dan menggunakan beberapa metrik penilaian untuk menilai prestasi model. Dalam aplikasi praktikal, kita perlu melakukan analisis data penerokaan, kejuruteraan ciri dan pengoptimuman model pada data untuk mendapatkan hasil ramalan yang lebih baik.

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

Kenyataan:
Artikel ini dikembalikan pada:163.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam