当前位置: 首页 > article >正文

机器学习day01(机器学习概述 + KNN算法)

机器学习_算法分类有监督学习有监督 有特征、有标签。有监督又被分为分类问题 和 回归问题。分类问题目标值标签值是不连续的分类种类二分类、多分类回归问题目标值标签值是连续的无监督学习训练数据有特征无标签根据样本间的相似性对样本集进行聚类发现事务内部结构及相互关系半监督学习半监督 有特征部分有标签、部分没标签。让专家标注少量数据利用已经标记的数据也就是带有类标签训练出一个模型在利用改模型去套用未标记的数据通过询问领域专家分类结果与模型分类结果做对比从而对模型做进一步改善和提高。半监督学习可大幅度降低成本。专家标记成本强化学习强化学习 寻找最短路径最优解以便获取最多的奖励。强化学习机器学习的一个重要分支应用场景里程碑AlphaGo、各类游戏、对抗比赛、无人驾驶场景四要素Agent、环境、奖励、动作总结机器学习建模流程机器学习建模的一般步骤获取数据搜集与完成机器学习任务相关的 数据集数据基本处理数据集中异常值缺失值的处理等特征工程对数据特征进行提取、转成向量让模型达到最好的效果机器学习模型训练选择合适的算法对模型进行训练根据不同的任务来选中不同的算法有监督学习、无监督学习半监督学习强化学习模型评估评估效果好上线服务评估效果不好则重复上述步骤特征工程特征工程概念特征工程利用专业背景知识和技巧处理数据让机器学习算法效果最好。这个过程就是特征工程。数据和特征决定了机器学习的上限而模型和算法只是逼近这个上限而已。特征提取原始数据中提取与任务相关的特征构成特征向量。特征预处理特征对模型产生影响因量纲单位问题有些特征对模型影响较大、有些影响小特征降维对原始数据的维度降低叫做特征降维一般会对原始数据产生影响特征选择原始数据特征很多与任务相关是其中一个特征集合子集不会改变原始数据特征组合把多个的 特征合并成一个特征。利用乘法或加法来完成模型拟合问题拟合模型在训练集和测试集上表现情况欠拟合概念模型在训练集、测试集表现都不好产生原因模型过于简单过拟合概念模型在训练集表现好在测试集表现不好产生原因模型太过于复杂、数据不纯、训练数据太少泛化概念模型在新数据集非训练数据上的表现好坏的能力。奥卡姆剃刀原则给定两个具有相同泛化误差的模型较简单的模型比较复杂的模型更可取。机器学习开发环境pip install scikit-learnKNN算法KNN算法简介K-近邻算法K Nearest Neighbor简称KNN。比如根据你的邻居推断出你的类别KNN算法是想如果一个样本在特征空间中的K个最相似的样本中的大多数属于一个类别则该样本也属于这个类别。怎么去计算是否相似呢可以用欧氏距离。欧氏距离 对应维度差值平方和开平方根。当然后面还有其他的方法K值的选择K值过小用较小邻域中的训练实例进行预测容易受到异常点的影响K值的减少就意味着整体模型变得复杂容易发生过拟合。K值过大用较大邻域中的训练实例进行预测受到样本均衡的问题且K值的增加就意味着整体的模型变得简单欠拟合。思路分析KNN解决问题分类问题、回归问题分类问题和回归问题的相同点二者都属于有监督学习有特征、有标签分类问题和回归问题的不同点标签不连续是分类问题标签连续是回归问题不连续的标签虽然可以用数字表示如 0,1,2但数字之间的算术运算加、减、乘、除、求平均没有实际意义所以需要特殊处理——这就是分类问题。连续的标签数字本身就有量纲和物理意义算术运算结果仍然是同类量所以可以直接用数学函数拟合——这就是回归问题。分类是投票回归是均值。算法思想若一个样本在特征空间中的K个最相似的样本大多数属于某一个类别则该样本也属于这个类别。相似性欧氏距离KNN算法API介绍分类实现# KNN算法分类思路 KNN算法介绍(K Nearest Neighbors), K近邻算法 原理 基于 欧氏距离或者其它的距离计算方式计算 测试集 和 每个训练集之间的距离然后根据距离升序排列找到最近的K个样本 基于K个样本投票票数最多的就作为最终的预测结果 --- 分类问题 基于K个样本计算平均值作为最终预测结果 --- 回归问题 实现思路 1.分类问题 适用于有特征有标签且标签是不连续的(离散的) 2.回归问题。 适用于有特征有标签且标签是连续的。 KNN算法分类问题思路如下 1.计算测试集和每个训练的样本之间的距离。 2.基于距离进行升序排列。 3.找到最近的K个样本. 4.K个样本进行投票。 5.票数多的结果作为最终的预测结果。 代码实现思路 1.导包 2.准备数据集测试集 和 训练集 3.创建KNN分类模型对象 4.模型训练 5.模型预测 # 导包 from sklearn.neighbors import KNeighborsClassifier # 准备数据集测试集 和 预测集 x_train [ [0], [1], [2], [3] ] # 特征 因为特征可以有多个特征所以是一个二维数组 y_train [ 0, 0, 1, 1 ] # 训练集的标签 因为标签是离散的所以是一个一维数组 x_test [ [5] ] # 测试集的特征数据 # 创建KNN分类模型对象 estimator KNeighborsClassifier(n_neighbors2) # 也即是 K # 模型训练 estimator.fit(x_train, y_train) # 拟合 # 模型预测 y_predict estimator.predict(x_test) # 打印预测结果 print(y_predict)回归实现# 回归代码实现 KNN算法介绍(K Nearest Neighbors), K近邻算法 原理 基于 欧氏距离或者其它的距离计算方式计算 测试集 和 每个训练集之间的距离然后根据距离升序排列找到最近的K个样本 基于K个样本投票票数最多的就作为最终的预测结果 --- 分类问题 基于K个样本计算平均值作为最终预测结果 --- 回归问题 实现思路 1.分类问题 适用于有特征有标签且标签是不连续的(离散的) 2.回归问题。 适用于有特征有标签且标签是连续的。 KNN算法回归问题思路如下 1.计算测试集和每个训练的样本之间的距离。 2.基于距离进行升序排列。 3.找到最近的K个样本. 4.基于K个样本的标签值计算平均值 5.将上述计算出来的平均值作为最终的预测结果。 代码实现思路 1.导包 2.准备数据集测试集 和 训练集 3.创建KNN分类模型对象 4.模型训练 5.模型预测 # 导包 from sklearn.neighbors import KNeighborsRegressor # 这个表示的是分类 # 训练集的特征数据 x_train [ [0, 0 ,1], [1, 1, 0], [3, 10, 10], [4, 11, 12] ] # 训练集的标签数据 y_train [ 0.1, 0.2, 0.3, 0.4 ] # 测试集的特征数据 x_test [ [3, 11, 10] ] # 创建KNN分类模型对象 estimator KNeighborsRegressor(n_neighbors2) # 模型训练 estimator.fit(x_train, y_train) # 模型预测 y_predict estimator.predict(x_test) # 打印预测结果 print(y_predict) # [0.35]距离度量欧氏距离的计算方法欧氏距离 对应维度差值平方和开平方根曼哈顿距离的计算方法曼哈顿距离城市街区距离 对应维度差值的绝对值求和切比雪夫距离的计算方法切比雪夫距离 对应维度值差值的绝对值求最大值。闵可夫斯基距离的计算方法不是一种新的距离的度量方式是对多个距离度量公式的概括性的表述总结。特征预处理为什么要做归一化和标准化特征的单位或者大小相差太大或者某个特征的方差相比其他的特征要大出几个数量级容易影响支配目标结果使得一些模型算法无法学习到其他的特征。归一化通过对原始数据进行变化把数据映射到 [min, max]默认为 [0, 1] 之间弊端容易受到 最大值 和 最小值 的影响所以它一般用于处理小数据集。API# 数据归一化API # 导包 from sklearn.preprocessing import MinMaxScaler # 准备数据集归一化之前的原数据 x_train [ [90, 2, 10, 40], [60, 4, 15, 45], [75, 3, 13, 46] ] # 创建归一化对象 scaler MinMaxScaler() # 对原数据集进行归一化操作 x_train_new scaler.fit_transform(x_train) # 输出归一化后的数据 print(x_train_new)标准化通过对原始数据进行标准化转换为均值为0标准差为1的标准正态分布的数据。适用于大数据集的处理。API# 数据标准化API # 导包 from sklearn.preprocessing import StandardScaler # 标准化对象 # 准备数据 x_train [ [90, 2, 10, 40], [60, 4, 15, 45], [75, 3, 13, 46] ] # 创建数据标准化对象 standard StandardScaler() # 标准化 # 对原始特征进行变换 x_new_train standard.fit_transform(x_train) # 打印标准化后的结果 print(x_new_train)

