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 サイトの他の関連記事を参照してください。