图解机器学习算法(3) | KNN算法及其应用(机器学习通关指南·完结)

机器学习——K 近邻、K-NN 算法图文详解 K 近邻算法原理、距离度量方法、欧式距离、曼哈顿距离、切比雪夫距离、闵式距离、归一化和标准化、归一化、MinMaxScaler、标准化、StandardScaler、K 值选择问题、GridSearchCV 、分类模型评估方法、留出法、交叉验证法、KFold、分层交叉验证、StratifiedKFold、留一法、自助法、accuracy_score、分类算法评估 阅读详情

ShowMeAI研究中心


引言

K近邻算法(k-nearest neighbors,KNN,有些地方也译作「K近邻算法」)是一种很基本朴实的机器学习方法。

KNN在我们日常生活中也有类似的思想应用,比如,我们判断一个人的人品,往往只需要观察他最密切的几个人的人品好坏就能得到结果了。这就是KNN的思想应用,KNN方法既可以做分类,也可以做回归。在本篇内容中,我们来给大家展开讲解KNN相关的知识原理。

(本篇KNN部分内容涉及到机器学习基础知识,没有先序知识储备的宝宝可以查看ShowMeAI的文章 图解机器学习 | 机器学习基础知识。

1.机器学习与分类问题

1)分类问题

分类问题是机器学习非常重要的一个组成部分,它的目标是根据已知样本的某些特征,判断一个样本属于哪个类别。分类问题可以细分如下:

  • 二分类问题:表示分类任务中有两个类别新的样本属于哪种已知的样本类。

  • 多类分类(Multiclass classification)问题:表示分类任务中有多类别。

  • 多标签分类(Multilabel classification)问题:给每个样本一系列的目标标签。

2)分类问题的数学抽象

从算法的角度解决一个分类问题,我们的训练数据会被映射成n维空间的样本点(这里的n就是特征维度),我们需要做的事情是对n维样本空间的点进行类别区分,某些点会归属到某个类别。

下图所示的是二维平面中的两类样本点,我们的模型(分类器)在学习一种区分不同类别的方法,比如这里是使用一条直线去对2类不同的样本点进行切分。

常见的分类问题应用场景很多,我们选择几个进行举例说明:

  • 垃圾邮件识别:可以作为二分类问题,将邮件分为你「垃圾邮件」或者「正常邮件」。

  • 图像内容识别:因为图像的内容种类不止一个,图像内容可能是猫、狗、人等等,因此是多类分类问题。

  • 文本情感分析:既可以作为二分类问题,将情感分为褒贬两种,还可以作为多类分类问题,将情感种类扩展,比如分为:十分消极、消极、积极、十分积极等。

2.K近邻算法核心思想

在模式识别领域中,K近邻算法(KNN算法,又译K-最近邻算法)是一种用于分类和回归的非参数统计方法。在这两种情况下,输入包含特征空间中的K个最接近的训练样本。

1)K近邻核心思想

在KNN分类中,输出是一个分类族群。一个对象的分类是由其邻居的「多数表决」确定的,K个最近邻居(K为正整数,通常较小)中最常见的分类决定了赋予该对象的类别。

  • 若K=1,则该对象的类别直接由最近的一个节点赋予。

在KNN回归中,输出是该对象的属性值。该值是其K个最近邻居的值的平均值。

K近邻居法采用向量空间模型来分类,概念为相同类别的案例,彼此的相似度高。而可以借由计算与已知类别案例之相似度,来评估未知类别案例可能的分类。

KNN是一种基于实例的学习,或者是局部近似和将所有计算推迟到分类之后的惰性学习。K-近邻算法是所有的机器学习算法中最简单的之一。

2)豆子分类例子

想一想:下图中只有三种豆,有三个豆的种类未知,如何判定他们的种类?

1968年,Cover和Hart提出了最初的近邻法,思路是——未知的豆离哪种豆最近,就认为未知豆和该豆是同一种类。

由此,引出最近邻算法的定义:为了判定未知样本的类别,以全部训练样本作为代表点计算未知样本与所有训练样本的距离,并以最近邻者的类别作为决策未知样本类别的唯一依据。

