首頁 >後端開發 >Python教學 >如何在Python中使用KNN演算法進行分類?

如何在Python中使用KNN演算法進行分類?

PHPz
PHPz原創
2023-06-05 09:02:041655瀏覽

K近鄰演算法(KNN)是一種簡單有效的演算法,它可以用於分類和迴歸。它的基本思想是透過測量不同特徵之間的距離來識別樣本所屬的類別。在本文中,我們將探討如何在Python中對KNN進行分類。

1.準備資料集

首先,我們需要準備資料集。在本例中,我們將使用Iris資料集,它包含3種不同的鳶尾花(Setosa、Versicolour和Virginica),每種鳶尾花有4個特徵(Sepal Length、Sepal Width、Petal Length、Petal Width)。

我們將使用Pandas函式庫來讀取和預處理資料。首先,我們需要導入所需的函式庫:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

然後,我們將載入資料集:

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)

現在,我們有了一個資料集,我們可以開始對其進行探索。

2.資料視覺化

在進行分類之前,我們需要對資料進行視覺化和探索。我們將畫出每個特徵與另一個特徵之間的散佈圖,以及每個特徵的直方圖。我們可以使用Matplotlib庫和Seaborn庫來進行視覺化。

特徵之間的散佈圖:

import seaborn as sns
sns.pairplot(dataset, hue="class")

386b528fdcaa97c71a1406e01fb1e3a3

從這張圖中可以看出,不同鳶尾花的特徵有很大的差異,這是進行分類的基礎。

各個特徵的直方圖:

dataset.hist()
plt.show()

71cdfbdb6f2fd1462c933c87bd29df3e

從這個圖中可以看出,資料集中的每個特徵都有不同的分佈,這是進行標準化的基礎。

3.資料預處理

在進行分類之前,我們需要先對資料進行預處理。我們可以將資料集拆分為輸入特徵和輸出類別,然後將特徵值縮放到0到1的範圍內。

首先,我們將資料集拆分為輸入特徵和輸出類別:

X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, 4].values

然後,我們將特徵值縮放到0到1的範圍內:

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

現在,我們有了經過預處理的資料集。

4.拆分資料集

在進行分類之前,我們需要將資料集拆分為訓練集和測試集。我們可以使用Scikit-learn函式庫中的train_test_split函數來完成。

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)

這將建立一個訓練集和一個測試集,比例為80:20。

5.訓練KNN模型

現在,我們可以開始訓練KNN模型。我們先匯入KNeighborsClassifier類,建立一個實例,並使用fit函數來擬合模型。

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

這將建立一個KNN分類器,並訓練它使用訓練集進行分類。

6.預測

現在,我們可以使用KNN模型對測試集進行預測。我們使用predict函數來進行預測,並將結果保存到一個變數中。

y_pred = classifier.predict(X_test)

7.模型評估

最後,我們需要評估我們的模型並確定其準確性。我們可以使用Scikit-learn函式庫中的confusion_matrix和classification_report函數來評估模型的準確性。

from sklearn.metrics import confusion_matrix, classification_report
print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred))

這將輸出混淆矩陣和分類報告,顯示我們的模型的準確性。

總結

在Python中使用KNN演算法進行分類需要以下步驟:

1.準備資料集
2.資料視覺化
3.數據預處理
4.分割資料集
5.訓練KNN模型
6.預測
7.模型評估

KNN演算法是簡單有效的演算法,它可以用於分類和回歸。在Python中使用KNN演算法進行分類需要根據上述步驟進行操作。同時,我們也需要進行資料視覺化和預處理,以確保我們的模型能夠準確地進行分類。

以上是如何在Python中使用KNN演算法進行分類?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn