.KNNについて
また、K近くアルゴリズムとして知られている1.KNNアルゴリズムは、ある
データマイニング
1つの分類。いわゆるK最近傍、最近傍のKはその意味が各サンプルはその最も近い隣人を表現するためにkを使用できるということです。
核となるアイデア2.KNNアルゴリズムは、k近傍サンプルの特徴空間におけるサンプルの大部分は、カテゴリに属している場合は、サンプルもこの範疇に入ることで、カテゴリ上のサンプルの特性を有しています。最寄りのカテゴリまたは複数のサンプルのみに基づいて分類決定を決定する方法は、サブサンプルが属することがカテゴリを決定します。関連する隣接するサンプルのごく少量の意思決定のカテゴリのKNNアルゴリズム。KNNアルゴリズムは、主として、周囲の隣接するサンプルではなく、判別クラスカテゴリフィールドを決定する方法によって制限されているので、ドメインが重複または複数のクラスのサンプルセットを分割するために、KNN法は、他の方法よりも大きいです適しています。
II。コードの実装
#- * -コーディング:UTF-8 - - * "" " シミュレートするためのpython KNNアルゴリズムプログラムを使用して 作成された22の土2019年6月には午後06時38分22秒ONである :ジェン@author """ インポートNP AS numpyの インポートコレクションCS AS データ = NP .ARRAY([ [ 203,1]、[126,1]、[89,1]、[70,1]、[196,2]、[211,2]、[221,2]、[311,3 ]、[271,3 ] ]) 機能 =データ[:0] #前記 プリント(特徴) ラベル = DATA [: - 1] #の結果は、ソート 印刷(ラベル) predictPoint = 200 #の予測データの 印刷(「予測入力によって特徴付けられます:" + STR(predictPoint)) の距離 =一覧(地図(ラムダ X:ABS(predictPoint - X)、フィーチャー)) #各点の予測地点までの距離 を印刷(距離) sortIndex = np.argsort(距離)#のソート、リターン各元のデータのインデックスをソートした後 印刷(sortIndex) sortLabel =ラベル[sortIndex] #係る添字並べ換え プリント(sortLabel) #サイズkのK =#3の設定値3を するために K に範囲(1、label.size + +1 ): 結果 = cs.Counter(sortLabel。[0:K])most_common(1)[0] [0] #最も高い発生頻度がk個のk個のデータを計算する前の値に応じて分類、予測された分類である 印刷(" 場合= K " + STR(K)+ " 分類する際の予測:" + STR(結果))
アウトカム
[203 1,268,970,196,211,221,311 271 ] [ 111122233 ] 予測入力特徴: 200 [ 3、74、111、130、4、11、21、111、71 ] [0 4 5681273 ] [ 122231131 ] K = 1として分類予測される:1 Kの場合 1:= 2として分類予測 する際K 2 = 3に分類予測される 場合K = 4として分類予測される:2 ときにK 2 = 5予報のように分類 する際K 2 = 6予報のように分類 するときK 1 = 7予測として分類 するときK 1 = 8予測として分類 するときKは予測= 9に分類:1。
IV。まとめ
K = 1は、予測誤差が異常なデータが存在する傾向がある場合1.このようなkが小さい場合のように訓練データと結果は、[これは】トレーニングデータは、それが一般的に小さすぎる値Kでない場合!
2. k値が大きい場合には、分類のためのより多くのトレーニングデータは、このカテゴリの可能性が高く予測するには、そのため、最初の再均衡されなければならない分類に応じたトレーニングデータを!
3. kの一般的な値の数と分類、分類の大きい数を選択し、kの値は、一般に、一般的に大きくなる:kの間〜2K!