最近邻算法的缺陷是对噪声数据过于敏感。从图中可以得到,一个圈起来的蓝点和两个圈起来的红点到绿点的距离是相等的,根据最近邻算法,该点的形状无法判断。

为了解决这个问题,我们可以把位置样本周边的多个最近样本计算在内,扩大参与决策的样本量,以避免个别数据直接决定决策结果。

引进K-近邻算法——选择未知样本一定范围内确定个数的K个样本,该K个样本大多数属于某一类型,则未知样本判定为该类型。K-近邻算法是最近邻算法的一个延伸。

根据K近邻算法,离绿点最近的三个点中有两个是红点,一个是蓝点,红点的样本数量多于蓝点的样本数量,因此绿点的类别被判定为红点。

3.K近邻算法步骤与示例

下面的内容首先为大家梳理下K近邻算法的步骤,之后通过示例为大家展示K近邻算法的计算流程。

1)K近邻算法工作原理

  • 存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每个数据与所属分类的对应关系。

  • 输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。

  • 一般来说,只选择样本数据集中前N个最相似的数据。K一般不大于20,最后,选择K个中出现次数最多的分类,作为新数据的分类。

2)K近邻算法参数选择

  • 如何选择一个最佳的K值取决于数据。一般情况下,在分类时较大的K值能够减小噪声的影响, 但会使类别之间的界限变得模糊。一个较好的K值能通过各种启发式技术(见超参数优化)来获取。

  • 噪声和非相关性特征的存在,或特征尺度与它们的重要性不一致会使K近邻算法的准确性严重降低。对于选取和缩放特征来改善分类已经做了很多研究。一个普遍的做法是利用进化算法优化功能扩展,还有一种较普遍的方法是利用训练样本的互信息进行选择特征。

  • 在二元(两类)分类问题中,选取K为奇数有助于避免两个分类平票的情形。在此问题下,选取最佳经验K值的方法是自助法。

说明:KNN没有显示的训练过程,它是「懒惰学习」的代表,它在训练阶段只是把数据保存下来,训练时间开销为0,等收到测试样本后进行处理。

3)K近邻算法示例

举例:以电影分类作为例子,电影题材可分为爱情片,动作片等。那么爱情片有哪些特征?动作片有哪些特征呢?也就是说给定一部电影,怎么进行分类?

这里假定将电影分为爱情片和动作片两类,如果一部电影中接吻镜头很多,打斗镜头较少,显然是属于爱情片,反之为动作片。

有人曾根据电影中打斗动作和接吻动作数量进行评估,数据如图。给定一部电影数据(18,90)打斗镜头18个,接吻镜头90个,如何知道它是什么类型的呢?

现在我们按照距离的递增顺序排序,可以找到k个距离最近的电影。

假如K=3,那么来看排序的前3个电影的类别,都是爱情片,根据KNN的投票机制,我们判定这部电影属于爱情片。(这里的K是超参数,可以调整,如果取K=4,那可能投票的4部电影分别是 爱情片、爱情片、爱情片、动作片,但本例中判定结果依旧为爱情片)

4.K近邻算法的缺点与改进

1)K近邻算法的优缺点

不同类别的样本点,分布在空间的不同区域。K近邻是基于空间距离较近的样本类别来进行分类,本质上是对于特征空间的划分。

  • 优点:精度高、对异常值不敏感、无数据输入假定。

  • 缺点:计算复杂度高、空间复杂度高。

  • 适用数据范围:数值型和标称型。

2)K近邻算法的核心要素:距离度量准则

近邻算法能用一种有效的方式隐含的计算决策边界。另外,它也可以显式的计算决策边界,以及有效率的这样做计算,使得计算复杂度是边界复杂度的函数。K近邻算法依赖于空间中相近的点做类别判断,判断距离远近的度量标准非常重要。

距离的度量标准,对很多算法来说都是核心要素(比如无监督学习的 聚类算法 也很大程度依赖距离度量),也对其结果有很大的影响。

