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

机器学习算法及案例

一、机器学习入门算法总结

本次课程学习了经典机器学习基础算法,涵盖监督学习和无监督学习两大核心方向,是入门机器学习的基石,以下是算法核心原理、适用场景、优缺点总结:

1. 监督学习

监督学习的核心是用已知标签的训练数据,学习输入到输出的映射关系,最终对新数据做预测。

(1)线性回归
  • 核心原理:拟合一条线性直线/超平面,最小化预测值与真实值的误差,用于连续数值预测。
  • 适用场景:房价预测、销售额预测、气温预测、股票走势简单预估。
  • 优点:模型简单、训练快、可解释性强。
  • 缺点:只能拟合线性关系,无法处理复杂非线性数据。
(2)逻辑回归
  • 核心原理:在线性回归基础上加入Sigmoid函数,将输出映射到0-1之间,用于二分类任务。
  • 适用场景:垃圾邮件分类、疾病诊断、用户流失预测、信用卡欺诈检测。
  • 优点:训练效率高、输出结果是概率值、可解释性强。
  • 缺点:仅适用于线性可分数据,无法处理复杂分类场景。
(3)K 近邻(KNN)
  • 核心原理:物以类聚,新数据的类别由距离它最近的 K 个训练样本投票决定。
  • 适用场景:手写数字识别、简单图像分类、推荐系统初筛。
  • 优点:无需训练模型、原理简单、适合小数据集。
  • 缺点:预测速度慢(需计算所有样本距离)、对异常值和数据尺度敏感。

2. 无监督学习

无监督学习的核心是从无标签数据中自动发现隐藏结构,无需人工标注数据。

K-means 聚类
  • 核心原理:随机选取 K 个中心点,迭代将数据分配到最近的簇,更新簇中心,直到簇不再变化。
  • 适用场景:用户分群、图像颜色压缩、商品分类、异常检测、文本聚类。
  • 优点:算法高效、原理简单、适合大规模数据。
  • 缺点:需手动指定 K 值、对初始中心点和异常值敏感。

二、实战案例:基于 K-means 的图像主色提取(颜色聚类)

案例选择理由

结合课程学习的K-means 聚类算法,选择图像主色提取作为实战案例:

  1. 贴合课程知识点,纯用 K-means 实现,无额外复杂算法;
  2. 可视化效果直观,能清晰看到聚类结果;
  3. 借助 AI 工具快速生成代码、调试优化,符合作业要求;
  4. 可扩展到车票 / 车牌识别的预处理环节。

一、设计思路

  1. 需求:输入一张图片,用 K-means 聚类将图片中所有像素的颜色,聚合成指定数量的主色调,输出聚类后的图像;
  2. 流程:读取图片 → 像素数据预处理 → K-means 聚类训练 → 像素替换为簇中心颜色 → 还原图像尺寸 → 可视化结果;
  3. 核心逻辑:图像的每个像素是 RGB 三维数据,K-means 对所有像素颜色聚类,同类像素用同一颜色表示。

二、环境准备

安装依赖库:

pip install numpy opencv-python matplotlib scikit-learn

三、完整代码

# 导入所需库 import cv2 import numpy as np import matplotlib.pyplot as plt from sklearn.cluster import KMeans # ---------------------- 1. 读取并预处理图像 ---------------------- # 读取图片 image = cv2.imread("test.jpg") # OpenCV默认BGR格式,转换为RGB image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # 获取图像尺寸 h, w, ch = image.shape print(f"图像尺寸:高{h},宽{w},通道数{ch}") # 将图像 reshape 为 (像素总数, 3) 的二维数组,适配K-means输入 pixels = image.reshape((-1, 3)) print(f"像素数据形状:{pixels.shape}") # ---------------------- 2. K-means聚类训练 ---------------------- # 设置聚类数量 n_clusters = 4 # 创建K-means模型 kmeans = KMeans(n_clusters=n_clusters, random_state=42) # 训练模型 kmeans.fit(pixels) # ---------------------- 3. 生成聚类后的图像 ---------------------- # 获取聚类中心 colors = kmeans.cluster_centers_ # 获取每个像素的聚类标签 labels = kmeans.labels_ # 将每个像素替换为对应簇的中心颜色 result_pixels = colors[labels].astype(np.uint8) # 还原为原始图像尺寸 result_image = result_pixels.reshape((h, w, ch)) # ---------------------- 4. 结果可视化 ---------------------- plt.rcParams["font.sans-serif"] = ["SimHei"] # 显示中文 plt.figure(figsize=(12, 5)) # 子图1:原始图像 plt.subplot(1, 2, 1) plt.imshow(image) plt.title("原始图像") plt.axis("off") # 子图2:K-means聚类后主色图像 plt.subplot(1, 2, 2) plt.imshow(result_image) plt.title(f"K-means聚类结果({n_clusters}种主色)") plt.axis("off") # 打印提取到的主色RGB值 print("\n提取的主色RGB值:") for i, color in enumerate(colors): print(f"主色{i+1}:R={int(color[0])}, G={int(color[1])}, B={int(color[2])}") plt.show()

