KNN算法

本文介绍了KNN算法的基本原理,包括使用欧式距离和切比雪夫距离进行分类,强调了其简单易实现但对数据集大小、标准化和特征维度敏感的特点,以及K值选择对模型性能的影响。通过鸢尾花数据集实例展示了KNN分类器的使用和评估过程。
摘要由CSDN通过智能技术生成

KNN算法

原理:以相邻最近的距离最为判决条件(欧式距离,切比雪夫距离等)

优点:

  • 简单方便,便于实现
  • 对于边缘不规则数据的效果好

缺点:

  • 数据集要求小。
  • 数据规则效果差
  • 必须数据标准化(距离得标准)
  • 数据特征维度太多不行

K值影响对结果影响大

  • K越小过拟合
  • K越大欠拟合
  • 一般向上加

鸢尾花数据集例子

from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier #sklearn模块的KNN类
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分类器对象
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)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值