机器学习之KNN算法

ML-kNN 多标签k近邻算法 MLL Week 1 ML-kNN 多标签k近邻算法 MLL Week 1ML-kNN 多标签k近邻算法 MLL Week 1 传统kNN 多标签kNN  学习张敏灵老师的《ML-kNN: a lazy learning approach to multi-label learning》的学习笔记。传统kNN  k近邻算法(k-Nearest Neighbour, KNN)是机器学习中最基础,最简单的常用算法之一。其思想 阅读详情

 KNN 算法,或者称 k最邻近算法,是 有监督学习 中的 分类算法 。它可以用于分类或回归问题,但它通常用作分类算法。

一、KNN算法的原理:

找到K个与新数据最近的样本,取样本中最多的一个类别作为新数据的类别。

二、算法思想:

对于任意n维输入向量,分别对应于特征空间中的一个点,输出为该特征向量所对应的类别标签或预测值。

三、K值的选择

KNN算法中,K值的选择直接影响到最终模型的效果,K越小越容易过拟合,K越大越容易欠拟合,另外在选取时最好选取奇数,防止出现随机选择的情况。

此处扩展过拟合与欠拟合的概念:
欠拟合:模型在训练集上无法获取足够的筛选条件,也就是说没法学习到数据背后的规律

过拟合:模型在训练集和测试集上表现差距过大,只能呆板识别数据集固定特征,泛化能力差。

四、算法的优缺点:

优点

1.简单易实现

2.对于边界不规则的数据效果较好

缺点:

1.只适合小数据集。预测新数据需要使用全部数据集,耗费时间和算力

2.数据不平衡效果不好。

3.必须要做数据标准化。

4.不适合特征维度过多的数据。

五、鸢尾花数据集KNN算法演示

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
import numpy as np


# 读取鸢尾花数据 load_iris()鸢尾花数据集
data = load_iris()
x = data['data']
y = data['target']
# 划分训练集和数据集 test_size表示测试集的大小按比例划分
# array是列表,数组,矩阵或是pandas数据框
# random_state随机数的种子若为none生成的数据随机,为整数每次生成的数据都相同
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=0)

# 模型训练
# KNeighborsClassifier()是sklearn中的KNN算法函数,n_neighbors代表K值
model = KNeighborsClassifier(n_neighbors=3)
# model.fit()将训练数据在模型中训练一定次数
# 返回一个History的对象,即记录了loss和其他指标的数值随epoch变化的情况
model.fit(x_train, y_train)

# #模型预测,输入测试集,输出预测结果
y_pred = model.predict(x_test)

# 模型评估
# 统计数组中非零元素的个数,计算预测正确率
correct_pred = np.count_nonzero(y_pred == y_test)
accuracy = correct_pred / len(y_test)
print("准确率为:" + str(accuracy))

机器学习(一):K-近邻算法(KNN)分类与回归 这是自己的第一篇机器学习的文章,单纯做自己的学习笔记,一起加油进步 K-近邻 算法(KNN) 阅读详情

相关推荐

机器学习经典算法:K近邻算法(KNN)

K近邻算法KNN)是一种基于距离的机器学习算法,通过寻找离目标点最近的K个邻居并综合其信息完成分类或回归。它简单直观,无需训练,但计算成本较高,对K值和数据分布敏感。

Norah 的技术博客 1265

KNN模型怎么解决过拟合的情况

K近邻(K-Nearest Neighbors,KNN)模型是一种非参数的分类和回归算法,它没有显式地构建模型,而是通过计算样本之间的距离来进行预测。6.距离权重:在KNN模型中,可以给距离加权,使得距离较近的样本具有更大的影响力,距离较远的样本具有较小的影响力。以上是一些常用的方法来解决KNN模型的过拟合问题,具体采用哪种方法取决于数据集的特点和实际情况。1.减少k值:k值表示选择最近邻样本的数量,如果k值较大,模型会变得更平滑,容易产生过拟合。通过减小k值,可以降低模型的复杂度,减少过拟合的可能性。

weixin_61094181的博客 1382

23 | 实现K-近邻(KNN)分类器

K近邻算法是一种强大而易于实现的算法,适用于分类和回归任务。其主要优点是实现简单,理解直观。不过,它也有缺点,如对于大数据集计算量大,需要大量存储空间,并且对于不平衡的数据类别,可能产生偏见。

微信号:RunsenLiu 2353

K-近邻算法之K值的选择(带案例)

三、K值的选择 K值选择问题,李航博士的一书「统计学习方法」上所说: 选择较小的K值,就相当于用较小的领域中的训练实例进行预测,“学习”近似误差会减小,只有与输入实例较近或相似的训练实例才会对预测结果起作用,与此同时带来的问题是“学习”的估计误差会增大,换句话说,K值的减小就意味着整体模型变得复杂,容易发生过拟合; 选择较大的K值,就相当于用较大领域中的训练实例进行预测,其优点是可以减少学...

王涛涛的博客 1万+

一、KNN算法

主要介绍可KNN算法的思想、基于sklearn代码的实现及其交叉验证和网格搜索

WangYulu的博客 2537

机器学习9】KNN

文章目录1. KNN算法原理2. KNN算法特点3. K值4. 数据处理4.1 KDTree4.2 数据归一化5. 算法流程6. Java代码6.1 训练集,测试集6.2 KNN.java6.3 预测 1. KNN算法原理 - "英文:" K-Nearest Neighbor - "思想:" 对于任意n维输入向量,分别对应于特征空间中的一个点,输出为该特征向量所对应的类别标签或预测值 - "原理:" 1. 它的工作原理是利用训练数据对特征向量空间进行划分,并将划分结果作为最终算法模型 2

NoBug 1827

机器学习常见问题