相关文章:

机器学习day01(机器学习概述 + KNN算法)

机器学习_算法分类有监督学习有监督 有特征 、有标签。有监督又被分为:分类问题 和 回归问题。分类问题目标值(标签值)是不连续的分类种类:二分类、多分类回归问题目标值(标签值)是连续的无监督学习训练数…...

ESP32 各型号远程 OTA 分区表建议与实战说明

ESP32 各型号远程 OTA 分区表建议与实战说明 1. OTA 分区表核心概念 ESP32 系列做远程 OTA,核心不是看“ESP32、ESP32-S3、ESP32-C3”这些名字,而是看 Flash 容量、固件大小、是否需要文件系统、是否需要回滚保护。 ESP-IDF 的分区表默认烧录在 Flash 的…...

别急着重装!遇到NVIDIA驱动“Building kernel modules”错误,先试试这3个“软”修复方案

别急着重装!遇到NVIDIA驱动“Building kernel modules”错误,先试试这3个“软”修复方案 当你看到屏幕上跳出ERROR: An error occurred while performing the step: "Building kernel modules"时,那种感觉就像开车时突然亮起发动机…...

Claude 4.7 Opus MAX会员深度测评:旗舰级AI的开发者适配升级,高效编码与复杂推理利器

在大模型向“高精度、强适配、可落地”迭代的当下,Anthropic于2026年4月正式推出的Claude 4.7 Opus MAX会员,精准锚定开发者、技术从业者及专业科研人员核心需求,以自验证架构升级、编程能力迭代、多模态性能突破为核心,成为旗舰级…...

