机器学习100天—第5天k近邻法(附实战教程)

机器学习-sklearn.datasets-load_iris数据集-回归算法和K近邻法(KNN) 学习机器学习一个月了,开始尝试做一些简单的问题,整体代码在文章最后 这里写目录标题1、 load_iris数据集2、数据集处理3、线性回归3.1 回归训练3.2 回归测试3.3 对输入点进行判断4、K近邻(KNN)算法4.1 距离计算4.2 计算准确率4.3 k近邻法判断输入点类别5、绘制函数图像6、运行结果展示7、完整代码 1、 load_iris数据集 Iris数据集在模式识别研究领域应该是最知名的数据集了,有很多文章都用到这个数据集。这个数据集里一共包括150行记录,其中前四列为花萼长度,花萼宽度,花 阅读详情

下面是我们的Beyonce小姐姐,小姐姐目前是在读学生,前端中途杀到机器学习里面,我给她分享了许多相关资料,大家有需要可以找一下她,春节过后还会有小惊喜哦。

我们的机器学习100天终于出到了第5天,虽然100天看起来很短,但是坚持下来真的不是一件很简单的事情,特别是还要写文章,文章不易,大家觉得是干货就点个赞哦~

如上图,当K=3时,它会被分类为 Class B。因为K=3时,3个临近点里有2个是B类的。

同理,K=7时它会被分类为 Class A,因为K=7时,7个临近点里4个是A类的。

KNN算法一个比较不好的缺点是K值由人主观决定。因为这样有一个问题,你取的K值不同,对于某些点的分类结果就不同,比如上图分别取k=3和k=7会得到不同的结果。

K值不能取太小,比如K=1的情况,此时容易被错误的样本干扰,造成过拟合等问题。当然,K值也不能取太大,越大分类效果越差。

如上图所示,当k=1的时候,决策边界变得非常不光滑,换句话说,模型的决策规则非常复杂,容易造成过拟合。

简而言之:k越小,模型越容易过拟合;k越大,越容易欠拟合。

所以K值应该取一个不大不小的奇数,比如3、7、9、11等,千万不能选偶数,因为偶数会有两个分类打平的情况,不要给自己找麻烦。

一图总结KNN算法:

下面我们就同样使用第三天的数据集来使用KNN预测用户是否会购买SUV,并计算KNN算法在这个应用场景上的准确率。

1.导入库与数据

现在有一个数据集包含了社交网络中用户的信息。这些信息涉及用户ID,性别,年龄以及预估薪资。

一家汽车公司刚刚推出了他们新型的豪华SUV,我们尝试使用KNN算法预测哪些用户会购买这种全新SUV。并且在最后一列用来表示用户是否购买:

导入库:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.metrics import confusion_matrix
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder

导入数据,包括性别:

# 1.导入数据集
dataset = pd.read_csv('Social_Network_Ads.csv')
X = dataset.iloc[:, [1, 2, 3]].values
Y = dataset.iloc[:, 4].values

# 性别转化为数字
labelencoder_X = LabelEncoder()
X[:, 0] = labelencoder_X.fit_transform(X[:, 0])

2.数据集切分与特征缩放

我们对数据源进行处理,将其中25%的数据设置为测试集。

# 2.将数据集分成训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(
    X, Y, test_size=0.25, random_state=0)

此外,还需要进行特征缩放,因为在K近邻算法中,分类器主要是计算两点之间的欧几里得距离,如果一个特征比其它的特征有更大的范围值,那么距离将会被这个特征值所主导。

因此每个特征应该被归一化,比如将取值范围处理为0到1之间或权重相同的值。

# 3.特征缩放
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

3.数据训练与预测

使用scikit-learn中的KNN算法进行训练,设置k值=5:

# 4.训练
classifier = KNeighborsClassifier(n_neighbors=5)
classifier.fit(X_train, y_train)

对分类器调用predict方法进行预测:

# 5.预测
y_pred = classifier.predict(X_test)

你可以把预测结果输出,但这里我觉得没有必要,我们直接进入下一步评估模型就能知道结果好坏了。

4.模型评估

与上一节教程一样,我们使用混淆矩阵进行评估:

# 6.评估预测

# 生成混淆矩阵
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)
print(cm)

得到结果如下:

(base) G:\push\20210210>python test_with_gender.py
[[64 4]
 [ 3 29]]

