01-KNN算法总结

发布时间:2026/7/4 2:51:15
01-KNN算法总结 1. KNN概述K-邻近算法K Nearist Neighbor有监督学习算法1.1 KNN思想样本相似性-根据你的邻居推断你的类别 / 预测你的数值可以分类、可以回归分类标签不连续选择距离最近的k个多数投票回归标签连续选择距离最近的k个计算平均值1.2 K值的选择网格搜索 交叉验证K过小容易过拟合样本少不确定性大模型复杂K过大容易欠拟合样本越多结果越确定结果趋于完全确定模型简单调优方法网格搜索 交叉验证具体看这篇机器学习概述1.3 距离的计算方法1.3.1 欧式距离常用两点之间的直线距离对应维度差值的 平方和 开平方 闵可夫斯基距离中p21.3.2 曼哈顿距离也称为城市街区距离特点是横平竖直对应维度差值的 绝对值 求和 闵可夫斯基距离中p11.3.3 切比雪夫距离移动规则上下左右斜对角国际象棋对应维度差值的 绝对值 求最大值 闵可夫斯基距离中p∞1.3.4 闵可夫斯基距离多个距离的概括性表述2. 算法API2.1 分类KNNfrom sklearn.neighbors import KNeighborsClassifier # 数据集 x_train [[1],[2],[0],[5]] y_train [0,0,1,1] x_test [[4]] # 模型对象 estimator KNeighborsClassifier(n_neighbors2) # 模型拟合 estimator.fit(x_train, y_train) # 模型预测 y_pre estimator.predict(x_test)2.2 回归KNNfrom sklearn.neighbors import KNeighborsRegressor # 数据集 x_train [ [1,2,3,4], [2,3,4,5], [3,4,5,6], [4,5,6,7] ] y_train [1.1,2.2,3.3,4.4] x_test [[2.3,2.4,5.5,3.6]] # 模型对象 estimator KNeighborsRegressor(n_neighbors2) # 模型拟合 estimator.fit(x_train, y_train) # 模型预测 y_pre estimator.predict(x_test)案例汇总