机器学习的魔法(一)从零开始理解吴恩达的精炼笔记


一、机器学习是什么?


1、机器学习的概念

机器学习是一种人工智能领域的技术和方法,旨在使计算机系统能够从经验数据中自动学习和改进,而无需显式地进行编程。它涉及开发算法和模型,使计算机能够自动分析和理解数据,并根据经验数据中的模式和规律做出预测或做出决策。

2、机器学习的核心思想

机器学习的核心思想是利用数据来训练计算机系统,使其能够从数据中学习,并根据学习到的知识进行推理和决策。机器学习算法可以自动发现数据中的模式和规律,并使用这些模式和规律来做出预测或做出决策,而无需显式地进行编程。


3、机器学习主要类型

机器学习可以分为监督学习(参数/非参数算法,支持向量机,核函数,神经网络)、无监督学习(聚类,降维,推荐系统,学习推荐)和强化学习三种主要类型。

  • 监督学习

    简单说就是我们教计算机如何完成任务 ,算法通过输入数据和相应的标签进行训练,以学习输入和输出之间的映射关系。

  • 无监督学习

    简单说就是我们打算让计算机自己进行学习, 算法只有输入数据而没有标签,它通过发现数据中的模式和结构来进行学习。

  • 在强化学习

    算法通过与环境进行交互,根据反馈信号来学习如何采取行动以最大化某种形式的奖励。

4、机器学习应用领域

机器学习在许多领域都有广泛的应用,包括图像和语音识别、自然语言处理、推荐系统、金融预测、医疗诊断等。


二、监督学习

监督学习是一种机器学习的方法,其中模型通过标记的训练数据集进行学习,这些数据集包含了输入数据及其对应的正确输出。通过此种方式,模型可以学习到输入与输出之间的关系,并可以应用于新的、未见过的数据。


下面是一些监督学习的例子:

1、房价预测

在这个案例中,模型可能会通过房屋的各种特性(如面积,房间数量,位置等)和历史销售价格数据进行训练学习。然后模型可以预测市场上新出售的房屋的价格。

当我们使用机器学习来预测房屋价格时,通常会涉及以下步骤:

  • 数据收集:首先,我们需要收集历史销售价格数据和房屋特性数据。这些特性可以包括房屋的面积、房间数量、位置(例如城市、街区)等。这些数据将成为我们模型的训练集。

  • 特征工程:在这一步中,我们会对数据进行处理,提取有用的特征。例如,我们可以计算每平方米的价格、房间数量与总面积的比例等。

  • 模型选择:选择适合房屋价格预测的机器学习模型。常见的模型包括线性回归、决策树、随机森林、神经网络等。

  • 模型训练:使用历史数据来训练模型。模型会学习数据中的模式,以便能够预测未来市场上新出售房屋的价格。

  • 模型评估:使用测试数据集来评估模型的性能。我们可以使用指标如均方误差、R² 等来衡量模型的预测能力。

  • 预测房屋价格:一旦模型训练完成,我们就可以使用它来预测市场上新出售房屋的价格。输入新房屋的特性(例如面积、房间数量、位置等),模型会给出相应的价格预测结果。


在这里插入图片描述


2、天气预测

通过历史天气数据(温度、湿度、风速等)和相应的天气结果(晴、雨、风暴等),模型可以预测未来的天气情况。


当我们使用机器学习来预测未来的天气情况时,通常会涉及以下步骤:

(1)、数据收集:首先,我们需要收集历史天气数据,包括温度、湿度、风速等。这些数据将成为我们模型的训练集。

(2)、特征工程:在这一步中,我们会对数据进行处理,提取有用的特征。例如,我们可以计算每日平均温度、最大风速等。

(3)、模型选择:选择适合天气预测的机器学习模型。常见的模型包括线性回归、决策树、随机森林、神经网络等。

(4)、模型训练:使用历史数据来训练模型。模型会学习数据中的模式,以便能够预测未来的天气情况。

(5)、模型评估:使用测试数据集来评估模型的性能。我们可以使用指标如均方误差、准确率等来衡量模型的预测能力。

(6)、预测未来天气:一旦模型训练完成,我们就可以使用它来预测未来的天气情况。输入新的特征(例如明天的温度、湿度等),模型会给出相应的天气预测结果。


在这里插入图片描述


在这里插入图片描述


三、无监督学习

无监督学习与监督学习相对应。在监督学习中,我们有明确的目标和标签,而在无监督学习中,我们没有明确的目标,也不需要给数据打标签。以下是无监督学习的几个特点:

  • 无明确目的:无监督学习没有预先定义的目标。我们试图从未标记的数据中发现潜在的结构。
  • 无需标签:与监督学习不同,无监督学习不需要给数据打标签。
  • 难以量化效果:由于缺乏明确目标,无监督学习的效果很难量化。

