- 博客(79)
- 收藏
- 关注
原创 【机器学习】朴素贝叶斯算法:从贝叶斯定理到手写数字识别实战
所谓的贝叶斯定理源于他生前为解决一个"逆概"问题写的一篇文章,而这篇文章是在他死后才由他的一位朋友发表出来的。在贝叶斯写这篇文章之前,人们已经能够计算"正向概率",如"假设袋子里面有 N 个白球,M 个黑球,你伸手进去摸一把,摸出黑球的概率是多大"。而一个自然而然的问题是反过来:“如果我们事先并不知道袋子里面黑白球的比例,而是闭着眼睛摸出一个(或好几个)球,观察这些取出来的球的颜色之后,那么我们可以就此对袋子里面的黑白球的比例作出什么样的推测”。这个问题,就是所谓的逆向概率问题。
2026-08-03 19:14:44
455
2
原创 【机器学习】随机森林算法——集成学习原理与垃圾邮件分类实战
随机森林是一种基于决策树的集成学习算法,通过构建多棵决策树并综合它们的预测结果来提升模型的准确性和稳定性。它凭借出色的抗过拟合能力和高准确率,在分类和回归任务中得到了广泛应用。本文将带你全面了解随机森林的核心概念、API参数以及实战案例。随机森林(Random Forest)是将多个决策树结合在一起的一种集成算法。数据采样随机:每棵树从原始数据集中有放回地随机抽取样本(Bootstrap采样)特征选取随机:每棵树在分裂时随机选择部分特征进行最优划分基分类器为决策树。
2026-08-03 19:00:31
361
1
原创 【机器学习】DBSCAN聚类算法——原理、参数调优与实战
本次我们将聚焦于一款极具特色的聚类算法——DBSCAN。相较于 K-means 等需要预先指定簇数量的算法,DBSCAN 以其"无监督自适应"的特性,在聚类领域占据着不可替代的地位。在这一课中,我们会深入剖析 DBSCAN 算法的核心原理。你将了解到它如何通过"密度可达"和"核心对象"等关键概念,自动发现数据集中任意形状的簇,还能识别出那些不属于任何簇的噪声点。这一特性让它在处理非凸形状、存在噪声的数据时,展现出远超传统聚类算法的优势。DBSCAN 的优势无需预先指定簇数量:自动发现数据中的聚类结构。
2026-08-02 22:03:50
239
原创 【自然语言处理】词向量转换与中文文本情感分类——从CountVectorizer到朴素贝叶斯
jieba库、朴素贝叶斯算法和TF-IDF值是自然语言处理(NLP)中常用的工具和技术,各自在文本处理的不同阶段发挥作用。在自然语言处理的世界里,如何让计算机"读懂"人类语言一直是核心难题,而词向量转换正是破解这一难题的关键钥匙。本次机器学习专题,我们就来深入探讨这一基础又核心的技术。词向量转换的本质,是将文本中离散的词语转化为连续的数值向量。这一步看似简单,却实现了从"机器无法理解的文字"到"可计算的数字"的跨越,为后续的文本分类、情感分析、机器翻译等任务铺平了道路。
2026-08-02 21:55:19
202
原创 【机器学习】矿物识别系统实战——六种填充方法×六种模型全面对比
在上一篇博客当中我们对数据集进行处理,使用了6种方法进行数据填充,经过一系列操作得到可以直接放到模型里面训练的数据集。接下来我们将使用6种机器学习算法进行训练和预测。【机器学习】矿物识别系统实战——从数据清洗到多模型对比维度内容填充方法均值填充、中位数填充、众数填充、空值删除、线性回归填充、随机森林填充机器学习模型LR(逻辑回归)、RF(随机森林)、SVM、AdaBoost、GNB(高斯朴素贝叶斯)、XGBoost评估指标各类别召回率(recall_0~3)、整体准确率(acc)
2026-08-02 21:43:16
323
原创 【机器学习】矿物识别系统实战——从数据清洗到多模型对比
我们已经学习了机器学习的几个经典算法了,今天我们就用一个项目分享来总体把我们学习的知识点运用到项目上。我会详细讲解对原始数据的初步探索与预处理过程,如何处理异常值和缺失值以保证数据质量,又如何对特征进行标准化或归一化,为后续的模型训练扫清障碍。这一步看似基础,却是决定模型性能的关键前提。然后后续还会使用多种模型进行训练最终比较那个模型更好。填充方法原理适用场景空值删除直接删除含缺失值的行缺失值占比极小时均值填充用列均值填充数据分布对称,无异常值中位数填充用列中位数填充。
2026-08-02 16:46:12
354
原创 【自然语言处理】微博评论情感分析——从数据预处理到词向量实战
在当今信息爆炸的时代,海量的文本数据如社交媒体评论、产品评价、新闻留言等不断涌现,这些文本中蕴含着人们丰富的情感态度——无论是对商品的喜爱、对政策的支持,还是对服务的不满。自然语言处理(NLP)领域中的情感分析技术,正是挖掘这些情感信息的关键工具。情感分析,也常被称为意见挖掘,它通过计算机技术对文本数据进行处理、分析和理解,自动识别和提取文本中所包含的情感倾向,如积极、消极、中性,甚至还能进一步细分为喜悦、愤怒、悲伤、惊讶等具体的情感类别,为企业决策、公共舆情监测、个人服务等诸多领域提供有力的支持。
2026-07-30 12:51:31
306
原创 【深度学习】模型部署全解析——从原理到Flask服务端实战
在深度学习技术落地的全链路中,"模型部署"是连接算法研发与实际应用的关键桥梁——即便拥有精度卓越的模型,若无法高效、稳定地集成到生产环境,其价值也难以真正释放。本文将聚焦深度学习模型部署的核心环节,结合 Web 技术栈,从服务端架构设计到客户端交互实现,用案例驱动的方式拆解全流程实践。模型部署是指将训练好的深度学习模型运行在专属的计算资源上,使其在独立的运行环境中高效、稳定地运行,并为业务应用提供推理服务。其核心目标是使最终用户或系统能够调用模型的推理能力,将算法的价值真正落地到实际业务中。
2026-07-30 12:42:19
329
原创 【计算机视觉】OpenCV人脸识别——LBPH、EigenFaces、FisherFaces算法详解
实现人脸识别的主要流程如下图所示:LBPH(局部二值模式直方图)EigenFaces(特征脸)FisherFaces(费舍尔脸)下面将逐一详细介绍这三种方法的原理与实现。
2026-07-29 23:34:26
431
原创 【自然语言处理】NLP分词与Word2Vec词向量——从原理到实战
Word2Vec 的设计理念源自分布假设(Distributional Hypothesis)——即一个词的含义由它周围的词决定。基于这一假设,Word2Vec 构建了一个简洁的神经网络模型,通过学习词与上下文之间的关系,自动为每个词生成一个能反映语义特征的稠密向量表示。模型输入输出上下文词(前后若干个词)预测目标中心词Skip-gram中心词预测上下文词(前后若干个词)只要按照上述目标训练模型,就能得到语义化的词向量。
2026-07-29 23:27:45
745
原创 【计算机视觉】OpenCV 指纹验证与识别——SIFT特征匹配实战
在 OpenCV 中,指纹验证是一种利用图像处理技术识别和验证人类指纹的方法。指纹是每个人独有的生物特征,具有唯一性和稳定性,因此被广泛应用于身份认证领域。指纹图像提取:通过图像处理和特征提取算法,从原始图像中提取出指纹的纹路和图案信息指纹图像匹配:将提取的指纹特征与预先存储的指纹模板进行比对,计算相似度并做出判断当两幅指纹图像的相似度超过设定阈值时,系统判定它们属于同一个人;否则判定为不同人。安全系统(门禁、手机解锁)身份识别(考勤、出入境)刑事调查(犯罪现场指纹比对)
2026-07-28 22:54:38
490
原创 【深度学习】循环神经网络RNN——结构、原理与长期依赖问题解析
无法有效建模序列数据。输入数据之间相互独立,没有考虑时序上的依赖关系模型结构本身不具备"记忆"能力,无法利用上下文信息对于文本、语音、时间序列等顺序数据,传统网络难以捕捉其中的动态变化规律RNN(Recurrent Neural Network,循环神经网络)是一种专门用于处理序列数据的神经网络架构。其核心特点是引入了隐状态(Hidden State)的概念,使得网络在处理当前输入时能够保留之前时刻的信息。
2026-07-28 22:43:08
392
原创 【深度学习】OpenCV 图像拼接——SIFT特征匹配与透视变换实战
左图为待拼接图像1,右图为待拼接图像2:图像拼接(Image Stitching)是指将多张具有重叠区域的图像合成为一张大图的技术。全景图像创建(如手机全景模式)大幅面照片合成无人机航拍图像拼接医学影像拼接import cv2import sys"""检测图像中的SIFT关键点并计算描述符参数:image: 输入图像(BGR格式)返回:kps: 关键点对象列表kps_float: 关键点坐标数组(浮点数)des: 关键点描述符矩阵"""# 将关键点坐标转换为浮点数数组。
2026-07-27 20:16:13
371
原创 【深度学习】OpenCV 角点检测与 SIFT 特征提取详解
角点检测(Corner Detection)是计算机视觉中的一种基础特征提取方法,用于识别图像中具有显著灰度变化的像素点,即角点(Corner)。物体的尖角两条边的交点T形或L形结构的端点旋转不变性:图像旋转后角点仍然可被检测尺度不变性:在不同缩放比例下角点依然存在光照不变性:对光照变化具有一定的鲁棒性SIFT(Scale-Invariant Feature Transform,尺度不变特征变换) 是一种用于检测和描述图像局部特征的经典算法。
2026-07-27 20:00:09
444
原创 【计算机视觉】OpenCV 物体跟踪——原理、算法与CSRT跟踪器实战
物体跟踪(Object Tracking)是指在视频序列中持续定位和追踪特定目标的过程。智能监控:持续跟踪可疑目标或行人自动驾驶:跟踪前方车辆、行人等障碍物增强现实(AR):跟踪标记物以叠加虚拟内容人机交互:手势跟踪、眼球追踪等与目标检测不同,物体跟踪侧重于连续帧间的一致性,利用时间序列信息实现高效的目标定位。
2026-07-26 23:15:08
423
原创 【计算机视觉】OpenCV 人脸检测与 Haar 级联分类器——原理、实现与实战案例
在 OpenCV 中,人脸检测主要通过调用预训练的分类器来实现。Haar 特征级联分类器:基于 Haar-like 特征,是最经典的人脸检测方法LBP 特征级联分类器:基于局部二值模式,速度更快HOG 特征分类器:主要用于行人检测这些分类器以XML 文件的形式提供,用户只需加载对应的 XML 文件即可快速实现人脸检测功能。Haar 特征是一种基于图像亮度差异的局部特征描述符,常用于目标检测任务。其核心思想是利用矩形区域内白色区域与黑色区域的像素值差异来表征图像的纹理和结构信息。
2026-07-26 23:07:36
286
原创 【深度学习】YOLOv2目标检测算法——改进点、网络结构与聚类先验框解析
在传统的卷积神经网络中(如下图所示),输入图像经过卷积处理后,在进入全连接层之前,特征图需要被**展平(Flatten)**为一维向量。:对每个特征图计算全局平均值,输出固定长度的向量(如 1000 维),然后通过 Softmax 输出类别概率。这样既保留了深层的大感受野语义信息,又融入了浅层的细节信息,有效改善了小目标检测效果。若输入图像尺寸改变,特征图大小也随之改变,导致全连接层无法正常工作。例如,若全连接层输入为。特征图中的一个单元格,相当于上一层输入图像中多个像素点的"浓缩"。
2026-07-25 23:44:46
446
原创 【计算机视觉】人脸识别三大经典算法:LBPH、Eigenfaces、FisherFaces 原理与实战
对比维度EigenfacesLBPH核心原理PCA 主成分分析LDA 线性判别分析局部二值模式直方图特征类型全局特征(特征脸)全局特征(费舍尔脸)局部纹理特征是否使用标签否(无监督)是(有监督)是(有监督)降维效果优秀优秀不适用(直方图)光照鲁棒性较差中等优秀表情鲁棒性较差中等优秀姿态鲁棒性较差中等良好计算复杂度较低中等较低适用场景大规模数据集、光照可控注重分类性能复杂环境、实时识别。
2026-07-25 23:36:34
205
原创 【深度学习】YOLOv1目标检测算法——核心思想、网络结构与损失函数解析
若模型输出 20 个类别的概率值,真实标签为"狗"(对应索引位置为 1,其余为 0),则只计算"狗"这一类别上的误差平方。NMS 会保留置信度最高的框,抑制其他重叠度较高的框。(YOLOv1 中每个网格生成 2 个,总共 98 个候选框)。以上图为例,YOLOv1 将输入图片划分为 7×7 的网格,每个网格允许预测。位置误差用于衡量预测边界框与真实边界框在位置和尺寸上的偏差。,这些边界框的尺寸可以超出当前网格的边界范围。个网格,每个网格负责检测其区域内的目标。落在某个网格内,则该网格负责预测该目标。
2026-07-24 19:30:00
328
原创 【计算机视觉】ResNet 残差网络与 BN 层原理、结构及解析
ResNet(Residual Neural Network,残差神经网络)是由何恺明等人在 2015 年提出的一种深度卷积神经网络架构。该模型在当年ImageNet 竞赛中一举夺得分类任务第一名和目标检测第一名,同时在COCO 数据集上也斩获目标检测和图像分割的双料冠军。ResNet 的核心创新在于引入了**残差块(Residual Block)**结构,通过"跳跃连接"的方式有效缓解了深层网络训练中的梯度消失问题,使得网络层数可以突破传统瓶颈,达到前所未有的深度。
2026-07-24 19:16:27
447
原创 【深度学习框架】PyTorch vs TensorFlow:四大主流框架对比与入门指南
使用下载训练集和测试集,包含大量手写数字图片及其真实标签;将图片数据按批次打包(如每批 64 张);在 GPU 中构建神经网络模型;将打包好的训练数据传入 GPU 进行模型训练;使用测试集数据验证模型效果,并与真实值对比,计算准确率。
2026-07-24 19:09:38
641
原创 【深度学习】PyTorch 常用损失函数原理、用法解析
损失函数适用场景核心特点多分类内置 Softmax,直接接收 logits,最常用nn.MSELoss回归平方误差,对大误差惩罚更重nn.L1Loss回归绝对误差,对异常值更鲁棒nn.BCELoss二分类需配合 Sigmoid 使用nn.NLLLoss多分类需配合 log_softmax,较少单独使用。
2026-07-24 18:51:05
661
原创 【深度学习】自然语言处理框架bert的深度解析
BERT(Bidirectional Encoder Representations from Transformers)是基于 Transformer 架构构建的双向编码器表示模型。它通过在大规模无标注文本上进行预训练,学习到深层的语言表示,并能够迁移到各类自然语言处理下游任务中。
2026-07-23 20:06:22
400
原创 【深度学习】深入剖析 YOLOv3 目标检测算法
COCO(Common Objects in Context)是微软发布的大规模目标检测、分割和标注数据集,包含 80 个类别,广泛用于算法评测。
2026-07-23 19:58:03
520
原创 【深度学习】深入剖析 YOLOv4 目标检测算法
YOLOv4(You Only Look Once version 4)是一种先进的单阶段目标检测算法,在计算机视觉领域占据重要地位。目标检测的核心任务是在给定的图像或视频帧中,同时定位出多个感兴趣目标(例如行人、车辆、动物等)并识别其所属类别。YOLOv4 继承了“You Only Look Once”的端到端高效思想,将检测问题转化为回归问题,从而实现极高的推理速度与良好的检测精度。
2026-07-23 19:50:23
420
原创 【深度学习】卷积神经网络 数据增强、保存最优模型实现,详细解读
数据增强(Data Augmentation)是指在不改变原始数据语义的前提下,通过一系列随机变换和组合操作,对已有训练样本进行扩展,生成大量“新”样本的过程。其本质是人为增加训练集的规模和多样性,从而使深度学习模型在面对实际场景中的各种变化(如光照、角度、遮挡)时具备更强的适应能力和稳定性。我们通过继承 Dataset 类,在getitem中应用上述变换,从而在每次读取样本时动态生成增强后的图像。"""自定义食物图片数据集"""# 解析文件,每行格式:图片路径 类别标签# 标签转换为 Tensor。
2026-07-21 13:17:00
662
原创 【深度学习】深入理解长短期记忆网络 LSTM
LSTM 网络,全称为长短期记忆网络(Long Short‑Term Memory),是循环神经网络(RNN)的一种经典变体。它的大部分基础架构与标准 RNN 一致,但通过重新设计隐状态 h 的更新方式,有效缓解了传统 RNN 在处理长序列时容易出现的梯度弥散或梯度激增问题。LSTM 的核心创新在于引入了带自循环的“细胞状态”通道,使得信息能够在时间步之间选择性地持续传递或被舍弃,从而具备捕捉远距离时序依赖关系的能力。生活类比:假设你在浏览某电商平台的商品评论区,打算根据买家反馈决定是否下单。
2026-07-20 19:51:07
532
原创 【机器学习】基于 dlib 面部关键点的多表情分类
import cv2from sklearn . metrics . pairwise import euclidean_distances #提供欧氏距离计算from PIL import Image , ImageDraw , ImageFont #中文绘制。
2026-07-17 13:26:21
336
原创 【深度学习】dlib 人脸关键点实时疲劳检测
注意返回的 ear 是一个 (1,1) 数组,后面取值时需用 ear[0][0]。提取 68 点,分别截取左右眼的 6 个点(注意 dlib 中右眼是 36~41,左眼是 42~47)。cv2.convexHull 计算眼睛点的凸包,然后绘制绿色轮廓线,用于直观显示眼睛区域。按照 dlib 的索引顺序,0 和 3 是水平两端,1和5、2和4 是垂直两对。绘制眼睛轮廓,并在屏幕左上角显示当前的 EAR 数值,方便调试。如果 EAR 低于阈值 0.3,说明眼睛闭合,计数器加 1。显示画面,按 ESC 退出。
2026-07-11 13:28:39
242
原创 【深度学习】dlib 人脸关键点检测
进入下载文件的存放位置,比如D:\Edge\,在搜索栏输入cmd,输入命令:pip install dlib-19.6.0-cp36-cp36m-win_amd64.whl,下载完成。对于每个人脸,调用 predictor(img, face) 得到 shape 对象,它包含 parts() 方法,返回一个包含 68 个点的列表。该函数返回一个基于 HOG(方向梯度直方图)和线性 SVM 的人脸检测器,它对正面和侧面人脸都有较好的检测效果,且速度较快。后续可以通过计算眼睛的宽高比,对人脸进行疲劳检测。
2026-07-11 12:20:24
352
原创 【计算机视觉】dlib 人脸检测
如果你想检测更小的人脸,可以增加这个值(如 1 表示上采样一次),但会降低速度。dlib.get_frontal_face_detector() 返回一个基于 HOG + 线性 SVM 的人脸检测器对象。该检测器经过大量训练,能检测不同大小、不同角度的人脸(正面和侧面)。通过对比可以看出,dlib 更适合对准确率有较高要求的场景,如果你的应用对实时性要求极高,可以继续使用 Haar,反之则推荐 dlib。遍历每个人脸框,获取左上角坐标 (x1, y1) 和右下角坐标 (x2, y2)。
2026-07-11 10:52:41
385
原创 【深度学习】PyTorch 图像分类进阶:从本地脚本到 Flask Web 服务部署
if flask.request.method == 'POST': #首先检查请求方法是否为 POSTif flask.request.files.get("image"): #然后检查 flask.request.files 中是否包含名为 "image" 的文件image_bytes = flask.request.files["image"].read() #读取文件的二进制内容。
2026-07-06 19:38:06
590
原创 【深度学习】OpenCV 人脸识别实战:FisherFace + 摄像头 + 中文标注
print(f"警告:图片 {img_path} 缺失,跳过")return读取灰度图(flags=0),统一缩放为 120×180 像素。如果文件不存在,打印警告并跳过(避免崩溃)。
2026-07-03 20:22:40
867
原创 【深度学习】OpenCV 人脸识别实战:FisherFace 算法实现中文标注识别
FisherFace 使用 LDA(线性判别分析),它寻找一个投影方向,使得不同类别的人脸之间的距离尽可能大,同一类别内部的距离尽可能小。draw.text 在指定位置写入文字,颜色用 RGB 格式,最后将 PIL 图像转回 NumPy 数组,并转换回 BGR 格式,以便 OpenCV 显示。定义一个函数 image_re,它读取一张灰度图(flags=0),然后 resize 到 宽 120,高 180,最后存入 images 列表。置信度越小,匹配度越高。用字典 dic 将标签映射为中文名,便于打印。
2026-07-03 20:03:47
431
原创 【深度学习】OpenCV 人脸识别实战:EigenFace 算法实现人脸识别
EigenFace 识别器属于 OpenCV 的 contrib 扩展模块,如果你使用的是标准版 opencv-python,运行时会报错 module ‘cv2’ has no attribute ‘face’。我们准备了 4 张人脸图像(灰度图,因为 flags=0 表示以灰度模式读取),分别是 qzl1.png、qzl2.png(属于“qzl”),pyy1.png、pyy2.png(属于“pyy”)。预测时,如果计算出的置信度大于此阈值,则认为“不认识”,返回标签 -1。
2026-07-03 19:49:54
393
原创 【深度学习】OpenCV 人脸识别实战:LBPH 算法实现简单人脸识别
当识别器预测时,如果计算出的置信度(距离)大于这个值,则认为“不认识”,返回标签 -1。注意:这些图片应该是已经裁剪好的人脸图像(只含脸部区域),尺寸可以不一致(LBPH 会内部处理)。我们准备了 4 张人脸图像,分别是 pyy1.png、pyy2.png,qzl1.png、qzl2.png。labels 是对应的数字标签:0 代表 pyy,1 代表 qzl。label:识别出的标签(如果置信度超过阈值,则返回 -1)。通过字典映射标签到人名,如果标签是 -1,则显示“无法识别”。
2026-07-02 20:31:20
486
2
原创 【深度学习】OpenCV 人脸检测实战:使用 Haar 级联分类器实现人脸识别
如果希望提高检测的准确率可以将该参数的值设置得更大,但这样做可能会让一些人脸无法被检测到。在使用低版本 OpenCV (OpenCV 1.X 版本)时,该参数可能会被设置CV_HAAR_DO_CANNY_PRUNING,表示使用 Canny 边缘检测器拒绝一些区域。人脸检测器通常工作在灰度图像上,因为灰度图能减少计算量,而且 Haar 特征是基于亮度变化的,不依赖颜色。minSize:目标的最小尺寸,小于这个尺寸的目标将被忽略。maxSize:目标的最大尺寸,大于这个尺寸的目标将被忽略。
2026-07-01 18:48:54
419
原创 【深度学习】OpenCV 光流估计:视频特征点跟踪(代码可完成复现)
feature_params = dict(maxCorners=100, # 最多检测 100 个角点qualityLevel=0.3,# 角点质量阈值,取值 0~1minDistance=7)# 两个角点之间的最小欧氏距离,避免角点过于集中。
2026-07-01 15:54:29
443
原创 【深度学习】OpenCV 视频分析实战:背景建模 + 形态学处理实现运动目标检测
import cv2cv2.VideoCapture:创建一个视频捕获对象,参数可以是视频文件路径或摄像头设备号(0 表示默认摄像头)。这里指定了 ‘test.avi’,表示读取本地视频文件。定义了一个 十字形结构内核,尺寸为 3×3。这个内核将用于形态学操作(开运算)。十字形结构适合处理细长的噪声或连接断裂的前景区域。
2026-06-29 19:41:08
478
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