机器学习-KNN算法-原理分析与实战

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

title: 机器学习-KNN算法
date: 2019-08-16 15:17:00
categories:

  • 技术
    tags:
  • 机器学习
  • Numpy

KNN算法的理解。

定义

如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
本文采用欧式距离,即两点之间的直接距离。

思想

通过你的邻居,判断你是哪种类型

KNN算法流程总结
1)计算已知类别数据集中的点与当前点之间的距离
2)按距离递增次序排序
3)选取与当前点距离最小的k个点
4)统计前k个点所在的类别出现的频率
5)返回前k个点出现频率最高的类别作为当前点的预测分类
from sklearn.neighbors import KNeighborsClassifier

# achieve data
x = [[1],[2],[3],[-1],[-4]]
y = [1,1,1,0,-1]

estimator = KNeighborsClassifier(n_neighbors=3)
estimator.fit(x,y)
result = estimator.predict([[-3]])
print(result)
[-1]
问题一:距离选取

1.距离公式,除了欧式距离,还有哪些距离公式可以使用?

(1)欧式距离(两点距离问题):两个点在空间中的距离。
(2)曼哈顿距离(城市街区问题):在曼哈顿街区要从一个十字路口开车到另一个十字路口,驾驶距离显然不是两点间的直线距离。这个实际驾驶距离就是“曼哈顿距离”。曼哈顿距离也称为“城市街区距离”(City Block distance)。
    d(i,j)=|X1-X2|+|Y1-Y2|
(3)切比雪夫距离 (Chebyshev Distance):国际象棋中,国王可以直行、横行、斜行,所以国王走一步可以移动到相邻8个方格中的任意一个。国王从格子(x1,y1)走到格子(x2,y2)最少需要多少步?这个距离就叫切比雪夫距离。在公式里体现就是某个维度上的最大距离。
(4)闵可夫斯基距离(Minkowski Distance):闵氏距离不是一种距离,而是一组距离的定义,是对多个距离度量公式的概括性的表述。
两个n维变量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的闵可夫斯基距离定义为:
其中p是一个变参数:
当p=1时,就是曼哈顿距离;
当p=2时,就是欧氏距离;
当p→∞时,就是切比雪夫距离。
根据p的不同,闵氏距离可以表示某一类/种的距离

小结:

1 闵氏距离,包括曼哈顿距离、欧氏距离和切比雪夫距离都存在明显的缺点:
e.g. 二维样本(身高[单位:cm],体重[单位:kg]),现有三个样本:a(180,50),b(190,50),c(180,60)。

a与b的闵氏距离(无论是曼哈顿距离、欧氏距离或切比雪夫距离)等于a与c的闵氏距离。但实际上身高的10cm并不能和体重的10kg划等号。

闵氏距离的缺点:

 (1)将各个分量的量纲(scale),也就是“单位”相同的看待了;
​ (2)未考虑各个分量的分布(期望,方差等)可能是不同的。
改进
标准化欧氏距离 (Standardized EuclideanDistance):标准化欧氏距离是针对欧氏距离的缺点而作的一种改进。
思路:既然数据各维分量的分布不一样,那先将各个分量都“标准化”到均值、方差相等。
其他距离
(1)余弦距离(Cosine Distance):
几何中,夹角余弦可用来衡量两个向量方向的差异;机器学习中,借用这一概念来衡量样本向量之间的差异。
(2)汉明距离(Hamming Distance):
两个等长字符串s1与s2的汉明距离为:将其中一个变为另外一个所需要作的最小字符替换次数。
(3)杰卡德距离(Jaccard Distance):
杰卡德相似系数(Jaccard similarity coefficient):两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)。
杰卡德距离(Jaccard Distance):与杰卡德相似系数相反,用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度
(4)马氏距离(Mahalanobis Distance):马氏距离是由印度统计学家马哈拉诺比斯提出的,表示数据的协方差距离。它是一种有效的计算两个位置样本集的相似度的方法。马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为∑的随机变量的差异程度:如果协方差矩阵为单位矩阵,马氏距离就简化为欧式距离;如果协方差矩阵为对角矩阵,则其也可称为正规化的欧式距离。
马氏距离特性:

    1.量纲无关,排除变量之间的相关性的干扰;

    2.马氏距离的计算是建立在总体样本的基础上的,如果拿同样的两个样本,放入两个不同的总体中,最后计算得出的两个样本间的马氏距离通常是不相同的,除非这两个总体的协方差矩阵碰巧相同;

    3 .计算马氏距离过程中,要求总体样本数大于样本的维数,否则得到的总体样本协方差矩阵逆矩阵不存在,这种情况下,用欧式距离计算即可。

    4.还有一种情况,满足了条件总体样本数大于样本的维数,但是协方差矩阵的逆矩阵仍然不存在,比如三个样本点(3,4),(5,6),(7,8),这种情况是因为这三个样本在其所处的二维空间平面内共线。这种情况下,也采用欧式距离计算。

