sklearnで、 k-NN(K-Nearest Neighbor Algorithm) 分類問題
index:
概要
機械学習で、k-NN を使用した。分類問題をテストしてみたいと
思います
環境
python 3.5.2
sklearn
コード
python3 です。
github.com
データセット
iris のデータ使用しました。
処理
KNeighborsClassifier を使用し、
学習、評価結果(score) を、リストに追加
list_nn = [] list_score = [] for k in range(1, 31): # K = 1~30 # KNeighborsClassifier knc = KNeighborsClassifier(n_neighbors=k) knc.fit(X_train, Y_train) # 予測 Y_pred = knc.predict(X_test) #print("Y_pred=", Y_pred.shape) #print("Y_pred=", Y_pred[:10 ]) # 評価 R^2 score = knc.score(X_test, Y_test) print("[%d] score: {:.2f}".format(score) % k) list_nn.append(k) list_score.append(score)
結果
20回、過ぎると。過学習になるようです。
回数を、少なめにして調整した方が、よさそうです
データ数 = 150 特徴量 = 4 [1] score: 0.97 [2] score: 0.97 [3] score: 0.97 [4] score: 0.97 [5] score: 0.97 [6] score: 0.97 [7] score: 0.97 [8] score: 0.97 [9] score: 0.97 [10] score: 0.97 [11] score: 0.97 [12] score: 0.97 [13] score: 0.97 [14] score: 0.97 [15] score: 0.97 [16] score: 0.97 [17] score: 0.97 [18] score: 0.97 [19] score: 0.97 [20] score: 0.97 [21] score: 0.97 [22] score: 0.97 [23] score: 0.97 [24] score: 0.95 [25] score: 0.95 [26] score: 0.95 [27] score: 0.95 [28] score: 0.92 [29] score: 0.89 [30] score: 0.95