Lp距离(又称闵可夫斯基距离,Minkowski Distance)不是一种距离,而是一组距离的定义。

  • 参数p=1时为曼哈顿距离(又称L1距离或程式区块距离),表示两个点在标准坐标系上的绝对轴距之和。

  • 参数p=2时为欧氏距离(又称L2距离或欧几里得度量),是直线距离常见的两点之间或多点之间的距离表示法。

  • 参数p→∞时,就是切比雪夫距离(各坐标数值差的最大值)。

3)K近邻算法的核心要素:K的大小

对于KNN算法而言,K的大小取值也至关重要,如果选择较小的K值,意味着整体模型变得复杂(模型容易发生过拟合),模型学习的近似误差(approximation error)会减小,但估计误差(estimation error)会增大。

如果选择较大的K值,就意味着整体的模型变得简单,减少学习的估计误差,但缺点是学习的近似误差会增大。

在实际的应用中,一般采用一个比较小的K值。并采用交叉验证的方法,选取一个最优的K值。

4)K近邻算法的缺点与改进

(1)缺点

观察下面的例子,我们看到,对于样本X,通过KNN算法,我们显然可以得到X应属于红色类别。但对于样本Y,KNN算法判定的结果是Y应属于蓝色类别,然而从距离上看Y和红色的批次样本点更接近。因此,原始的KNN算法只考虑近邻不同类别的样本数量,而忽略掉了距离。

除了上述缺点,KNN还存在如下缺点:

  • 样本库容量依赖性较强对KNN算法在实际应用中的限制较大:有不少类别无法提供足够的训练样本,使得KNN算法所需要的相对均匀的特征空间条件无法得到满足,使得识别的误差较大。

  • K值的确定:KNN算法必须指定K值,K值选择不当则分类精度不能保证。

(2)改进方法

加快KNN算法的分类速度。

  • 浓缩训练样本当训练样本集中样本数量较大时,为了减小计算开销,可以对训练样本集进行编辑处理,即从原始训练样本集中选择最优的参考子集进行K近邻寻找,从而减少训练样本的存储量和提高计算效率。

  • 加快K个最近邻的搜索速度这类方法是通过快速搜索算法,在较短时间内找到待分类样本的K个最近邻。

对训练样本库的维护。

  • 对训练样本库进行维护以满足KNN算法的需要,包括对训练样本库中的样本进行添加或删除,采用适当的办法来保证空间的大小,如符合某种条件的样本可以加入数据库中,同时可以对数据库库中已有符合某种条件的样本进行删除。从而保证训练样本库中的样本提供KNN算法所需要的相对均匀的特征空间。

5.案例介绍

假如一套房子打算出租,但不知道市场价格,可以根据房子的规格(面积、房间数量、厕所数量、容纳人数等),在已有数据集中查找相似(K近邻)规格的房子价格,看别人的相同或相似户型租了多少钱。

我们本次用到的数据集是 🏆rent_price,大家可以通过 ShowMeAI 的百度网盘地址下载。

🏆 实战数据集下载(百度网盘):公众号『ShowMeAI研究中心』回复『实战』,或者点击 这里 获取本文 [40]图解机器学习 | KNN算法及其应用 『房屋出租价格预测数据集』

⭐ ShowMeAI官方GitHub:https://github.com/ShowMeAI-Hub

5.1 分类过程

已知的数据集中,每个已出租住房都有房间数量、厕所数量、容纳人数等字段,并有对应出租价格。将预计出租房子数据与数据集中每条记录比较计算欧式距离,取出距离最小的5条记录,将其价格取平均值,可以将其看做预计出租房子的市场平均价格。

import pandas as pd
import numpy as np
from scipy.spatial import distance#用于计算欧式距离
from sklearn.preprocessing import StandardScaler#用于对数据进行标准化操作
from sklearn.neighbors import KNeighborsRegressor#KNN算法
from sklearn.metrics import mean_squared_error#用于计算均方根误差

导入数据并提取目标字段,我们看一下dc_listings数据集。

#导入数据并提取目标字段
path = r'rent_price.csv'
file = open(path, encoding = 'gb18030', errors = 'ignore')
dc_listings = pd.read_csv(file)
features = ['accommodates','bedrooms','bathrooms','beds','price','minimum_nights','maximum_nights','number_of_reviews']
dc_listings = dc_listings[features]