过拟合拟合 拟合 指的是模型在训练和预测时表现都不好的情况,即训练误差与泛化误差都比较大,一般原因有以下几点: 模型过于简单,不能拟合数据中的规律; 数据集中有过多错误数据,造成干扰; 数据集中没有或者缺少能让模型有效学习规律的特征。 解决方法一般有: 增加模型复杂度,让模型能够拟合更加复杂的规律,但这里应该注意,不要一味的增加模型复杂度,这会容易导致过拟合。 检查数据集,修复或删除错...

qq_28355839的博客 549

机器学习算法分类概要汇总(一)ML-KNN算法(含代码)

笔者结合机器学习过程中利用MATLAB编程所实现的一些算法来对一些常见算法进行了函数封装便于初学人士进行参考和利用,这里简要介绍算法的概念和主要方法,适用于初学者去理解算法!注意!是理解算法,本文主要以例子来讲述算法,更加注重实际应用。更加详细算法的实现请见其他博客。 一、ML-KNN算法 算法概要介绍。 多标签学习算法是基于KNN算法的一种改进算法,这里大概介绍一下ML—KNN算法的实现过程,结合一种例子方便不了解的人士来学习,直接上例子,便于大家去理解, 问题引出 先给出一列三维样本特征及其三维坐标点

lvoutongyi的博客 3461

机器学习——K-近邻算法KNN

K-近邻算法(K-Nearest Neighbors, 简称 KNN)是一种基于实例的机器学习算法,广泛应用于分类和回归任务。它通过计算数据点之间的相似度(通常是距离度量),然后预测新的数据点的标签或数值。在图像分类任务中,KNN 可以通过计算图像特征向量之间的距离来分类,例如手写数字识别。KNN 可用于垃圾邮件检测,通过比较新邮件和历史邮件的相似性,判断其类别。原则,根据 kkk 个最近邻居的类别进行投票,选出出现最多的类别。基于用户相似度的推荐系统中,KNN 常用于查找兴趣相似的用户群体。

CYTLOVELY的博客 4876

【20210922】【机器/深度学习】KNN (K近邻) 算法详解

一、算法概念 KNN, K-near neighbor,即最近邻算法。它是一种分类算法算法思想是:一个样本与数据集中的 k 个样本最相似,如果这 k 个样本中的大多数属于某一个类别,则该样本也属于这个类别,即每个样本都可以用它最接近的 k 个邻居来代表。 KNN 算法的关键点有两个:k 值的选择和点距离(通常使用欧氏距离)的计算。 KNN是一种非参的、惰性的算法模型。 二、基本流程 第一步:计算已知类别数据集中的点与当前点之间的...

诗小葵的博客 8701

深度学习---KNN笔记

KNN,深度学习

weixin_65646707的博客 2054

KNN的 k 设置的过大会有什么问题

为了避免这些问题,通常在应用中会选择一个相对较小的K值,并通过交叉验证等方法来选取最优的K值。交叉验证可以将训练数据分为多个子集,分别进行训练和验证,从而找到一个在训练集和验证集上表现都较好的K值。此外,还可以根据数据的分布和噪声情况来调整K值的大小,以平衡模型的复杂度和泛化能力。通过合理的K值选择和模型优化,可以提高KNN算法的预测性能和泛化能力。在KNN(K-Nearest Neighbors)算法中,K值的选择对模型的性能和预测结果有着重要影响。

liujianjun的专栏 1521

KNN(邻近算法)

一、 什么是KNN 1、概念: KNN(K-NearesNeighbor) 即K邻近法,是一个理论上比较成熟的、也是最简单的机器学习算法之一 。 2、核心思想 一个样本与数据集中的k个样本最相似, 如果这k个样本中的大多数属于某一个类别, 则该样本也属于这个类别。也就是说,该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。KNN方法在类别决策时,只与极少量的相邻样本有关。 3、KNN算法步骤 3.1、计算距离 给定两个样本 和 ,其中n表示特征数 ,X和Y两个向量间的欧

冷锋的博客 2万+

机器学习基础概念——过拟合拟合

机器学习算法过拟合拟合。 偏差、方差。 学习曲线和复杂程度曲线。 支持向量机过拟合拟合KNN回归过拟合拟合拟合过拟合解决方法。

weixin_45221012的博客 1678

机器学习随记(9)

梯度消失:在深度神经网络中,激活函数(如sigmoid、tanh等)的导数在接近0的区域内取值很小,导致在反向传播时,梯度也变得很小,甚至趋近于0,这会导致模型的学习变得非常缓慢或停滞不前,称为梯度消失问题。在判断过拟合时,可以观察模型的训练集误差和测试集误差,如果训练集误差较小,但测试集误差较大,则说明模型存在过拟合问题。需要注意的是,过拟合拟合不是绝对的,而是相对的,需要根据具体问题和数据特点来选择合适的模型和调整模型的超参数,以提高模型的性能和泛化能力。

YoungITの博客 1030

KNN算法

KNN算法的分类问题和回归问题

weixin_44077866的博客 673

K最近邻(KNN

k近邻算法(k-nearest neighbor, kNN)是一种基本分类与回归方法,通过给定测试实例,基于某种距离度量方法找出训练集中与测试点最靠近的k个实例点,然后通过这k个最近邻的信息来进行预测测试实例的类别。 优点 :准确性高,对异常值和噪声有较高的容忍度。 缺点:计算量较大,对内存的需求也较大。从算法原理可以看出来,每次对一个未标记样本进行分类时,都需要全部计算一遍距离。 参数:参数k是...

qq_42401024的博客 10万+
上一篇: Python联动Word实现数据提取和B站弹幕数据分析
下一篇: VS2022环境下缺少pro文件以及QT的SQL库引用问题
wph1
博客等级 码龄7年 159粉丝 · 25原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值