KNN笔记

简介:

knn是一种有监督的分类算法。将所有数据分为训练集和测试集,在运行过程中并没有学习,不形成模型,且由于需要大量的内存不适合数据量过大场景。不过它是非常简单的一类分类模型。

原理:

将一个为标记类的物品与其他标记类的物品进行距离比较,选出前k各标记类的物品,观察那个类的物品占比较多,则这个未标记的类属于占比较大的类。例如探究西红柿是属于水果还是蔬菜。选取水果类的几个物品如葡萄、橘子、香蕉,蔬菜类的物品选择黄瓜、白菜、菠菜。从脆度和甜度两个特征比较西红柿与这些物品的距离,选择距离最近的k个物品,比如选3,而最近的三个物品分别为香蕉、葡萄和菠菜,水果类的占2/3,蔬菜类的占1/3,水果类的占比大,因此西红柿分为水果类。

步骤:

1、数据收集、预处理,首先需要将数据标准化。(常用方法为最大最小法和z-score)

最大最小法x'=(x-min(x))/max(x)-min(x)

z-score       x'=(x-mean(x))/sd(x)

2、将数据分为训练集和测试集

3、基于数据训练模型

4、评估模型的性能(主要观察数据预测的准确率)

5、提高性能的关键:改变k值;数据标准化,一般k取训练集中案例数量的平方根。选择大的k会减少噪声数据对模型的影响或者减少噪声导致的模型波动,但是他会是分类器产生偏差。

猜你喜欢

转载自blog.csdn.net/weixin_38416233/article/details/81111372
kNN