可以看到,分类正确的值有 64+29=93个,分类错误的值有 3+4=7个。

准确率达 93/100 = 93%,比上节使用逻辑回归的准确率高了4%,你也可以尝试选择不同的K值,看看能不能拿到更加优秀的结果。

文末福利

各位猿们,还在为记不住API发愁吗,哈哈哈,最近发现了国外大师整理了一份Python代码速查表和Pycharm快捷键sheet,火爆国外,这里分享给大家。

这个是一份Python代码速查表

下面的宝藏图片是2张(windows && Mac)高清的PyCharm快捷键一览图

怎样获取呢?可以添加我们的AI派团队的Beyonce小姐姐

一定要备注【高清图】哦

????????????????????

➕我们的Beyonce小姐姐微信要记得备注【高清图】哦

来都来了,喜欢的话就请分享、点赞、在看三连再走吧~~~

《机器学习100天》学习笔记——Day 11_k-NN(k近邻法) 100-Days-Of-ML-Code 中文版《机器学习100天》 GitHub :https://github.com/MLEveryday/100-Days-Of-ML-Code 数据集 | 社交网络 部分数据集如下图所示: 该数据集包含了社交网络中用户的信息。这些信息涉及用户ID,性别,年龄以及预估薪资。一家汽车公司刚刚推出了他们新型的豪华SUV,我们尝试预测哪些用户会购买这种全新SUV。... 阅读详情

相关推荐

Python3 机器学习实战自我讲解(二) K-近邻法-海伦约会-手写字体识别

第二章 k近邻法 2.1 概念 2.1.1 k近邻法简介 k近邻法(k-nearest neighbor, k-NN)是1967年由Cover T和Hart P提出的一种基本分类与回归方法。它的工作原理是:存在一个样本数据集合,也称作为训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一个数据与所属分类的对应关系。输入没有标签的新数据后,将新的数据的每个特征与样本

qq_40229767的博客 664

使用逻辑回归预测用户是否会购买SUV

往期推荐机器学习100天学习计划 — 第1天 数据预处理机器学习100天学习计划 — 第2天 线性回归机器学习100天学习计划— 第3天多元线性回归这是机器学习100天学习计划的第4...

Python实用宝典网 1724

学术报告系列(二) - 智能自主作业机器人感知与控制技术及发展趋势

收集整理于2022年模式识别高峰论坛湖南大学王耀南院士报告(报名题目:智能自主作业机器人感知与控制技术及发展趋势)

Make something people want. 4699

SKLearn中预测准确率函数介绍

SKLearn中预测准确率函数介绍 1、在使用Sklearn进行机器学习算法预测测试数据时,常用到classification_report函数来进行测试的准确率的计算输 #开始预测y_pred = clf.predict(X_test)print("do...

dichuanyan5669的博客 2644

股票交易接口TDX量化下单接口

对于需要同时操作多只股票的投资者而言,这一功能可以一次性处理多个交易指令,大大提高了交易的效率。通过回测,投资者可以发现策略中的不足之处,进而进行优化和调整,提高策略的可靠性。根据通达信提供的安装指南,下载相应的安装程序并进行安装。这包括设置交易账户的相关信息,如账户名、密码等,以及连接到正确的交易服务器。不同的情况可能会有不同的标准,有的可能要求账户使用达到一定的时长,有的可能对账户内的资产金额有最低要求。可以通过接口提供的监控功能或者第三方工具,实时查看交易状态、交易数据等信息,确保交易按照预期进行。

2401_88470113的博客 1290

2022年全球市场微波等离子体CVD反应器总体规模、主要生产商、主要地区、产品和应用细分研究报告

据GIR (Global Info Research)调研,按收入计,2021年全球微波等离子体CVD反应器收入大约 百万美元,预计2028年达到 百万美元,2022至2028期间,年复合增长率CAGR为 %。

MARKETRESEARCH的博客 1138

sklearn逻辑回归参数设置_【机器学习笔记】:逻辑回归实战练习(二)

作者:xiaoyu微信公众号:Python数据科学知乎:python数据分析师前言前几篇介绍了逻辑回归在机器学习中的重要性:5个原因告诉你:为什么在成为数据科学家之前,“逻辑回归”是第一个需要学习的以及逻辑回归的理论和公式推导:路远:【机器学习笔记】:从零开始学会逻辑回归(一)继上一篇,本篇将引出一个逻辑回归的实战练习,利用逻辑回归进行二分类,通过练习你将学会:理解逻辑回归模型参数的含义使用skl...