AI自动生成Git提交信息:Dish AI Commit扩展深度配置与应用指南

1. 项目概述:一个全能的AI提交助手 如果你和我一样,每天都要在Git或SVN仓库里提交几十次代码,那么写提交信息(Commit Message)绝对是个让人头疼的活儿。写得过于简单,过几个月自己都看不懂;想写…...

虚拟鼠标库实战:用代码控制光标,提升屏幕录制与演示效率

1. 项目概述:为屏幕录制注入灵魂的虚拟鼠标如果你做过产品演示、软件教程或者功能讲解类的视频,肯定遇到过这样的烦恼:录屏软件捕捉到的鼠标指针移动轨迹是生硬的、跳跃的,甚至因为手抖而显得不够专业。一个流畅、精准、可控的鼠标…...

终极R3nzSkin国服特供版:英雄联盟皮肤自由切换完整指南

终极R3nzSkin国服特供版:英雄联盟皮肤自由切换完整指南 【免费下载链接】R3nzSkin-For-China-Server Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin-For-China-Server R3nzSkin国服特供版是一款专为中国服…...

视频对象中心学习:SlotContrast与SlotCurri解决过分割问题

1. 视频对象中心学习的挑战与机遇 在计算机视觉领域,视频对象中心学习(Object-Centric Learning)正逐渐成为理解动态场景的关键技术。这项技术旨在从视频序列中自动发现并表征其中的独立对象实体,为后续的跟踪、行为分析等任务奠定…...

