基础算法-KNN(邻近算法)

本文深入介绍了KNN(K-Nearest Neighbors)算法,包括算法的核心思想——物以类聚,人以群分。内容涵盖KNN的概述、如何找邻居、距离的定义(如欧式和曼哈顿距离)、K值的选择及其对结果的影响,以及算法的优缺点。此外,文章还通过代码实战部分,讲解了KNN算法在实际应用中的参数设置,如n_neighbors参数,并提供了经典数据集分类任务和多分类案例分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

KNN算法原理介绍

KNN概述

在这里插入图片描述
knn的线性回归例子
房东房屋出租:租多少钱合适呢?
找到和自己房子位置、户型等条件类似的n套,它们多少租金,我也多少租金。

在这里插入图片描述
knn的逻辑回归例子:
有已知的4部电影:根据镜头类别多少来分类成动作片和爱情片。有一部未知电影,假设K = 3,那么就计算其与前3部电影的距离d1,d2,d3,当未知电影与爱情片的距离d1、d2小于和动作片的距离d3时,判定未知电影是爱情片。

算法核心和实质

核心:物以类聚,人以群分
实质:找邻居,投票决定
在这里插入图片描述

原理详述

如何找邻居,找几个,如何投票?

在这里插入图片描述

距离的定义

在这里插入图片描述

欧式距离:两点间直线距离
曼哈顿距离:直线作为斜边构成直角三角形,两条直角边就是曼哈顿距离

K值的选取

k值选取不同,会导致不同的结果

如何投票

哪个多就是哪个类别

优缺点

在这里插入图片描述

代码实战

KNN算法API参数详解

在这里插入图片描述

n_neighbors:K值,邻居的个数,默认为5【关键参数】,为了取得合适的k,一般会先遍历

score():调出knn方法效果的评分

经典数据集分类任务(单分类)

"""
鸢尾花
"""
import pandas as pd
'''
训练集
测试集
'''
train_data = pd.read_excel(r'/Users/dx/Desktop/Python数据分析与机器学习/7.KNN算法/鸢尾花案例/鸢尾花训练数据.xlsx')
test_data = pd.read_excel(r'/Users/dx/Desktop/Python数据分析与机器学习/7.KNN算法/鸢尾花案例/鸢尾花测试数据.xlsx')

'''
处理数据
数据分离
'''
train_data.columns
train_x = train_data[['萼片长(cm)', '萼片宽(cm)', '花瓣长(cm)', '花瓣宽(cm)']]
train_y = train_data[['类型_num']]

'''
数据标准化
Z-Score标准化
'''
from sklearn.preprocessing import scale
data = pd.DataFrame()
data['萼片长标准化'] = scale(train_x['萼片长(cm)'])
data['萼片宽标准化'] = scale(train_x['萼片宽(cm)'])
data
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值