weixin_39606575的博客 2601

从原理到实战:ARS548 4D毫米波雷达数据处理与多模态融合全解析

本文深入解析了4D毫米波雷达ARS548的工作原理与数据处理全流程。从FMCW测距测速、MIMO虚拟天线阵列到点云生成的三步FFT处理,提供了详尽的Python代码实现。文章进一步探讨了与激光雷达、相机的多模态时空对齐与融合策略,并指导如何构建用于自动驾驶感知训练的多模态标注数据集,为相关算法工程师提供了从理论到实践的完整指南。

weixin_29161719的博客 369

多分类使用sklearn计算y_pred和y_prob

发现发现输出的y_pred标签没有对应于y_pred_prob中每一个最大值对应位置的标签,找不到存在的问题。原来是在使用sklearn计算y_pred时,类别标签是从0,开始,导致结果无法对应。多方面检查后,才发现。

luyanpingya的博客 814

RKNN 端侧部署必看:YOLOv11 Pose 姿态估计模型转换与性能优化实战

随着人工智能技术在边缘计算领域的快速发展,姿态估计作为计算机视觉的重要分支,在智能监控、人机交互、体感游戏等场景中展现出巨大的应用潜力。本文深入研究了YOLOv11 Pose模型在Rockchip RKNN平台上的部署方案,从理论基础、模型转换、平台优化到实际部署进行了全面阐述。通过详细的技术分析和实验验证,证明了RKNN平台能够有效提升YOLOv11 Pose的推理性能,在RK3588硬件平台上实现了高达100 FPS的实时姿态检测,为边缘计算场景下的姿态估计应用提供了高效的解决方案。

m0_71589036的博客 184

【LLC快速上手系列】LLC轻载时,死区时间怎么调才对?别再傻傻乱搞了!

死区时间,就是指。如果你死区设得好,就能让开通前 ( V_DS to 0 ),完美实现!

weixin_43199439的博客 1857

python程序题求roc-auc是一种常用的模型评价指标_模型评价方法

第五章 模型评价方法5.1 模型的评价方法介绍5.1.1~5 accuracy,precision,recall,F1-score,ROC曲线分别画图举例,要说出应用场景,例如什么情况用什么评价标准。混淆矩阵accuracy(准确率)precision(精准度),recall(召回率),F1-score(宏观,微观)ROC曲线图python代码实现,例子。(有视频参考)5.2 项目实例运用模型评价...

weixin_39672194的博客 4391

【现代人形机器人:从物理建模到大模型驱动的控制与学习】第1章 机器人建模回顾

本章建立读者进行后续控制 / 优化 / 学习工作的数学与计算基础。内容分为三大块:刚体运动学:位姿表示、坐标变换、旋转参数与李代数/李群(指数映射、twist)多关节机构的正/逆运动学:DH 与 POE 两种建模、雅可比矩阵推导、数值/解析逆解方法与奇异性问题约束动力学:拉格朗日公式、牛顿—欧拉递归算法、接触/冲击模型、受约束系统的方程(拉格朗日乘子与互补性条件)每一节同时给出与练习题。假设读者已具备线性代数(矩阵、特征分解、SVD)、多变量微积分与基础力学(牛顿第二定律)知识。

u012133341的博客 186

7天快速入门机器学习实战:100-Days-Of-ML-Code项目从0到1完整指南

100-Days-Of-ML-Code中文版是一个专为机器学习初学者设计的实战项目,通过循序渐进的100天学习计划,帮助学习者掌握从数据预处理到高级算法的核心技能。本文将带你在7天内快速入门这个项目,体验机器学习的魅力。 ## 为什么选择100-Days-Of-ML-Code项目? 机器学习入门往往面临两大挑战:理论与实践脱节、学习路径不清晰。100-Days-Of-ML-Code项目通过结构

gitblog_00055的博客 792

vue3+vite - 解决报错error while updating dependencies:Error:EACCES:permission denied,mkdir ‘x‘(系统权限问题)