Hearthstone-Script:解放双手的炉石传说自动化对战工具

Hearthstone-Script:解放双手的炉石传说自动化对战工具 【免费下载链接】Hearthstone-Script Hearthstone script(炉石传说脚本) 项目地址: https://gitcode.com/gh_mirrors/he/Hearthstone-Script 你是否厌倦了重复的炉石传说日常任务…...

【不喜欢运动的人可以放心了】一生心跳10亿次:从鼩鼱到大象,一个跨越230物种的生命数学不变量

论文来源:arXiv:2604.27856 (2026) | Mesfin Taye 一、开篇:两种极端的生命,同一个心跳总数 想象一只侏儒鼩鼱(Suncus etruscus)。它体重约2克,比一个回形针还轻。为了维持这具微小身体的运转,…...

5分钟快速上手:Cat-Catch浏览器资源嗅探工具完全指南

5分钟快速上手:Cat-Catch浏览器资源嗅探工具完全指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为网页上的视频无法下载而烦恼…...

将 Claude Code 编程助手的后端无缝切换至 Taotoken 提供的 Anthropic 通道

将 Claude Code 编程助手的后端无缝切换至 Taotoken 提供的 Anthropic 通道 1. 准备工作 在开始配置之前,请确保您已经拥有 Taotoken 平台的 API Key 和访问权限。登录 Taotoken 控制台,在「API 密钥」页面可以创建新的密钥或使用现有密钥。同时&#…...

Xilinx Spartan-3E与Intel StrataFlash的FPGA配置方案

1. 项目概述 作为一名从事FPGA开发多年的工程师,我深知配置存储方案对整个系统成本和可靠性的重要性。今天要分享的是Xilinx Spartan-3E系列FPGA与Intel StrataFlash存储器的无缝连接方案,这个技术在我们团队多个消费电子项目中已经验证了其稳定性和经济…...

快马平台助力fireworks-tech-graph:三步生成可交互技术架构原型

最近在做一个技术架构可视化的项目,发现从设计到落地验证的过程特别耗时。传统的做法需要先画草图,再用专业工具建模,最后还要写代码实现交互,整个过程至少要花上几天时间。直到尝试了InsCode(快马)平台,发现可以用更简…...

【C++ STL】探索STL的奥秘——vector底层的深度剖析和模拟实现!

vector的基本成员变量在模拟实现vector之前我们首先要了解vector的基本成员变量,然后在逐步进入到vector的一些核心接口的实现。如何知道这些成员变量呢?下面通过源码一探究竟:在这里插入图片描述有了上面的认识,那么我们模拟实现…...

别再傻傻分不清!LM193/LM393/LM2903电压比较器选型指南(附典型应用电路)

LM193/LM393/LM2903电压比较器实战选型手册:从参数解密到电路设计 在嵌入式硬件设计中,电压比较器就像电路中的"裁判员",时刻判断着输入信号的胜负。但当面对LM193、LM393、LM2903这些"孪生兄弟"时,不少工程师…...

三步解锁全球最大同人创作平台:AO3镜像站完全使用指南

三步解锁全球最大同人创作平台:AO3镜像站完全使用指南 【免费下载链接】AO3-Mirror-Site 项目地址: https://gitcode.com/gh_mirrors/ao/AO3-Mirror-Site 当你在深夜灵感迸发,想要阅读或创作同人作品时,却发现AO3网站无法访问&#x…...

拯救者笔记本性能调校终极指南:Lenovo Legion Toolkit完全使用教程