问题二:K值的选取

2.选取K值的大小?

K值过小:
容易受到异常点的影响
k值过大:
受到样本均衡的问题

解决方法

参考:

K值选择问题,李航博士的一书「统计学习方法」上所说:

1) 选择较小的K值,就相当于用较小的领域中的训练实例进行预测,“学习”近似误差会减小,只有与输入实例较近或相似的训练实例才会对预测结果起作用,与此同时带来的问题是“学习”的估计误差会增大,换句话说,K值的减小就意味着整体模型变得复杂,容易发生过拟合;

2) 选择较大的K值,就相当于用较大领域中的训练实例进行预测,其优点是可以减少学习的估计误差,但缺点是学习的近似误差会增大。这时候,与输入实例较远(不相似的)训练实例也会对预测器作用,使预测发生错误,且K值的增大就意味着整体的模型变得简单。

3) K=N(N为训练样本个数),则完全不足取,因为此时无论输入实例是什么,都只是简单的预测它属于在训练实例中最多的类,模型过于简单,忽略了训练实例中大量有用信息。

在实际应用中,K值一般取一个比较小的数值,例如采用交叉验证法(简单来说,就是把训练数据在分成两组:训练集和验证集)来选择最优的K值。

近似误差:

对现有训练集的训练误差,关注训练集.

如果近似误差过小可能会出现过拟合的现象,对现有的训练集能有很好的预测,但是对未知的测试样本将会出现较大偏差的预测。

模型本身不是最接近最佳模型。

估计误差:

理解为对测试集的测试误差,关注测试集。

估计误差小说明对未知数据的预测能力好。

模型本身最接近最佳模型。

鸢尾花代码实现

"""
1.获取数据集
2,数据基本处理
3. 特征工程
4. 机器学习(模型训练)
5. 模型评估
"""

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier

# 1.获取数据集
iris = load_iris()
# 2,数据基本处理
# 2.1 数据分割
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, random_state=23, test_size=0.1)

# 3. 特征工程
# 3.1 实例化一个转化器
transfer = StandardScaler()
# 3.2 调用fit_transform方法
x_train = transfer.fit_transform(x_train)
x_test = transfer.fit_transform(x_test)

# 4. 机器学习(模型训练)
# 4.1 实例化一个估计器
estimator = KNeighborsClassifier(n_neighbors=5)
# 4.2 模型训练
estimator.fit(x_train,y_train)
# 5. 模型评估
# 5.1 输出预测值
y_pre = estimator.predict(x_test)
print("预测值是:\n", y_pre)

# 5.2 输出准确率
ret = estimator.score(x_test, y_test)
print("准确率:\n", ret)
KNN 算法总结
优点
  • 简单有效
  • 重新训练代价低
  • 适合类域交叉样本:KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。
  • 该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。
