【人工智能】knn算法

目录

一、对[1.0,1.1],[1.0,1.0],[0,0],[0,0.1],[0.1,0.1],[1.1,1.1]六个点用knn进行聚类,并显示。

1. 未调用KNN算法前,绿色为未知分类

2. 调用KNN算法

3. 运行结果

二、使用knn算法分类手写数字文件

1. 第一个temp的含义

2. 第二个temp的含义

3. 第三个temp的含义

4. 第四个temp的含义

5. argsort

三、使用knn算法分类约会数据,选择不同的k值,看看正确率有什么变化

1. 常用的特征归一化方法MinMaxScaler 实现公式如下

2. 将txt文件转换为特征矩阵存储起来

3. 用KNN算法计算正确率

四、K均值聚类算法分类80个二维数据

1. means聚类算法的工作流程

五、模拟第一题,对ppt中P3页的电影例子进行分类并显示分类结果。标签中不再显示坐标,而是显示电影名字。

1. 处理数据

2. 未分类之前

3. 用KNN算法分类之后


一、对[1.0,1.1],[1.0,1.0],[0,0],[0,0.1],[0.1,0.1],[1.1,1.1]六个点用knn进行聚类,并显示。

[[1.0,1.1],[1.0,1.0],[0,0],[0,0.1],[0.1,0.1],[1.1,1.1]]为样本集,标签集为:[0,0,1,1,2,2]

前两个元素[1.0,1.1],[1.0,1.0]为一类,中间两个元素[0,0],[0,0.1]为另一类,[0.1,0.1],[1.1,1.1]为待分类的样本。

在”简单kNN.ipynb”最后一个单元格基础上,将绿色为分类样本通过调用knn算法实现分类并按类别显示.

1. 未调用KNN算法前,绿色为未知分类

2. 调用KNN算法

3. 运行结果

二、使用knn算法分类手写数字文件

knn算法中的几个temp分别表示什么意义,temp.shape是否有变化分别对应着什么?

argsort是什么,记录的数据对应着什么?

1. 第一个temp的含义

矩阵相减的时候,由于_x是一个1*1024的矩阵,而x是一个1934*1024的矩阵,_x的维度会变成1934*1024,每行都是一样的,再减掉x矩阵。

其实就是求所求点与各点之间的坐标差,x0-x, y0-y,.....

Temp.shape = (1934 , 1024)

2. 第二个temp的含义

求平方,(x0-x)^2,(y0-y)^2,.......

Temp.shape = (1934 , 1024)

3. 第三个temp的含义

矩阵变为1934行1列,(x0-x)^2 +(y0-y)^2+.......

Temp.shape = (1934 , 1)

4. 第四个temp的含义

给矩阵每个数开根,算出所求点与已有各点的距离

Sqrt(x0-x)^2 +(y0-y)^2+.......)

Temp.shape = (1934 , 1)

5. argsort

将列表中的元素进行排序,返回列表索引号为0的值表示原列表中最小的数字的索引号,依此类推。例如temp列表为[0. 0.1 1.48660687 1.41421356],则temp.argsort()返回值为[0 1 3 2] 第一个元素值为0,表示temp中最小的元素所在索引号为0,第二个元素值为1,表示temp中第二小的元素所在索引号为1,第三小元素所在索引号为3,第四小元素所在索引号为2

三、使用knn算法分类约会数据,选择不同的k值,看看正确率有什么变化

1. 常用的特征归一化方法MinMaxScaler 实现公式如下

X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))

X_scaled = X_std * (max - min) + min

2. 将txt文件转换为特征矩阵存储起来

3. 用KNN算法计算正确率

测试1-200之间的k值的准确率:

结果如下:

可以发现不是线性关系,随着数字变大,准确率也会下降。

四、K均值聚类算法分类80个二维数据

1. means聚类算法的工作流程

(1)首先随机选择初心质心,其中K是用户指定的参数(需要分成几类)

(2)将数据集中的每个点指派到最近的质心,而指派到一个质心的点就为一个

(3)根据指派到簇的点,将每个簇的质心更新为该簇所有点的平均值

(4)重复指派和更新步骤,直到簇不发生变化,或者等价的,直到质心不发生变化

五、模拟第一题,对ppt中P3页的电影例子进行分类并显示分类结果。标签中不再显示坐标,而是显示电影名字。

1. 处理数据

2. 未分类之前

3. 用KNN算法分类之后

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值