ホームページ  >  記事  >  バックエンド開発  >  Python で分類に KNN アルゴリズムを使用するにはどうすればよいですか?

Python で分類に KNN アルゴリズムを使用するにはどうすればよいですか?

PHPz
PHPzオリジナル
2023-06-05 09:02:041584ブラウズ

K 最近傍アルゴリズム (KNN) は、分類と回帰に使用できるシンプルで効果的なアルゴリズムです。その基本的な考え方は、異なる特徴間の距離を測定することによって、サンプルが属するカテゴリを識別することです。この記事では、Python で KNN を分類する方法を検討します。

1. データセットの準備

まず、データセットを準備する必要があります。この例では、3 つの異なるアイリスの花 (Setosa、Versicolour、Virginica) を含む Iris データセットを使用します。それぞれに 4 つの特徴 (がく片の長さ、がく片の幅、花弁の長さ、花びらの幅) があります。

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

この写真からわかるように、さまざまなアヤメの花の特徴は大きく異なり、それが分類の基礎となります。

各特徴のヒストグラム:

dataset.hist()
plt.show()

この図からわかるように、データセット内の各特徴には異なる分布があり、これが正規化の基礎となります。

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 モデルを使用してテスト セットを予測できます。予測関数を使用して予測を行い、結果を変数に保存します。

y_pred = classifier.predict(X_test)

7. モデルの評価

最後に、モデルを評価し、その精度を判断する必要があります。 Scikit-learn ライブラリのconffusion_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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。