Bagaimana untuk menggunakan algoritma KNN untuk klasifikasi dalam Python?

PHPz
Lepaskan: 2023-06-05 09:02:04
asal
1641 orang telah melayarinya

K Algoritma jiran terdekat (KNN) ialah algoritma yang mudah dan berkesan yang boleh digunakan untuk pengelasan dan regresi. Idea asasnya adalah untuk mengenal pasti kategori kepunyaan sampel dengan mengukur jarak antara ciri yang berbeza. Dalam artikel ini, kami akan meneroka cara mengklasifikasikan KNN dalam Python.

1. Sediakan set data

Pertama, kita perlu sediakan set data. Dalam contoh ini, kami akan menggunakan set data Iris, yang mengandungi 3 bunga iris berbeza (Setosa, Versicolour dan Virginica), setiap satu dengan 4 ciri (Panjang Sepal, Lebar Sepal, Panjang Kelopak, Lebar Kelopak).

Kami akan menggunakan perpustakaan Pandas untuk membaca dan mempraproses data. Mula-mula, kita perlu mengimport pustaka yang diperlukan:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
Salin selepas log masuk

Kemudian, kami akan memuatkan set data:

url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"
names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']
dataset = pd.read_csv(url, names=names)
Salin selepas log masuk

Sekarang kita mempunyai set data, kita boleh mula menerokanya.

2. Visualisasi Data

Sebelum mengklasifikasikan, kita perlu memvisualisasikan dan meneroka data. Kami akan merancang plot taburan setiap ciri terhadap ciri lain, serta histogram setiap ciri. Kita boleh menggunakan perpustakaan Matplotlib dan perpustakaan Seaborn untuk visualisasi.

Petak taburan antara ciri:

import seaborn as sns
sns.pairplot(dataset, hue="class")
Salin selepas log masuk

Seperti yang dapat dilihat dari gambar ini, ciri-ciri bunga iris yang berbeza adalah sangat berbeza, yang merupakan asas untuk pengelasan.

Histogram setiap ciri:

dataset.hist()
plt.show()
Salin selepas log masuk

Seperti yang dapat dilihat daripada rajah ini, setiap ciri dalam set data mempunyai taburan yang berbeza, yang merupakan asas untuk normalisasi.

3. Prapemprosesan data

Sebelum pengelasan, kita perlu praproses data. Kita boleh membahagikan set data kepada ciri input dan kategori output, dan kemudian menskalakan nilai ciri kepada julat 0 hingga 1.

Mula-mula, kami membahagikan set data kepada ciri input dan kategori output:

X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, 4].values
Salin selepas log masuk

Kemudian, kami menskalakan nilai ciri ​​ke julat 0 hingga 1:

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X = scaler.fit_transform(X)
Salin selepas log masuk

Kini kami mempunyai set data praproses kami.

4. Pisahkan set data

Sebelum pengelasan, kita perlu bahagikan set data kepada set latihan dan set ujian. Kita boleh melakukan ini menggunakan fungsi train_test_split daripada perpustakaan Scikit-learn.

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)
Salin selepas log masuk

Ini akan mencipta set latihan dan set ujian dengan nisbah 80:20.

5. Melatih model KNN

Kini, kita boleh mula melatih model KNN. Kami mula-mula mengimport kelas KNeighborsClassifier, mencipta contoh dan menggunakan fungsi muat untuk menyesuaikan model.

from sklearn.neighbors import KNeighborsClassifier
classifier = KNeighborsClassifier(n_neighbors=5)
classifier.fit(X_train, y_train)
Salin selepas log masuk

Ini akan mencipta pengelas KNN dan melatihnya untuk mengelas menggunakan set latihan.

6. Ramalan

Kini, kita boleh menggunakan model KNN untuk membuat ramalan pada set ujian. Kami menggunakan fungsi ramalan untuk membuat ramalan dan menyimpan keputusan ke dalam pembolehubah.

y_pred = classifier.predict(X_test)
Salin selepas log masuk

7. Penilaian Model

Akhir sekali, kami perlu menilai model kami dan menentukan ketepatannya. Kita boleh menggunakan fungsi confusion_matrix dan classification_report dalam perpustakaan Scikit-learn untuk menilai ketepatan model.

from sklearn.metrics import confusion_matrix, classification_report
print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred))
Salin selepas log masuk

Ini akan mengeluarkan matriks kekeliruan dan laporan klasifikasi yang menunjukkan ketepatan model kami.

Ringkasan

Menggunakan algoritma KNN untuk pengelasan dalam Python memerlukan langkah berikut:

1 Sediakan set data
2. Prapemprosesan Data
4. Pisahkan set data
5. Melatih model KNN
6. Penilaian model

Algoritma KNN adalah algoritma yang mudah dan berkesan klasifikasi dan regresi. Menggunakan algoritma KNN untuk pengelasan dalam Python memerlukan mengikut langkah di atas. Pada masa yang sama, kami juga perlu melakukan visualisasi data dan prapemprosesan untuk memastikan model kami dapat mengelaskan dengan tepat.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan algoritma KNN untuk klasifikasi dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan