第二章:13.1 机器学习的迭代发展

devtools/2025/2/13 14:47:46/

目录

机器学习模型开发流程

构建电子邮件垃圾邮件分类器示例

总结

垃圾邮件分类示例

构建垃圾邮件分类器


机器学习模型开发流程

  1. 确定系统架构

    • 首先,需要决定机器学习系统的总体架构,这包括选择合适的模型、确定使用的数据集、可能还包括选择超参数等。

  2. 实现和训练模型

    • 根据上述决定,实现并训练一个模型。通常,第一次训练的模型不会立即达到预期的效果。

  3. 诊断和调整

    • 对模型进行诊断,查看算法的偏差、方差或进行错误分析。

    • 根据诊断结果,做出决策,例如是否需要增大神经网络规模、调整正则化参数(如lambda)、增加或减少数据量、添加或删除特征等。

  4. 迭代优化

    • 在这个循环中,通常需要多次迭代,不断选择新的架构,直到模型性能满意。

构建电子邮件垃圾邮件分类器示例

  1. 问题描述

    • 构建一个分类器来识别垃圾邮件和非垃圾邮件。

  2. 数据和特征

    • 输入 X:电子邮件的特征。

    • 输出标签 y:1或0,表示是否为垃圾邮件。

    • 特征构建方法:

      • 使用英语词典中的前一万个单词作为特征,每个单词对应一个特征 X1​,X2​,…,X10000​。

      • 对于每封电子邮件,将这些特征设置为0或1,表示该单词是否出现。

      • 或者,计算单词在电子邮件中出现的次数。

  3. 模型训练

    • 使用构建的特征向量训练分类算法,如Logistic回归或神经网络。

  4. 性能改进

    • 如果初始模型效果不佳,可以考虑以下改进方法:

      • 收集更多数据

      • 开发更复杂的特征,如:

        • 基于电子邮件路由信息。

        • 电子邮件头信息,跟踪电子邮件在不同服务器间的传播路径。

        • 检测拼写错误或故意拼写错误的单词。

    • 根据算法的偏差或方差情况,选择最有希望的改进方向。


垃圾邮件分类示例

这幅图片展示了两个电子邮件的例子,用于说明垃圾邮件和非垃圾邮件的区别:

  1. 垃圾邮件示例

    • 发件人:cheapsales@buystufffromme.com

    • 收件人:Andrew Ng

    • 主题:Buy now!

    • 内容:Deal of the week! Buy now! Rolex watches - $100 Medicine (any kind) - £50 Also low cost Mortgages available.

    这封邮件具有典型的垃圾邮件特征,如过度夸张的促销语言、低价商品(如劳力士手表和各种药品),以及故意拼错的单词(如“w4tchs”、“med1cine”、“M0rtgage”)。

  2. 非垃圾邮件示例

    • 发件人:Alfred Ng

    • 收件人:Andrew Ng

    • 主题:Christmas dates?

    • 内容:Hey Andrew, Was talking to Mom about plans for Xmas. When do you get off work. Meet Dec 22?

    这封邮件是私人通信,内容涉及家庭计划和个人安排,没有垃圾邮件的典型特征。

构建垃圾邮件分类器

这幅图片提供了减少垃圾邮件分类器错误的几种方法:

  1. 收集更多数据

    • 例如,通过“蜜罐”(Honeypot)项目收集数据。蜜罐是一种安全技术,通过设置诱饵来吸引并分析攻击者的行为,从而收集相关数据。

  2. 基于电子邮件路由开发复杂特征

    • 从电子邮件头信息中提取特征,分析邮件的传输路径,这有时可以帮助识别垃圾邮件。

  3. 从电子邮件正文定义复杂特征

    • 例如,是否应该将“discounting”和“discount”视为同一个词,这涉及到文本处理和特征工程的复杂性。

  4. 设计算法检测拼写错误

    • 例如,检测“w4tches”、“med1cine”、“m0rtgage”等故意拼错的单词,这些通常是垃圾邮件发送者用来规避垃圾邮件过滤器的技巧。

总结

  • 机器学习的发展循环中,对于如何修改模型或数据,可能会有许多想法。

  • 不同的诊断方法可以提供指导,帮助决定哪些想法最有希望尝试。

  • 通过不断迭代和优化,可以逐步提高模型的性能。


http://www.ppmy.cn/devtools/158505.html

相关文章

工具-screen-管理终端会话(服务器长时间运行任务)

screen 是一个用于管理多个终端会话的实用工具,常用于在单个终端窗口中运行多个虚拟终端。它允许用户在一个终端窗口中分离和重新连接会话,非常适合在远程服务器上工作或长时间运行任务时使用。 主要功能 1.会话管理: 可以创建多个虚拟终端…

蓝桥杯算法日记|贪心、双指针

3412 545 2928 2128 贪心学习总结: 1、一般经常用到sort(a,an);【a[n]】排序,可以给整数排,也可以给字符串按照字典序排序 2、每次选最优 双指针 有序数组、字符串、二分查找、数字之和、反转字…

996引擎-问题处理:三职业改单职业

996引擎-问题处理:三职业改单职业 问题解决方案顺便补充点单性别设置补充:可视化配置表参考资料问题 目前的版本: 引擎版本号:2024.8.7.0 三端配套客户端:3.40.9 传统PC客户端:23.12.07 配套数据库:64_24.8.7.0此版本需要通过可视化配置表

网络安全 | SNI介绍及F5中的配置应用

关注:CodingTechWork SNI介绍 SNI(Server Name Indication)是 TLS/SSL 协议中的一个重要扩展,旨在解决同一 IP 地址上托管多个网站时,如何选择正确的 SSL/TLS 证书进行加密通信的问题。SNI 通过在 TLS 握手初期传递客…

协议-LVDS

是什么? LVDS 全称为 Low-Voltage Differential Signaling,低电压差分信号 低功耗、低误码率、低串扰和低辐射的差分信号,采用-350mV~350mV极底的电压摆幅高速差动传输数据,实现点对点或一点对多点的连接 由于电压幅度低&#xf…

多智能体开发相关内容汇总

多智能体开发相关内容汇总 1. 多智能体开发 定义: 多智能体开发是指创建和管理多个独立但又能协同工作的AI实体,这些实体能够互相通信、协调动作,共同完成复杂的任务。 优势: 分布式计算: 各智能体负责不同的子任务,提高了系统的处理能力…

51单片机之引脚图(详解)

8051单片机引脚分类与功能笔记 1. 电源引脚 VCC(第40脚):接入5V电源,为单片机提供工作电压。GND(第20脚):接地端,确保电路的电位参考点。 2.时钟引脚 XTAL1(第19脚&a…

实现限制同一个账号最多只能在3个客户端(有电脑、手机等)登录(附关键源码)

如上图,我的百度网盘已登录设备列表,有一个手机,2个windows客户端。手机设备有型号、最后登录时间、IP等。windows客户端信息有最后登录时间、操作系统类型、IP地址等。这些具体是如何实现的?下面分别给出android APP中采集手机信…