无监督学习在许多实际场景中都有广泛的应用。以下是一些例子:

  • 用户细分:广告平台可以使用无监督学习对用户进行细分。除了基本的性别、年龄、地理位置等维度外,还可以根据用户行为进行更精细的分类。

    以下是一些常见的用户细分维度和模型:

    (1)、RFM模型:这是一种常用于用户价值分析的模型,基于以下三个指标对用户进行分类:

    • 最近一次消费时间(Recently):用户最近一次购买的时间距离现在有多久。

    • 消费频次(Frequency):用户在一段时间内购买的次数。

    • 消费金额(Money):用户在一段时间内的累计消费金额。

    (2)、行为模式:根据用户的行为和互动模式进行分类,例如:

    • 活跃度:用户在网站或应用上的活跃程度,包括登录频率、页面浏览次数等。

    • 购买行为:用户的购买频率、购买金额、购买类别等。

    • 社交互动:用户在社交媒体上的互动、分享、评论等。

    (3)、兴趣和偏好:根据用户对不同内容、产品或服务的兴趣进行分类,例如:

    • 浏览历史:用户在网站上浏览的页面、产品或文章。

    • 点击行为:用户点击的广告、推荐内容或链接。

    (4)、用户生命周期阶段:将用户分为不同的生命周期阶段,例如:

    • 新用户:刚刚注册或开始使用产品的用户。

    • 活跃用户:经常使用产品的用户。

    • 流失用户:曾经活跃但现在不再使用产品的用户。

    (5)、个性化标签:根据用户的特定属性或行为添加标签,例如:

    • VIP用户:高价值、高忠诚度的用户。

    • 优惠敏感用户:对折扣和促销活动敏感的用户。


  • 推荐系统:无监督学习可以用于推荐系统。例如,根据用户的购买行为和浏览行为,推荐类似用户喜欢的商品。

在这里插入图片描述