5.2 进行初步数据清洗。

注意 ①:数据集中非数值类型的字段需要转换,替换掉美元$符号和千分位逗号。

#数据初步清洗
our_acc_value = 3
dc_listings['distance'] = np.abs(dc_listings.accommodates - our_acc_value)
dc_listings = dc_listings.sample(frac=1, random_state=0)
dc_listings = dc_listings.sort_values('distance')
dc_listings['price'] = dc_listings.price.str.replace("\$|,", "").astype(float)
dc_listings = dc_listings.dropna()

注意 ②:理想情况下,数据集中每个字段取值范围都相同,但实际上这是几乎不可能的,如果计算时直接用原数数据计算,则会造成较大训练误差,所以需要对各列数据进行标准化或归一化操作,尽量减少不必要的训练误差。

#数据标准化
dc_listings[features] = StandardScaler().fit_transform(dc_listings[features])
normalized_listings = dc_listings

注意 ③:最好不要将所有数据全部拿来测试,需要分出训练集和测试集具体划分比例按数据集确定。

#取得训练集和测试集
norm_train_df = normalized_listings[:2792]
norm_test_df = normalized_listings[2792:]

5.3 计算欧式距离并预测房屋价格

#scipy包distance模块计算欧式距离
first_listings = normalized_listings.iloc[0][['accommodates', 'bathrooms']]
fifth_listings = normalized_listings.iloc[20][['accommodates', 'bathrooms']]
 
#用python方法做多变量KNN模型
def predict_price_multivariate(new_listing_value, feature_columns):
    temp_df = norm_train_df
    #distance.cdist计算两个集合的距离
    temp_df['distance'] = distance.cdist(temp_df[feature_columns], [new_listing_value[feature_columns]])
    temp_df = temp_df.sort_values('distance')#temp_df按distance排序
    knn_5 = temp_df.price.iloc[:5]
    predicted_price = knn_5.mean()
    return predicted_price
 
cols = ['accommodates', 'bathrooms']
norm_test_df['predicted_price'] = norm_test_df[cols].apply(predict_price_multivariate, feature_columns=cols, axis=1)
norm_test_df['squared_error'] = (norm_test_df['predicted_price'] - norm_test_df['price']) ** 2
mse = norm_test_df['squared_error'].mean()
rmse = mse ** (1/2)
print(rmse)

#利用sklearn完成KNN
col = ['accommodates', 'bedrooms']
knn = KNeighborsRegressor()
#将自变量和因变量放入模型训练,并用测试数据测试
knn.fit(norm_train_df[cols], norm_train_df['price'])
two_features_predictions = knn.predict(norm_test_df[cols])
 
#计算预测值与实际值的均方根误差
two_features_mse = mean_squared_error(norm_test_df['price'], two_features_predictions)
two_features_rmse = two_features_mse ** (1/2)
print(two_features_rmse)

输出为:

1.4667825805653032
1.5356457412450537

ShowMeAI图解机器学习算法系列(完整版)

ShowMeAI系列教程精选推荐

k最近邻算法——电影分类及案例详解 如图3-7所示,若将国际象棋棋盘放在二维直角坐标系中,格子的边长定义为1,坐标的x轴及y轴和棋盘方格平行,原点恰落在某一格的中心点,则王从一个位置走到其他位置需要的步数恰为二个位置的切比雪夫距离,因此切比雪夫距离也称为棋盘距离。关于这里的距离度量,这个电影分类的例子有2个特征,也就是2维的,可以使用我们高中学过的两点距离公式(两点距离公式其实就是欧氏距离在二维空间上的公式,也就是欧氏距离n的值为2的情况,欧氏距离也称为欧几里德距离)来计算距离,如图3-3所示。对数据进行归一化,避免量纲对计算距离的影响。 阅读详情

相关推荐

学习笔记|模式识别|KNN分类与matlab实现