四、运行结果示例

1.控制台输出

图像尺寸:高1442,宽960,通道数3 像素数据形状:(1384320, 3) 提取的主色RGB值: 主色1:R=104, G=103, B=147 主色2:R=214, G=173, B=152 主色3:R=247, G=248, B=248 主色4:R=54, G=27, B=69

2.可视化结果

  • 左侧:原始彩色图像;
  • 右侧:仅保留 4 种主色的聚类图像,颜色更简洁,轮廓更清晰。

四、扩展应用

  1. 车牌 / 车票识别预处理:用 K-means 提取车牌主色(蓝色 / 黄色),过滤背景杂色,提升识别准确率;
  2. 图像压缩:用少量主色代替全颜色,减小图片体积;
  3. 图像分割:区分前景和背景,为目标检测做预处理。

三、学习过程总结

  1. 算法理解:区分了不同计算机学习算法的核心区别,掌握了线性回归、逻辑回归、KNN、K-means 的适用场景;
  2. 实战能力:学会用 AI 工具辅助机器学习开发;
  3. 核心收获:机器学习的核心是数据 + 算法 + 目标,K-means 作为无监督学习经典算法,在图像、数据挖掘中应用广泛;
  4. 后续方向:可将本次案例结合车牌 / 车票定位,完成完整的识别项目。

总结

  1. 本次课程 4 大算法:线性回归(数值预测)、逻辑回归(二分类)、KNN(近邻分类)、K-means(无监督聚类);
  2. 实战案例用K-means 实现图像主色提取,借助 AI 工具快速完成代码、可视化、优化;
  3. 可扩展到车牌 / 车票识别预处理。
http://www.jsqmd.com/news/690135/

相关文章:

  • AI多因子定价模型:美元强化与能源约束下 黄金反弹受限弹性解析
  • 实战复盘:用Passware Kit Forensic搞定盘古石杯NAS取证,离线提取Windows密码真就这么简单?
  • OpenAI推出工作区智能体,GPTs退休,与微软、谷歌开启企业AI三国杀!
  • 给计算机研究生的选刊指南:如何从CCF A类里挑出最适合你方向的顶会顶刊
  • 火绒+SFC命令,给你的Win10系统做一次免费“体检”和“修复”
  • C++26静态反射API深度解析(ISO/IEC TS 23976正式采纳版)
  • LVQ算法解析:轻量高效的监督学习分类方法
  • 量子噪声在机器学习中的优化作用与实现策略
  • 导数入门:从斜率到变化率的数学与实践
  • conda 学习记录
  • 权限模型演进:从RBAC到ABAC的实战解析与选型指南
  • prometheus监控RocketMQ的方法
  • 深度测评2026年精选小提琴入门推荐榜单,助你开启音乐之门
  • 2026年q2杭州浙音定向音乐艺考冲刺班实力排行:杭州器乐艺考培训,杭州声乐艺考培训,杭州艺考培训,优选推荐! - 优质品牌商家
  • 从游戏引擎到三维重建:一次搞懂MVP变换里的相机坐标系(附Blender/Unity对照)
  • 爬虫被封怕了?试试这几种动态代理IP的调度策略
  • FastAPI与Docker实现机器学习模型部署实战
  • Mapshaper:三分钟学会处理地理数据的全能工具
  • 极限概念解析与计算方法全攻略
  • AI机器人击败乒乓球精英选手,树立机器人技术新里程碑
  • Docker 27集群节点宕机后自动愈合全过程:从故障检测、服务漂移到状态同步的7步闭环策略
  • Autosar E2E保护机制深度解析:从P01配置参数到车载网络实战避坑指南
  • 问卷设计对比实测:传统耗时易错 vs 虎贲等考 AI 一键生成,学术调研效率翻倍
  • 2026杭州工厂保洁技术评测:靠谱服务商核心标准解析 - 优质品牌商家
  • 【技术团队拆解】蔚来智驾“三重变奏”:人事地震、组织缝合与世界模型的生死赌局
  • 流式计算与动态并行化技术在机器学习加速中的应用
  • 从Wi-Fi到二维码:聊聊BCH码在你每天用的技术里是怎么‘默默纠错’的
  • 从 ESLint/Prettier 到 Java:代码格式化与检查工具的全面对标实战
  • 用MATLAB的Phased Array Toolbox快速上手:从常规脉冲到相位编码雷达的波形生成与可视化
  • 机器学习中的线性代数:从基础到实践应用