KNN算法思想:如果一个样本在特征空间中的 k 个最相似的样本中的大多数属于某一个类别,则该样本也属于这个类别 。主要解决分类问题。
knn是一个不需要训练的算法。 没有模型的算法。 为了和其他算法统一,knn训练数据集就是模型本身。
knn特点:
- 效率比较低,m 个样本 n 列,o(m*n) 。
- 预测结果不具有可解释性的特点。
https://blog.csdn.net/weixin_41620451/article/details/105918973
- 曼哈顿距离
- 欧拉距离:
- 搜索明可夫斯基距离相应的p
将数据拆分乘 测试集和训练集
sum(y_predict == y_test) / len(y_test)
把数据都映射到 0-1中。
x_scale = (x - min(x)) / (max(x) - min(x))
如果数据很不规整,有很大的极大值,和极小值, 那么这种数据采用这种方式,会使数据不准确。
s = np.std(x)
x_scale= (x - x_mean) / s