一、KNN介绍 K-近邻分类器(KNN)是一种在线分类器,也就是说在分类的时候直接从训练样本中找出与待分类样本最接近的K个样本,以判断待分类样本的类别。初学者容易把KNN和Kmeans搞混,KNN是一种最简单的有监督分类方法,而Kmeans是一种无监督的聚类方法,Kmeans不直接得到样本的类别,而是根据样本本身特性将他们分别聚成几个簇。 KNN的思想:首先,计算新样本与训练样本之间的距离,找到距离最近的K个近邻,统计这K个近邻中个数最多的类别,然后把新样本归为该类别,通常K是不大于20的整数。经验上,

我只要燃烧不在乎陨落 4160

KNN算法及应用场景

KNN算法(K-Nearest Neighbor Algorithm)是一种基本的机器学习算法,它可以用于分类和回归任务。在KNN算法中,给定一个新的输入样本,通过计算其与已知数据集中每个样本之间的距离,找到与其最相似的K个样本,然后通过这K个样本的分类信息(对于分类问题)或者平均值(对于回归问题)来预测该输入样本的分类或者数值。KNN算法的主要优点是简单易用、适用于多分类问题、适用于非线性分类问题等。然而,它的主要缺点是计算复杂度高,特别是当数据集很大时,计算距离需要较多的时间和计算资源。

薛定谔的猫 5924

图解机器学习算法 | 从入门到精通系列教程(机器学习通关指南·完结)

本篇内容是ShowMeAI组织的「图解机器学习算法」系列教程入口,本教程尽量以生动可视化的方式,帮助大家理解机器学习的核心知识和重要的系列模型,并配以相关的代码实现帮助大家了解应用方法。(对机器学习实战感兴趣的同学,可以关注ShowMeAI的另外一个系列[机器学习应用实践])......

ShowMeAI研究中心 1万+

KNN算法简介以及KNN的简单实现和应用

KNN算法的核心思想是通过计算样本之间的距离来确定新样本的类别或数值。KNN(K-Nearest Neighbors)是一种基本的分类和回归算法,它的基本思想是通过计算待分类样本与训练集中各个样本之间的距离,选取距离最近的K个样本,根据这K个样本的类别进行投票,将待分类样本归为票数最多的类别。KNN算法的全称是K-Nearest Neighbor算法,它的基本思想是通过计算新样本与训练集中所有样本的距离,找到距离最近的K个样本,然后根据这K个样本的类别或数值来确定新样本的类别或数值。二、KNN算法的应用。

weixin_56273009的博客 5057

神经网络可解释性实战:从Grad-CAM到SHAP的生产级落地指南

神经网络可解释性是深度学习模型在金融、医疗、工业等高责任场景落地的前提,其核心在于 bridging 模型决策逻辑与人类可理解的因果链条。它并非附加功能,而是涉及数据分布、特征工程、梯度传播与业务语义的系统性工程。关键技术原理包括基于梯度的注意力定位(如Grad-CAM)、满足博弈论公理的特征归因(如SHAP),以及面向用户行动的反事实生成。其技术价值在于破除‘黑箱’信任障碍,支撑合规审计、偏见治理与人机协同决策。典型应用场景涵盖信贷风控中的性别幽灵识别、医疗影像中的伪影归因、工业质检中的光照鲁棒性诊断。本

weixin_34279184的博客 462

【IC】Redhawk-SC输入件配置

Redhawk sc

u011808788的博客 1778

图解机器学习算法(5) | 朴素贝叶斯算法详解(机器学习通关指南·完结)

朴素贝叶斯是一个非常直观的模型。本文讲解朴素贝叶斯算法的核心思想、贝叶斯公式、条件独立假设、平滑出等重要知识点,并图解多项式贝叶斯和伯努利贝叶斯等多种形态。

ShowMeAI研究中心 2万+

Ansys Motor-CAD:概述(EMag、THERM、LAB、MECH)

在这篇博客中,我概述了如何使用 Ansys Motor-CAD 模型、模拟、分析和后处理结果来评估电机性能,并帮助您为您的应用选择优化的电机,并通过电机设计选择实现成本效益和效率。我介绍了各种可用的电机类型、可供选择的物理模块和可配置的多物理选项。E-Mag 物理模块有许多选项卡,涵盖几何创建、材料选择、电磁设置、条件、求解器类型、解决方案模型、耦合设置等的所有设置。热物理模块有许多选项卡,涵盖几何创建、材料选择、热设置、条件、求解器类型、解决方案模型、耦合设置等的所有设置。分析结果的速度相结合。