缺点
  • 惰性算法
  • 类别评分不是规格化
  • 对不均衡的样本不擅长
    当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。该算法只计算“最近的”邻居样本,某一类的样本数量很大,那么或者这类样本并不接近目标样本,或者这类样本很靠近目标样本。无论怎样,数量并不能影响运行结果。可以采用权值的方法(和该样本距离小的邻居权值大)来改进。
  • 计算量较大
    目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。
【引入】交叉验证&网格搜索
交叉验证

交叉验证:将拿到的训练数据,分为训练和验证集。以下图为例:将数据分成4份,其中一份作为验证集。然后经过4次(组)的测试,每次都更换不同的验证集。即得到4组模型的结果,取平均值作为最终结果。又称4折交叉验证。

目的:为了让被评估的模型更加准确可信
为了让从训练得到模型结果更加准确。做以下处理

训练集:训练集+验证集
测试集:测试集

avater

网格搜索

通常情况下,有很多参数是需要手动指定的(如k-近邻算法中的K值),这种叫超参数。但是手动过程繁杂,所以需要对模型预设几种超参数组合。每组超参数都采用交叉验证来进行评估。最后选出最优参数组合建立模型。

atater

代码实现
sklearn.model_selection.GridSearchCV(estimator, param_grid=None,cv=None)
estimator -- 选择了哪个训练模型
param_grid -- 需要传递的超参数
cv -- 几折交叉验证
"""
1.获取数据集
2,数据基本处理
3. 特征工程
4. 机器学习(模型训练)
5. 模型评估
"""

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier

# 1.获取数据集
iris = load_iris()
# 2,数据基本处理
# 2.1 数据分割
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2)

# 3. 特征工程
# 3.1 实例化一个转化器
transfer = StandardScaler()
# 3.2 调用fit_transform方法
x_train = transfer.fit_transform(x_train)
x_test = transfer.fit_transform(x_test)

# 4. 机器学习(模型训练)
# 4.1 实例化一个估计器
estimator = KNeighborsClassifier(n_neighbors=1)

# 4.2 调用交叉验证网格搜索模型
param_grid = {"n_neighbors": [1, 3, 5, 7, 9]}
estimator = GridSearchCV(estimator, param_grid=param_grid, cv=10, n_jobs=4)

# 4.3 模型训练
estimator.fit(x_train, y_train)
# 5. 模型评估
# 5.1 输出预测值
y_pre = estimator.predict(x_test)
print("预测值是:\n", y_pre)

# 5.2 输出准确率
ret = estimator.score(x_test, y_test)
print("准确率:\n", ret)

# 5.3 其他平均指标
print("最好的模型:\n", estimator.best_estimator_)
print("最好的结果:\n", estimator.best_score_)
print("整体模型结果:\n", estimator.cv_results_)

