文章目录
一、Knn是什么?
寻找未知分类的数据,以离他最近的已知n个数据,来看他应该属于哪一类
如图,k值视为临近范围。
如果K=3,那么离绿色点最近的有2个红色三角形和1个蓝色的正方形,这3个点投票,于是绿色的这个待分类点属于红色的三角形。
如果K=5,那么离绿色点最近的有2个红色三角形和3个蓝色的正方形,这5个点投票,于是绿色的这个待分类点属于蓝色的正方形。可见K值的选择对分类的结果还是有很大的影响。
距离度量: sklearn knn的使用,以及cross validation交叉验证
二、应用步骤
1.准备一些数据csv文件(这里以癌症检测数据为例)
2.在pycharm引入csv包(即可读取又可输出)
代码如下:
import csv
2.读入数据
代码如下:
with open('Prostate_Cancer.csv', 'r') as file: # 打开csv文件并读取,需要先下载此文件
reader = csv.DictReader(file) # DictReader可以以字典的方式读取文件
datas = [row for row in reader] # 循环读取数据
3.打乱数据集并分段数据作为训练和测试类
random.shuffle(datas) # 引用random包,随机打乱数据集,使每次训练的顺序不同达到训练目的
n = len(datas)//3 #