jkh920184196的博客 1760

深度学习与计算机视觉教程(2) | 图像分类与机器学习基础(CV通关指南·完结)

图像分类是计算机视觉的核心任务。本文讲解数据驱动的模型算法,包括最邻近算法、KNN分类器、线性分类器的原理、各自的优缺点和实际应用【对应 CS231n Lecture 2】

ShowMeAI研究中心 9274

详解一典型的反激式开关电源方案

如图,在某系统方案上看到下图所示的单端反激式开关电源方案。

alala120的博客 1万+

深入瑞芯微SDK:手把手解析Uboot、Kernel到Rootfs的镜像生成与烧录

本文深入解析瑞芯微SDK中从Uboot、Kernel到Rootfs的镜像生成与烧录全流程,揭示编译背后的技术细节。通过详细分析SDK架构、镜像生成流水线、分区表定制、Rootfs构建及烧录科学,帮助开发者从会编译进阶到懂原理,掌握系统级开发的关键技术。

weixin_29193359的博客 277

fdu复试面试准备内容

深度学习相关知识点内补充学习(自用)机器学习深度学习八股【RePo】机器学习八股文全连接层(Fully Connected Layer)概述图解机器学习算法 | 从入门到精通系列教程(机器学习通关指南·完结)

qq_35975367的博客 714

数据处理和分析之数据聚类:层次聚类(Hierarchical Clustering):单链接层次聚类方法

单链接层次聚类(Single-Linkage Hierarchical Clustering)是凝聚型层次聚类的一种,它基于数据点之间的最小距离来定义聚类间的相似性。在单链接层次聚类中,两个聚类之间的距离定义为这两个聚类中任意两个数据点之间的最短距离。这种聚类方法倾向于形成链状或线性的聚类,因为聚类的边界是由最远的数据点决定的,而不是聚类的平均或中心位置。单链接层次聚类通过计算簇间最近点的距离来决定簇的合并,这种方法简单直观,但可能导致簇的形状不规则,尤其是在数据点分布不均匀的情况下。

2401_87715305的博客 1443

深度学习与计算机视觉教程(15) | 视觉模型可视化与可解释性(CV通关指南·完结)

本文讲解了一些理解 CNN 可视化的方法(特征、滤波器可视化),以及一些有趣的应用,如DeepDream、图像神经风格迁移(特征反演 + 纹理生成)等【对应 CS231n Lecture 12】

ShowMeAI研究中心 1万+

【BUG已解决】RuntimeError: CUDA error: no kernel image is available for execution on the device 解决方案

方案适用场景推荐指数精确匹配官方版本绝大多数场景(大众消费卡+主流数据中心卡)⭐⭐⭐⭐⭐安装历史旧版本Pascal/Maxwell等老显卡⭐⭐⭐⭐安装Nightly版本刚发布的最新架构显卡⭐⭐⭐⭐源码编译官方各版本均不支持的特殊硬件⭐⭐Docker官方镜像追求省心、避免版本排查⭐⭐⭐⭐⭐的核心是PyTorch 预编译包不包含你显卡对应的计算能力架构先确认显卡真实计算能力),而不是盲目重装驱动对比 PyTorch 支持的架构列表),定位是否真的不匹配精确匹配官方版本。

博客 1万+

YOLOv9改进策略 | Conv篇 | 2024最新ECCV最新大感受野的小波卷积WTConv助力YOLOv9有效涨点

本文给大家带来的改进机制是一种新的卷积层,称为WTConv(小波卷积层),它利用小波变换(WT)来解决卷积神经网络(CNN)在实现大感受野时遇到的过度参数化问题。WTConv的主要目的是通过对输入数据的不同频率带进行处理,使CNN能够更有效地捕捉局部和全局特征,WTConv成功解决了CNN在感受野扩展中的参数膨胀问题,提供了一种更为高效、鲁棒且易于集成的卷积层解决方案,我将其用于二次创新YOLOv9中的RepNCSPELAN4机制可以减少一定的参数量和计算量,达到一个可观的轻量化作用。

