Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan algoritma KNN untuk klasifikasi dalam Python?

Bagaimana untuk menggunakan algoritma KNN untuk klasifikasi dalam Python?

PHPz
PHPzasal
2023-06-05 09:02:041585semak imbas

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

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)

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")

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()

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

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

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X = scaler.fit_transform(X)

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)

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)

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)

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))

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!

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