【笔记】初探KNN算法(1)
KNN算法(1)
全称是K Nearest Neighbors
k近邻算法:
- 思想简单
- 需要的数学知识很少
- 效果不错
- 可以解释机器学习算法使用过程中的很多细节问题
- 更加完整的刻画机器学习应用的流程
其思想总的来说就是在多个样本之间进行比较,越相似的话,新的样本就有更高的概率属于这个类别,一般用来解决分类问题,关于操作流程,简单来说,就是一个新样本进入以后,我们需要k个邻居(距离最近的样本)来判断猜测新样本的符合的类别
对于两个特征点的距离计算,可以使用欧拉距离,但是往往算的是不止三维的,所以可以使用
关于基础部分
例子:
假设有10个样本
他们的位置分别在
设置X_train和y_train
然后进行可视化
plt.scatter(X_train[y_train==0,0],X_train[y_train==0,1],color="g")
plt.scatter(X_train[y_train==1,0],X_train[y_train==1,1],color="r")
设置一个新的样本
x = np.array([8.0,3.4])
再在此基础上重新可视化
plt.scatter(X_train[y_train==0,0],X_train[y_train==0,1],color="g")
plt.scatter(X_train[y_train==1,0],X_train[y_train==1,1],color="r")
plt.scatter(x[0],x[1],color="b")
找出新样本的位置
KNN算法的简单流程
求出新样本到各个样本的距离
distances = [sqrt(np.sum((x_train - x)**2)) for x_train in X_train]
得出索引
设置一个nearest用来存放
设置k=6
设置一个topK_y用来找出k范围中的种类
topK_y = [y_train[i] for i in nearest[:k]]
使用Counter(topK_y),来对种类进行一个整合划分,可看做一个字典
最后
votes = Counter(topK_y)
就可以得出大致结果
最后设置predict_y用来存放最终结果
您能读到这儿,我呢是发自真心的感谢您,若要转载,还望请您带上链接
分类:
KNN(k近邻)算法
标签:
KNN
, jupyter notebook
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!