Snu77的博客 1544

这才是你最想要的数据结构与算法学习路线

数据结构与算法对于程序员的重要性不言而喻,很多人在学习数据结构与算法时也会遇到各种各样的问题。我们根据后台读者的需求,综合了豆瓣、美亚、历年销量等多维度标准整理了一份图灵数据结构与算法读书路线,这份书单中的图书独具口碑且质量过硬,通过理解算法、掌握算法到刷题实战,每一步都有适合你深入学习的好书,大家可以根据自己所处的阶段进行选择。十一小长假,也不要忘记精进技能哦~01入门强推趣学算法鼻祖教程,豆瓣...

图灵教育 251

储能电池管理系统介绍(一)

介绍储能BMS的架构以及各模块功能

manjixingkong1234的专栏 1916

KNN算法及其应用

一、KNN算法介绍 1. 综述 1.1 Cover和Hart在1968年提出了最初的邻近算法 1.2 分类(classification)算法 1.3 输入基于实例的学习(instance-based learning), 懒惰学习(lazy learning) 例子: 未知电影属于什么类型? 算法详述 3.1 步骤: 为了判断未知实

Fengyueshengqi的博客 8739

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

图解超经典的KNN算法 - 机器学习算法入门

出品:Python数据之道(ID:PyDataLab)作者:Peter,来自读者投稿编辑:Lemon图解超经典的KNN算法本文中介绍的机器学习算法中的一种监督学习的算法:KNN 算法,全...

Python数据之道 2112

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

K邻近算法(KNN)的原理和实例

对这k个最近邻,查看他们的标签都属于何种类别,根据”少数服从多数,一点算一票”的原则进行判断,数量最多标签类别就是x的标签类别。KNN中的K代表的是距离需要分类的测试点x最近的K个样本点,如果不输入这个值,KNN算法中的重要部分“选出K个最近邻”就无法实现。优点: 简单,易于理解,易于实现,无需估计参数,无需训练(不需要花费任何时间做模型的构造), 特别适合多分类问题,适合对稀有事件进行分类,精度高,对异常值不敏感,无数据输入假定。使用这个距离,欧氏空间成为度量空间,相关联的范数称为欧几里得范数。

qq_64648934的博客 2174

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

机器学习中的分类算法详细介绍一(KNN、决策树)

机器学习中的分类算法有:KNN算法、决策树、随机森林、SVM、极限学习机、多层感知机(BP神经网络)、贝叶斯方法。

m0_74259636的博客 7008

机器学习算法之K近邻算法(KNN)

KNN是一种基本分类与回归算法,它没有显式的学习过程。它不像其他模型有损失函数、有优化算法、有训练过程。对于给定的实例数据和其对应的所属类别,当要对新的实例进行分类时,根据这个实例最近的K个实例所属的类别来决定其属于哪一个类。KNN算法示意图: 图1.KNN算法 KNN算法过程如下: KNN做回归和分类的主要区别在于最后做预测时候的决策方式不同。KNN做分类预测时,一般是选择多数表决...

C_tommy的专栏 1910

k近邻算法(kNN)的基本思想——机器学习、数据挖掘、人工智能基础

k近邻算法(kNN)的基本思想一、算法流程对未知类别属性的数据集中的每个点依次执行以下操作:(1) 计算已知类别数据集中的点与当前点之间的距离;(2) 按照距离递增次序排序;(3) 选取与当前点距离最小的k个点;(4) 确定前k个点所在类别的出现频率;(5) 返回前k个点出现频率最高的类别作为当前点的预测分类。 二、举例说明以下图为例:已知有两类(蓝色正方形、红色三角形),现有待分类样本(绿色圆形...

Horace Ho的博客 6549
上一篇: 图解机器学习算法(2) | 模型评估方法与准则(机器学习通关指南·完结)
下一篇: 图解机器学习算法(4) | 逻辑回归算法详解(机器学习通关指南·完结)
ShowMeAI
博客等级 码龄5年 6514粉丝 672原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShowMeAI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值