拯救者笔记本性能调校终极指南:Lenovo Legion Toolkit完全使用教程 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit …...

3步搞定QMC加密音乐:qmc-decoder音频解密完全指南

3步搞定QMC加密音乐:qmc-decoder音频解密完全指南 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾经遇到过这样的烦恼:在QQ音乐上精心收藏的…...

YOLOv11 改进 - C2PSA C2PSA融合DML动态混合层(Dynamic Mixing Layer)轻量级设计优化局部细节捕获与通道适应性,提升超分辨率重建质量

前言 本文介绍了动态混合层(DML),并将相关改进模块集成进YOLOv11。DML是SRConvNet核心组件,用于解决轻量级图像超分辨率任务中特征捕捉和通道适应性问题。它通过通道扩展拆分、多尺度动态深度卷积、通道洗牌与融合等步骤&#xf…...

Luxonis OAK-D 2代相机:机器人视觉与AI深度集成方案

1. Luxonis OAK-D系列2代相机深度解析Luxonis OAK-D系列2代相机是专为机器人视觉应用设计的革命性设备。作为一名长期从事计算机视觉开发的工程师,我第一次接触这个系列的产品就被其独特的设计理念所吸引。这不仅仅是一个简单的摄像头,而是将3D深度感知、…...

如果文件是客服回话记录,需要采用文件中用户原话,但是一次又不能投入太多文本,怎么解决 ?基于LangChain创建Excel大文件分析技能

如果文件是客服回话记录,需要采用文件中用户原话,但是一次又不能投入太多文本,怎么解决 目录 如果文件是客服回话记录,需要采用文件中用户原话,但是一次又不能投入太多文本,怎么解决 核心原则(不可突破) 第一步:零成本前置降token(不碰原话,直接砍掉冗余) 第二步:…...

如何高效提升英雄联盟游戏体验:智能本地自动化助手完整指南

如何高效提升英雄联盟游戏体验:智能本地自动化助手完整指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari 是一款专…...

文件大小和token 的 256k 是一回事吗?NO

文件大小和token 的 256k 是一回事吗 目录 文件大小和token 的 256k 是一回事吗核心结论先给清楚一、核心计算:1MB Excel到底对应多少Token?二、不同模型的可行性判断1. 常规主流模型(90%用户的日常使用场景):完全不可…...

Arm Neoverse V1定时器架构与看门狗机制详解

1. Arm Neoverse V1定时器架构深度解析在Arm Neoverse V1架构中,定时器系统采用分层设计理念,通过硬件级的时间管理单元为不同安全等级和功能域提供精准的时间基准。整个定时器网络由系统参考时钟(REFCLK)驱动,其典型频率范围在10-100MHz之间…...

2026届学术党必备的降AI率工具实测分析

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当下的这一学术写作场面里边,把人工智能辅助工具进行合理性运用,能够…...

2025届必备的十大AI科研神器推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当下,学术写作辅助技术已然有了很大进展,“一键生成论文”的功能随之…...

AI助力快速原型:用快马平台十分钟生成你的第一个谷歌浏览器截图扩展

最近在做一个需要频繁截图的工作,突然想到如果能有个浏览器扩展一键搞定截图和下载就好了。作为一个前端小白,本以为开发浏览器扩展会很复杂,没想到用InsCode(快马)平台十分钟就搞定了原型开发,这里分享一下具体实现思路。 扩展功…...

裸土数据集1117张VOC+YOLO格式

裸土数据集1117张VOCYOLO格式数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1117 标注数量(xml文件个数):1117 标注数量(txt文件…...

AI学术写作技能库:模块化设计赋能精准高效科研创作

1. 项目概述:一个为AI写作助手定制的学术写作技能库如果你是一名经常需要和论文、报告、基金申请书打交道的研究生、学者或者科研工作者,那你一定对AI写作助手不陌生。无论是Claude Code、Cursor还是Gemini CLI,它们都能在你卡壳的时候提供思…...