- knnを試します
k近傍法(ケイきんぼうほう、英: k-nearest neighbor algorithm, k-NN)は、特徴空間における最も近い訓練例に基づいた分類の手法であり、パターン認識でよく使われる。最近傍探索問題の一つ。k近傍法は、インスタンスに基づく学習の一種であり、怠惰学習 (lazy learning) の一種である。その関数は局所的な近似に過ぎず、全ての計算は分類時まで後回しにされる。また、回帰分析にも使われる。
出典:https://ja.wikipedia.org/wiki/K%E8%BF%91%E5%82%8D%E6%B3%95
花タイプ判断用ソースコード:
from sklearn import neighbors
from sklearn import datasets
knn = neighbors.KNeighborsClassifier()
# 内部花サンプルデータを読み込みする
iris = datasets.load_iris()
# データ構造を見る
print(iris)
# データknnに学習する
#iris.data 学習データ
#iris.target 各学習データの結果データ
knn.fit(iris.data, iris.target)
# 予測する
item = [[0.1, 0.2, 0.3, 0.4]]
predictedLabel = knn.predict(item)
i = 0
for key in iris.feature_names:
print(key + ":" + str(item[0][i]))
i = i + 1
print("予測の花タイプは:" + iris.target_names[predictedLabel][0])
- 利用したツール: python3 sklearn(機械学習計算用)
- 計算用データ説明:
花タイプ用判断です。
iris構造説明:
{'feature_names': ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)'], 'data': array([[ 5.1, 3.5, 1.4, 0.2],
[ 4.9, 3. , 1.4, 0.2],
[ 4.7, 3.2, 1.3, 0.2],
[ 4.6, 3.1, 1.5, 0.2],
[ 5. , 3.6, 1.4, 0.2],
[ 5.4, 3.9, 1.7, 0.4],
[ 4.6, 3.4, 1.4, 0.3],
[ 5. , 3.4, 1.5, 0.2],....
'target_names': array(['setosa', 'versicolor', 'virginica'],....
'target': array([0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 0,....
feature_names:属性名
data:属性データ
target_names:種類名
target:各data属性に対して種類