【k近邻】 K-Nearest Neighbors算法原理及流程 (K-Nearest Neighbors,简称KNN)是一种常用的监督学习算法,可以用于分类和回归问题。在OpenCV中,KNN算法的函数为`cv.ml.KNearest_create()。 阅读详情

相关推荐

《机器学习实战》-KNN算法心得

@[TOC]《机器学习实战》-KNN算法心得) 准备开始在优快云上用博客记录学习心得,同时也分享一些其中自己产生的脑洞(想法) PS:第一次在优快云上写,还不习惯这个编写方式 在写之前说一下,因为书里很多代码在python3以后都会编译错误,所以关于《机器学习实战》的总结,不会具体分析代码,代码问题在overstackflow或者matplotlib官网都能搜索到。 KNN是处理分类问题的,而...

starcosmos的博客 1806

K-近邻算法

学习笔记

PCGuo999的博客 2万+

智能个人消费行为分析与预测

在当今数字化时代,个人消费数据呈现出爆炸式增长。对个人消费行为进行智能分析与预测具有重要的商业价值和社会意义。其目的在于帮助企业更好地了解消费者需求,制定精准的营销策略,提高客户满意度和忠诚度;同时,也能为消费者提供个性化的消费建议,优化资源配置。本文的范围涵盖了从数据采集、处理到运用多种技术进行分析和预测的全过程,包括相关的理论基础、算法实现以及实际应用案例。本文首先介绍了与智能个人消费行为分析与预测相关的核心概念,阐述了它们之间的联系,并通过示意图和流程图进行直观展示。

AI架构师小马 914

k最近邻算法(kNN)

kNN算法的描述和kd树

liqiutuoyuan的博客 5万+

白话机器学习算法理论+实战之K近邻算法

1. 写在前面 如果想从事数据挖掘和数据分析的工作,掌握常用的机器学习算法是非常有必要的,比如我之前写过的一篇十大机器学习算法的小总结,在这简单的先捋一捋, 常见的机器学习算法: 监督学习算法:逻辑回归,线性回归,决策树,朴素贝叶斯,K近邻,支持向量机,集成算法Adaboost等 无监督算法:聚类,降维,关联规则, PageRank等 为了详细的理解这些,曾经看过西瓜书,统计学习方法,机器学习...

Miracle8070 3292

鸢尾花数据集:机器学习KNN算法实战.zip

鸢尾花数据集(Iris dataset),由著名的统计学家罗纳德·费雪(Ronald Fisher)于1936年首次发布。它是一个经典的多变量分析数据集,常用于模式识别和机器学习领域中的分类问题研究。由于数据集结构简单且易于理解,成为了初学者学习数据挖掘和机器学习算法的常用工具。分类任务的目标是将数据集中的实例分配到合适的类别中。在鸢尾花数据集中,有三个不同的类别,目标是训练一个模型能够准确地识别花的种类。为了达到这个目标,我们需要定义分类任务的具体目标,并选择合适的模型和算法进行训练。

weixin_42514540的博客 1136

解锁机器学习核心算法 | K -近邻算法:机器学习的神奇钥匙

**K - 近邻算法**,作为机器学习中的一种基本分类与回归方法,以其独特的 “**基于邻居投票**” 策略而闻名。它的核心思想简单易懂,就如同我们在生活中判断一个人可能的兴趣爱好时,会参考他身边最常接触的朋友们的兴趣一样。在 K - 近邻算法中,当面对一个新的数据点需要判断其类别时,算法会在已有的训练数据集中寻找与它距离最近的 K 个邻居,然后根据这 K 个邻居的类别来决定新数据点的归属。这种直观的判断方式,使得 K - 近邻算法在许多实际应用中都展现出了强大的性能和适应性。

紫雾凌寒 1581

xxxx.rar_tube24XXXX_数码管动态显示

数码管显示一般分静态显示及动态显示两种驱动方式,静态显示占用口线比较多,本文介绍的是如何实现数码管动态显示,应该说数码管动态显示是单片机外部指令输出的重要途径,因此如何设计数码管以及数码管的工作原理、数码管显示的方法、数码管显示的抗干扰设计等在单片机系统设计中占有重要地位。这个例子在系统硬件的基础上设计了软件查询程序、软件延时程序(防止干扰),大致讲述了一种数码管动态显示的工作原理与读取方式。

scikit-learn机器学习二 (简单线性回归、K-临近算法-分类和回归、特征缩放)

sk-learn 简单线性回归 K-临近算法 特征缩放

Enternalwiser的博客 1666

从‘最速控制’到代码:深入拆解韩京清ADRC中TD跟踪器的fhan函数(含Matlab/Simulink实例)

本文深入解析韩京清ADRC中的fhan函数,从理论到代码实现,详细拆解其在Matlab/Simulink中的应用。通过分析最速控制问题和非线性TD的连续形式,揭示fhan函数在信号处理和噪声抑制中的独特优势,并提供工程实践中的参数整定和优化技巧。

weixin_42659194的博客 246

分析以太网帧结构_100G以太网接口调试初体验

是的,标题没有多敲一个“0”,明人不说暗话,就是在FPGA上实现100G以太网接口设计。正好参与了实验室某项目中的100G接口的调试,早想写个专栏文章了,由于调试过程中发现了一些硬件问题,导致迟迟没有往前推进,现在问题解决了之后可以简单分享一下100G以太网接口的调试初体验了~(好像DDR4读写测试系列文章还没搞完 )这篇初体验暂时不分多个章节了,基本设计流程与之前发布的“10G以太网接口”系列文...

weixin_39574050的博客 1602

机器学习实战 第二章 K-近邻算法 Python3代码

最近在看《机器学习实战》这本书,书中的机器学习算法都很经典,写的也很详细,是一本不错的书,适合夯实基础,不过有一点缺陷就是书中使用的Python2的编译器代码,多多少少会与当前主流的Python3有些出入,所以小编在看书之余也准备将本书中的代码重新敲一遍到Python3,一起学习,一起进步,本栏目持续更新,知道本博主看完敲完这本书。 K-近邻算法的概述 k-近邻算法说到底,就是求取待测试数据向...

Jeremy_Ren的博客 468

PPL文档——Excel制作的甘特图加上动态今日线

当很多项目需要跟踪进度时,我们介绍一种在Excel中创建甘特图。

qq_34777858的博客 7063

KNN 算法详解:从电影分类到鸢尾花识别的实战指南

KNN 算法虽简单,却揭示了机器学习中 "相似性度量" 的核心思想。从电影分类到鸢尾花识别,其 "近邻表决" 的逻辑在生活中随处可见。掌握 KNN 不仅能解决简单分类问题,更能帮你理解复杂算法的底层逻辑 —— 毕竟,所有模型的本质都是寻找数据中的 "相似性" 与 "规律"。

2201_75691511的博客 808

从ADC校准到精准测量:避开PY32F030小信号采样的那些坑

本文深入探讨了PY32F030微控制器进行ADC小信号采样时面临的挑战与解决方案。从硬件设计、软件滤波算法到系统级校准策略,详细分析了如何避开常见陷阱,实现精准测量,特别是在25mV以下小信号场景中的应用实践。

ujm567890的博客 755

Unity游戏开发必备:HybridCLR热更新实战教程(含iOS/Android适配指南)

本文详细介绍了HybridCLR在Unity游戏开发中的热更新实战教程,包括iOS/Android平台适配指南。通过环境配置、项目结构规划、热更新工作流实现等步骤,帮助开发者高效掌握C#热更新技术,解决移动游戏快速迭代的痛点问题。

weixin_29011395的博客 441

K近邻算法-KNN-python简单实现

KNN算法是一种简单的机器学习算法,从大致原理上来理解相对简单。 主要思路就是计算要分类的测试特征向量与训练数据集的特征向量的距离,计算距离的方法可以有很多种(如欧氏距离,海明距离),选取与其距离最小的k个特征向量,然后分析这k个向量所属的类别,其中,数量最多的类别可是做测试数据的类别。因此KNN可用于简单分类。 K值得选择会对K近邻算法的结果产生重大影响。 k近邻法没有显式的学习过程。没有训练算...

姬小野的博客 514

Cisco 路由器 打环测试教程

环 回测试是很常用的一种测试,通常用于检查和分析端口或线路问题。如下图所示,我们在设备端口上用命令loopback(某些端口上命令格式为 loopback diagnostic)使接口从内部将自己发送的信号转接到自己的接收端(如红线所示),通过检查数据发送和接收的情况来判断端口工作状态是否正常。如果 需要对端口进行完全的检测,可以使用符合标准的短跳线将端口收发短接构成环...

weixin_34304013的博客 2024

Python 从零手撕 KNN:约会网站配对预测实战(附完整代码与数据集)

自定义新用户特征(飞行里程、冰淇淋消耗、游戏时间)# 对新样本归一化(使用训练集的最小值和范围)# 预测兴趣程度# 结果映射result_map = {1:'无兴趣', 2:'低兴趣', 3:'高兴趣'}print(f"新用户兴趣预测:{result_map[pred_result]}")数据预处理的重要性:特征归一化是 KNN 算法的关键步骤,直接影响距离计算的公平性和模型性能;算法原理的直观性:KNN 无需复杂的训练过程,通过 “距离计算 + 邻居投票” 即可实现分类,易于理解和实现;

cccoky的博客 1123

基于FPGA设计的信号分析仪(项目资料ID:28)

基于现场可编程门阵列(FPGA)设计的信号分析仪。该信号分析仪旨在实现对各类信号的精确分析,具备频率、幅度、相位等参数测量功能。通过采用 FPGA 作为核心处理单元,充分利用其并行处理能力和可重构特性,提高了系统的处理速度和灵活性。论文介绍了信号分析仪的总体设计方案,包括硬件电路设计和软件算法实现。

以培养嵌入式工程师为己任 1万+

SAP S/4HANA Public Cloud 的 Development Tenant 深度解析

在传统的 SAP On-Premise 版本中,企业通常拥有完整的开发、测试、生产环境,开发人员可以直接访问 ABAP 代码,进行深度定制。然而,S/4HANA Public Cloud 采用了标准化的 SaaS 模型,不允许用户直接修改核心代码。因此,SAP 提供了一种新的开发方式,即 Development Tenant,允许企业在不破坏核心系统稳定性的前提下,实现个性化扩展。Development Tenant 主要用于 SAP S/4HANA Public Cloud 的扩展开发。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 846

基于python的机器学习(一)

参考书籍:《机器学习实战》 第二章:k-近邻算法 k-近邻算法属于分类算法,采用测量不同特征值之间的距离方法进行分类。 其训练样本形式:(x1,x2,,...,xn,Y),其中x1到xn是样本的n个不同的特征,Y是样本的类别变量。 考虑n个不同的特征值是连续性变量,而Y是标称性变量(离散的有限的变量) k-近邻算法(kNN): 1.需要分类的检验样本1(x1,x2,..

u012580217的专栏 584

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

GPT4Free 绿色计算:本地小模型怎么配,让 AI 电费先降一半?

凌晨一点,你刷到上个月的云账单,AI 接口那栏多出的 118 块最扎眼。省钱的思路不止换模型一条:GPT4Free 这套绿色计算玩法,是把活儿尽量扔给离插座更近的机器,绿电多的时候再用云端。 [![GPT4Free 绿色计算:本地模型低能耗部署](https://raw.gitcode.com/GitHub_Trending/gp/gpt4free/raw/80c50e92f46500a09ab

gitblog_00067的博客 934

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

七天学完十大机器学习经典算法-05.从投票到分类:K近邻(KNN)算法完全指南

无论是辨别水果的滋味、预测电影的类别,还是在复杂的基因序列中寻找生命密码,KNN以其独特的“邻里互助”模式,在众多领域展现着实用价值。当你面对一个新问题时,不妨先问问:“它的邻居是谁?”——答案或许就在那些最相似的数据点之中。

wdracky的专栏 1491

假人有限元模型

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

机器学习实战:KNN、SVM、朴素贝叶斯、决策树与随机森林的算法选择与对比

本文深入对比了KNN、SVM、朴素贝叶斯、决策树与随机森林等经典机器学习算法的特性与应用场景。通过分析数据规模、特征维度、线性可分性等关键因素,提供算法选型指南,并包含客户流失预测实战案例,帮助开发者根据业务需求选择最优模型。特别强调随机森林在结构化数据预测中的优异表现。

weixin_34197488的博客 415

k-近邻算法

1.文章说明          此文章参考机器学习实战一书,具体的理论知识可以参考该书。本文的初衷只是为了做一个复习,将学过的知识加以整理,其中不免有一定的错误。 2.K-近邻算法的原理介绍         k-近邻算法通过测量不同的特征值之间的距离进行分类。它的工作原理如下:存在一个样本的数据集合,也成为训练样本集合。并且样本集中的每个数据都存在标签,即我们知道样本集

Augster的博客 812
上一篇: Ubuntu16安装MySQL
下一篇: 来上海三周找工作小总结(Java)
chengshuo678
博客等级 码龄14年 5粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值