以下是一些常见的无监督学习算法:

  • 聚类算法Clustering):将不带标签的数据分组成簇。这些算法可以帮助我们发现数据中的相似性。

    一些常见的聚类算法包括:

    • K-Means:将数据划分为k个组。

    • K-Medoids:类似于K-Means,但选择簇中的中心点而不是平均值。

    • DBSCAN:基于密度的聚类算法,可以发现不规则形状的簇。

    • OPTICS:另一种基于密度的聚类算法。

    • CLIQUE:用于发现高维数据中的簇。


  • 关联规则学习(Association Rule Learning:用于发现变量之间的有趣关系。例如,我们可以使用这些算法来发现购物篮中的商品之间的关联。一些常见的关联规则学习算法包括:

    • Apriori:用于挖掘频繁项集和关联规则。
    • FP-Growth/FPtree:另一种频繁项集挖掘算法。
    • Eclat:用于发现频繁项集。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/729471.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于DoDAF的航空装备智能保障系统体系结构建模

源自:系统工程与电子技术 作者:苗学问, 董骁雄, 钱征文, 胡杨, 李牧东 “人工智能技术与咨询” 发布 摘 要 保障系统结构建模是发展和构建新一代航空装备智能保障系统的重要基础。航空装备保障系统涉及保障要素多、交联关系复杂, 需从系统工程的角度…

单链表的实现(数据结构)

本篇博客主要是单链表(无头单项不循环)的实现的代码分享 说明:因为此单链表无头(哨兵位),可以说成没有初始化也可以说初始化时没有一个有效地址作为单链表的起始地址 例如下面代码中的plist NULL。 所以在…

倒计时!数境·第七届工业互联网数据创新应用大赛即将截止报名

共赴数据之旅,赋能工业未来! 由深圳市宝安区人民政府和 中国信息通信研究院共同主办的 数境第七届工业互联网数据创新应用大赛 以“数实融合,助推新型工业化”为主题 聚焦先进制造、新能源和电子信息领域 设置算法赛和方案赛共三大赛道…

#QT(串口助手-界面)

1.IDE:QTCreator 2.实验:编写串口助手 3.记录 接收框:Plain Text Edit 属性选择:Combo Box 发送框:Line Edit 广告:Group Box (1)仿照现有串口助手设计UI界面 (2)此时串口助手大…

爬虫入门到精通_框架篇15(Scrapy框架安装)

1 Scrapy安装 Scrapy的安装有多种方式,它支持Python2.7版本及以上或Python3.3版本及以上。下面说明Python3环境下的安装。 Scrapy依赖的库比较多,至少需要依赖库有Twisted14.0,lxml 3.4,pyOpenSSL 0.14。而在不同平台环境又各不相同,所以在安…

3/7—21. 合并两个有序链表

代码实现: 方法1:递归 ---->难点 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* mergeTwoLists(struct ListNode *list1, struct ListNode *list2) {/*1.如果l1为…

2024最新图标设计趋势!附超好用的图标工具清单

图标,在界面设计中的作用不容小觑。正所谓浓缩的就是精华,一个小小的图标,却有着高效传递信息、美化界面排版、提升用户体验的巨大能力。 既然图标如此重要,了解图标设计趋势对设计师来说几乎是必须要做的事,它可以让…

python3安装chrome,chromedriver亲测有效

客户用python写了个脚本,需要用到chrome和chromedriver扩展,结果说安装不了,各种报错,好吧我来研究一下。众所周知linux自带python2.7,根据报错查了一下资料发现是版本冲突导致的,系统自带2.7,代…

Python语言基础与应用-北京大学-陈斌-P32-31-计算和控制流-上机练习:创建并调用函数-字符集合的并集-上机代码

Python语言基础与应用-北京大学-陈斌-P32-31-计算和控制流-上机练习&#xff1a;创建并调用函数-字符集合的并集-上机代码 本文环境&#xff1a; win10 Thonny4.1.4 # 函数训练字符集合的并集 def my_union(str1,str2):list1 []list2 []i 0 while i < len(str1):lis…

springboot使用异步多线程

shigen坚持更新文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 个人IP&#xff1a;shigen 在shigen之前的很多文章中&#xff0c;提到了线程池&#xff1a; 高性能API设计…

利用IP地址信息提升网络安全

在计算机网络中&#xff0c;IP地址是用于唯一标识网络设备的重要标识符。然而&#xff0c;由于网络中存在大量设备&#xff0c;有时会出现IP地址冲突的情况&#xff0c;即两个或多个设备在同一网络中使用了相同的IP地址&#xff0c;这可能导致网络连接故障和通信中断。本文将介…

蚂蚁SEO什么是蜘蛛池2024最新强势蜘蛛池

蜘蛛池是一种搜索引擎优化&#xff08;SEO&#xff09;策略&#xff0c;通过在互联网上建立大量的网站和链接&#xff0c;吸引搜索引擎的爬虫&#xff08;也称为“蜘蛛”&#xff09;访问&#xff0c;以提高网站的搜索排名和曝光率。以下是关于蜘蛛池的详细解释&#xff1a; 获…

FX110网:CTRL FX 是典型的诈骗平台!汇友发出肺腑之言

“CTRL FX 是一个典型的投资骗局&#xff0c;以‘出金缴税’等为幌子反复割韭菜&#xff0c;入金了这么多&#xff0c;但没有一次出金获得批准。揭露他们的骗局&#xff0c;保护受害者对我是一种宽慰。” 这是近日一汇友在对CTRL FX平台彻底失望后发出的声音。珍惜别的投资者用…

一个你可能不曾注意的小东西,Spring依赖注入Bean类型的8种情况

今天来讲的一个你可能不曾注意的小东西&#xff0c;那就是Spring依赖注入支持注入Bean的类型&#xff0c;这个小东西可能看似没有用但是实际又有点小用。 其实本来这周没打算写文章&#xff0c;但是突然之间就想到了之前有个妹子问过这个问题&#xff0c;并且网上这块东西说的…

学生课程参与度的一些情况

喊口号 日常校园中不乏各式各样的口号和标语。 但是能否落实到实处&#xff0c;非常难以评定的。 以学生为中心 实际上&#xff0c;学生对于课程几乎没有任何选择权和掌控权。 1&#xff0c;课程并非是学生自己选择的&#xff0c;还是培养方案安排的。 2&#xff0c;课程教…

nestjs 管道验证DTO

我将dto文件全收集到一个dto文件夹里&#xff0c;可按照文档建议。 1.安装依赖 pnpm i --save class-validator class-transformer参考文档https://github.com/typestack/class-transformerhttps://github.com/typestack/class-transformer https://github.com/typestack/cl…

使用测试驱动开发模式编写智能合约

hardhat简介 hardhat是一个以太坊智能合约开发框架&#xff0c;主要用于简化和加速以太坊区块链上的智能合约开、测试和部署&#xff0c;提供了许多工具帮助开发人员更轻松地构建和维护智能合约项目&#xff0c;以下是他的一些主要功能&#xff1a; 智能合约开发&#xff1a;h…

MySQL 针对逗号拼接的数据字段转行思路

一、MySQL 针对逗号拼接的数据字段转行思路 在 MySQL 中我们有可能为了方便操作&#xff0c;有时会将一个字段存储多个信息&#xff0c;使用英文逗号隔开&#xff0c;当然这种情况属于对数据库的设计上有些欠妥。但如果遇到了这种情况又需要对数据进行统计的情况就有点棘手了&…

STM32CubeIDE基础学习-设置输出HEX和BIN文件的方法

STM32CubeIDE基础学习-设置输出HEX和BIN文件的方法 前言 当某些时候&#xff0c;需要把一个程序下载到单片机里面进行功能验证或者看结果时&#xff0c;可以用串口软件来烧录程序&#xff0c;而不用再打开程序工程在线烧录程序这么麻烦了&#xff0c;那么就需要该工程文件夹下…

电脑记事本怎么查看字数 记事本字数便捷查看方法

在数字化的时代&#xff0c;电脑记事本已成为我记录生活、工作的得力助手。相较于传统的纸质笔记本&#xff0c;它的便捷性不言而喻&#xff1a;随时随地&#xff0c;打开就能写&#xff0c;无需担心纸张用尽或笔墨不干的尴尬。但有一个问题一直困扰着我&#xff0c;那就是如何…