Python 3 – k最近傍法-Pythonチュートリアル

Python

目次

最も単純な機械学習アルゴリズムの1つであるK最近傍法をご覧ください。

このアルゴリズムは、 分類 そして 回帰。 どちらの用途でも、入力は特徴空間で最も近いk個のトレーニング例で構成されます。 一方、出力はケースによって異なります。

  • K最近傍分類では、出力はクラスメンバーシップです。
  • K最近傍回帰では、出力はオブジェクトのプロパティ値です。

K最近傍法は実装が簡単で、複雑な分類タスクが可能です。

関連コース: Python機械学習コース

knn

k最近傍

それはと呼ばれます 怠惰 特別なトレーニングフェーズがないため、学習アルゴリズム。

はノンパラメトリック学習アルゴリズムであるため、基になるデータについては何も想定していません。 ほとんどのデータは理論的な仮定に従わないため、これは便利な機能です。

K最近傍法の最大の利点は、アルゴリズムがトレーニングなしで予測を行うことができることです。これにより、新しいデータを追加できます。

アルゴリズムが高次元データで距離を計算するのが難しいことは最大の欠点です。

アプリケーション

K最近傍法には多くのアプリケーションがあります。

いくつかの例は次のとおりです。

  • 信用格付けを行うために、財務特性を収集して、類似した財務機能を持つ人々をデータベースと比較します。

  • 政治を予測するために、ある政党または別の政党の有権者になる可能性のある人々を分類します。

  • 手書き、画像認識、ビデオ認識を検出するためのパターン認識。

k最近傍アルゴリズム

K最近傍法(knn) あなたが知っておくべき理論があります。

  • まず、K最近傍法は、他のすべてのトレーニングデータポイントまでの新しいデータポイントの距離を単純に計算します。 あらゆるタイプの距離にすることができます。

  • 次に、K最近傍データポイントを選択します。Kは任意の整数です。

  • 第3に、K個のデータポイントの大部分が属するクラスにデータポイントを割り当てます。

実際のアルゴリズムを理解することは、より良い例です。 使用するデータセットに2つの変数があると仮定します。

タスクは、「X」を含む新しいデータポイントを「赤」クラスまたは「青」クラスに分類することです。

k最近傍アルゴリズム

データポイントの座標値はx = 45とy = 50です。

ここで、Kの値が2(2つのクラスター)であると仮定します。

K最近傍アルゴリズムは、すべてのポイントからのポイントXの距離の計算を開始します。

ポイントX(黒い点)までの距離が最も短い最も近いポイントを見つけます。

最後のステップは、最も近い3つのポイントの過半数が属するクラスに新しいポイントを割り当てることです。

機械学習を初めて使用する場合は、 それなら私はこの本を強くお勧めします。

k最近傍scikit-learn

K最近傍法を実装するには、プログラミング言語とライブラリが必要です。

PythonとScikit-Learnの使用をお勧めします。

手順は簡単です、プログラマーはしなければなりません

ライブラリをインポートします。
データセットをインポートします。
前処理を行います。
(オプション)トレイン/テストデータを分割します。
予測を行います。
(オプション)アルゴリズムを評価します。

これで、K最近傍アルゴリズムを使用できます。

1
2
3
4
5
6
7
8
from sklearn.neighbors import NearestNeighbors
import numpy as np

X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
K = 2
nbrs = NearestNeighbors(n_neighbors=K, algorithm='ball_tree').fit(X)
distances, indices = nbrs.kneighbors(X)
print(distances)

k最近傍分類器

x値とy値を使用して2次元空間を作成します。 ターゲットには、可能な出力クラス(ラベルと呼ばれることが多い)が含まれています。

knnは分類子として使用できます。 パラメータn_neighborsがKであるscikit-learns * KNeighborsClassifier **を使用します。

次に、新しい値の予測を行うことができます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from sklearn import datasets
from sklearn import metrics
from sklearn.neighbors import KNeighborsClassifier
import numpy as np


X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
target = [0, 0, 0, 1, 1, 1]


K = 3
model = KNeighborsClassifier(n_neighbors = K)
model.fit(X, target)
print(model)


print( '(-2,-2) is class'),
print( model.predict([[-2,-2]]) )

print( '(1,3) is class'),
print( model.predict([[1,3]]) )

k最近傍回帰

knnは、回帰問題に使用できます。 以下の例では、月額賃貸料は平方メートル(m2)に基づいて予測されています。

それは使用します KNeighborsRegressor sklearnからの実装。 データセットが小さいため、Kは2つの最近傍に設定されます。

1
2
3
4
5
6
7
8
9
10
11
12
13
from sklearn.neighbors import KNeighborsRegressor


X = [[40], [45], [60], [70]]
y = [1000, 1200, 2000, 2500]


neigh = KNeighborsRegressor(n_neighbors=2)
neigh.fit(X, y)


print('Monthly Rental Price for 65m^2 in $'),
print(neigh.predict([[65]]))

例と演習をダウンロードする

Hope this helps!

Source link

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です