vue3,vite,报错,nuxt,权限,苹果mac系统,windows系统,vue3报错,vite报错,node,详细解决方法,教程,[vite] error while updating dependencies: Error:EACCES:permission denied,mkdir 'x',更新依赖项时发生[vite]错误:错误:EACCES:权限被拒绝,mkdir,苹果mac系统加了sudo还是不行报错,运行报错,启动项目,run dev,创建项目,初始化,依旧不行怎么办,保权限没有问题,换了n

✅ 精选推荐文章 5558

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

机器学习100天练习(5)K近邻法

机器学习100天练习(5)K近邻法 导入相关库 import numpy as np import matplotlib.pyplot as plt import pandas as pd 导入数据集 数据 dataset = pd.read_csv('Social_Network_Ads.csv') X = dataset.iloc[:, [2, 3]].values y = dataset.iloc[:, 4].values 将数据划分成训练集和测试集 from sklearn.model_sel

多米尼克的小风车 353

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

100天的ML day7and11 K最近邻法

目录 K最近邻法简介 思想 KNN算法的用途 优点 缺点 改进策略 K的取值 实现 K最近邻法简介 思想 近邻算法,又叫K最近邻(KNN,k-NearestNeighbor)分类算法。 kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。 kNN也被称为惰性算法,因为它是基于实例的。...

Ou_nei的博客 739

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

机器学习100天——第7天(K近邻法)

一篇非常好的参考博客:https://blog.youkuaiyun.com/c406495762/article/details/75172850#commentBox 1、KNN基础概念 KNN作为一种有监督分类算法,是最简单的机器学习算法之一,顾名思义,其算法主体思想就是根据距离相近的邻居类别, 来判定自己的所属类别。算法的前提是需要有一个已被标记类别的训练数据集,具体的...

qq_36079638的博客 214

100天搞定机器学习|Day7 K-NN

机器学习100天|Day1数据预处理 100天搞定机器学习|Day2简单线性回归分析 100天搞定机器学习|Day3多元线性回归 100天搞定机器学习|Day4-6 逻辑回归 最近事情无比之多,换了工作、组队参加了一个比赛、和朋友搞了一些小项目,公号荒废许久。坚持是多么重要,又是多么艰难,目前事情都告一段落,我们继续100天搞定机器学习系列。想要继续做这个是因为,一方面在具体应...

373

ML Day11K近邻法

机器学习100天,每天进步一点点。跟着GitHub开始学习! 英文项目地址https://github.com/Avik-Jain/100-Days-Of-ML-Code 中文项目地址https://github.com/MLEveryday/100-Days-Of-ML-Code K近邻算法是一种简单但也最常用的分类算法。对未标记的对象进行分类时,首先计算出该对象对标记的对象之间的距离,确...

weixin_40277254的博客 186

复现经典:《统计学习方法》第 3 章 k 近邻法

本文是李航老师的《统计学习方法》[1]一书的代码复现。作者:黄海广[2]备注:代码都可以在github[3]中下载。我将陆续将代码发布在公众号“机器学习初学者”,敬请关注。代码目录第 1...

fengdu78的博客 341

R语言机器学习(1)-R的近邻分析—K近邻法

转载请注明出处:https://blog.youkuaiyun.com/xiezhiliang22 1 前言 下面这几个部分主要讲述如何使用R语言来实现几个经典的机器学习以及统计学之中的算法,在这里原理部分就一带而过,如果想要学习的话可以参考其他博主。这里主要介绍如何直接上手使用几个经典算法。 2 K近邻原理 数学原理:简单来说就是基于已经给定的样本数据,通过各种各样的数学定义距离,这个新加入的点靠哪一个近,就属于那一类。 误差评估: (1)旁置法————样本集合比较多的情况,分为2个集合分别为训练集合测试集 (2)留

xiezhiliang22的博客 4667

Github上大神总结的Python学习路线

俗话说,师傅领进门,修行在个人。随着Python的流行,越来越多的人希望学习Python,苦于没有师傅来领进门。本文将分享几个GitHub大佬总结的经验和免费学习资料,供同学们学习参考。

优快云_224022的博客 2200

【Python机器学习】多项式回归、K近邻KNN回归的讲解及实战(图文解释 附源码)

【Python机器学习】多项式回归、K近邻KNN回归的讲解及实战(图文解释 附源码)

showswoller的博客 1307
上一篇: 用 Python 神经网络预测汽车保险支出
下一篇: 【春节闲聊】程序员如何打破35岁魔咒
Wang_AI
博客等级 码龄12年 996粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值