KNN算法
原理:以相邻最近的距离最为判决条件(欧式距离,切比雪夫距离等)
优点:
缺点:
- 数据集要求小。
- 数据规则效果差
- 必须数据标准化(距离得标准)
- 数据特征维度太多不行
K值影响对结果影响大
鸢尾花数据集例子
from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
import numpy as np
import random
np.random.seed(0)
iris=datasets.load_iris()
iris_x=iris.data
iris_y=iris.target
randomarr=np.random.permutation(len(iris_x))
iris_x_train=iris_x[randomarr[:-10]]
iris_y_train=iris_y[randomarr[:-10]]
iris_x_test=iris_x[randomarr[-10:]]
iris_y_test=iris_y[randomarr[-10:]]
knn=KNeighborsClassifier()
knn.fit(iris_x_train,iris_y_train)
iris_y_predict=knn.predict(iris_x_test)
probility=knn.predict_proba(iris_x_test)
score=knn.score(iris_x_test,iris_y_test,sample_weight=None)
print('iris_y_predict')
print(iris_y_predict)
print('iris_y_test')
print(iris_y_test)
print('Auccary',score)