机器学习算法-K近邻(KNN)算法(二):二维数据,鸢尾花,模拟数据-算法实战(代码附详细注释)

本文通过二维鸢尾花数据和鸢尾花数据集展示了K近邻(KNN)算法的分类应用,详细介绍了模型训练、预测及可视化过程。对于不同K值的选择,如k=1和k=15,分析了其对模型鲁棒性的影响。同时,还探讨了模拟数据集上的KNN回归问题,揭示了k值过小可能导致过拟合,而k值过大可能引起欠拟合的现象,建议在实际应用中根据数据规模选择合适的k值范围。
摘要由CSDN通过智能技术生成

二维鸢尾花数据-KNN分类

step 1:库函数导入

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
from sklearn.neighbors import KNeighborsClassifier
from sklearn import datasets

step 2:数据导入

#使用莺尾花数据集的前两维数据,便于数据可视化
iris = datasets.load_iris() #加载鸢尾花数据集
X = iris.data[:, :2] #取鸢尾花数据集前两列特征
y = iris.target #y为鸢尾花的类别信息

step 3:模型训练&可视化

k_list = [1, 3, 5, 8, 10, 15] # 因为要比较不同K值下模型的性能,所以选择了6个不同的k值。
h = .02,步长,用来设置x和y轴上两个数字之间的间距
# 创建不同颜色的画布
cmap_light = ListedColormap(['orange', 'cyan', 'cornflowerblue']) #画布上不同区域的颜色
cmap_bold = ListedColormap(['darkorange', 'c', 'darkblue']) #数据集点的颜色

plt.figure(figsize=(15,14)) #画图的尺寸
# 根据不同的k值进行可视化
for ind,k in enumerate(k
  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值