KNN 算法

  1. KNN算法原理讲解

    K 表示“最近邻”的数量,即在进行分类或回归预测时,考虑的周围最近的样本点的个数。

    第一个 N 是“Nearest”的缩写,表示“最近的”。

    二个 N 是“Neighbors”的缩写,表示“邻居”。

    • KNN(K-Nearest Neighbors)是一种基于距离的分类算法,核心思想是“少数服从多数”。
    • 步骤:
      • 计算新数据与已知数据集中所有点的距离(如欧式距离或曼哈顿距离)。
      • 按距离递增排序,选取前K个最近邻。
      • 根据K个邻居中多数类别确定新数据的分类。
    • K值的重要性:K的取值直接影响分类结果,需谨慎选择(一般不超过20)。
  2. 距离度量方法

    • 欧式距离:两点间的直线距离,适用于多维空间,公式为平方和开方。
    • 曼哈顿距离:横平竖直的路径距离,适用于网格状路径场景,公式为坐标差绝对值的和。
  3. 代码实现(鸢尾花分类示例)

    • 数据集加载:使用sklearn.datasets.load_iris()加载鸢尾花数据集(特征:花萼/花瓣长度/宽度;标签:三类)。
    • 数据划分train_test_split按比例(如70%训练集,30%测试集)划分数据,需设置随机种子(random_state)保证可复现性。
    • 模型训练
      • 创建KNN分类器:KNeighborsClassifier(n_neighbors=5, metric='euclidean')
      • 拟合数据:knn.fit(X_train, y_train)
    • 评估与预测
      • 计算准确率:knn.score(X_test, y_test)
      • 预测标签:knn.predict(X_test)
  4. 关键注意事项

    • KNN可用于分类和回归问题,回归时取邻居的平均值。
    • 特征需标准化,避免量纲影响距离计算。
    • 测试集仅用于最终评估,不可参与训练过程。
  5. 问答与互动

    • 强调K值选择对结果的影响,并通过示例演示不同K值导致分类结果变化。
    • 解释代码中fit(拟合)、score(准确率)、predict(预测)的作用及参数含义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值