


pengenalan
Dalam artikel ini, kami akan menunjukkan aliran kerja projek pembelajaran mesin yang lengkap menggunakan Scikit-Learn. Kami akan membina model untuk meramalkan harga perumahan California berdasarkan pelbagai ciri, seperti pendapatan median, umur rumah dan purata bilangan bilik. Projek ini akan membimbing anda melalui setiap langkah proses, termasuk pemuatan data, penerokaan, latihan model, penilaian dan visualisasi hasil. Sama ada anda seorang pemula yang ingin memahami asas atau pengamal berpengalaman yang mencari penyegar semula, artikel ini akan memberikan cerapan berharga tentang aplikasi praktikal teknik pembelajaran mesin.
Projek Ramalan Harga Perumahan California
1. Pengenalan
Pasaran perumahan California terkenal dengan ciri unik dan dinamik harganya. Dalam projek ini, kami berhasrat untuk membangunkan model pembelajaran mesin untuk meramalkan harga rumah berdasarkan pelbagai ciri. Kami akan menggunakan set data perumahan California, yang merangkumi pelbagai atribut seperti pendapatan median, umur rumah, bilik purata dan banyak lagi.
2. Mengimport Perpustakaan
Dalam bahagian ini, kami akan mengimport perpustakaan yang diperlukan untuk manipulasi data, visualisasi dan membina model pembelajaran mesin kami.
import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error from sklearn.datasets import fetch_california_housing
3. Memuatkan Set Data
Kami akan memuatkan set data Perumahan California dan mencipta DataFrame untuk menyusun data. Pembolehubah sasaran, iaitu harga rumah, akan ditambahkan sebagai lajur baharu.
# Load the California Housing dataset california = fetch_california_housing() df = pd.DataFrame(california.data, columns=california.feature_names) df['PRICE'] = california.target
4. Memilih Sampel Secara Rawak
Untuk memastikan analisis terurus, kami akan memilih 700 sampel secara rawak daripada set data untuk kajian kami.
# Randomly Selecting 700 Samples df_sample = df.sample(n=700, random_state=42)
5. Melihat Data Kami
Bahagian ini akan memberikan gambaran keseluruhan set data, memaparkan lima baris pertama untuk memahami ciri dan struktur data kami.
# Overview of the data print("First five rows of the dataset:") print(df_sample.head())
Output
First five rows of the dataset: MedInc HouseAge AveRooms AveBedrms Population AveOccup Latitude \ 20046 1.6812 25.0 4.192201 1.022284 1392.0 3.877437 36.06 3024 2.5313 30.0 5.039384 1.193493 1565.0 2.679795 35.14 15663 3.4801 52.0 3.977155 1.185877 1310.0 1.360332 37.80 20484 5.7376 17.0 6.163636 1.020202 1705.0 3.444444 34.28 9814 3.7250 34.0 5.492991 1.028037 1063.0 2.483645 36.62 Longitude PRICE 20046 -119.01 0.47700 3024 -119.46 0.45800 15663 -122.44 5.00001 20484 -118.72 2.18600 9814 -121.93 2.78000
Paparkan Maklumat DataFrame
print(df_sample.info())
Keluaran
<class> Index: 700 entries, 20046 to 5350 Data columns (total 9 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 MedInc 700 non-null float64 1 HouseAge 700 non-null float64 2 AveRooms 700 non-null float64 3 AveBedrms 700 non-null float64 4 Population 700 non-null float64 5 AveOccup 700 non-null float64 6 Latitude 700 non-null float64 7 Longitude 700 non-null float64 8 PRICE 700 non-null float64 dtypes: float64(9) memory usage: 54.7 KB </class>
Paparkan Statistik Ringkasan
print(df_sample.describe())
Keluaran
MedInc HouseAge AveRooms AveBedrms Population \ count 700.000000 700.000000 700.000000 700.000000 700.000000 mean 3.937653 28.855714 5.404192 1.079266 1387.422857 std 2.085831 12.353313 1.848898 0.236318 1027.873659 min 0.852700 2.000000 2.096692 0.500000 8.000000 25% 2.576350 18.000000 4.397751 1.005934 781.000000 50% 3.480000 30.000000 5.145295 1.047086 1159.500000 75% 4.794625 37.000000 6.098061 1.098656 1666.500000 max 15.000100 52.000000 36.075472 5.273585 8652.000000 AveOccup Latitude Longitude PRICE count 700.000000 700.000000 700.000000 700.000000 mean 2.939913 35.498243 -119.439729 2.082073 std 0.745525 2.123689 1.956998 1.157855 min 1.312994 32.590000 -124.150000 0.458000 25% 2.457560 33.930000 -121.497500 1.218500 50% 2.834524 34.190000 -118.420000 1.799000 75% 3.326869 37.592500 -118.007500 2.665500 max 7.200000 41.790000 -114.590000 5.000010
6. Membahagikan Set Data kepada Set Kereta Api dan Ujian
Kami akan memisahkan set data kepada ciri (X) dan pembolehubah sasaran (y) dan kemudian membahagikannya kepada set latihan dan ujian untuk latihan dan penilaian model.
# Splitting the dataset into Train and Test sets X = df_sample.drop('PRICE', axis=1) # Features y = df_sample['PRICE'] # Target variable # Split the dataset into training and testing sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
7. Latihan Model
Dalam bahagian ini, kami akan mencipta dan melatih model Regresi Linear menggunakan data latihan untuk mempelajari hubungan antara ciri dan harga rumah.
# Creating and training the Linear Regression model lr = LinearRegression() lr.fit(X_train, y_train)
8. Menilai Model
Kami akan membuat ramalan pada set ujian dan mengira nilai Ralat Kuasa Dua (MSE) dan R kuasa dua untuk menilai prestasi model.
# Making predictions on the test set y_pred = lr.predict(X_test) # Calculating Mean Squared Error mse = mean_squared_error(y_test, y_pred) print(f"\nLinear Regression Mean Squared Error: {mse}")
Keluaran
Linear Regression Mean Squared Error: 0.3699851092128846
9. Memaparkan Nilai Sebenar vs Diramalkan
Di sini, kami akan mencipta DataFrame untuk membandingkan harga rumah sebenar dengan harga ramalan yang dijana oleh model kami.
# Displaying Actual vs Predicted Values results = pd.DataFrame({'Actual Prices': y_test.values, 'Predicted Prices': y_pred}) print("\nActual vs Predicted:") print(results)
Output
Actual vs Predicted: Actual Prices Predicted Prices 0 0.87500 0.887202 1 1.19400 2.445412 2 5.00001 6.249122 3 2.78700 2.743305 4 1.99300 2.794774 .. ... ... 135 1.62100 2.246041 136 3.52500 2.626354 137 1.91700 1.899090 138 2.27900 2.731436 139 1.73400 2.017134 [140 rows x 2 columns]
10. Menggambarkan Hasilnya
Dalam bahagian akhir, kami akan menggambarkan hubungan antara harga rumah sebenar dan ramalan menggunakan plot berselerak untuk menilai prestasi model secara visual.
# Visualizing the Results plt.figure(figsize=(8, 6)) plt.scatter(y_test, y_pred, color='blue') plt.xlabel('Actual Prices') plt.ylabel('Predicted Prices') plt.title('Actual vs Predicted House Prices') # Draw the ideal line plt.plot([0, 6], [0, 6], color='red', linestyle='--') # Set limits to minimize empty space plt.xlim(y_test.min() - 1, y_test.max() + 1) plt.ylim(y_test.min() - 1, y_test.max() + 1) plt.grid() plt.show()
Kesimpulan
Dalam projek ini, kami membangunkan model Regresi Linear untuk meramalkan harga perumahan California berdasarkan pelbagai ciri. Ralat Purata Kuasa Dua telah dikira untuk menilai prestasi model, yang memberikan ukuran kuantitatif ketepatan ramalan. Melalui visualisasi, kami dapat melihat prestasi model kami terhadap nilai sebenar.
Projek ini menunjukkan kuasa pembelajaran mesin dalam analitik hartanah dan boleh berfungsi sebagai asas untuk teknik pemodelan ramalan yang lebih maju.
Atas ialah kandungan terperinci Aliran Kerja Pembelajaran Mesin Lengkap dengan Scikit-Learn: Meramalkan Harga Perumahan California. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Python sesuai untuk sains data, pembangunan web dan tugas automasi, manakala C sesuai untuk pengaturcaraan sistem, pembangunan permainan dan sistem tertanam. Python terkenal dengan kesederhanaan dan ekosistem yang kuat, manakala C dikenali dengan keupayaan kawalan dan keupayaan kawalan yang mendasari.

Anda boleh mempelajari konsep pengaturcaraan asas dan kemahiran Python dalam masa 2 jam. 1. Belajar Pembolehubah dan Jenis Data, 2.

Python digunakan secara meluas dalam bidang pembangunan web, sains data, pembelajaran mesin, automasi dan skrip. 1) Dalam pembangunan web, kerangka Django dan Flask memudahkan proses pembangunan. 2) Dalam bidang sains data dan pembelajaran mesin, numpy, panda, scikit-learn dan perpustakaan tensorflow memberikan sokongan yang kuat. 3) Dari segi automasi dan skrip, Python sesuai untuk tugas -tugas seperti ujian automatik dan pengurusan sistem.

Anda boleh mempelajari asas -asas Python dalam masa dua jam. 1. Belajar pembolehubah dan jenis data, 2. Struktur kawalan induk seperti jika pernyataan dan gelung, 3 memahami definisi dan penggunaan fungsi. Ini akan membantu anda mula menulis program python mudah.

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam masa 10 jam? Sekiranya anda hanya mempunyai 10 jam untuk mengajar pemula komputer beberapa pengetahuan pengaturcaraan, apa yang akan anda pilih untuk mengajar ...

Cara mengelakkan dikesan semasa menggunakan fiddlerevery di mana untuk bacaan lelaki-dalam-pertengahan apabila anda menggunakan fiddlerevery di mana ...

Memuatkan Fail Pickle di Python 3.6 Kesalahan Laporan Alam Sekitar: ModulenotFoundError: Nomodulenamed ...

Bagaimana untuk menyelesaikan masalah segmentasi kata Jieba dalam analisis komen tempat yang indah? Semasa kami mengadakan komen dan analisis tempat yang indah, kami sering menggunakan alat segmentasi perkataan jieba untuk memproses teks ...


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

Dreamweaver Mac版
Alat pembangunan web visual

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini