大家好，我是Edureka的Zulaikha，
我欢迎你参加本届会议
关于人工智能的完整课程。
在本视频中，我将介绍
所有领域和概念
在人工智能的保护下
我还将向您展示几个用例
和使用Python的实际实现。
因此，本届会议有很多内容要讲，
让我快速为您介绍今天的议程。
因此，我们将开始会议
通过了解人工智能的历史
以及它如何存在。
我们将通过观察以下内容
为什么我们现在在谈论人工智能，
为什么现在如此出名。
然后，我们将看看什么是人工智能。
我们将讨论人工智能的应用，
之后，我们将讨论AI的基础知识
我们会在哪里了解
不同类型的人工智能。
我们将通过理解以下内容
不同的编程语言
可以用来学习AI。
而且我们会理解为什么我们要选择Python。
好吧，我将向您介绍Python。
然后，我们将继续讨论机器学习。
在这里，我们将讨论不同类型的机器学习，
机器学习中涉及的不同算法，
包括分类算法，
回归算法，聚类，
和关联算法。
为了让您更好地了解机器学习，
我们将运行一些演示
我们将了解机器学习算法
用于解决现实世界中的问题。
之后，我们将讨论
机器学习的局限性
以及为什么需要深度学习。
我将向您介绍深度学习的概念，
什么是神经元，感知器，
多层感知器等。
我们将讨论不同类型的神经网络，
我们还将研究到底什么是反向传播。
除此之外，我们将运行一个演示
更深入地了解深度学习。
最后，我们进入下一个模块，
这是自然语言处理。
在自然语言处理上
我们将尝试了解什么是文本挖掘，
NLP中文本挖掘之间的区别，
NLP中有哪些不同的术语，
我们将通过查看结束会议
使用Python进行NLP的实际实现。
伙计们，今天的会议内容很多。
另外，如果您想保持更新
关于最新技术，
并想进一步了解培训技术，
确保您订阅了我们的YouTube频道
千万不要错过这些会议。
因此，让我们继续前进，看看我们的第一个主题
这是人工智能的历史。
各位，人工智能的概念
可以追溯到古典时代。
在希腊神话中
机械人的概念
被深思熟虑。
因此，Talos就是一个例子。
我不知道你们当中有多少人听说过。
Talos是一个巨大的动画青铜战士
被编程为守护克里特岛的人。
现在这些只是想法。
没人知道这是否真的实现了
但是很早以前就想到了机器学习和AI。
现在让我们回到19世纪。
现在推测是1950年
最重要的一年之一
用于引入人工智能。
1950年，艾伦·图灵（Alan Turing）发表了一篇论文
在其中他推测了可能性
创建思考的机器。
因此，他创建了所谓的图灵测试。
这个测试基本上是用来确定
计算机是否可以智能思考
像人类一样
他指出，思维很难定义
并设计了他著名的图灵测试。
因此，基本上，如果机器可以进行对话
那是无法区分的
从与人类的对话中
可以说机器正在思考，
表示机器将通过图灵测试。
不幸的是，到目前为止，
我们尚未找到完全清除的机器
图灵测试。
因此，图灵测试实际上是第一个严肃的建议
在人工智能的哲学中。
随后是1951年。
这也被称为游戏AI。
因此在1951年，通过使用Ferranti Mark 1机器
曼彻斯特大学的
一位名叫克里斯托弗·斯特拉奇（Christopher Strachey）的计算机科学家
写了一个跳棋程序。
同时，
还为国际象棋编写了一个程序。
现在，这些程序后来得到了改进和重做，
但这是第一次尝试
在创建可以下棋的程序时
否则会在下棋时与人类竞争。
随后是1956年。
现在，这可能是最重要的一年
在AI的发明中
因为在1956年第一时间
人工智能一词的产生。
好的。
因此，人工智能一词
由约翰·麦卡锡（John McCarthy）创造
在1956年的达特茅斯会议上。
到1959年，
建立了第一个AI实验室。
这个时期标志着AI的研究时代。
因此，第一个进行研究的AI实验室
是麻省理工学院的实验室，
直到日期仍在运行。
1960年，第一台机器人问世
到通用汽车的装配线。
1961年，第一个聊天机器人被发明出来。
现在我们有了Siri，我们有了Alexa。
但是在1961年
有一个叫做Eliza的聊天机器人，
介绍了。
其次是著名的IBM Deep Blue。
1997年，这个消息传开了
IBM的Deep Blue击败了世界冠军，
在象棋比赛中加里·卡斯帕罗夫（Garry Kasparov）。
因此，这是AI的第一个成就。
它能够在国际象棋上击败世界冠军。
因此，在2005年DARPA大挑战赛举行时，
一辆名为史丹利的机器人车，
由斯坦福大学的赛车队建造，
赢得了DARPA大挑战赛。
那是人工智能的又一大成就。
2011年，IBM的问答系统Watson
击败了两个最大的危险冠军，
布拉德·鲁特（Brad Rutter）和肯·詹宁斯（Ken Jennings）。
伙计们，这就是AI演变的方式。
它开始时是一种假设情况。
现在这是最重要的技术
在现今世界里。
如果到处看看
我们周围的一切都通过AI深度学习来运行
或机器学习。
因此，自1950年代AI出现以来，
我们实际上看到了指数级增长
及其潜力。
因此AI涵盖了机器学习等领域，
深度学习，神经网络，
自然语言处理
基于知识，专家系统等。
它也进入了计算机视觉
和图像处理。
现在的问题是AI是否在这里
半个多世纪以来，
为什么突然变得如此重要？
我们为什么现在谈论人工智能？
让我告诉您AI需求的主要原因。
第一个原因是我们拥有
现在有更多的计算能力。
因此，人工智能需要
大量的计算能力。
最近，取得了许多进步
并部署了复杂的深度学习模型。
也是最伟大的技术之一
使之成为可能的是GPU。
既然我们现在有更多的计算能力，
我们有可能实施AI
在我们的日常工作中
第二个最重要的原因是
目前我们有很多数据。
我们正在以不可估量的速度生成数据。
我们正在通过社交媒体生成数据，
通过物联网设备。
每一种可能的方式都有很多数据。
所以我们需要找到一种方法或解决方案
可以帮助我们处理大量数据，
并帮助我们获得有用的见解，
这样我们就可以借助数据来发展业务。
好了，那个过程
基本上是人工智能。
因此，为了拥有有用的AI代理
做出明智的决定
喜欢告诉推荐哪个项目
接下来，当您在线购物时，
或如何根据图像对对象进行分类。
对AI进行大数据集训练，
大数据使我们能够更有效地做到这一点。
下一个原因是我们现在有了更好的算法。
现在我们有非常有效的算法
这是基于神经网络的思想。
神经网络不过是
深度学习背后的概念。
由于我们有更好的算法
可以做更好的计算
更快，更准确的计算，
对AI的需求增加了。
另一个原因是大学，政府，
初创公司，科技巨头都在投资AI。
好吧，像Google，Amazon这样的公司
Facebook，微软，
所有这些公司都投入了大量资金
在人工智能中
因为他们相信AI是未来。
因此，AI作为研究领域正在迅速发展
以及作为经济。
所以，实际上，这是正确的时间
让您了解什么是AI及其工作原理。
因此，让我们继续前进并了解
人工智能到底是什么。
人工智能一词
由John McCarthy于1956年首次铸造
在达特茅斯会议上。
我之前已经提到过这一点。
这是1956年AI的诞生。
现在，他如何定义人工智能？
约翰·麦卡锡（John McCarthy）将AI定义为科学与工程
制造智能机器的过程。
换句话说，人工智能
是计算机系统的理论与发展
能够执行任务
通常需要人类的智慧，
例如视觉感知，语音识别，
决策以及语言之间的翻译。
所以从某种意义上讲，人工智能是一种获取机器的技术
像人类一样工作和表现。
在过去，人工智能
已经能够做到这一点
通过创造机器和机器人
已经被广泛应用于各个领域，
包括医疗保健，机器人技术，市场营销，
业务分析等等。
考虑到这一点，
让我们讨论一下AI在现实世界中的几个应用，
让您了解人工智能的重要性
在当今世界。
现在，最著名的应用程序之一
人工智能
是Google预测性搜索引擎。
当您开始输入搜索字词时
Google会为您提供建议，供您选择，
那就是行动中的人工智能。
因此，预测性搜索基于数据
Google收集的关于您的信息，
例如您的浏览器历史记录，您的位置，
您的年龄和其他个人资料。
因此，通过使用人工智能，
Google会尝试猜测您可能要找到的内容。
现在，
自然语言处理很多
深度学习和机器学习。
我们将讨论所有这些概念
在进一步的幻灯片中。
创建搜索引擎不是很简单，
但是Google搜索引擎背后的逻辑
是人工智能。
继续前进，在金融领域，
摩根大通的合约情报平台
使用机器学习，人工智能，
和图像识别软件
分析法律文件。
现在让我告诉您，手动审核
大约12,000个协议耗时36,000小时。
那是很多时间。
但是一旦这项任务被AI机器取代，
它能够在几秒钟内完成此操作。
这就是人工智能之间的区别
和手动或人工工作。
即使AI无法像人类一样思考和推理，
但是他们的计算能力很强
与人类相比
因为机器学习算法
深度学习概念和自然语言处理，
人工智能已经达到可以计算的阶段
最复杂的复杂问题
在几秒钟内。
进入医疗行业，IBM是先驱之一
已经开发了AI软件，
专门用于医学。
我告诉你超过230个医疗机构
使用IBM AI技术，
这基本上是IBM Watson。
2016年，IBM Watson技术能够交叉引用
迅速获得2000万份肿瘤学记录
并正确诊断出罕见的白血病
患者的病情。
因此，它基本上完成了2000万条记录，
它大概在几秒钟或几分钟内就完成了，
最大到最大
然后正确诊断出患者
患有罕见的白血病。
知道现在使用了机器
在医学领域
它显示了人工智能的重要性。
它已经遍及我们生活的各个领域。
让我再举一个例子。
Google的AI Eye Doctor
是Google采取的另一项举措，
他们正在与印度眼保健连锁店合作
开发人工智能系统
可以检查视网膜扫描
并找出一个称为
糖尿病性视网膜病可引起失明。
现在在社交媒体平台（如Facebook）中，
人工智能用于面部验证
您利用机器学习
和深度学习的概念
为了检测面部特征并标记您的朋友。
您在Facebook中看到的所有自动标记功能，
背后是机器学习，
深度学习，神经网络。
背后只有AI。
所以我们实际上没有意识到
我们在生活中经常使用AI。
所有社交媒体平台
如Instagram，Facebook，Twitter，
他们严重依赖人工智能。
另一个这样的例子是Twitter的AI
用来识别任何仇恨言论
以及推文中的恐怖主义语言。
同样，它利用了机器倾斜
深度学习，自然语言处理
为了过滤掉任何进攻
或任何可报告的内容。
最近，该公司发现
大约30万个恐怖分子联系帐户
其中95％是由非人类发现的
人工智能机器。
来到虚拟助手，
我们现在有Siri和Alexa等虚拟助手。
让我告诉你另一个新发布的
Google的虚拟助手称为Google Duplex，
这已经震惊了全球数百万人。
它不仅可以响应电话
帮你预约
它也增加了人文气息。
因此，它添加了人工筛选器以及所有这些。
这听起来很现实。
实际上很难区分
人和AI通过电话讲话。
人工智能的另一个著名应用是自动驾驶汽车。
因此，人工智能实现了计算机视觉，
图像检测，深度学习，
为了造车
可以自动检测任何物体或障碍物
并在没有人工干预的情况下四处行驶。
因此，这些都是全自动无人驾驶汽车。
此外，埃隆·马斯克（Elon Musk）谈到了如何实施人工智能
在特斯拉的自动驾驶汽车中
他引述特斯拉将拥有全自动驾驶汽车
到年底准备好
可以载客的机器人出租车
没有任何人落后。
因此，如果您看一下，实际上会使用AI
由科技巨头。
Google，Tesla，Facebook，
所有这些数据驱动的公司。
实际上，Netflix还利用了AI。
因此，来到Netflix。
所以在人工智能的帮助下
和机器学习
Netflix开发了个性化电影推荐
对于每个用户。
因此，如果你们每个人都开放Netflix
如果你看电影的类型
向您推荐的是不同的。
这是因为Netflix研究
每个用户的个人详细信息，
并试图了解每个用户感兴趣的内容
以及每个用户拥有哪种电影模式，
然后向他们推荐电影。
因此Netflix使用其他用户的观看记录
有相似的口味推荐
您接下来可能最感兴趣的是什么，
这样你就可以保持订婚
并继续您的每月订阅。
另外，有一个已知的事实是您观看的内容超过75％
是Netflix推荐的。
因此，他们的推荐引擎非常出色。
以及他们推荐引擎背后的逻辑
是机器学习和人工智能。
除Netflix外，Gmail还每天使用AI。
如果您现在打开收件箱，
您会注意到有单独的部分。
例如，我们有一个主要部分，
社交部分等等。
Gmail还有一个单独的部分，也称为垃圾邮件。
因此，Gmail所做的就是利用了
人工智能的概念
和机器学习算法
将电子邮件分为垃圾邮件和非垃圾邮件。
很多时候某些单词或短语
在垃圾邮件中经常使用。
如果注意到您的垃圾邮件，
他们有彩票，赚钱，全额退款之类的字眼。
所有这些都表明电子邮件
更有可能是垃圾邮件。
这样的单词和相关性可以理解
通过使用机器学习和自然语言处理
以及人工智能的其他一些方面。
所以，伙计们，这些是常见的应用程序
人工智能。
现在让我们讨论不同类型的AI。
因此，人工智能分为三个不同的进化阶段，
或者可以说分为三个阶段
人工智能。
当然，我们有人工智能
其次是人工智能
其次是人工智能。
人工狭intelligence情报
也称为弱AI，
它涉及应用人工智能
仅针对特定任务。
因此，许多当前存在的系统
声称使用人工智能
实际上是作为弱AI运行
专注于狭义的特定问题
让我举一个例子
狭narrow的人工智能。
Alexa是弱AI的一个很好的例子。
它在无限的预定义功能范围内运行。
没有真正的智慧
或没有自我意识，
尽管是弱AI的复杂例子。
Google搜索引擎Sophia人形生物，
自动驾驶汽车，甚至著名的AlphaGo
属于弱AI类别。
伙计们，现在我们处于舞台上
人工智能的狭义或弱AI。
我们实际上还没有达到人工智能
或人工智能，
但让我们看看它到底是什么样子
如果我们达到了人工智能。
现在是人工智能
也被称为强大的AI，
它涉及具备该能力的机器
执行人类可以执行的任何智能任务。
现在这实际上是
许多人没有意识到。
机器不具备人类般的能力。
他们有非常强大的加工部门
可以执行高级计算，
但是他们还没有能力做简单的事情
以及人类可以做到的最合理的事情。
如果您告诉机器要处理一百万个文档，
它大概会在10秒内完成，
或一分钟，甚至十分钟。
但是如果您让机器走到客厅
然后打开电视
一台机器将永远需要学习，
因为机器没有合理的思维方式。
他们有一个非常强大的加工部门，
但他们还没有能力
像人一样思考和推理。
所以这就是为什么我们仍然被困住的原因
人工狭intelligence的情报。
到目前为止，我们还没有开发任何机器
可以完全称为强大的AI，
即使有AlphaGo Zero的例子
在围棋游戏中击败了AlphaGo。
AlphaGo Zero基本上在四个月的时间里学会了。
它是在没有任何人工干预的情况下自行学习的。
但即便如此，它仍未分类
作为完全强大的人工智能，
因为它不能像人类一样推理。
转向人工智能。
现在这是指时间
当电脑的功能
将超越人类。
实际上，我会花点时间给我们
实现人工智能。
目前，这被视为一种假设情况
如电影和任何科幻小说中所述
机器占领了世界
终结者之类的电影
描绘人工智能。
这些还不存在，
我们应该感谢的
但是有很多人
谁在推测人工智能
到2040年将占领全球。
伙计们，这些是不同的类型
或人工智能的不同阶段。
总结一切，就像我之前说的，
狭intelligence的智慧是目前唯一存在的东西。
我们只有弱小的AI或弱小的人工智能。
您所看到的所有主要AI技术
是人为的狭intelligence情报。
我们没有能够思考的机器
像人类一样，或者像人类一样推理。
现在让我们继续讨论
AI的不同编程语言。
所以实际上有N种语言
可以用于人工智能。
我要提几个。
所以，首先，我们有Python。
Python可能是最著名的语言
用于人工智能。
它也是AI最有效的语言，
因为许多开发人员更喜欢使用Python。
而且很多科学家也很舒服
使用Python语言。
部分原因是因为语法
属于Python很简单
他们可以很容易地学习
它被认为是最
最容易学习的语言。
还有许多其他AI算法
和机器学习算法
可以用Python轻松实现
因为有很多图书馆
这些是这些算法的预定义函数。
因此，您要做的就是调用该函数。
您实际上不必调用算法。
因此，Python被认为是最佳选择
用于人工智能。
在Python中，R代表
这是一种统计编程语言。
现在R是最有效的语言之一
分析和处理数据的环境
出于统计目的。
它是一种统计编程语言。
因此，使用R我们可以轻松产生
设计良好的出版物质量图，
包括数学符号和公式，只要需要。
如果您问我，我认为R也是其中之一
最容易学习的编程语言。
语法与英语非常相似，
它也有N个库
支持统计，数据科学，
人工智能，机器学习等。
它还具有预定义的功能
对于机器学习算法，
自然语言处理等等。
所以R也是一个很好的选择
如果您想开始使用编程语言
用于机器学习或AI。
除此之外，我们还有Java。
现在，Java也可以被视为一个不错的选择
用于AI开发。
人工智能有很多事情要做
使用搜索算法
人工神经网络和遗传编程，
Java提供了许多好处。
易于使用。
调试非常容易，打包服务。
大型项目简化了工作。
用户之间互动良好，
和数据的图形表示。
它具有所谓的标准小部件工具包，
可用于制作图形和界面。
因此，图形虚拟化实际上是
人工智能的重要组成部分
或数据科学，或机器学习。
让我列出其他几种语言。
我们也有一个叫做Lisp的东西。
现在令人震惊的是，很多人都没有听到
这种语言。
这实际上是最古老，最适合的语言
为人工智能的发展。
它被认为是一种语言
非常适合发展
人工智能。
现在让我告诉你，这种语言
由约翰·麦卡锡（John McCarthy）发明
他也被称为人工智能之父。
他是创造这个词的人
人工智能。
它具有处理符号信息的能力。
它具有出色的原型制作能力。
这很容易，
并轻松创建动态对象。
所有这些都有自动垃圾收集。
但是多年来，由于进步，
其中许多功能
已经迁移到许多其他语言。
这就是为什么很多人不喜欢Lisp的原因。
有很多新语言
具有更有效的功能
或哪个有更好的软件包，您可以看到。
我喜欢谈论的另一种语言是Prolog。
Prolog在知识库中经常使用
和专家系统。
Prolog提供的功能
包括模式匹配，freebase数据结构，
自动向后追踪等等。
所有这些功能提供
一个非常强大且灵活的编程框架。
Prolog实际上广泛用于医疗项目
以及用于设计专家级AI系统。
除此之外，我们还有C ++
我们有SaaS，我们有JavaScript
也可以用于AI。
我们有MATLAB，还有Julia。
实际上所有这些语言都被考虑了
相当不错的人工智能语言。
但是现在，如果你问我
我应该选择哪种编程语言，
我会说Python。
Python具有所有可能的软件包，
而且非常容易理解和学习。
因此，让我们看一下Python的几个功能。
我们可以看到为什么我们应该选择Python。
首先，Python被创建
在1989年。
它实际上是一种非常简单的编程语言。
这就是为什么
很多人喜欢Python。
这很容易理解。
掌握这种语言非常容易。
因此，Python是一种解释型，面向对象的，
高级编程语言
而且可以很容易地实现
现在，让我告诉您Python的一些功能。
它非常简单易学。
就像我提到的
它是最简单的编程语言之一，
而且它也是免费和开源的。
除此之外，它是一种高级语言。
你不用担心
类似于内存分配。
它是便携式的
意味着您可以在任何平台上使用它
如Linux，Windows，Macintosh，Solaris等。
它支持不同的编程范例
例如面向对象和面向过程的编程，
它是可扩展的
意味着它可以调用C和C ++库。
除此之外，我告诉你Python
实际上在AI中获得了不可思议的巨大动力。
该语言用于开发数据科学算法，
机器学习算法和物联网项目。
Python的其他优点
您不必编写太多代码的事实
当谈到用于AI或机器学习的Python时。
这是因为有现成的包装。
有预定义的程序包
存储了所有功能和算法。
例如，有一种叫做PiBrain的东西，
可用于机器学习
NumPy可用于科学计算，
熊猫等。
Python中有N个库。
伙计们，我现在将深入探讨Python。
我现在要向您解释Python，
因为本次会议是关于人工智能的。
所以，那些对Python不太了解的人
或谁是Python新手，
我将在描述框中保留几个链接。
你们都可以开始编程
和任何其他概念或任何其他疑问
您在Python上拥有的
关于Python编程，我们有很多内容
或用于机器学习的Python等。
现在让我们继续讨论
最重要的方面之一
人工智能
这是机器学习。
现在很多人总是问我这个问题。
是机器学习和人工智能
同样的事情？
好吧，他们俩不是同一个人。
人工智能和机器学习之间的区别
机器学习用于人工智能。
机器学习是一种方法
通过它您可以将大量数据馈送到计算机
并使其学习。
现在，人工智能是一个广阔的领域。
在AI下，我们拥有机器学习，NLP，
我们有专家系统，我们有图像识别，
对象检测等。
我们也有深度学习。
所以，人工智能是一个过程，或者是一种方法论
在其中制造机器
模仿人类的行为。
机器学习是一种方式
在其中将大量数据馈送到计算机，
以便可以自行决定。
让我们深入了解机器学习。
首先，我们将了解机器学习的必要性
或为什么机器学习应运而生。
现在需要机器学习
从技术革命本身开始。
所以，伙计们，既然技术成为一切的中心，
我们一直在生成不可估量的数据。
根据研究，我们产生了
每个单个数据2.5亿字节字节的数据
每一天。
预计到2020年，
每秒将创建1.7 mb数据
为地球上的每个人。
所以当我现在和你说话时，
我正在生成大量数据。
现在您在YouTube上观看此视频
还负责数据生成。
因此到处都有数据。
因此，有了这么多数据，
最终有可能建立预测模型
可以研究和分析复杂数据
寻找有用的见解并提供更准确的结果。
因此，像Netflix和Amazon这样的顶级公司
建立这样的机器学习模型
通过使用大量数据
为了确定任何有利可图的机会
并避免任何不必要的风险。
伙计们，你们都需要知道的一件事是
人工智能最重要的事情
是数据。
对于人工智能
还是机器学习还是深度学习，
总是数据。
现在我们有很多数据，
我们可以找到一种分析，处理，
并从这些数据中得出有用的见解
为了帮助我们发展业务
或找到解决某些问题的方法。
数据就是解决方案。
我们只需要知道如何处理数据即可。
以及处理数据的方式
通过机器学习，深度学习，
和人工智能。
机器学习如此重要的几个原因
由于数据生成量的增加，排名第一。
因此，由于数据量过多，
我们需要找到一种可以使用的方法
从数据中构造，分析和得出有用的见解，
这就是机器学习的用武之地。
它用于解决问题和找到解决方案
通过组织面临的最复杂的任务。
除此之外，我们还需要改进决策。
因此，通过使用各种算法，
机器学习可以用来使
更好的业务决策。
例如，机器学习用于集中销售。
它用于预测股票市场的任何下跌
或识别任何形式的风险和异常情况。
其他原因包括机器学习可以帮助我们
发现数据的模式和趋势。
所以找到隐藏的模式
并从数据中提取关键见解
是机器学习中最重要的部分。
因此，通过建立预测模型
并使用统计技术
机器学习可让您深入挖掘表面
并以微小的规模爆炸数据。
理解数据并手动提取模式
需要很多时间。
我们要花几天时间
从数据中提取任何有用的信息。
但是，如果您使用机器学习算法，
您可以在不到一秒钟的时间内执行类似的计算。
另一个原因是我们需要解决复杂的问题。
所以从检测基因
与致命的ALS疾病有关，
建造自动驾驶汽车，
可以使用机器学习
解决最复杂的问题。
目前，我们还找到了发现星星的方法
距我们的星球2400光年。
好的，所有这些都可以通过AI实现，
机器学习，深度学习和这些技术。
总结一下
机器学习目前非常重要
因为我们面临很多数据问题。
我们正在生成大量数据，
我们必须处理这些数据
以使我们受益的方式
这就是机器学习进来的原因。
继续，机器学习到底是什么？
因此，让我给您简短的机器学习历史。
因此机器学习最早是由亚瑟·塞缪尔（Arthur Samuel）创造的
在1959年，
距离现在只有三年
当人工智能被创造出来的时候
因此，回首过去，那一年大概是
在技​​术进步方面最重要的是
因为今天大多数技术
基于机器学习的概念。
大多数AI技术本身
是基于
机器学习和深度学习。
不要为之困惑
机器学习和深度学习。
我们将在后续幻灯片中讨论深度学习，
在这里我们还将看到差异
在AI，机器学习和深度学习之间
回到机器学习到底是什么，
如果我们通过互联网浏览，
您会发现很多关于
机器学习到底是什么。
我发现的定义之一是
据说计算机程序可以从经验E中学习
关于某类任务T
和绩效指标P，如果它在T任务中的绩效，
由P衡量，随着经验E的提高。
这非常令人困惑，所以让我将范围缩小到您。
简单来说，机器学习是其中的一个子集
人工智能
为机器提供了能力
自动学习并根据经验进行改进
无需明确编程即可这样做。
从某种意义上说，这是实践
让机器解决问题的能力
通过获得思考能力。
但是现在你可能在想
机器如何思考或做出决定。
现在，机器与人类非常相似。
好吧，如果您向机器提供大量数据，
它将学习如何解释，处理，
并使用机器学习算法分析这些数据，
它将帮助您解决世界问题。
所以这里发生的是很多数据
被送入机器。
机器将根据此数据进行训练
它会建立一个预测模型
借助机器学习算法
为了预测结果
或为了找到解决问题的办法。
因此涉及数据。
你要训练机器
并使用机器学习算法构建模型
为了预测结果
或找到解决问题的方法。
所以这是一种简单的理解方法
机器学习到底是什么。
我将更深入地学习机器学习，
因此，请不要担心您目前是否了解任何内容。
现在让我们讨论几个术语
在机器学习中经常使用。
因此，我们经常遇到的第一个定义
是一种算法。
因此，基本上，机器学习算法
是一套规则和统计技术
用来从数据中学习模式
并从中汲取重要信息。
好的。
所以，伙计们，机器学习模型背后的逻辑
基本上是机器学习算法。
好的，一个机器学习算法的例子
是线性回归，决策树或随机森林。
所有这些都是机器学习算法。
我们将定义背后的逻辑
机器学习模型。
现在什么是机器学习模型？
模型实际上是主要组成部分
机器学习过程。
好了，所以模型是通过使用
机器学习算法。
算法和模型之间的区别在于
算法映射所有决策
模型应该采取的
根据给定的输入
为了获得正确的输出。
因此模型将使用
机器学习算法
为了从输入中得出有用的见解
并给您非常精确的结果。
那就是机器学习模型。
我们拥有的下一个定义是预测变量。
现在，预测变量是数据的任何特征
可以用来预测输出。
好吧，我举一个例子
让您了解什么是预测变量。
假设您要预测一个人的身高，
取决于他的体重。
因此，这里的预测变量变成了权重，
因为你在用一个人的体重
预测人的身高。
因此，您的预测变量将成为您的体重。
下一个定义是响应变量。
在同一个例子中
高度将是响应变量。
响应变量也称为
目标变量或输出变量。
这是您要预测的变量
通过使用预测变量。
所以响应变量是特征
或需要预测的输出变量
通过使用预测变量。
接下来，我们有一些称为训练数据的东西。
现在，培训和测试数据是术语
你会经常遇到
在机器学习过程中。
所以训练数据基本上就是我使用的数据
创建机器学习模型。
因此，基本上在机器学习过程中，
当您将数据输入计算机时，
它分为两个部分。
因此将数据分为两部分
也称为数据拼接。
因此，您将获取输入数据，
您将其分为两部分。
您会称其为训练数据，
另一个则称为测试数据。
这样您便拥有了一些称为测试数据的东西。
训练数据基本使用
创建机器学习模型。
训练数据有助于模型识别
关键趋势和模式
这对于预测输出至关重要。
现在，在训练模型后，测试数据为
必须对其进行测试，以评估其准确性
它可以预测结果。
现在，这是通过使用测试数据完成的。
因此，基本上，训练数据用于训练模型。
测试数据用于测试
模型的效率。
现在，让我们继续下一个主题，
这是机器学习过程。
那么什么是机器学习过程？
现在机器学习过程
涉及建立预测模型
可以用来寻找解决方案
对于问题陈述。
现在，为了解决机器学习中的任何问题，
您需要遵循几个步骤。
让我们看一下步骤。
第一步是定义问题的目标。
第二步是数据收集
然后准备您的数据，
数据探索，建立模型，
模型评估，最后做出预测。
现在，为了了解机器学习过程，
假设您遇到了问题
这需要通过使用机器学习来解决。
因此，您需要解决的问题是
我们需要预测下雨的发生
通过使用机器学习在您的本地区域。
因此，基本上，您需要预测
通过研究天气条件来降雨的可能性。
所以我们在这里所做的是
基本上看了第一步
这是定义问题的目标。
现在，在这里您需要回答以下问题
我们试图预测什么。
该输出是否为连续变量，
还是将成为一个谨慎的变量？
这些是您需要回答的问题
在第一页中
哪个是确定问题的目标，对吗？
是的，目标功能到底是什么。
所以在这里你需要了解
这是您的目标变量
什么是不同的预测变量
您需要用来预测此结果。
所以这里我们的目标变量基本上是
一个可以告诉我们的变量
不管是否要下雨。
输入数据是我们需要的数据，例如
某一天的温度
或湿度水平，降水量等。
因此，您需要在此阶段定义目标。
因此，基本上，您必须对问题进行构想
在这个存储区。
您需要问自己的另一个问题
您要解决什么样的问题。
这是二进制分类问题吗？
还是这是集群问题，
还是这是一个回归问题？
现在，您可能不熟悉
与术语分类聚类
机器学习方面的回归。
不用担心，我会解释所有这些术语
在接下来的幻灯片中。
您第一步需要了解的所有内容
您需要定义解决问题的方式。
您需要了解什么样的数据
您需要解决问题，
您将如何解决问题，
你想预测什么
您需要哪些变量来预测结果，
等等。
让我们继续看第二步，
这是数据收集。
现在，在这个阶段，您必须提出以下问题：
解决该问题需要什么样的数据？
这个数据可用吗？
如果有的话，我可以从哪里获得这些数据
以及如何获取数据？
数据收集是最耗时的时间之一
机器学习过程中的步骤。
如果您必须手动操作并收集数据，
这将需要很多时间。
但幸运的是，在线上有很多资源，
这些是广泛的数据集。
您所需要做的就是抓取网页
您只需要继续下载数据即可。
我可以告诉大家的网站之一是嘉吉。
因此，如果您是机器学习的初学者，
不必担心数据收集以及所有这些。
您所要做的就是访问诸如cargill之类的网站
然后下载数据集。
回到我们正在讨论的问题，
预测天气，
天气预报所需的数据
包括湿度水平，
温度，压力，位置，
无论您是否住在山岗车站，
必须收集或存储此类数据以进行分析。
这样就收集了所有数据
在数据收集阶段。
此步骤之后是数据准备，
或也称为数据清除。
因此，如果您要收集数据，
它几乎永远不会采用正确的格式。
如果您正在获取数据
来自任何网站的在线资源，
即使这样，数据也需要清洗和准备。
数据永远不会采用正确的格式。
你必须做一些准备
和某种清洁
为了使数据准备好进行分析。
所以清理数据时会遇到什么
你会遇到很多矛盾之处吗
在数据集中，
就像您会遇到一些缺失的值，
冗余变量，重复值等等。
因此，消除此类不一致非常重要，
因为它们可能导致任何不法行为
计算和预测。
好的，因此在此阶段您可以扫描数据集
对于任何不一致之处，
然后您就可以在那里修复它们。
现在让我给您一个有关数据清理的小事实。
因此，有一项调查是在去年左右进行的。
我不确定。
许多数据科学家被问到
哪一步是最困难或最困难的
烦人且耗时。
80％的数据科学家说
这是数据清理。
数据清理占用了他们80％的时间。
因此要摆脱缺失的值并不是很容易
和损坏的数据。
即使您摆脱了缺失的价值观，
有时您的数据集可能会受到影响。
可能会有偏见，因为也许一个变量
缺少太多值，
这会影响您的结果。
因此，您必须解决此问题，
我们将不得不处理所有这些丢失的数据
和损坏的数据。
因此，数据清理实际上是最困难的步骤之一
在机器学习过程中。
好吧，现在让我们继续下一步，
这是探索性数据分析。
因此，您要做的基本上就是
舞台上的侦探。
因此，这个阶段是EDA或探索性数据分析，
就像机器学习的头脑风暴阶段。
数据探索涉及了解模式
以及数据趋势。
因此，在此阶段，将得出所有有用的见解
以及各种变量之间的任何相关性
被了解。
趋势，模式和相关性是什么意思？
现在来看我们的例子
这是我们必须预测的降雨
在特定的一天。
所以我们知道下雨的可能性很大
如果温度下降法则。
所以我们知道我们的输出将取决于
变量，例如温度，湿度等。
现在到什么程度取决于这些变量，
我们必须找出答案。
我们必须找出模式，
我们将找出相关性
在这样的变量之间。
因此必须了解这种模式和趋势
并在此阶段进行映射。
这就是探索性数据分析的目的。
这是机器学习中最重要的部分。
这是你会明白的地方
您的数据到底是什么
以及如何形成问题的解决方案。
机器学习过程的下一步
正在构建机器学习模块。
所以所有的见解和模式
您在数据探索中得出的
用于构建机器学习模型。
因此，此阶段始终从拆分数据集开始
分为两个部分，即训练数据和测试数据。
我已经和你讨论过了
您在机器学习过程中使用的数据
总是分为两部分。
我们有培训数据，也有测试数据。
现在，当您建立模型时，
您总是使用训练数据。
所以你总是利用训练数据
为了建立模型。
现在许多人可能会问什么是训练数据。
与输入数据有区别吗
你正在用机器喂食
还是与测试数据不同？
现在训练数据是相同的输入数据
您正在喂机器。
唯一的不同是
将数据集分成两部分。
您正在随机选择80％的数据
并且您正在分配用于培训目的。
剩下的20％可能是
您将其分配用于测试目的。
各位，永远记住另一件事
训练数据总是更多
而不是测试数据，
显然是因为您需要训练机器。
而您为机器提供的数据也更多
在训练阶段
在测试阶段越好。
显然，它将预测更好的结果
如果正在接受更多数据的培训。
正确？
所以模型基本上是用
预测输出的机器学习算法
通过使用提供给它的数据。
现在，在预测降雨的情况下，
输出将是分类变量，
因为我们会预测
不管是否要下雨。
好的，假设我们有一个名为rain的输出变量。
该变量可以采用的两个可能的值
是的，天要下雨了，不，天不会下雨。
正确，所以出来了。
我们的结果是分类或分类变量。
因此，对于这种情况，您的结果
是分类变量，
您将使用分类算法。
同样，分类算法的示例
逻辑回归
或者您也可以支持矢量机，
您可以使用K个最近的邻居，
您还可以使用朴素的贝叶斯（Bayes）等。
现在不用担心这些术语，
我将与您讨论所有这些算法。
但是，请记住，在构建时
机器学习模型
您将利用训练数据。
您将使用训练数据来训练模型
以及机器学习算法。
现在就像我说的，选择机器学习算法，
取决于问题陈述
您正在尝试解决的问题
因为有N种机器学习算法。
我们必须选择算法
那是最适合您的问题陈述的。
所以第六步是模型评估
和优化。
现在，完成模型制作后
通过使用训练数据集，
现在是时候进行模型路测了。
测试数据集用于检查
模型的效率
以及预测结果的准确性。
因此，一旦计算出准确性，
模型的任何进一步改进
可以在此阶段实施。
可以帮助您的各种方法
改善模型的性能，
就像你可以使用参数调整
和交叉验证方法
为了提高模型的性能。
现在您需要记住的主要事情
在模型评估和优化期间
模型评估不过是什么
您正在测试模型可以预测结果的程度。
因此，在此阶段，您将使用测试数据集。
在上一个阶段，即建立模型，
您将使用训练数据集。
但是在模型评估阶段，
您将使用测试数据集。
现在，一旦您测试了模型，
您需要计算精度。
您需要计算准确度
您的模型正在预测结果。
之后，如果您发现需要
以某种方式改善模型，
因为精度不是很好
那么您将使用诸如参数调整之类的方法。
不用担心这些术语
我将与您讨论所有这些，
但我只是想确保
你正在理解这个概念
每个阶段和机器学习的背后。
理解每个步骤非常重要。
好吧，现在让我们继续看一下
机器学习的最后阶段，即预测。
现在，一旦评估了模型
一旦您对其进行了改进，
最终用于做出预测。
最终输出可以是分类变量
或连续变量。
现在所有这些取决于您的问题陈述。
不要对连续变量感到困惑，
分类变量。
我将讨论所有这些。
现在就我们而言，因为我们正在预测
降雨的发生
输出将是分类变量。
很明显，因为我们正在预测
不管是否要下雨。
结果，我们了解
这是一个分类问题
因为我们有一个分类变量。
这就是整个机器学习过程。
现在是时候学习不同的方式了
机器可以学习的东西。
所以我们继续前进
并研究一下机器学习的类型。
现在，这是最
机器学习中的有趣概念，
机器学习的三种不同方式。
有一种所谓的监督学习
无监督学习和强化学习。
因此，我们将一一介绍。
我们将了解什么是监督学习？
然后我们看看其他两种类型。
如此定义的监督学习
基本上，这是我们教授的一种技术
或使用数据训练机器，
这是很好的标签。
现在，为了了解监督学习，
让我们考虑一个小例子。
因此，作为孩子，我们都需要解决数学问题的指导。
我们很多人都无法解决数学问题。
所以我们的老师总是帮助我们了解什么是加法
单桅帆船完成。
同样，您可以想到监督学习
作为一种机器学习
涉及指南。
标签数据集是老师
这将训练您理解数据中的模式。
因此标签数据集就是训练数据集。
稍后我将详细解释。
因此，为了更好地了解监督学习，
让我们看看屏幕上的数字。
在这里，我们正在给机器喂食
汤姆和杰里的形象，
目标是让机器识别
并将图像分为两类。
一个将包含汤姆的图像
另一个将包含Jerry的图像。
现在您需要注意的主要事情
监督学习中的训练数据集。
训练数据集将被很好地标记。
现在我说那是什么意思
训练数据集被标记。
基本上，我们要做的是告诉机器
这就是汤姆的样子，这就是杰里的样子。
这样，您正在训练机器
通过使用标签数据。
因此，您要做的主要事情就是贴标签
您要输入模型的每个输入数据。
因此，基本上，您对整个训练数据集都进行了标记。
每当您给汤姆做像时，
那里会有一个标签说这是汤姆。
当你给杰瑞留下印象时，
您是在说杰里的样子。
因此，基本上，您是在引导机器
然后您说，“听着，汤姆就是这样，
“这就是杰里的样子，
“现在您需要对它们进行分类
“分为两个不同的类别。”
这就是监督学习的工作方式。
除此之外，这是相同的旧过程。
获取输入数据后，
您将执行数据清理。
然后是探索性数据分析，
然后创建模型
通过使用机器学习算法，
然后进行模型评估，
最后是您的预测。
现在，还要注意的一件事是
通过监督学习获得的输出
也标记为输出。
因此，基本上，您将获得两个不同的类
汤姆（Tom）和杰里（Jerry）之一
然后您将获得标签。
这就是监督学习的工作方式。
监督学习中最重要的事情
是您正在通过使用模型来训练模型
标记数据集。
现在，让我们继续研究无监督学习。
我们看相同的例子并理解
无监督学习的工作原理。
那么无监督学习到底是什么呢？
现在，这涉及使用未标记的数据进行训练
并允许模型根据该信息采取行动
没有任何指导。
好的。
就像名字本身一样，
这里没有监督。
这是无监督的学习。
因此，将无监督学习视为聪明的孩子
在没有任何指导的情况下学习。
好吧，在这种机器学习中
该模型没有提供任何标签数据，
因为模型中没有线索，这是
汤姆（Tom）的形象，这是杰里（Jerry）。
它找出模式
汤姆和杰瑞之间的区别
通过输入大量数据。
现在您如何看待机器将其识别为汤姆，
然后最终给我们输出像
是的，这是汤姆，这是杰里。
例如，它确定了汤姆的突出特征，
例如尖尖的耳朵，更大的耳朵等等，
了解此图像是第一类。
同样，它可以发现Jerry中的功能，
并且知道该图像是第二种类型，
表示第一张图片
与第二张图片不同。
那么什么是无监督学习算法
或模型所做的是它将形成两个不同的集群。
它会形成一个非常相似的簇
与另一个非常不同的集群
来自第一个集群。
这就是无监督学习的方式。
因此，您需要了解的重要事项
在无监督的学习中
是您将向机器提供未标记的数据。
机器必须了解模式
并自行发现输出。
最后，机器将形成集群
基于特征相似性。
现在我们继续定位
最后一种机器学习
这是强化学习。
强化学习大不相同
与有监督和无监督学习相比
强化学习到底是什么？
它是机器学习的一部分，其中代理
被放在一个环境中
他学会了在这种环境下的行为
通过执行某些动作，
并观察从这些行动中获得的回报。
要了解强化学习是什么，
想象您被送往一个孤立的岛屿。
你会怎么做？
现在慌了。
是的，当然，最初，我们都会感到恐慌。
但是随着时间的流逝，您将学到
如何在岛上生活。
您将爆炸环境，
您将了解气候条件，
在那种食物的种类
岛上的危险等等。
这正是强化学习的工作方式。
它基本上涉及一个代理，
你被困在岛上了，
放在未知的环境中，即岛屿
他必须通过观察和表演来学习
产生奖励的行动。
因此主要使用强化学习
在高级机器学习领域
例如自动驾驶汽车和AlphaGo。
我相信你们中很多人都听说过AlphaGo。
因此，AlphaGo背后的逻辑
就是强化学习和深度学习。
在强化学习中
实际上没有任何输入数据提供给代理。
他要做的就是探索
从头开始的一切
就像新生婴儿一样，没有任何信息。
他必须四处探索环境，
并获得奖励，并执行一些操作
导致两种奖励
或某种惩罚。
好的。
这样就总结了机器学习的类型。
在我们前进之前，
我想讨论一下区别
在三种机器学习之间
只是为了让大家都清楚这个概念。
因此，让我们从每个定义开始。
在监督学习中
机器将通过使用标签数据进行学习。
在无监督的学习中，它们将是无标签的数据，
而且机器必须在没有任何监督的情况下学习。
在强化学习中，会有一个代理
与环境互动
通过采取行动并发现错误或奖励
根据他的行为。
现在是什么类型的问题
可以通过使用有监督，无监督，
和强化学习。
在监督学习方面，
解决的两种主要类型的问题
是回归问题和分类问题。
当谈到无监督学习时，
这是关联和聚类问题。
关于强化学习，
这是基于奖励的问题。
我将讨论回归，分类，
集群，而所有这些在接下来的幻灯片中，
所以不要担心，如果您不了解这一点。
现在，在监督学习中使用的数据类型
被标记为数据。
在无监督学习中，它是未标记的。
在强化学习中
我们没有预定义的数据集。
代理必须从头开始做所有事情。
现在涉及的培训类型
这些学习中的每一个。
在监督学习中，存在外部监督，
因为其中有标记的数据集
作为机器学习的指南。
在无监督的学习中，没有监督。
同样，在强化学习中
根本没有监督。
现在解决问题的方法是什么
通过使用有监督的，无监督的
和强化学习？
在监督学习中，这很简单。
您必须将标记的输入错误地输入到已知输出中。
机器知道输出是什么样。
因此，您只是将输入标记为输出。
在无监督学习中
您将要了解模式
并发现输出。
在这里，您不知道输入是什么。
没有标签。
您只需要了解模式
并且您将必须形成集群并发现输出。
在强化学习中，根本没有任何线索。
您必须遵循试错法。
您必须环顾周围的环境。
您将不得不探索环境，
而且您必须尝试一些操作。
而且只有您执行了这些操作，
您会知道这是否是基于奖励的行动
或者这是否是基于惩罚的行为。
因此，强化学习是完全基于
关于反复试验的概念。
好的。
关于监督学习的流行算法包括
线性回归，逻辑回归，
支持向量机K最近邻居，
朴素的贝叶斯，等等。
在无监督的学习中
我们有著名的K均值聚类方法C均值
以及所有这些。
在强化学习中
我们有著名的学习Q学习算法。
我将在接下来的幻灯片中讨论这些算法。
因此，让我们继续看下一个主题，
这是解决的问题类型
使用机器学习。
现在这就是我们之前所说的
当我说回归，分类时
和集群问题。
好的，让我们讨论一下我的意思。
在机器学习中，所有问题都可能是
分为三种类型。
机器学习中遇到的每个问题
可以引起这三个类别之一的兴趣。
好吧，所以第一种称为回归，
然后我们进行分类和聚类。
因此，首先，让我们看一下问题的回归类型。
所以在这种类型的问题中，
输出始终是连续量。
例如，如果您要预测
汽车的速度，给定距离，
这是一个回归问题。
现在你们中很多人可能不是很清楚
到底什么是连续量
连续数量是可以具有的任何数量
无限范围的值。
例如，一个人的体重，
这是一个连续的数量，
因为我们的体重可以是50、50.1，
50.001，
5.0021，
50.0321等。
它可以具有无限范围的值，对吗？
因此，您必须预测的问题类型
连续量以利用回归算法。
因此，回归问题可以解决
通过使用监督学习算法
像线性回归
接下来，我们进行分类。
现在在这类问题中，
输出始终是分类值。
现在，当我说绝对价值时，
它可以是诸如
一个人的性别是绝对价值。
现在将电子邮件分为两类
像垃圾邮件和非垃圾邮件都是分类问题
可以通过使用解决
监督学习分类算法，
像支持向量机，朴素贝叶斯，
逻辑回归，K最近邻，等等。
所以，再次，分类的主要目的
是计算数据的类别。
出现聚类问题。
这类问题涉及
将输入分配给两个或多个集群
基于特征相似性。
因此，当我阅读这句话时，
您应该了解这是无监督的学习，
因为您没有足够的输入数据，
而您唯一的选择是形成集群
仅当您知道类别时才形成
您的数据有两种类型。
您的输入数据被标记为两种类型，
所以这将是一个分类问题。
但是当发生集群问题时，
当您没有太多输入信息时，
所有您需要做的就是找到模式
而且你必须明白
相似的数据点
聚在一起
和数据点与第一组不同
聚集到另一个组中。
这就是集群。
Netflix中的一个例子是发生了什么
Netflix将其用户分为相似的组
根据他们的兴趣，他们的年龄，
地理等等。
这可以通过使用无监督学习算法来完成
像K-均值
好的。
伙计们，有三类问题
这可以通过使用机器学习来解决。
所以，基本上，我想说的是
是所有问题都将属于这些类别之一。
因此，您给机器学习模型带来的任何问题，
它将属于这些类别之一。
好的。
现在让事情变得更有趣，
我已经收集了现实世界的数据集
来自在线资源。
我们要做的就是尝试去了解
如果这是回归问题，
或聚类问题或分类问题。
好的。
现在问题在这里
是研究房屋销售数据集，
并建立机器学习模型
可以预测房价指数。
现在，您需要了解的最重要的事情
当您阅读问题陈述时
您需要了解什么是目标变量，
您将需要什么可能的预测变量。
您首先要查看的是目标变量。
如果您想了解这是否是分类，
回归或聚类问题，
看你的目标变量或输出变量
你应该预测的。
在这里，您应该预测房价指数。
我们的房屋价格指数显然是
连续的数量。
因此，一旦您了解了，
您会知道这是一个回归问题。
因此，您可以利用
线性回归算法
您可以预测房屋价格指数。
线性回归是回归算法。
它是一种监督学习算法。
我们将在以后的幻灯片中讨论更多有关它的内容。
让我们看下一个问题陈述。
在这里，您必须研究银行信贷数据集，
并决定是否
批准申请人的贷款
根据他的个人资料。
现在，您在这里的输出变量是什么？
您的输出变量用于预测您是否可以
是否批准申请人的贷款。
因此，显然，您的输出将是分类的。
是或者不是。
是的，基本上是批准的贷款。
不，是拒绝贷款。
所以在这里，你明白
这是一个分类问题。
好的。
因此，您可以利用KNN算法之类的算法
或者您可以使用支持向量机
为此。
因此，支持向量机和KNN
这是K个最近邻居算法
基本上是监督学习算法。
我们将在接下来的幻灯片中详细讨论这一点。
继续我们的下一个问题陈述。
这里的问题陈述是集群
一套好电影或普通电影
基于社交媒体推广。
现在，如果您看起来不错，
您的线索在于问题本身。
它说的第一行是对一组电影进行聚类
无论是好还是平均。
伙计们，只要您有问题陈述
要求您对数据集进行分组
分成不同的组
或形成不同的不同集群
这显然是一个集群问题。
就在这里你可以利用
K-means聚类算法
您可以形成两个集群。
其中一部将包含热门电影
另一个将包含不受欢迎的电影。
这些可以使用的小例子
机器学习解决聚类问题，
回归和分类问题。
关键是您需要首先确定问题的类型。
现在让我们继续讨论不同的类型
机器学习算法。
因此，我们将从讨论不同之处开始
监督学习算法。
为了给您快速的概述，
我们将讨论线性回归，
逻辑回归和决策树，
随机森林，朴素贝叶斯分类器，
支持向量机，K最近邻。
我们将讨论这七个算法。
所以没有任何进一步的延迟，
让我们先来看线性回归。
现在线性回归算法到底是什么？
所以，线性回归基本上是
监督学习算法
用来预测连续因变量y
基于自变量x的值。
好的。
这里要注意的重要事项
是因变量y，
您要预测的变量，
总是一个连续变量。
但是自变量x
这基本上是预测变量，
这些是您将要使用的变量
预测您的输出变量，
这不过是您的因变量。
所以你的独立变量或预测变量
可以是连续的也可以是谨慎的。
好的，这里没有这样的限制。
好吧，它们可以是连续变量
或者它们可以是谨慎的变量。
现在，我再次告诉您什么是连续变量
万一您忘记了。
这种变化具有无限的可能性。
因此，我将举例说明一个人的体重。
可以是160磅，也可以重160.11磅，
或160.1134磅，依此类推。
所以重量的可能性是无限的，
而这正是连续变量。
现在，为了了解线性回归，
假设您要预测
一段时间内的股票价格。
好的。
对于这样的问题，可以利用线性回归
通过建立关系
在因变量之间
股票价格
和自变量，即时间。
您正在尝试预测股价
经过一段时间。
所以基本上，您将要检查股票的价格
在一段时间内变化。
所以你的股价将会是
您的因变量或输出变量，
时间将成为您的预测变量
或您的自变量。
让我们不再混淆它了。
您的因变量是您的输出变量。
好吧，您的自变量就是您的输入变量
或您的预测变量。
所以在我们的例子中，股价显然是
连续的数量
因为股价可以
无限数量的值。
现在是线性回归的第一步
总是画出一段感情
在您的因变量和自变量之间
通过使用最佳拟合线性长度。
我们假设您的家属
和自变量
彼此线性相关。
我们称其为线性回归是因为
这两个变量线性变化
这意味着通过绘制关系
在这两个变量之间
我们将获得更多的直线，而不是曲线。
让我们讨论线性回归背后的数学原理。
所以，这里的等式
它表示您之间的关系
自变量x，在这里，
和你的因变量y。
这是您要预测的变量。
希望大家都知道
对于数学中的线性线，y等于mx加c。
希望大家都记得数学。
所以数学中的直线方程
y等于mx加c。
同样，线性回归方程
沿同一行表示。
好的，y等于mx加c。
只是有些变化，
我会告诉你它们是什么。
让我们正确地理解这个方程。
所以y基本上代表你的因变量
您将要预测的。
零是y截距。
现在，y截距不过是此处的这一点。
现在在这张图中，您基本上
显示您的因变量y之间的关系
和你的自变量x。
现在这是线性关系
在这两个变量之间。
好吧，现在您的y截距基本上是
线上的点
从y轴开始。
这是y拦截器，
由B零表示。
现在B一个或beta是这条线的斜率
现在斜率可以是负也可以是正
取决于依赖关系
和自变量。
我们拥有的下一个变量是x。
X代表自变量
用来预测我们产生的输出变量。
基本上，x用于预测y的值。
好的。
这里的E表示计算中的误差。
例如，这是实际的线，
这些点表示预测值。
现在这两个之间的距离
由计算中的误差表示。
这就是整个方程式。
很简单，对吧？
线性回归将基本得出
输入与输入变量之间的关系。
这就是简单的线性回归。
现在，为了更好地理解线性回归，
我将在Python中运行一个演示。
伙计们，在我开始实际演示之前，
我假设你们大多数人
对Python有很好的了解，
因为解释Python将会
超出了今天的会议范围。
但是如果你们当中有些人不熟悉
使用Python语言
我将在描述框中保留几个链接。
这些将与Python编程有关。
您可以浏览这些链接，了解Python，
然后尝试了解该演示。
但是我将深入解释该演示的逻辑部分。
所以我们在这里要做的主要事情
尝试了解线性回归。
因此，如果您现在不了解Python，那是可以的。
我会尽力解释。
但是，如果您仍然想更好地理解这一点，
我将在说明框中保留几个链接
您可以转到这些视频。
让我为您放大。
希望大家都能看到屏幕。
现在在这个线性回归演示中，
我们要做的是
我们将形成线性关系
最高温度之间
以及特定日期的最低温度。
我们将在这里进行天气预报。
所以我们的任务是预测最高温度
将输入功能作为最低温度。
所以我将尽力让您理解
通过此演示进行线性回归。
好的，我们将看看它实际上如何工作。
在开始演示之前，
让我告诉您有关数据集的一些信息。
我们的数据集基本上存储在此路径中。
数据集的名称是weather.csv。
好吧，现在，它包含有关是否存在条件的数据
每天记录
在世界各地的各个气象站。
好的，这些信息包括降水，
降雪，温度，风速，
以及当天是否包括雷暴
或其他恶劣的天气条件。
因此，我们进行任何演示的第一步
将导入所有需要的库。
所以我们要开始演示
通过导入所有必需的库。
之后，我们将读取数据。
我们的数据将被存储
在这个称为数据集的变量中，
我们将使用read.csv函数
因为我们的数据集为CSV格式。
之后，我会告诉你
数据集的外观。
我们还将深入研究数据集。
现在让我先向您展示输出。
让我们运行此演示并首先查看。
我们要得到一些情节
聊一会儿。
因此，我们可以忽略此警告。
与...无关
因此，首先，我们正在打印数据集的形状。
因此，当我们打印数据集的形状时，
这是我们得到的输出。
因此，基本上，这表明我们拥有
我们的数据集中有12,000行和31列。
31列基本上代表
预测变量。
所以可以说我们有31个预测变量
为了保护天气条件
在特定日期。
伙计们，这个问题领域的主要目标
是天气预报。
我们要预测天气
通过使用一组预测变量。
所以这些是不同的类型
我们拥有的预测变量。
好吧，我们有一个称为最高温度的东西。
这就是我们的数据集。
现在我在这段代码中正在做的是...
我们正在做的是绘制数据点
在2D图形上以了解我们的数据集
看看我们是否可以手动找到任何关系
变量之间。
在这里，我们采取了最低温度
和最高温度进行我们的分析。
因此，让我们看看这个情节。
在此之前，我先评论所有其他情节，
这样您就可以在我正在谈论的任一图表上看到。
因此，当您查看此图时，
这基本上是最低温度之间的图
和你的最高温度。
最高温度是因变量
您将要预测的。
这是y。
而您的最低温度就是您的x。
它基本上是您的自变量。
因此，如果您看这张图，
您可以看到其中有一种
两者之间的线性关系
除了这里和那里有一些离群值。
有一些随机的数据点。
但除此之外，还存在线性关系
在最低温度之间
和你的最高温度。
因此，通过此图形，您可以了解
您可以轻松解决此问题
使用线性回归
因为我们的数据非常线性。
我可以在这里看到一条清晰的直线。
这是我们的第一张图。
接下来，我要做的就是检查
我们拥有的平均和最高温度。
我只是看我们输出变量的平均值。
好的。
伙计们，我们现在在这里做什么
只是探索性数据分析。
我们正在尝试了解我们的数据。
我们正在尝试了解这种关系
在我们的输入变量和我们的输出变量之间。
我们正在尝试查看平均值或平均值
输出变量的值。
所有这些都是了解我们的数据集所必需的。
因此，这就是我们的平均最高温度。
因此，如果我们试图了解这到底在哪里，
所以我们的平均最高温度
在28到30之间。
28和32，在那里。
所以可以说平均最高温度
位于25到35之间。
这就是我们的平均最高温度。
现在，您对数据集有所了解，
你知道线性关系很好
在输入变量和输出变量之间。
现在您要做的就是
执行称为数据拼接的操作。
让我为您评论一下。
本节不过是数据拼接。
因此，对于那些关注的人，
知道数据拼接不过是
将您的数据集分为训练和测试数据。
现在在我们这样做之前
我之前提到过，我们将仅使用两个变量，
因为我们试图了解两者之间的关系
最低温度和最高温度。
我这样做是因为我希望你能理解
以最简单的方式进行线性回归。
所以，为了理解线性回归，
我刚刚从数据集中得出了两个变量。
即使我们检查数据集的结构，
我们有大约31个功能，
这意味着我们有31个变量
其中包括我的预测变量和目标变量。
因此，基本上，我们有30个预测变量
我们有一个目标变量
这是您的最高温度。
所以，我在这里要做的只是考虑
这两个变量，
因为我想确切地告诉你
线性回归如何工作。
所以，我在这里基本上是
仅提取这两个变量
从我们的数据集中，将其存储在x和y中。
之后，我要进行数据拼接。
所以在这里，我基本上是分割数据
进入培训和测试数据，
并记住我要分配的一点
我们的测试数据集中有20％的数据，
剩下的80％则分配给培训。
那就是训练的方式。
我们分配用于训练的最大数据集。
我们这样做是因为我们想要机器学习模型
或机器学习算法来更好地训练数据。
我们想获取尽可能多的数据，
以便可以正确预测结果。
所以，要再次为您重复一遍，
所以这里我们只是分割数据
纳入培训和测试数据集。
因此，这里需要注意的另一件事是
我们从训练中拆分了80％的数据，
并将20％的数据分配给测试数据。
测试大小变量，您看到的这个变量，
是用来指定
测试集的比例。
现在，将数据分成训练和测试集之后，
最后，是时候训练我们的算法了。
为此，我们需要导入线性回归类。
我们需要实例化它
并与训练数据一起调用fit方法。
这是我们的线性回归类，
我们只是在创建一个实例
线性回归类别。
伙计们，关于Python的一件好事是
您已经为算法定义了预定义的类，
而且您没有调用算法。
取而代之的是，
您将此课程称为线性回归课程吗？
并且您必须创建它的实例。
在这里，我基本上是在创建一个称为回归器的东西。
您要做的就是调用fit方法
以及您的训练数据。
这是我的训练数据，x火车和y火车
包含我的训练数据
我称之为线性回归实例
与该数据集一起为回归变量。
因此，基本上，在这里，我们正在构建模型。
除了建立模型外，我们什么也没做。
现在，主要的事情之一
线性回归模型所做的是
它找到截距和斜率的最佳值，
结果是最适合数据的线。
我已经讨论了截距和斜率是什么。
因此，如果您想查看截距和斜率
由我们的线性回归模型计算得出
我们只需要运行这一行代码。
让我们看一下输出。
因此，我们的截距约为10.66
还有我们的系数
这些也称为β系数，
系数不过是我们讨论的内容，β值是零。
这些是beta值。
现在，这将帮助您了解
输入变量的重要性。
现在，这个系数值意味着
看到，系数值约为0.92。
这意味着每更改一个单位
最低温度的
最高温度的变化约为0.92。
这只会显示出您的重要性
您的输入变量是。
因此，您的最低温度每变化一单位，
最高温度的变化
将在0.92左右。
希望您已经理解了这一部分。
既然我们已经训练了算法，
它正在尝试做出一些预测。
为此，我们将使用测试数据集，
我们将看到我们的算法有多精确
预测百分比得分。
现在进行预测，
我们有这行代码。
Predict基本上是Python中的预定义函数。
而你要做的就是通过
您的测试数据设置为此。
现在您要做的就是比较
实际输出值
基本上存储在您的y测试中。
然后将它们与预测值进行比较，
在y预测中。
您会将这些比较存储在我们的数据框中
叫做df。
我在这里要做的就是打印数据框。
因此，如果您查看输出，它就是它的样子。
这些是您的实际价值
这些是您预测的值
通过建立那个模型。
因此，如果您的实际值为28，
您预测大约33，
在这里，您的实际价值是31，
表示您的最高温度为31。
您预计最高温度为30。
现在，这些值实际上非常接近。
我觉得这里的准确性非常好。
现在在某些情况下，您会看到很多差异，例如23。
这是15。
就在这里22。
这是11。
但是这种情况经常发生。
我会说，这是提高准确性的最好方法
通过训练具有更多数据的模型。
好的。
您也可以以图表形式查看此比较。
让我们看看它的外观。
所以，基本上，这是一个条形图
显示我们的实际值和预测值。
蓝色由您的实际值表示，
橙色表示您的预测值。
在一些地方你可以看到
我们已经很好地预测了
就像预测非常接近
到实际值。
在某些情况下，预测会有所不同。
所以在某些地方，它实际上是变化的，
但所有这些都取决于您的输入数据。
当我们看到输入数据时，
我们也看到了很多变化。
我们看到了几个离群值。
因此，所有这些也可能会影响您的输出。
但这就是构建机器学习模型的方式。
最初，您永远都不会
一个非常好的准确性。
你应该做的是你必须改进
您的训练过程。
那是最好的预测方式，
要么您使用大量数据，
用大量数据训练模型
或者您使用其他方法（例如参数调整）
或基本上你试图找到另一个预测变量
这将帮助您更多地预测输出。
对我来说，这看起来不错。
现在让我向您展示另一个情节。
我们正在做的是绘制一条直线图。
好吧，让我们看看它的外观。
各位，这条直线
表示线性关系。
现在，假设您得到一个新的数据点。
好吧，假设x的值约为20。
因此，使用此行，
您可以预测四个最低温度为20，
您的最高温度约为25
或类似的东西。
因此，我们基本上画出了线性关系
在我们的输入和输出变量之间。
最后一步是评估
算法的性能。
比较这一步骤尤为重要
不同算法的性能如何
在特定的数据集上。
现在，对于回归算法，
使用了三个评估指标。
我们有所谓的平均绝对误差
均方误差和均方根误差。
现在意味着绝对错误不过是
误差的绝对值。
您的均方误差是均方误差的均值。
就这样。
基本上是您阅读并理解
错误是什么意思。
均方根误差是平方根
平方误差的平均值。
好的。
所以这些很容易理解
您的平均绝对误差，均方误差
您的均方根误差。
现在，幸运的是，我们不必执行这些操作
手动计算。
我们不必对每个计算进行编码。
库上的循环带有预建函数
可以用来找出这些值。
好的。
因此，当您运行此代码时，您将获得
这些值用于每个错误。
平均绝对误差为3.19。
您的均方误差约为17.63。
您的均方根误差约为4.19。
现在这些错误值基本上表明
我们的模型精度不是很精确，
但它仍然可以做出很多预测。
我们可以画出良好的线性关系。
现在为了提高效率，
有很多这样的方法，
参数调整等等
或者基本上，您可以使用更多数据来训练模型。
除此之外，您还可以使用其他预测变量，
或者你可以研究一下两者之间的关系
其他预测变量
以及您的最高温度变量。
有很多方法
以提高模型的效率。
但是现在，我只是想让你理解
线性回归如何工作，
我希望大家对此都有个好主意。
希望大家都了解
线性回归的原理。
这是一个小演示。
如果你们还有任何疑问，
关于线性回归，
请在评论部分保留该内容。
我们将尽力解决您的所有错误。
所以，如果你看这个等式，
我们在这里计算了一切。
我们在y和x之间画了一个关系，
基本上x是我们的最低温度
y是我们的最高温度。
我们还计算了斜率和截距。
最后我们还计算了误差。
我们计算了均方误差
我们计算了均方根误差。
我们还计算平均绝对误差。
这就是关于线性回归的一切。
这是一个简单的线性回归模型。
现在让我们继续研究下一个算法，
这是逻辑回归。
现在，为了理解为什么我们要使用逻辑回归，
让我们考虑一个小场景。
假设您的妹妹
正试图进入研究生院
你想预测她是否会被录取
在她梦dream以求的学校里
好吧，基于她的CGPA和过去的数据，
您可以使用逻辑回归
预见结果。
因此，逻辑回归可以让您分析
变量集并预测分类结果。
从这里开始，我们需要预测她是否会
上学与否，
这是一个分类问题，
将使用逻辑回归。
现在我知道你脑海中的第一个问题是，
为什么在这种情况下不使用线性回归？
原因是线性回归
用于预测连续量，
而不是绝对的。
在这里我们要预测
你姐姐是否要去读研究生。
因此，这显然是绝对的结果。
所以当结果出来的时候
只能采用几类价值，
就像两类价值观一样
有一个模型来预测价值是明智的
为零或一
或介于0到1之间的概率形式。
好的。
因此线性回归不具备此功能。
如果使用线性回归
模拟二元结果，
结果模型将无法预测y值
在零到一的范围内
因为线性回归适用于
连续因变量
而不是分类变量。
这就是为什么我们使用逻辑回归。
因此了解使用线性回归
预测连续数量，
逻辑回归用于
预测分类数量。
好吧，现在每个人都有一个重大困惑
人们一直在问我
为什么逻辑回归称为逻辑回归
用于分类时。
之所以称为逻辑回归
是因为它的主要技术
与逻辑回归非常相似。
命名背后没有其他原因。
它属于一般的线性模型。
它与线性回归属于同一类，
但这不是另一个原因
逻辑回归的名称后面。
Logistic回归主要用于
出于分类目的，
因为在这里您必须预测因变量
本质上是绝对的。
因此，这主要用于分类。
因此，要为您定义逻辑回归，
逻辑回归是一种用于预测的方法
因变量y
给定一个自变量x
这样因变量是分类的
表示您的输出是分类变量。
因此，显然，这是分类算法。
再次，伙计们，为了清除您的困惑，
当我说分类变量时
我的意思是，它可以容纳一个或零之类的值，
是或否，正确或错误等等。
因此，基本上，在逻辑回归中
结果总是绝对的。
现在，逻辑回归如何工作？
伙计们，在我告诉您逻辑回归的工作原理之前，
看一下这张图。
现在我告诉你结果
在逻辑回归中是绝对的。
您的结果将为零或一，
否则将是介于零到一之间的概率。
因此，这就是为什么我们有此S曲线。
现在，有些人可能会认为我们为什么有S曲线。
我们显然可以有一条直线。
我们有所谓的S形曲线，
因为我们的值可以在零到一之间，
这将基本显示出概率。
因此，也许您的输出将为0.7，
这是一个概率值。
如果是0.7，
这意味着您的结果基本上是一个。
这就是为什么我们有这样的S形曲线。
好的。
现在我将详细解释
在一段时间内深入。
现在，为了了解逻辑回归的工作原理，
首先，让我们来看看
线性回归方程。
这是逻辑回归方程
我们讨论过的。
Y代表因变量
需要预测
beta零通过y截获什么都不是。
Beta 1就是斜坡。
X代表自变量
用来预测y。
E表示计算误差。
因此，鉴于x是自变量
y是因变量，
我们如何表示x和y之间的关系
这样y的范围仅在零到一之间？
这里这个值基本上表示
y可能等于1，
给定x的一些值。
所以在这里，因为这个Pr表示概率
这个值基本上表示概率
y等于1，给定x的某个值，
这是我们需要找出的。
现在，如果您想计算概率
使用线性回归模型，
那么概率将看起来像
X的P等于beta零
加上Beta 1进入X。
X的P等于无n的beta加X的beta 1，
X的P
您使y等于1的概率，
给定x的一些值。
所以逻辑回归方程
从相同的方程式得出
除了我们需要进行一些改动之外，
因为输出仅是分类的。
因此，逻辑回归并不一定要计算
结果为零或一。
我之前提到过
相反，它计算变量的概率
归零类或一类。
这就是我们可以得出的结论
结果变量必须为正，
它应该介于零和一之间，
这意味着它必须小于一个。
所以要满足这些条件
我们必须做两件事。
首先，我们可以采用方程式的指数
因为取任何值的指数
将确保您得到一个正数。
正确？
其次，您必须确保
您的输出小于一。
因此，数字除以自身再加上一个
将始终小于一。
这就是我们得到这个公式的方式
首先，我们采用方程式的指数，
beta零加beta一加x
然后我们将其除以该数字再加上一个。
所以这就是我们得到这个公式的方式。
现在下一步是计算
一种称为逻辑功能的东西。
现在逻辑功能什么都没有了
但这是一个链接功能
表示为S曲线
或为S形曲线
范围介于零和一之间。
它基本上计算概率
输出变量的值。
因此，如果您看这个方程式，它非常简单。
我们在这里所做的是我们只是交叉乘
并把我们每个测试版都调零
加上Beta 1到x一样普遍。
RHS表示
自变量。
LHS代表奇数比。
因此，如果您计算整个过程，
您将获得最终的价值，
这基本上就是您的逻辑回归方程。
您的RHS在这里表示线性方程式
对于自变量，
而您的LHS代表奇数比率
也称为逻辑功能。
所以我告诉你逻辑功能
基本上是代表S曲线的函数
带来零和一。
这将确保我们的价值
范围介于零和一之间。
所以在逻辑回归中
将这个X增加一个量，
它改变了beta的逻辑逻辑。
这与我在逻辑回归中向您展示的相同。
伙计们，这就是你的想法
逻辑回归方程。
因此，如果您对这些方程式有任何疑问，
请把它们留在评论部分，
我会尽快回覆您，我会为您解决。
综上所述，使用逻辑回归
用于分类。
输出变量将始终是分类变量。
我们还看到了如何导出逻辑回归方程。
更重要的是
变量之间的关系
逻辑回归表示为
S曲线也称为S形曲线，
而且结果不
必须将其计算为零或一。
可以计算为概率
输出位于第一类或零类。
所以你的输出可能是概率
介于零和一之间。
这就是为什么我们有S型曲线。
因此，我希望大家对逻辑回归感到清楚。
现在，我不会立即向您展示该演示。
我将解释另外两个分类算法。
然后我给你看一个实际的演示
在这里我们将使用多种分类算法
解决同样的问题。
同样，我们还将计算准确性
以及哪种分类算法效果最好。
现在我要讨论的下一个算法
是决策树。
决策树是我最喜欢的算法之一，
因为它很容易理解
决策树如何工作。
伙计们，在此之前，我们讨论了线性回归，
这是一个回归算法。
然后我们讨论了逻辑回归，
这是一种分类算法。
记住，不要仅仅因为
它的名称为logistic回归。
好的，这是一种分类算法。
现在我们在讨论决策树，
还是分类算法。
好的。
那么，决策树到底是什么？
现在，决策树又是
有监督的机器学习算法
看起来像倒立的树
其中每个节点代表一个预测变量，
节点之间的链接代表一个决定，
每个叶节点代表一个结果。
现在我知道这有点令人困惑，
让我让您了解什么是决策树
在一个例子的帮助下。
假设您举办了一个大型聚会，
你想知道你有多少阵风
是非素食主义者。
所以要解决这个问题
您可以创建一个简单的决策树。
现在，如果您看一下这里的这个数字，
我创建了一个决策树，对客人进行分类
作为素食主义者或非素食主义者。
我们在这里的最后结果是非蔬菜或蔬菜。
所以你在这里明白
这是一个分类算法，
因为在这里您要预测分类值。
这里的每个节点代表一个预测变量。
所以吃鸡肉是一个变数，
吃羊肉是一个变量，
海鲜是另一个变量。
所以每个节点代表一个预测变量
这将帮助您得出结论是否
客人是非素食者。
现在，当您遍历树时，
您将决定每个节点
直到你走到尽头。
好的，就是这样。
因此，假设我们有一个新的数据点。
现在，我们将其传递给决策树。
第一个变量是客人
吃鸡肉？
如果是，那么他是非素食主义者。
如果否，则将其传递给下一个变量，
客人吃了羊肉是哪个？
如果是，那么他是非素食主义者。
如果否，则将其传递给下一个变量，
这是海鲜。
如果他吃海鲜，那么他就是非素食主义者。
如果没有，那么他是素食主义者。
这就是决策树的工作方式。
这是一个非常简单的算法
您可以轻松理解。
它画出了字母，很容易理解。
现在让我们了解决策树的结构。
我只是给你看一个例子
决策树的工作原理。
现在让我以同样的例子
并告诉您决策树的结构。
因此，首先，我们有一个称为根节点的东西。
好的。
根节点是起点
决策树。
在这里，您将执行第一次拆分
并将其拆分为其他两个节点
或其他三个节点，具体取决于您的问题陈述。
因此，最顶部的节点称为根节点。
现在，关于根节点，
根节点已分配给变量
那是非常重要的
表示该变量非常重要
在预测输出中。
好吧，所以您分配一个变量
您认为在根节点上最重要的。
在那之后，我们有了一个称为内部节点的东西。
所以每个内部节点代表一个决策点
最终导致输出。
内部节点将具有其他预测变量。
这些都不是预测变量。
我只是问了一个问题
否则，这些只是预测变量。
这些是内部节点。
终端节点，也称为叶节点，
代表输出变量的最终类，
因为这些基本上就是您的结果，
非素食主义者。
分支不过是节点之间的连接。
好的，这些连接是
每个节点称为一个分支
用箭头表示。
因此，每个分支机构都会对此做出回应，
是或否，是或否，一或零，等等。
好的。
所以，伙计们，这就是决策树的结构。
这是可以理解的。
现在让我们继续
我们将了解决策树算法的工作原理。
现在有很多方法可以构建决策树，
但我会专注于一些已知的事情
作为ID3算法。
好的，这就是所谓的ID3算法。
那是建立的方式之一
决策树。
ID3代表迭代二分法3算法，
这是最有效的算法之一
用于构建决策树。
它使用了熵和信息增益的概念
为了建立决策树。
现在您不必确切知道
ID3算法是。
这只是构建决策树的一个概念。
现在，ID3算法已定义了大约六个步骤
为了建立决策树。
因此，第一步是您将选择最佳属性。
现在，最佳属性是什么意思？
所以，属性不过是
此处的预测变量。
因此，您将选择最佳的预测变量。
我们称它为A。
之后，您将分配此A
作为根节点的决策变量。
基本上，您将分配此预测变量A
在根节点上。
接下来，您要做的是针对每个A值，
您将构建该节点的后代。
现在这三个步骤，让我们看一下
与前面的示例相同。
现在，这里最好的属性是吃鸡肉。
好的，这是我最好的属性变量。
因此，我选择了该属性。
下一步是什么？
第二步被分配为决策变量。
所以我把吃小鸡指定为决策变量
在根节点上。
现在您可能想知道我怎么知道
这是最好的属性。
我会在一段时间内解释所有这些。
因此，我们要做的是分配了另一个根节点。
然后，第三步说出每个A值，
建立节点的后代。
因此，对于此变量的每个值，
建立一个后代节点。
因此，此变量可以采用两个值，是和否。
因此，对于每个这些值，
我建立一个后代节点。
步骤四，分配分类标签
到叶节点。
我已经分配给您的叶子节点
将一个分类为非蔬菜，另一个分类为蔬菜。
那是第四步。
第五步是如果数据正确分类，
那你就停止了
但是，如果不是这样，
然后你不断遍历那棵树，
并不断改变位置
树中的预测变量，
或者您也更改根节点
为了获得正确的输出。
现在让我回答这个问题。
最好的属性是什么？
最佳属性是什么意思
还是最好的预测变量？
现在最好的属性是
将数据分为不同的类别，
最有效，或者基本上
最能分割数据集的功能。
现在您脑海中的下一个问题必须是我该如何决定
哪个变量或哪个功能最能分割数据。
为此，有两个重要措施。
有一种所谓的信息获取
有一种叫做熵的东西
现在的家伙，为了了解
信息增益和熵
我们看一个简单的问题陈述。
此数据代表汽车的速度
根据某些参数。
所以我们这里的问题陈述是研究数据集
并创建分类的决策树
汽车的速度是慢还是快。
所以我们这里的预测变量是道路类型，
障碍物和速度限制
和/或响应变量，或者我们的输出变量是速度。
因此，我们将使用这些变量来构建决策树
为了预测汽车的速度。
现在就像我之前提到的
我们必须首先确定一个变量
最好地分割数据集
并将该特定变量分配给根节点
并对其他节点重复相同的操作。
所以第一步，就像我们之前讨论的那样
是选择最佳属性A。
现在，您如何知道哪个变量最能分隔数据？
信息增益最高的变量
最好将数据导出到所需的输出类中。
首先，我们将计算两个度量。
我们将计算熵和信息增益。
现在在这里告诉你确切的熵是什么，
以及确切的信息增益是什么。
现在基本上是用熵来衡量
数据中存在的杂质或不确定性。
它用于决定决策树如何拆分数据。
另一方面，信息获取
是最重要的措施
用于构建决策树。
它指示特定变量有多少信息
给我们回合的最终结果。
因此，信息获取很重要，
因为它用来选择一个变量
最好在每个节点上拆分数据
用于决策树。
现在，信息增益最高的变量
将用于在根节点处拆分数据。
现在，在我们的数据集中，有四个观测值。
所以我们要做的是从计算开始
熵和信息增益
对于每个预测变量。
因此，我们将从计算信息增益开始
以及道路类型变量的熵。
在我们的数据集中，您可以看到
有四个观察结果。
道路类型列中有四个观测值，
对应于速度列中的四个标签。
因此，我们将从计算信息增益开始
父节点的
父节点不过是护理节点的速度。
这是我们的输出变量，对吗？
用来显示汽车的速度
是慢还是快。
因此，找出
汽车速度变量
我们将通过几个步骤。
现在我们知道有四个观察结果
在此父节点中。
首先，我们行动缓慢。
再一次，我们又慢又快。
现在，在这四个观察中，我们有两个类。
因此，有两个观察结果属于慢速类，
有两个观测值很快属于该类。
这样便可以计算出P慢和P快。
P慢一点都不是
父节点中缓慢的结果，
P fast是快速结果的一部分
在父节点中。
和公式来计算P慢
是父节点中缓慢结果的数量
除以结果总数。
因此，父节点中缓慢的结果数量为两个，
结果总数为四。
我们总共有四个观察结果。
这就是我们将P的慢速设为0.5的方式。
同样，对于P的快速，您将计算
快速结果的数量
除以结果总数。
因此，再乘以2，4，您将得到0.5。
接下来要做的就是计算
该节点的熵。
因此要计算熵，这就是公式。
您所要做的就是替换它，
您将不得不替换此公式中的值。
因此，慢速的P被替换为0.5。
同样，P的速度为0.5。
现在，当您替换值时，
您将得到一个答案。
因此，父节点的熵为1。
因此，在计算父节点的熵之后，
我们将计算子节点的信息增益。
伙计们，请记住，如果信息获得
道路类型变量的值大于信息增益
在所有其他预测变量中，
只有这样，根节点才能通过使用
道路类型变量。
因此，要计算道路类型变量的信息增益，
我们首先需要分割根节点
通过选择道路类型变量。
我们只是为了检查
如果道路类型可变
正在为我们提供有关数据的最大信息。
好的，如果您注意到道路类型有两个结果，
它有两个值，陡峭或平坦。
现在回到我们的数据集。
所以在这里您可以注意到的是
每当道路陡峭时
首先我们要检查
我们获得的速度价值
当道路类型陡峭时。
所以，首先，观察。
您会看到每当道路类型陡峭时，
您的速度变慢了。
同样，在第二个观察中，
当道路类型陡峭时
您将再次获得慢速值。
如果道路类型平坦，您将观察到快速。
再说一次，如果陡峭的话，那就意味着快。
因此对于三个陡峭的值，
我们有慢，慢和快。
当道路类型平坦时
我们将获得快速输出。
这正是我在此决策树中所做的。
因此，每当道路类型陡峭时，
您会变慢，变慢或变快。
每当道路平坦时
你会很快。
现在，右侧的熵为零。
熵不过是不确定性。
这里没有不确定性。
因为一旦您看到道路类型是平坦的，
您的输出速度很快。
因此没有不确定性。
但是当道路陡峭时
您可以有以下任何一种结果，
要么你的速度会慢
否则可能很快。
因此，您将从计算熵开始
决策树的RHS和LHS。
因此右侧子节点的熵为零，
因为这里没有不确定性。
马上，如果您看到道路类型是平坦的，
您的车速将会很快。
好的，这里没有不确定性，
因此您的熵变为零。
现在左侧的熵
是我们将不得不再次计算
P慢的分数和P快的分数。
因此，在三项观察中，
在两个观察中，我们的速度很慢。
这就是为什么我们这里有两个三乘的原因。
对于P快速而言，
我们有一个P快
除以观察总数为三。
因此，在这三个中，我们有两个慢点和一个快点。
当您计算P慢和P快时，
您将获得这两个值。
然后，当您在此公式中替换熵时，
您会得到道路类型变量的熵为0.9。
希望大家都明白这一点。
我会再经历一次。
所以，基本上，我们在这里计算
道路类型变量的信息增益和熵。
每当您考虑道路类型变量时，
有两个值，陡峭和平坦。
每当道路类型的值陡峭时，
您将获得这三个结果中的任何一个，
您会变慢，变慢或变快。
当道路类型平坦时
您的结果将会很快。
现在因为没有不确定性
每当道路平坦时
您将永远获得快速的结果。
这意味着这里的熵为零，
或此处的不确定性值为零。
但是这里有很多不确定性。
因此，每当您的道路类型陡峭时，
您的输出可能很慢，也可能很快。
因此，最后，您将Python设为0.9。
所以为了计算信息增益
道路类型变量的值。
您需要计算加权平均值。
我告诉你为什么。
为了计算信息增益，
你需要知道父母的熵
我们将其计算为一个
减去加权平均值进入熵
孩子们。
好的。
因此，对于此公式，您需要计算
所有这些值。
因此，首先，您需要计算熵
加权平均值。
现在父节点中的结果总数
我们看到了四个。
结果总数
在左子节点中有三个。
以及正确的子节点中的结果总数
是一个。
正确？
为了与您进行验证，
父节点中的结果总数为四。
一，二，三和四。
来到子节点，这是道路类型，
右侧的结果总数
子节点的个是1。
和结果总数
在子节点的左侧是三个。
那正是我在这里写的。
好了，希望大家都理解这三个价值观。
之后，您要做的就是
您必须在公式中替换这些值。
所以当你这样做的时候，你会得到
加权平均子项的熵
将在0.675左右。
现在，只需用此公式替换值即可。
因此，如果您计算信息增益
道路类型变量
您将获得0.325的值。
现在，使用相同的方法
您将要计算信息增益
对于每个预测变量，
适用于道路类型，障碍物和限速。
现在，当您遵循相同的方法
然后计算出信息增益
您将获得这些值。
现在，此信息对于道路类型有什么好处
等于0.325表示？
现在，道路类型的值0.325表示
我们获得的信息很少
从此道路类型变量开始。
对于阻塞，我们确实有
信息增益为零。
同样，速度限制获得的信息之一。
这是我们获得信息的最高价值。
这意味着我们必须使用限速变量
在我们的根节点上以便拆分数据集。
所以，伙计们，不要混淆任何变量
使您获得最大的信息收益。
该变量必须在根节点上选择。
这就是为什么我们将根节点作为速度限制。
因此，如果您保持了速度限制，
那你就慢了
但是如果您没有保持速度限制，
那么您的汽车速度将会很快。
你的熵实际上是零，
而您的信息是一个，
意味着您可以在根节点上使用此变量
为了拆分数据集，
因为速度限制使您获得最大的信息收益。
伙计们，我希望大家都清楚这个用例。
总而言之，
我将再次将整个过程重复给大家。
所以基本上，这里给你一个问题陈述
为了创建一个决策树
将汽车的速度分为慢速或快速。
所以给了你三个预测变量
这是您的输出变量。
熵获得的信息基本上是两个度量
用来决定哪个变量
将被分配给决策树的根节点。
好的。
伙计们，一旦您查看了数据集，
如果比较这两列，
就是速度极限和速度
您将轻松获得输出。
这意味着如果您要保持速度限制，
你会变慢的。
但是如果您不保持速度限制，
你要斋戒。
所以在这里我们可以了解速度限制
没有不确定性。
因此，每次您保持速度限制时，
你会变慢的
每次您超出限制或速度限制时，
你会很快。
就这么简单。
那你是怎么开始的？
所以你从计算开始
父节点的熵。
您计算了父节点的熵，
归结为一个。
好的。
之后，您计算了信息增益
每个子节点。
为了计算
子节点的信息增益，
通过计算熵来统计
右侧和左侧的
决策树。
好的。
然后计算熵
以及加权平均值。
您可以将这些值替换为信息获取公式，
你会得到信息增益
对于每个预测变量。
所以获得信息后
每个预测变量
您检查哪个变量给您
最大的信息增益
然后将该变量分配给根节点。
就这么简单。
伙计们，这些全都与决策树有关。
现在让我们看看我们的下一个分类算法
这是随机森林。
现在，首先，什么是随机森林？
随机森林基本上可以构建多个决策树
并将它们粘在一起以获得更准确的
和稳定的预测。
现在如果已经有了决策树
而随机森林只不过是
决策树的集合，
为什么我们必须使用随机森林
什么时候我们已经有了决策树？
使用随机森林的三个主要原因。
现在即使决策树很方便
并易于实施，
它们不如随机森林那么精确。
决策树非常有效
有了训练数据
备份他们不灵活
在对新样本进行分类时。
现在，发生这种情况的原因是过拟合。
现在过度拟合是一个问题
在决策树中可以看到。
这是经常发生的事情
当我们使用决策树时。
现在当模型研究时发生过度拟合
这样的训练数据
负面影响
模型在新数据上的性能。
现在，这意味着干扰
在训练数据中记录下来
模型将其作为概念来学习。
如果有什么干扰
或训练数据中有任何杂音
或训练数据中的任何错误，
该模型也对此进行了研究。
这里的问题是这些概念
不适用于测试数据，
对模型的能力产生负面影响
对新数据进行分类。
总结一下
每当您的模型出现过度拟合
学习训练数据，
以及训练数据中的所有干扰。
因此，它基本上存储了训练数据。
每当有新数据提供给您的模型时，
它不会非常准确地预测结果。
现在这是在决策树中看到的问题。
好的。
但是在随机森林中，有一种叫做袋装的东西。
现在，装袋的基本思想是
减少变化和预测
通过组合多个决策树的结果
在数据集的不同样本上。
因此，您的数据集将分为不同的样本，
你将建立一个决策树
在每个样本上。
这样，每个决策树都会研究
您的数据的一个子集。
所以这种过度拟合的方式会减少
因为一个决策树没有研究
整个数据集。
现在让我们关注随机森林。
现在为了了解随机森林，
我们来看一个小例子。
我们可以考虑这个数据集。
在此数据中，我们有四个预测变量。
我们有血流，动脉阻塞，
胸痛和体重。
现在这些变量用于预测
一个人是否患有心脏病。
因此，我们将使用此数据集
创建一个随机森林来预测
一个人是否患有心脏病。
现在是创建随机森林的第一步
是您创建了一个引导数据集。
现在在引导中，您需要做的所有事情
您是否必须随机选择样本
从您的原始数据集中。
好的。
需要注意的一点是，您可以选择相同的样本
不止一次。
因此，如果您查看原始数据集，
我们有异常，正常，正常和异常。
看血流部分。
现在我在这里随机选择了样本
正常，异常，
我选择了一个样本两次。
您可以在引导数据集中执行此操作。
现在我在这里所做的就是
我创建了一个引导数据集。
引导捆绑不过是一种估计方法
用于对数据进行预测
通过重新采样数据。
这是一个引导程序数据集。
现在，即使这看起来很简单，
在现实世界中的问题，
您将永远不会获得如此小的数据集。
好的，自举
实际上比这复杂一点。
通常在现实世界中，
您将拥有大量的数据集，
并引导该数据集实际上是
一个非常复杂的问题。
我在这里是因为我让你明白
随机森林如何运作，
这就是为什么我考虑了一个小的数据集。
现在，您将使用引导数据集
您创建的
您将根据它构建决策树。
现在在随机森林中要注意的另一件事是
您将不会使用整个数据集。
好的，所以您只会使用其他几个变量
在每个节点上。
因此，例如，我们将仅考虑两个变量
在每一步。
因此，如果您从此处的根节点开始，
我们将随机选择两个变量
作为根节点的候选者。
好吧，假设我们选择了血流
和动脉阻塞。
从这两个变量中，我们必须选择变量
最好地分离样品。
好的。
因此，为了这个例子，
比方说，动脉阻塞
是最重要的预测指标，
这就是为什么我们将其分配给根节点的原因。
现在，我们的下一步是重复相同的过程
对于每个即将到来的分支节点。
在这里，我们将再次随机选择两个变量
作为每个这些分支节点的候选者，
然后选择一个变量
最好地分离样本，对吗？
因此，让我重复一下整个过程。
所以您知道您开始创建决策树
通过选择根节点。
在随机森林中，您将随机选择
每个节点有几个变量，
然后您将计算出哪个变量
最好在该节点上拆分数据。
因此，对于每个节点，我们将随机选择
两个或三个变量。
在这两个，三个变量中，
我们将看到哪个变量最能分隔数据。
好吧，所以在每个节点上
我们将因为计算信息而获得熵。
基本上，这就是我的意思。
在每个节点上，您将计算信息增益
和两个或三个变量的熵
然后您会看到哪个变量
具有最高的信息增益
而且您将继续下降。
这就是您创建决策树的方式。
因此，我们刚刚创建了第一个决策树。
现在您要做的是回到第一步，
然后您将重复整个过程。
所以每个决策树都会预测输出类别
基于预测变量
您已分配给每个决策树的内容。
现在，对于这个决策树，
您已经分配了血流量。
在这里，我们在根节点处阻塞了动脉。
在这里，我们的根节点可能有血流，依此类推。
因此，您的输出将取决于哪个预测变量
在根节点上。
所以每个决策树都会预测输出类别
基于预测变量
您在那棵树中分配的。
现在您要做的是回到第一步，
您将创建一个新的引导程序数据集，
然后您将再次构建一个新的决策树。
对于那个决策树，
您将只考虑变量的子集，
然后您将选择最佳的预测变量
通过计算信息增益。
因此，您将继续重复此过程。
因此，您只需重复第二步和第一步即可。
好的。
而且，您将继续创建多个决策树。
好的。
因此在随机森林中拥有各种决策树
是什么使它比
一个单独的决策树。
因此，与其拥有一个单独的决策树，
使用所有功能创建的
你可以建立一个随机森林
使用多个决策树
其中每个决策树都有一个随机集
预测变量。
现在，第四步正在预测结果
新数据点。
现在，您已经创建了一个随机森林，
让我们看看如何使用它
预测新患者是否患有心脏病。
好的，现在这个图基本上有一个数据
关于新病人。
好的，这是有关新患者的数据。
他没有阻塞的动脉。
他有胸痛，体重约185公斤。
现在您要做的就是运行这些数据
记录下来的每个决策树。
因此，第一个决策树表明
是的，这个人患有心脏病。
同样，您将运行此新患者的信息
通过您创建的每个决策树。
然后，根据您获得赞成和反对的票数，
你会把那个病人分类
患有或不患有心脏病。
您要做的就是跑
新病人的信息
通过您创建的所有决策树
在上一步中，
最后的输出是基于票数
每个班级都在进步。
好吧，我们说三个决策树
说是的，病人患有心脏病，
一棵决策树说不，没有。
因此，这意味着您显然将进行分类
患者患有心脏病
因为他们三个投票赞成。
它基于多数。
所以，我希望随机森林背后的概念
是可以理解的。
现在，下一步是您将评估
模型的效率。
现在，当我们创建引导程序数据集时
我们省略了一个条目样本。
这是我们遗漏的入门样本，
因为我们重复了一个样本两次。
如果您还记得引导数据集，
在这里，我们重复了两次输入，
而我们错过了其中一项。
我们错过了其中一项。
所以我们要做的是...
因此，为了评估模型，
我们将使用错过的数据条目。
现在在现实世界中，
大约不包括原始数据集的1/3
在引导数据集中。
因为有大量的数据
在现实世界中的问题
因此原始数据集的1/3
引导程序数据集中不包含该属性。
伙计们，样本数据集
您的引导数据集中没有
被称为袋外数据集，
因为基本上这是我们的现成数据集。
现在，现成的数据集
用于检查模型的准确性。
由于未创建模型
通过使用现成的数据集，
它会给我们很好的理解
该模型是否有效。
现在，现成的数据集
只不过是您的测试数据集。
记住，在机器学习中，有训练
和测试数据集。
因此，您的现成数据集
只不过是您的测试数据集。
这用于评估模型的效率。
所以最终，您可以衡量准确性
随机森林的比例
正确分类的袋装样本
因为袋外数据集
用于评估模型的效率。
这样就可以计算出准确度
通过了解多少个样本
还是这个现成的数据集
能够正确分类。
伙计们，这是关于
随机森林如何工作。
为了给您一个概述，
让我来指导您完成所有步骤。
所以基本上，这是我们的数据集，
我们要做的就是预测
患者是否患有心脏病。
因此，我们的第一步是创建引导数据集。
引导程序数据集只是随机选择的
来自原始数据集的观察结果，
而且你也可以有重复的值
在您的引导数据集中。
好的。
下一步是创建决策树
通过考虑随机的一组预测变量
对于每个决策树。
好的。
所以，第三步，您将回到第一步，
创建引导数据集。
同样，创建一个决策树。
因此，此迭代执行了数百次
直到您是多个决策树。
现在您已经创建了一个随机森林，
您将使用这个随机森林来预测结果。
因此，如果您得到一个新的数据点
你必须对它进行分类
进入两个类别之一
我们将运行这些新信息
通过所有决策树。
而你将只占大多数
从决策树中获得的输出
作为您的结果。
现在，为了评估模型的效率，
您将使用现成的样本数据集。
现在袋装样品基本上就是样品
不包含在您的引导数据集中的数据，
但是这个样品来了
伙计们，根据您的原始数据集
这不是您随机创建的。
该数据集位于您的原始数据集中，
只是没有提到
在您的引导数据集中。
因此，您将使用您的自购样本
为了计算精度
您的随机森林。
所以袋装样品的比例
正确分类将为您提供准确性
您的模型。
这就是随机森林的全部内容。
伙计们，我将讨论其他
分类算法，
然后我会向您展示一个演示
分类算法。
现在我们的下一个算法是朴素贝叶斯。
朴素贝叶斯再次成为
监督分类算法，
这是基于贝叶斯定理的。
现在贝叶斯定理基本上是
概率方法。
朴素贝叶斯背后的主要思想是
机器学习模型中的预测变量
彼此独立，
意味着模型的结果
取决于一组独立变量
彼此无关。
现在很多人可能会问为什么贝叶斯很幼稚
叫天真。
现在通常，当我告诉任何人为什么天真贝叶斯时，
他们一直问我为什么朴素贝叶斯被称为朴素。
所以在现实世界中，问题的预测变量
并不总是彼此独立的。
总是有一些关联
在自变量之间。
现在，因为朴素的贝叶斯会考虑每个预测变量
与模型中的任何其他变量无关，
它被称为天真。
这是朴素贝叶斯陈述的假设。
现在让我们了解一下数学
朴素贝叶斯算法的背后。
就像我提到的，朴素贝叶斯背后的原理
是贝叶斯定理，
也称为贝叶斯规则。
贝叶斯定理用于计算
条件概率
这不过是事件发生的可能性
基于有关过去事件的信息。
这是贝叶斯定理的数学方程。
现在，在这个等式中，LHS没什么
但是事件A发生的条件概率
给定事件B。
A的P不过是事件A发生的可能性
B的P是事件B的概率。
而且A的PB只是条件概率
给定事件A，则发生事件B。
现在，让我们尝试了解朴素贝叶斯的工作原理。
现在考虑这个数据集
大约一千500观察。
好的，这里有以下输出类。
我们有猫，鹦鹉或乌龟。
这些是我们的输出类，
并且预测变量是
游泳，翅膀，绿色和锋利的牙齿。
好的。
因此，基本上，您的类型是您的输出变量，
游泳，翅膀，绿色和锋利的牙齿
是您的预测变量。
您的输出变量具有三个类，
猫，鹦鹉和乌龟。
好的。
现在，我总结了我在屏幕上显示的这张表。
您可以看到的第一件事是猫类型
表明在500只猫中，
450可以游泳
意味着其中90％可以。
零只猫有翅膀，
零只猫是绿色的，
每500只猫中就有500只牙齿锋利。
好的。
现在，来到鹦鹉中，它说500头鹦鹉中有50头
对游泳有真正的价值。
伙计们，显然，这并不成立
在现实世界中。
我认为没有鹦鹉会游泳，
但是我刚刚创建了这个数据集
这样我们才能了解朴素的贝叶斯。
因此，这意味着10％的鹦鹉具有游泳的真正价值。
现在所有500只鹦鹉都有翅膀，
500只鹦鹉中有400只是绿色的，
零鹦鹉的牙齿很锋利。
来到乌龟课，
所有500只海龟都可以游泳。
零只乌龟有翅膀。
在500只乌龟中，它们是绿色的，
意味着20％的海龟是绿色的。
每500只海龟中就有50只牙齿锋利。
这就是我们从该数据集中了解的内容。
现在的问题是
我们在这里得到了我们的观察，
具有一定的游泳，翅膀，绿色和锋利的牙齿的价值。
我们需要做的是预测
不管动物是猫，鹦鹉还是乌龟，
基于这些值。
因此，这里的目标是预测它是否是猫，
鹦鹉或乌龟
基于所有这些定义的参数。
好的。
根据游泳，翅膀，绿色和锋利的牙齿的价值，
我们将了解动物是否是猫，
还是一只鹦鹉，还是一只乌龟。
因此，如果您观察一下观察结果，
游泳和绿色变量的值为true，
结果可以是任何一种类型。
它可以是猫，也可以是鹦鹉，
或者它可以是乌龟。
因此，为了检查动物是否是猫，
您要做的就是计算
每个步骤的条件概率。
所以在这里我们要做的是
我们需要计算出
这是一只猫，
因为它会游泳，并且是绿色。
首先，我们将计算它会游泳的可能性，
鉴于它是一只猫。
第二，它是绿色的概率
以及它是绿色的可能性，
鉴于它是一只猫，
然后我们将其相乘
可能是猫
除以游泳和绿色的机率。
好的。
所以，伙计们，我知道你们所有人都可以计算出概率。
这很简单。
因此，一旦您在此处计算出概率，
您将获得零的直接值。
好的，您将获得零值，
意味着这种动物绝对不是猫。
同样，如果您对鹦鹉这样做，
您计算条件概率，
您将获得0.0264的值
除以游泳逗号绿色的概率。
我们不知道这种可能性。
同样地，如果您检查这只乌龟，
您将获得0.066的概率
除以P游泳逗号为绿色。
好的。
现在，对于这些计算，分母是相同的。
分母的值是相同的
以及它的值和概率
乌龟比鹦鹉还大。
这样我们才能正确预测
该动物实际上是乌龟。
伙计们，这就是朴素贝叶斯的工作方式。
你基本上算
每个步骤的条件概率。
不管需要做什么分类
必须通过概率来计算。
有很多统计数据
天真的贝叶斯。
如果大家都想了解更多有关统计的信息
和概率，
我将在说明中保留一个链接。
大家也可以观看该视频。
那里我已经完全解释了
什么是条件概率
贝叶斯定理也很好地解释了。
因此，大家也都可以观看该视频。
除此之外，如果大家有任何疑问
关于任何算法，
请将其留在评论部分。
好的，我会解决您的疑问。
除此之外，我还将留下几个链接
说明框中的每种算法。
因为如果您想要更深入的了解
每个算法中，
您可以查看该内容。
由于这是完整的课程视频，
我必须涵盖所有主题，
我很难让你明白
每个主题的深度。
因此，我将在描述框中保留几个链接。
您也可以观看这些视频。
确保您检查概率
和统计视频。
现在，让我们继续查找下一个算法，
这是K最近邻算法。
现在，KNN基本上代表K最近的邻居，
再次是监督分类算法
将新数据点分类为目标类
或输出类，具体取决于功能
它的相邻数据点。
这就是为什么它被称为K最近邻居。
因此，让我们尝试以一个小的类比来理解KNN。
好吧，假设我们要一台机器
区分猫和狗的图像。
为此，我们必须输入数据集
猫和狗的图像，
我们必须训练我们的模型来检测动物
基于某些功能。
例如，尖尖的耳朵等功能
可用于识别猫。
同样，我们可以识别狗
基于他们的长耳朵。
所以开始数据集之后
在训练阶段
当向模型提供新图像时，
KNN算法将其分类
变成猫或狗，
取决于其功能的相似性。
好吧，假设一张新图片的耳朵尖，
它将将该图像分类为猫，
因为它类似于猫的图像，
因为它和它的邻居相似。
以这种方式，KNN算法对
基于数据点相似度的数据点
到他们相邻的数据点。
因此，这是一个小例子。
我们将在以后的幻灯片中讨论更多有关它的内容。
现在让我告诉你几个
KNN算法的特点。
所以，首先，我们知道
它是一种监督学习算法。
它使用标记的输入数据集
预测数据点的输出。
那也是最简单的之一
机器学习算法
而且可以轻松实现
针对各种问题。
另一个特点是它是非参数的，
意味着它没有任何假设。
例如，朴素贝叶斯是一个参数模型，
因为它假设所有自变量
彼此之间没有任何关系。
它有关于模型的假设。
K最近邻居没有这样的假设。
这就是为什么它被认为是非参数模型。
另一个功能是它是一种惰性算法。
现在，惰性算法基本上是任何算法
记住训练集，
而不是学习判别函数
从训练数据中
现在，即使KNN主要是分类算法，
它也可以用于回归案例。
所以KNN实际上既是分类
和回归算法。
但大多数情况下，您会看到它会被使用
关于四个分类问题。
关于最重要的功能
K最近的邻居是
它基于特征相似性
及其邻近的数据点。
你会明白的
在我要告诉你的例子中。
现在，在此图中，我们有两类数据。
我们有A类是正方形
和B类是三角形。
现在问题陈述是分配
新的输入数据点
到两个类别之一
通过使用KNN算法
因此，KNN算法的第一步
是定义K的值。
但是KNN算法中的K代表什么呢？
现在，K代表最近邻居的数量，
这就是为什么它的名字叫K最近的邻居。
现在，在此图中，我已将K的值定义为3。
这意味着算法
会考虑三个邻居
最接近新数据点的
为了确定新数据点的类别。
所以数据点之间最接近
通过使用度量来计算
例如欧几里得距离和曼哈顿距离，
我会在稍后解释。
因此我们的K等于3。
邻居包括两个正方形和一个三角形。
所以，如果我要对新数据点进行分类
基于K等于三，
那么应该将其分配给A类，对吗？
应该将其分配给正方形。
但是，如果K值设置为7，该怎么办。
这里我基本上是在告诉我的算法
寻找七个最近的邻居
并对新数据点进行分类
与班级最相似。
因此我们的K等于7。
邻居包括三个正方形和四个三角形。
因此，如果我要对新数据点进行分类
基于等于7的K，
然后将其分配给B级，
因为它的大多数邻居来自B类。
现在，这是我们很多人困惑的地方。
那么我们如何知道哪个K值最合适
对于K最近的邻居。
现在有几种方法
用于计算K值。
其中一种被称为肘法。
我们将讨论弯头方法
在接下来的幻灯片中。
所以现在让我告诉你
KNN背后涉及的措施。
好吧，有一个非常简单的数学
在K最近邻居算法后面。
所以我将与您讨论欧几里德距离。
现在在这个图中，我们必须测量距离
使用欧几里得距离在P一和P二之间
我敢肯定你们很多
已经知道欧几里得距离是多少。
这是我们在八年级或十年级学习的。
我不确定。
因此，您要做的就是提取X个。
所以公式基本上是x 2减去x 1
整个广场
加y减y 1表示整个平方，
其根源是欧几里得距离。
就这么简单。
所以使用欧几里得距离
作为检查数据点紧密度的一种方法。
因此，基本上，KNN使用欧几里得距离
检查新数据点的紧密度
和它的邻居。
伙计们，就是这么简单。
KNN使用简单的措施
为了解决非常复杂的问题。
好的，这就是为什么
KNN是这样一种常用算法。
即将支持向量机。
现在，这是我们的最后一个算法
根据分类算法。
现在，伙计们，不要因为这个名字而变得偏执。
实际支持向量机
是监督学习中最简单的算法之一。
好的，它基本上是用来对数据进行分类的
分成不同的类别。
这是一种分类算法。
现在，与大多数算法不同，
SVM利用称为超平面的东西
就像决策边界一样
在单独的类之间。
好的。
现在，SVM可用于生成多个
分离超平面
以便将数据分为多个部分
每个细分市场仅包含一种数据。
因此，SVM的一些功能包括
这是一种监督学习算法，
表示将要研究标记的训练数据。
另一个特点是它又
回归和分类算法。
即使SVM主要用于分类，
有一种被称为支持向量回归的东西。
那是有用的回归问题。
现在，SVM也可以用于对非线性数据进行分类
通过使用内核技巧。
非线性数据基本上就是数据
无法分离
通过使用一条直线。
我会更多地谈论这个
在接下来的幻灯片中。
现在让我们继续讨论SVM的工作原理。
现在再次，以使您了解
支持向量机的工作原理
你看一个小场景。
一秒钟，假装你拥有一个农场
而且你有问题。
你需要设置围栏
保护您的兔子免遭狼群袭击。
好吧，现在，您需要决定
您要在其中建栅栏的地方。
因此，解决问题的一种方法是使用
支持向量机。
因此，如果我这样做并且尝试绘制决策边界
在兔子和狼之间
它看起来像这样。
现在，您可以清楚地沿着这条线建立围栏。
简单来说，这就是
您的支持向量机可以工作。
它划出了决策边界，
这不过是一架超飞机
在任何两个类之间以将它们分开
或对其进行分类。
现在我知道你在想你怎么知道
在哪里绘制超平面。
SVM背后的基本原理
是画一个超平面
最好将这两个类别分开。
在我们的例子中，这两个类
是兔子和狼。
现在，在我们进一步前进之前，
让我们讨论不同的术语
支持向量机中存在的那些。
因此，这基本上是一个超平面。
这是最能分开的决策边界
这两个班。
现在，支持向量就是支持向量。
因此，当您从支持向量机开始时，
您首先绘制一个随机超平面。
然后检查距离
在超平面和最近的数据点之间
来自每个班级。
这些最接近的数据指向超平面
被称为支持向量。
现在，这两个数据点
最接近您的超飞机。
所以这些被称为支持向量
这就是名字的来源
支持向量机。
现在绘制超平面
基于这些支持向量。
最佳的超平面将是
距离最大的那个
从每个支持向量中
表示超平面之间的距离
支持向量必须最大。
因此，总而言之，SVM用于对数据进行分类
通过使用超平面，
这样超平面之间的距离
支持向量最大
现在，这个距离不过是余量。
现在让我们尝试解决一个问题。
假设我输入了一个新的数据点
我想画一个超平面
这样最好地将这两个类分开。
那我该怎么办？
我首先画一个超平面，
然后我检查超平面之间的距离
和支持向量。
所以，基本上在这里，我正在尝试检查
如果此超平面的边距最大。
但是，如果我像这样画出超飞机怎么办？
这种超平面的余量显然要更大
比前一个。
所以这是我的最佳超平面。
这就是你的理解
需要选择哪个超平面
因为您可以绘制多个超平面。
现在，最好的超飞机是
有一个最大的模块。
因此，这是我的最佳超平面。
到目前为止，这非常容易。
我们的数据是线性可分离的，
这意味着您可以画一条直线
将这两个类别分开。
但是，如果数据看起来像这样，您将怎么办？
您可能无法绘制这样的超平面。
它没有将两个类分开。
我们可以清楚地看到兔子和狼
在两个课程中。
现在正是非线性SVM的地方
进入图片。
好的，这就是内核技巧的全部内容。
现在，内核基本上是可以使用的东西
将数据转换为另一个维度
在数据类别之间有明确的划分余量。
因此，基本上是内核功能
为用户提供转换选项
非线性空间变成线性空间。
在此之前，如果您注意到
我们将数据绘制在二维空间上。
我们有x和y轴。
一个简单的技巧就是转换两个变量，
x和y进入新的特征空间，
其中涉及一个新变量z。
所以，基本上，我们在做什么
我们正在可视化数据吗
在三维空间上。
因此，当您将2D空间转换为3D空间时，
您可以清楚地看到分界线
在两类数据之间。
你可以清楚地在中间画一条线
分隔这两个数据集。
伙计们，这总结了整个想法
支持向量机。
支持向量机非常容易理解。
现在，这一切都是为了我们
监督学习算法。
现在，在我继续研究无监督学习算法之前，
我将运行一个演示。
我们将运行一个演示
为了了解所有分类算法
到目前为止，我们已经学习了。
在课程的早些时候，我们运行了一个演示
用于回归算法。
现在，我们将运行分类算法。
因此，足够的理论。
让我们打开Python，
让我们开始看看如何
这些分类算法起作用。
现在，我们要做的是
我们将实现多种分类算法
通过使用scikit-learn。
好吧，它是最受欢迎的游戏之一
适用于Python的机器学习工具。
现在我们将使用一个简单的数据集
训练分类器以区分的任务
在不同类型的水果之间。
该演示的目的是实现
多种分类算法
对于同一组问题。
因此，像往常一样，您首先要导入
您所有使用Python编写的库。
再次，伙计们，如果您不懂Python，
选中说明框，
我将在此处保留一个链接。
您也可以观看该视频。
接下来，我们正在做的是读取水果数据
以表格的形式。
您将其存储在一个名为fruit的变量中。
现在，如果您想查看数据的前几行，
让我们打印数据集中的前几个观察结果。
因此，这是我们的数据集。
这些是水果标签。
因此，我们的数据集中大约有四个成果。
我们有苹果，有普通话，
橙色和柠檬。
好的。
现在，水果标签只表示标签
苹果，这是一个。
普通话有两个。
同样，橙色标记为三个。
柠檬被标记为四个。
那么水果亚型基本上是
它所属的水果家族。
质量是水果的质量，
宽度，高度和颜色分数。
这些都是我们的预测变量。
我们必须确定水果的类型
取决于这些预测变量。
因此，首先，我们在这里看到了一些观察结果。
接下来，如果您想查看数据集的形状，
这就是它的样子。
大约有59个观察与
七个预测变量
是一，二，三，四，五，六和七。
我们总共有七个变量。
抱歉，不是预测变量。
这七个表示您的预测变量
和您的目标变量。
接下来，我只是向您展示我们拥有的四种水果
在我们的数据集中
这是苹果，橘子，柠檬和柠檬。
接下来，我只是按照水果的名称对水果进行分组。
好的。
因此，我们的数据集中有19个苹果。
我们有16个柠檬。
我们只有五个普通话，
我们有19个橘子。
即使普通话样本数量很少，
我们将不得不使用它，
因为现在我只是想让你
了解分类算法。
这些演示背后对我的主要目的
是为了让你了解
分类算法如何工作。
现在您可以做的是绘制图表
为了了解每种水果的出现频率。
好吧，我会告诉你情节的样子。
苹果和橙子的数量是相同的。
我想大约有19个苹果和橙子。
同样，这是柠檬的计数。
好的。
所以这是一个小的可视化。
伙计们，可视化实际上非常重要
在机器学习方面
因为你可以看到大部分的关系
并通过绘制图形进行相关。
你看不到那些相关性
通过运行代码和所有这些。
仅当您在图形上绘制不同的变量时，
您将了解它们之间的关系。
机器学习的主要任务之一
是可视化数据。
它确保您了解
数据之间的相关性。
接下来，我们要做的是绘制图表
称为箱形图的东西。
好的，箱形图基本上可以帮助您了解
您的数据分布。
让我运行箱形图
我会告诉你我的意思。
这就是我们的箱形图。
所以，箱形图基本上会给你
更清晰的分配思路
您的输入变量。
它主要用于探索性数据分析，
它代表数据的分布
及其可变性。
现在，箱形图包含
上四分位和下四分位。
因此，箱形图基本上跨越了四分位间距
或称为IQR的东西。
IQR只是您的第三个四分位数
从您的第一个四分位数中减去。
现在再次涉及统计和概率。
因此，我将在说明框中保留一个链接。
您可以观看该视频。
我已经解释了统计概率IQR
范围，以及所有这些。
因此，使用箱形图的主要原因之一
用于检测数据中的任何异常值。
由于箱形图跨越了IQR，
它检测到数据点
超出平均范围。
因此，如果您在彩色空间中看到，
大多数数据分布在IQR周围，
但是这里的数据分布不那么好。
高度分布也不是很好，
但是色彩空间分布得很好。
这就是箱形图向您显示的内容。
伙计们，这涉及很多数学。
所有这些，机器学习中的每个功能
涉及很多数学。
所以你知道有必要有一个很好的理解
统计，概率以及所有这些。
现在，接下来，我们要做的是绘制直方图。
直方图将基本显示
发生的频率。
让我将其绘制出来，然后我们将尝试理解。
因此，在这里您可以了解一些相关性。
好的，这些属性中的一些对是相关的。
例如，质量和宽度
它们以相同的范围相互关联。
因此，这表明相关性很高
和可预测的关系。
就像您查看图表一样，它们非常相似。
因此，对于每个预测变量，
我画了一个直方图。
对于每个输入数据，我们绘制了一个直方图。
现在，伙计们，就像我说的那样，
绘制图形非常重要
因为你了解很多相关性
你无法理解的
通过查看您的数据，
或仅对数据运行操作。
重复或仅对数据运行代码。
好的。
现在，接下来，我们在这里要做的就是
将数据集分为目标变量和预测变量。
因此，基本上，我已经创建了一组功能名称
其中有您的预测变量。
它具有质量，宽度，高度，颜色空间。
您已将其指定为X，
由于这是您的输入，
y是您的输出，即您的水果标签。
这将表明它是否是一个苹果，
橙色，柠檬等。
现在，我们将在此处执行的下一步
很明显。
同样，这是数据拼接。
现在，数据拼接
我确定你们所有人都知道这是什么。
它将您的数据分为训练和测试数据。
这就是我们在这里所做的。
接下来，我们将导入称为MinMaxScaler的东西。
缩放或规范化数据
在机器学习中非常重要。
现在，我看到这是因为您的原始数据
可能会非常有偏见。
因此，规范化数据非常重要。
现在，当我说规范化您的数据时，
所以如果你看质量的价值
如果您查看高度和颜色的值，
您会看到质量在数百和两位数之间，
而高度是个位数，
而且颜色分数甚至没有个位数。
因此，如果您的某些变量的范围很大，
你知道他们的规模很高，
就像是两位数还是三位数，
而其他变量是个位数或更少
那么您的输出将会非常有偏差。
显然，这将是非常有偏见的。
这就是为什么您必须扩展数据
所有这些价值
将具有相似的范围。
这正是缩放器功能的作用。
好的。
现在，由于我们已经划分了数据
进入培训和测试数据，
我们的下一步是建立模型。
所以，首先，我们将使用
逻辑回归算法。
我已经与大家讨论了逻辑回归。
这是一种分类算法
基本上是用来预测结果的
分类变量
因此，我们已经在Python中有了逻辑回归类。
所有您需要做的就是
为此功能提供一个实例，
这是这里的logreg。
我正在为这个实例配备训练数据集，
表示我正在运行算法
与训练数据集。
完成后，您可以计算
使用此功能的准确性。
所以我在这里计算精度
在训练数据集上
以及测试数据集。
好的，让我们看一下它的输出。
伙计们，请忽略此未来警告。
在Python中，警告被忽略。
现在，逻辑回归分类器的准确性
训练数据集上的数据大约占70％。
在训练数据集上，这是相当不错的。
但是，在对测试数据集进行分类时，
只有40％
这对分类器来说不是那么好。
再说一次，这取决于问题陈述，
针对哪个问题陈述
Logistic回归更合适。
接下来，我们将使用决策树执行相同的操作。
再说一次，我们只调用决策树函数，
我们将其与训练数据集配合起来，
我们将计算精度
训练的决策树
和测试数据集。
因此，如果您这样做是为了决策树
在训练数据集上，
您将获得100％的准确性。
但是在测试数据集上
您的准确率约为87％。
这是我之前与您讨论过的事情，
那个决策树很好
通过训练数据集
由于过拟合过程。
但是当涉及到分类时
测试数据集上的结果，
精度降低。
现在，与逻辑回归相比，这非常好。
对于此问题陈述，决策树
逻辑回归效果更好。
来到KNN分类器。
同样，您要做的就是
调用K邻居分类器，此函数。
而且您必须使它适合训练数据集。
如果您计算KNN分类器的准确性，
我们实际上得到了很好的准确性。
在训练数据集上
我们的准确率达到95％。
在测试数据集上，它是100％。
真的很好，因为我们的测试数据集
实际上达到了更高的准确性
而不是训练数据集上的
现在这一切都取决于K的值
您为KNN选择的
现在，我提到您使用肘部方法
在K最近邻居中选择K值。
下一节将讨论弯头方法。
因此，如果您还不了解这一点，请不要担心。
现在，我们还使用了朴素的贝叶斯分类器。
在这里，我们使用的是高斯朴素贝叶斯分类器。
高斯基本上是朴素贝叶斯分类器的一种。
我不会深入探讨
因为这只会延长我们的会话时间。
好的。
如果您想进一步了解这一点，
我将在说明框中保留一个链接。
您可以阅读有关朴素的贝叶斯分类器的所有信息。
现在，其背后的数学原理是相同的。
它使用朴素的贝叶斯，它使用贝叶斯定理本身。
再说一次，我们要叫这个班，
然后我们将运行数据，
训练数据就可以了。
因此，使用朴素的贝叶斯分类器，
我们的精度为0.86
在训练数据集上。
在测试数据集上，我们获得了67％的准确性。
好的。
现在让我们对支持向量机做同样的事情。
导入支持向量分类器。
而且我们正在将训练数据拟合到算法中。
我们的准确度约为61％
在训练数据集上占33％，在测试数据集上占33％。
伙计们，这种准确性以及所有
也取决于问题陈述。
取决于数据类型
支持向量机。
通常，SVM在大型数据集上非常好。
现在，由于这里的数据集很小，
就准确性而言，这是显而易见的，所以更少。
伙计们，这些是几个分类算法
我给你看过的
现在，因为我们的KNN分类器
对我们的数据集进行更准确的分类
我们将看看KNN分类器的含义。
好的
现在我们存储所有的预测值
在预测变量中。
现在为了向您展示准确性
KNN模型的
我们将向我们提供一种称为混淆矩阵的东西。
因此，混淆矩阵是一个表
通常用来形容
分类模型的性能。
所以，混淆矩阵实际上
代表表格形式
实际值与预测值之比。
因此，当您绘制混淆矩阵时
实际值与预测值
对于KNN分类器，
这就是混乱矩阵的样子。
现在，我们在这里有四行。
如果您看到的话，我们有四行。
第一行代表苹果，
第二，国语，第三代表柠檬，
第四，橘子。
因此，这四个值对应于零逗号零，
表示它能够正确分类
所有四个苹果。
好的。
这个值代表一个逗号1，
表示我们的分类器正确分类
这是普通话。
该矩阵是根据实际值绘制的
与预测值。
现在，如果您查看混淆矩阵的摘要，
我们会得到一些称为精确召回的信息，
f1得分和支持。
精度基本上是比率
正确预测的积极观察
总预测积极观察。
因此正确预测的积极观察有四个，
一共有四个苹果
在测试数据集中。
这就是我得到的精度为1的地方。
好的。
另一方面回想一下
是正确预测的积极观察的比率
在课堂上的所有观察。
同样，我们已经正确分类了四个苹果，
一共有四个苹果。
F1分数不过是加权平均值
您的精确度和召回率。
好的，您的支持基本上表示
数据点数
正确分类的
因此，在我们的KNN算法中，由于我们获得了100％的准确性，
我们所有的数据点均已正确分类。
因此，在15个中有15个被正确分类
因为我们有100％的准确性。
这就是您读取混淆矩阵的方式。
好的，您有四个重要措施，
精度，召回率，F1得分和支持。
F1分数只是比率或加权平均值
您的精确度和召回率。
所以精度基本上是正确预测的
对总预测的积极观察
积极的观察。
召回率是预测值的比率
对您所有观察的积极观察。
伙计们，就是演示了
分类算法
我们讨论回归算法
我们讨论了分类算法。
现在是时候谈论无监督
学习算法。
在无监督的学习算法下
可以尝试解决聚类问题。
最重要的聚类算法是
称为K均值聚类。
因此，我们将讨论K-means算法，
并向您展示一个演示我们将在哪里执行
聚类算法
您会看到它是如何实现的以解决问题。
现在，K-means算法的主要目标
是将相似的元素或数据点分组到一个群集中。
所以这基本上就是
对象被分类
对预定数量的组感兴趣，
因此它们尽可能地不相似
从一组到另一组，
但在每个组中尽可能相似。
现在我的意思是说您正在尝试集群
将该人群分为四个不同的组，
这样每个小组中都有人
指定的年龄范围。
假设第一组是18至22岁的人群。
同样，第二组在23到35之间。
第三组是36和39或类似的东西。
假设您正在尝试集群
根据年龄将他们分为不同的群体。
因此，对于此类问题，您可以利用
K均值聚类算法
聚类算法的主要应用之一
在定向营销中可见。
我不知道你们当中有多少人知道
有针对性的营销。
有针对性的营销是关于营销特定产品的一切
给特定的听众。
假设您要出售奇特的衣服
或一套精美的手提袋等等。
以及此类产品的完美受众
将是青少年。
可能是16到21或18岁左右的人。
这就是目标市场营销的全部内容。
您的产品面向特定受众
可能对此感兴趣。
这就是定向营销。
因此，K表示聚类主要用于目标市场。
许多电子商务网站，例如Amazon，Flipkart，eBay。
所有这些都利用聚类算法
以定位合适的受众
现在，让我们看看K-means聚类的工作原理。
现在，K均值中的K表示聚类数。
假设我给您一个包含20点的数据集，
并且您想将此数据集分为四个集群。
这意味着您的K将等于4。
所以K基本上代表簇数
在您的数据集中，
或您要形成的集群数。
首先定义数字K。
现在对于每个集群
您将选择一个质心。
因此，对于每个集群，
我们的数据集中有四个聚类。
对于每个集群
您将随机选择其中一个数据点
作为质心。
现在您要做的就是开始
计算与该质心的距离
到该群集中的每个其他点。
当您继续计算质心时
和质心之间的距离
和该集群中的其他数据点，
你的质心不断移动，
因为您正在尝试达到该群集的平均值。
每当您尝试达到群集的平均值时，
重心不断移动
因为质心不断收敛并且不断移动。
让我们尝试了解K-means的工作原理。
假设这个数据集是给我们的。
假设您获得了像这样的随机分数
并要求您提供K-means算法。
所以您的第一步将是
确定要创建的群集的数量。
假设我要创建三个不同的集群。
因此我的K值等于三。
下一步将提供
所有簇的质心。
首先，您会随机选择
三个数据点作为质心
您的三个不同的集群。
因此，基本上，这个红色表示一个簇的质心。
蓝色表示另一个群集的质心。
这个绿点表示质心
对于另一个集群。
现在，在K均值中会发生什么，
该算法将计算
每个质心的点的欧几里得距离
并将这些点分配给最近的群集。
现在既然我们在这里有三个质心，
现在你要做的是
你要计算距离
从每个数据点
对于所有质心，
然后您要检查哪个数据点
最接近哪个质心。
假设您的数据点A
最接近蓝色质心。
因此，您将分配数据点A
到蓝色集群。
所以根据距离
在质心和簇之间
您将形成三个不同的集群。
再一次，您将要计算质心
然后您将形成一个新的集群
来自更好的集群
因为您要重新计算所有这些质心。
基本上，您的质心代表
每个群集的均值。
所以你需要确保
您的意思实际上是每个簇的质心。
因此，您将继续重新计算该质心
直到质心的位置不变。
这意味着您的质心实际上是主要的
或该特定群集的平均值。
这就是K-means的工作方式。
非常简单
您要做的就是开始
通过定义K值。
之后，您必须随机
选择案例质心的数量。
然后，您将要计算平均距离
质心的每个数据点
然后您将分配一个数据点
到最接近的质心。
这就是K-means的工作方式。
这是一个非常简单的过程。
您要做的就是我们必须不断迭代，
并且您必须重新计算质心值
直到质心值不变，
直到获得恒定的质心值。
再次，伙计们，在K-均
您可以使用欧几里得等距离度量。
我已经讨论了欧几里得的含义。
因此，总结一下K均值的工作原理，
首先选择群集数。
然后，您选择一个质心。
之后，您计算距离
质心的对象。
然后将数据点分组到特定的群集中
根据他们的距离。
您必须继续计算质心
直到将每个数据点分配给最近的群集，
这就是K-means的工作方式。
现在让我们看一下弯头方法。
肘法主要是为了找出
针对特定问题的最佳k值。
所以实际上肘法很简单。
您首先计算平方误差的总和
对于K的某些值
现在平方误差的和基本上是
距离的平方和
在群集的每个成员及其质心之间。
因此，您基本上可以计算平方误差的总和
对于不同的K值。
例如，您可以考虑K值
分别为2、4、6、8、10、12。
考虑所有这些值，
计算这些值中每个值的平方误差总和。
现在，如果您绘制K值
针对您平方误差的总和
您会看到随着K的增大，误差减小。
这是因为群集数量增加。
如果群集数量增加，
这意味着失真会变小。
失真不断降低
随着群集数量的增加。
那是因为您拥有更多的集群，
每个质心与数据点之间的距离越近。
因此，随着您不断增加群集数量，
您的失真也会减少。
所以肘法的想法是选择K
失真突然减小。
因此，如果您在K等于4时查看此图，
失真急剧降低。
这样便可以找到K的值。
当您的失真突然下降时，
那是最佳的K值
您应该选择问题陈述。
因此，让我重复一下肘法背后的想法。
您将用图表显示您拥有的集群数量
与误差的平方和
该图基本上会给您失真。
现在失真显然会减少
如果增加群集数，
在这张图中会有一点
其中失真非常急剧地减小。
现在，您需要找出K的值，
那将是您最佳的K值。
这就是您选择K均值K值的方式
以及您的KNN K值。
伙计们，这就是肘法。
这非常简单，可以轻松实现。
现在我们来看一个小演示
其中涉及K均值。
这实际上是一个非常有趣的演示。
伙计们，一个有趣的应用程序
聚类的重点在于图像的颜色压缩。
例如，假设您有一张图片
上百万种颜色
在大多数图像中，大量颜色将不被使用，
和图像中的许多像素
将具有相似甚至相同的颜色。
现在图像中的颜色过多
使图像处理图像分析变得非常困难。
因此，这是经常应用K均值的领域。
它应用于图像分割，图像分析，
图像压缩等。
所以我们要在这个演示中做些什么
是我们要使用图像吗
从scikit-learn数据集中获取。
好的，这是一个预先构建的图像，
您将需要为此安装枕头套件。
我们将使用图像
形成scikit-learn数据集模块。
因此，我们将像往常一样导入库，
我们将载入我们作为中国的形象。
图片是china.jpg，
我们将其加载到名为china的变量中。
因此，如果您想看看我们形象的形状，
您可以运行此命令。
因此，我们将获得三维值。
因此，我们得到了427个逗号和640个逗号三个。
现在这基本上是三维数组
大小，高度，宽度和RGB。
它包含红色，蓝色，绿色的贡献，
介于0到255之间的整数。
因此，您的像素值介于0到255之间，
我认为零代表您的黑色，
如果我没记错的话，255代表白色。
基本上，这就是该数组形状所表示的。
现在我们可以查看这组像素的一种方法
就像三维色彩空间中的点云一样。
因此，我们要做的就是重塑数据
并重新调整颜色，
使它们位于零和一之间。
因此，此输出现在将是一个二维数组。
因此，基本上，我们可以可视化这些像素
在这个色彩空间中。
现在我们要做的是尝试
并绘制像素。
我们有一个非常庞大的数据集
其中包含约1600万种可能的颜色。
因此，这表示非常大的数据集。
所以，让我向您展示一下它的外观。
我们有红色对绿色和红色对蓝色。
这些是我们的RGB值，
我们可以有大约一千六百万
颜色的组合。
数据集太大或我们无法计算。
所以我们要做的是减少这1600万种颜色
到只有16种颜色
我们可以使用K-means聚类来做到这一点，
因为我们可以将相似的颜色分为相似的组。
所以这正是我们导入K-means的地方。
现在，这里要注意的一件事是
因为我们要处理非常大的数据集，
我们将使用MinibatchKMeans。
这对数据的子集起作用
以便更快，更准确地计算结果，
就像K-means算法一样
因为我告诉你这个数据集确实很大。
即使这是一张图片，
像素组合的数量可以达到1600万，
很多。
现在每个像素都被视为一个数据点
当您考虑图像时。
当您有数据点和数据值时，
那不一样。
在启动图像进行图像分类时
或图像分割
每个像素都被考虑。
因此，基本上，您正在构建矩阵
所有这些像素值。
因此拥有1600万像素是一个非常庞大的数据集。
因此，由于这个原因，我们将使用MinibatchKMeans。
它与K均值非常相似。
唯一的区别是它将运行
数据的子集。
因为数据集太大，所以将对子集进行操作。
因此，基本上，我们正在使用K均值
为了将这1600万
颜色组合仅为16种颜色。
所以基本上，我们将形成16个集群
在此数据集中。
现在，结果是重新着色原始像素
每个像素都被分配了颜色
最接近的群集中心。
假设有几种颜色
非常接近绿色
因此，我们将所有这些相似的颜色聚类
成为一个集群。
我们将继续这样做，直到获得16个群集。
因此，显然，要做到这一点，我们将使用
聚类方法，K-均值。
让我向您展示输出的样子。
所以，基本上，这是原始图像
从scikit数据集中，
这是16色分割的图像。
基本上，我们这里只有16种颜色。
在这里，我们可以有大约1600万种颜色。
这里只有16种颜色。
如果不能，也只能看到特定的颜色。
现在显然这里有很多失真，
但这就是学习图像的方式。
删除图像中所有多余的对比度。
您尝试减少像素
尽可能减少数据量。
您拥有的像素越多，
对你来说越难
研究图像进行分析。
现在，显然有一些细节
在这里迷失了。
但总体而言，该图像仍可识别。
所以这里，基本上，我们已经压缩了
压缩系数约为一百万，
因为每个集群都会有
一百万个数据点
或其中的像素值，或其中的像素。
现在，这是K均值的有趣应用。
其实有更好的方法
您可以压缩图像上的信息。
因此，基本上，我向您展示了此示例
因为我要你了解
K-means算法的强大功能。
您可以将庞大的数据集聚类
变成16种颜色
最初有1600万，
现在您可以将其群集为16种颜色。
各位，K-means扮演着非常重要的角色
在计算机视觉图像处理中
对象检测等。
这是非常重要的算法
在检测物体时。
所以在自动驾驶汽车和所有
可以利用这种算法。
伙计们，这全都是无监督的学习
和监督学习。
现在，这是机器学习的最后一种类型，
这是强化学习。
现在这实际上是
机器学习中非常有趣的一部分，
与有监督的和无监督的有很大的不同。
因此，我们将讨论所有概念
参与强化学习的课程。
还有强化学习
比较先进。
当我说高级时，我的意思是它已经被使用了
在无人驾驶汽车等应用中
并且也是
很多深度学习应用程序
例如AlphaGo等。
所以，强化学习
它本身有一个不同的概念。
因此，我们将讨论其中的所有概念。
所以只是整理您的信息
关于强化学习，
强化学习是机器学习的一部分
将代理放置在未知环境中的地方，
他学习了在这种环境下的行为
通过执行某些动作并观察奖励
从这些动作中得到的。
强化学习就是关于服用
采取适当的行动以使报酬最大化
在特定情况下。
现在让我们了解强化学习
打个比方。
让我们考虑一个场景
婴儿正在学习如何走路。
这种情况可以通过两种不同的方式进行。
首先是宝宝开始走路
它变成了糖果。
由于糖果是最终目标，
宝宝很开心，很积极。
意思是，婴儿很开心
并获得了积极的回报。
现在，第二种方法可以进入
婴儿开始走路了
但是由于两者之间的一些障碍而落下。
真的好可爱
因此，婴儿受到了伤害，因此无法得到糖果。
这是负面的，因为婴儿很难过
它会收到负面奖励。
就像人类如何从错误中学习
通过反复试验，
强化学习也相似。
在这里，我们有一个代理商，
在这种情况下，代理是婴儿，
奖励是糖果
之间有许多障碍。
该代理商应该找到
获得奖励的最佳途径。
这是强化学习的主要目标。
现在强化学习过程
有两个重要组成部分。
它被称为代理
以及所谓的环境。
现在的环境是
代理正在执行的设置，
而代理代表
强化学习算法。
整个强化学习基本上是主体。
环境就是环境
在其中放置代理，
这是设置
其中所述试剂采取各种作用。
强化学习过程
在环境向代理发送状态时开始。
现在，代理根据其所做的观察，
它会针对该状态采取措施。
现在，环境将发送下一个状态
并将相应的奖励返还给代理商。
现在，代理将更新其知识
环境带来的回报
评估其最后行动。
循环一直持续到环境
发送终端状态
这意味着代理已完成
它的所有任务。
为了更好地理解这一点，
假设我们的经纪人正在打反恐精英。
强化学习过程
可以分为几个步骤。
第一步是强化学习代理，
基本上就是玩家
他从环境中收集了一个状态，这是零。
因此，每当您在玩《反恐精英》时，
您从零阶段或第一阶段开始。
您从第一级开始。
现在，基于这种状态，S naught，
强化学习代理
会采取行动的，一无所有。
伙计们，行动可以是导致结果的任何事情。
现在，如果座席在游戏中向左或向右移动，
也被认为是一项行动。
因此，最初，动作将是随机的，
因为该代理对环境一无所知。
假设您正在玩《反恐精英》
首次。
你不知道怎么玩，
这样您就可以随机开始。
你随随便便
您认为正确的任何动作。
现在环境正处于第一阶段。
经过零阶段之后
环境将进入第一阶段。
一旦环境逐步更新，
强化学习代理
将从环境中获得奖励R one。
奖励可以是其他积分
否则您将获得其他武器
在玩《反恐精英》时。
现在，这种强化学习循环将继续
直到特工死亡或到达目的地，
并且连续输出
国家行动和奖励的序列。
这正是强化学习的工作原理。
首先是将代理置于环境中，
代理商会随机服用
在零状态下的某些动作。
采取行动后，视其行动而定，
他要么获得奖励
然后进入第一状态，
否则他要么死掉，然后回到原来的状态。
所以这将继续发生
直到特工到达最后一个阶段，
或者他去世或到达目的地。
这正是强化学习的工作原理。
现在强化学习是逻辑
如今，很多游戏都落后了。
它已在Dota等各种游戏中实现。
玩Dota的许多人可能都知道这一点。
现在让我们谈谈几个
强化学习定义或术语。
因此，首先，我们有一个称为代理的东西。
就像我提到的，代理商
是强化学习算法
从反复试验中学到的东西。
代理商是采取诸如
例如反恐精英士兵
在游戏中导航，
向右，向左等等。
代理人正在采取措施吗？
环境是因为世界
代理通过其移动。
现在基本上是环境
将代理的当前状态和操作作为输入，
并返回代理商的奖励
及其下一个状态作为输出。
接下来，我们有一个称为动作的东西。
座席可以采取的所有可能步骤
被视为一项行动。
接下来，我们称之为状态。
现在环境返回的当前条件
被称为国家。
奖励是环境的即时回报
通知最后的行动
强化学习代理。
所有这些术语都是可以理解的。
接下来，我们有一个称为策略的东西。
现在，策略是代理使用的方法
确定下一步行动
根据当前状态。
政策基本上是方法
在环境中随身携带。
接下来，我们有一个称为价值的东西。
现在，预期的长期收益会有所折扣，
相对于短期奖励R，
被称为价值。
现在，诸如折扣和价值之类的术语，
我将在接下来的幻灯片中进行讨论。
动作值也非常类似于该值，
除了需要额外的参数
被称为当前动作。
不用担心动作和Q值。
我们将在接下来的幻灯片中讨论所有这些。
因此，请熟悉这些术语，
因为在本次会议中我们会看到很多。
所以，在我们进一步前进之前，
让我们再讨论几个
强化学习观念。
现在我们有了所谓的奖励最大化。
因此，如果您尚未意识到这一点，
强化学习代理的基本目标
是使报告最大化。
这是怎么发生的？
让我们尝试更详细地了解这一点。
因此，代理基本上是基于理论
奖励最大化。
这就是为什么必须对代理商进行培训的原因
以他采取最佳行动的方式，
这样报酬是最大的。
现在让我解释一下奖励最大化
一个小例子。
现在在此图中，您可以看到有一只狐狸，
有肉，有老虎。
我们的强化学习代理是狐狸。
他的最终目标是吃最大量的肉
被老虎吃掉之前
现在因为狐狸是一个非常聪明的人，
他吃了离他更近的肉，
而不是靠近老虎的肉，
因为他越接近老虎，
他被杀的机会越高。
这很明显。
即使老虎附近的奖励是更大的肉块，
那会打折的。
这正是折扣。
我们在上一张幻灯片中进行了讨论。
这样做是由于不确定因素
老虎可能会杀死狐狸。
现在，接下来要了解的是折扣如何
奖励的作品。
现在，为了了解折扣
我们定义了称为gamma的折现率。
伽玛值介于零和一之间。
伽玛越小，
折扣越大等等。
现在不用担心这些概念，
伽玛等等。
我们将在今天的实际演示中看到这一点。
因此，让我们继续讨论另一个概念
被称为勘探与开采权衡。
伙计们，在那之前，我希望你们所有人都明白
奖励最大化。
基本上，强化学习的主要目的
是为了最大化代理商所能获得的回报。
现在，最重要的概念之一
在强化学习中
勘探与开发的权衡。
现在，顾名思义，探索
这是关于探索和捕捉
有关环境的更多信息。
另一方面，剥削是关于
使用已知的利用信息
提高奖励。
现在考虑相同的例子
我们之前看到的。
所以这里的狐狸只吃肉块
离他很近。
他不吃更大的肉块
在顶部，
即使更大的肉块
会给他更多的回报。
因此，如果狐狸只专注于最接近的奖励，
他永远也不会吃到大块的肉。
此过程称为开发。
但是如果狐狸决定探索一点，
它可以找到更大的回报，
这是一大块肉。
这就是所谓的探索。
这就是剥削之间的区别
和探索。
代理商探索环境总是最好的，
试图找出一种方法，我们可以得到
最大奖励数。
现在让我们讨论另一个重要的概念
在强化学习中
这就是所谓的马尔可夫决策过程。
基本上，映射的数学方法
强化学习的解决方案
被称为马尔可夫的决策过程。
这是强化学习背后的数学。
现在，以某种方式，强化学习的目的
是解决马尔可夫决策过程的方法。
现在为了得到解决方案，
有一组参数
在马尔可夫的决策过程中。
有一组动作A，
有一组状态S
奖励R，策略pi和值V。
另外，这张图片代表
强化学习的工作原理。
有经纪人
代理对环境采取一些措施。
反过来，环境将奖励代理商，
它将给他下一个状态。
强化学习就是这样
所以总的来说，
马尔可夫决策过程中会发生什么
强化学习是
代理必须采取行动A
从开始状态过渡
到最终状态S。
在执行此操作时，代理将获得一些奖励R
对于他采取的每项行动。
现在，代理采取的一系列行动
确定政策和收集的奖励
寻找价值。
这里的主要目标是最大化回报
通过选择最佳策略。
所以您将选择最佳的方法
为了获得最大的回报。
这是马尔可夫决策过程的主要目标。
要了解马尔可夫的决策过程，
让我们看一个小例子。
我确定你们所有人都已经知道
关于最短路径的问题。
我们在数学上都有这样的问题和概念
找到最短的路径。
现在，在此图上考虑此表示。
在这里，我们的目标是找到最短的路径
在两个节点之间。
假设我们要寻找
节点A与节点D之间的最短路径。
如您所见，现在每个边缘
有一个与之相关的数字。
该数字表示遍历的成本
通过那个边缘。
所以我们需要选择一种策略，从A到D
以使我们的成本最小的方式。
所以在这个问题中，状态集是
由节点A，B，C，D表示。
动作是从一个节点遍历到另一个节点。
举例来说，如果您要使用AC，
有一个动作。
C到B是一个动作。
B到D是另一个动作。
奖励是每个边所代表的成本。
策略是到达目的地的路径。
因此，我们需要确保选择政策
以使我们的成本最小的方式。
因此，您可以做的是从节点A开始，
然后您可以采取一些步骤到达目的地。
最初，只有下一个可能的节点对您可见。
因此，您可以从A转到B
或者您可以去C。
所以如果你遵循贪婪的方法
并采取最佳步骤
选择A到C，
而不是选择A到B到C。
现在您在节点C上
并且您想遍历到节点D。
同样，您必须非常明智地选择自己的道路。
因此，如果您从A穿越到C，
从C到B，从B到D，
您的成本是免得的。
但是，如果您从A穿越到C再到D，
您的费用实际上会增加。
现在您需要选择一项政策
这样可以将您的成本降到最低。
举例来说，代理商
选择A到C到D。
它到达节点C，然后直接选择D。
现在我们的代理商在这个问题上遵循的政策
是剥削型的
因为我们没有探索其他说明。
我们只选择了三个节点，然后遍历了它们。
我们遵循的政策实际上并没有
最佳政策。
我们必须始终探索更多
找出最佳政策。
即使其他节点没有给我们更多奖励
或实际上正在增加我们的成本，
我们仍然需要探索和发现
如果这些路径实际上更好。
该政策实际上更好。
我们在这里实现的方法
被称为基于策略的学习。
现在的目的是找到最佳政策
在所有可能的政策中。
因此，除了基于政策的
我们也有基于价值的方法
和基于行动的方法。
基于价值的重点在于最大化回报。
在行动基础上，我们强调
代理商采取的每项行动。
现在需要注意的一点是
所有这些学习方法都有一个简单的最终目标。
最终目标是有效地指导代理商
通过环境，
并获得最多的奖励。
所以这很容易理解
马尔可夫的决策过程
开采与勘探权衡，
我们还讨论了
不同的强化学习定义。
我希望所有这些都是可以理解的。
现在让我们继续了解
一种称为Q学习算法的算法。
所以，伙计们，Q学习是最重要的算法之一
在强化学习中。
我们将讨论这个算法
在一个小例子的帮助下。
我们将研究这个例子，
然后我们将使用Python实现相同的示例，
我们将看看它是如何工作的。
因此，这就是我们现在的演示的外观。
现在的问题是要安排一个代理商
在任何编号的房间
零，一，二，三和四。
目标是给代理商
到达建筑物外
这是五号房。
所以，基本上，这个零，一，二，三，四
代表建筑物
五个代表建筑物外部的房间。
现在，所有这些房间都通过这些连接。
现在，您可以看到这些房间之间的缝隙
基本上就是那些
每个房间的编号从零到四。
大楼外
可以说是一个大房间
这是五号房。
现在，如果您注意到此图，
一号门和四号门
直接通向五号房。
从一开始，您可以直接转到五，
并且从四，您也可以直接转到五。
但是，如果您想从2号房转到5号房，
那你先去三号房
一号房，然后五号房。
因此，这些是间接链接。
直接链接来自一号房和四号房。
因此，我希望大家对问题陈述都清楚。
您基本上将拥有
强化学习代理
然后代理商必须遍历所有房间
以这样的方式，他到达了5号房间。
为了解决这个问题，
首先，我们要做的是代表房间
在图上。
现在每个房间都表示为阳极
连接这些节点的链接就是门。
好了，所以我们有节点1到5，
以及这些节点之间的链接
代表门。
因此，例如，如果您在此处查看此图，
您会看到直接连接
从一到五
这意味着您可以直接从一号房出发
达到您的目标，那就是五号房。
因此，如果您想从三号房间转到五号房间，
你可以去一号房
然后转到五
或者你可以从三号房到四号房
然后到五个。
所以，伙计们，记住，最终目标是达到5号房间。
现在将房间号5设置为目标状态，
我们要做的是关联奖励值
到每个门。
立即通往目标的门
将立即获得100的奖励。
因此，基本上，一到五个将获得一百元的奖励，
四到五点也有一百点的奖励。
现在其他不直接的门
连接到目标房间
奖励为零
因为它们不会直接导致我们达到该目标。
假设您将代理人放置在第三房间。
所以要从三号房变成一号房
代理将获得零奖励。
从一到五
代理商将获得一百元的奖励。
现在因为门是双向的，
这两个箭头分配给每个房间。
您会看到一个箭头指向房间
还有一个来自房间。
因此，每个箭头都包含即时奖励
如图所示。
现在当然是五号房
会以一百元的报酬返回自己
以及与目标室的所有其他直接连接
将带来一百元的奖励。
现在在Q学习中，目标是达到状态
最高的奖励。
这样，如果代理商到达目标，
它会永远在那里。
因此，我希望大家都对这张图清楚。
现在，Q学习中的术语
包括状态和动作这两个术语。
好的，您的房间基本上代表了状态。
因此，如果您处于第二状态，
这基本上意味着您在第二间房间。
现在动作基本上就是代理的时刻
从一个房间到另一个房间。
假设您要从第二号房间出发
到三号房
这基本上是一个动作。
现在让我们考虑更多示例。
假设您将代理商放在第二号房间
他必须达到目标。
所以你的初始状态将是第二状态
或第二间房间。
然后从第二号房间转到第三号房间，
这是状态三。
然后从状态3开始，您可以返回状态2
或进入状态一或状态四。
如果您进入状态四，则可以直接从那里进入
您的目标房间，五个。
这就是代理要遍历的方式。
现在，为了描述您将获得的奖励，
我们将创建一个称为奖励矩阵的矩阵。
好的，这由R表示
或也称为R矩阵。
现在，此表中的负号表示空值。
基本上就是没有链接的地方
表示为负的节点之间。
现在零与零之间没有任何联系。
这就是为什么它是负数。
现在，如果您查看此图，
从零到一没有直接联系。
这就是为什么我也将负号放在这里。
但是，如果您查看零逗号四，
我们这里的值为零，
这意味着您可以从零遍历到四个，
但您的报酬将为零，
因为四个不是您的目标状态。
但是，如果您查看矩阵，
看一个逗号五。
在五个逗号中，我们的奖励值为100。
这是因为你可以直接去
从一号房到五号房
五是最终目标。
这就是为什么我们分配了一百分的奖励。
同样，对于四个逗号5，
我们有一百个奖励。
对于五个逗号五个，
我们有一百个奖励。
零基本上代表其他链接，
但它们为零，因为它们不会导致最终目标。
因此，我希望大家都了解奖励矩阵。
非常简单
现在，在我们进一步前进之前，
我们将创建另一个矩阵
称为公平Q矩阵。
现在Q矩阵基本上代表了记忆
代理从经验中学到的东西。
Q矩阵的规则
将代表代理的当前状态。
这些列将代表下一个可能的操作
导致下一个状态
和计算Q矩阵的公式
这个公式对吗？
这是Q状态逗号动作
R状态逗号动作，
这不过是奖励矩阵。
然后我们有一个称为Gamma参数的参数，
我将在稍后解释。
然后我们将其乘以最大值
Q下一个状态逗号的所有动作。
现在不用担心，如果您不了解此公式。
我将用一个小例子对此进行解释。
现在，让我们了解什么是Gamma参数。
因此，基本上，Gamma的价值
将介于零和一之间。
如果伽玛接近零，
这意味着代理商将倾向于考虑
只有立即的奖励。
现在，如果伽玛值接近一个，
这意味着代理商将考虑未来的奖励
重量更大。
现在我想说的是
如果伽玛接近一个，
那么我们将执行被称为剥削的行为。
希望大家都记得有什么剥削
和勘探之间的权衡是。
因此，如果您的伽玛值接近零，
这意味着代理
不会去探索环境。
相反，它只会选择几个州，
它将遍历这些状态。
但是，如果您的gamma参数更接近1，
这意味着代理将遍历
在所有可能的状态下，
表示它将进行探索，
不剥削。
因此，您的gamma参数越接近1，
您的探员将探索的越多。
这正是Gamma参数。
如果您想获得最佳政策，
选择Gamma参数总是很实际的
接近一个。
我们希望代理商探索环境
越多越好
这样它才能获得最佳政策和最大回报。
我希望这很清楚。
现在让我告诉你
Q学习算法是逐步进行的。
因此，您开始进行Q学习算法
通过设置Gamma参数
而环境在矩阵R中得到回报。
好的，首先，您将设置这两个值。
我们已经计算了奖励矩阵。
我们需要设置Gamma参数。
接下来，将矩阵Q初始化为零。
现在为什么要这样做？
现在，如果您还记得，我说
Q矩阵基本上是代理的内存。
最初，很明显，
代理对环境没有记忆。
对环境来说是新的
然后将它随机放置在任何地方。
因此它的内存为零。
这就是为什么将矩阵Q初始化为零的原因。
之后，您将选择一个随机的初始状态，
然后您将代理置于初始状态。
然后，您可以将此初始状态设置为当前状态。
现在，从当前状态中，您将选择一些操作
这将带您进入下一个状态。
然后，您将基本获得最大Q值
对于下一个状态，
基于我们采取的所有可能措施。
然后，您将继续计算偏斜值
直到达到目标状态。
现在可能有点混乱，
因此，让我们通过一个小例子来了解整个过程。
假设首先，您要开始
设置您的Gamma参数。
所以我将我的Gamma参数设置为0.8
这非常接近一个。
这意味着我们的代理商将探索环境
越多越好。
而且，我将初始状态设置为房间1。
意思是，我处于第一状态，或者我处于第一房间。
因此，基本上，您的代理将在第一房间。
下一步是将Q矩阵初始化为零矩阵。
因此，这是一个Q矩阵。
您会看到所有设置为零，
因为该代理完全没有内存。
他没有遍历任何节点，
所以他没有记忆
现在，由于代理人在第一房间
他可以去三号房
或者他可以去五号房间。
让我们随机选择5号房间。
所以从五号房开始
您将要计算最大Q值
基于所有可能的动作的下一个状态。
因此，五号房的所有可能动作
是一，四和五。
因此，基本上，从Q一逗号5开始遍历，
这就是为什么我在这里加一个逗号5
状态逗号动作。
您的奖励矩阵将具有R 1个逗号5。
现在R一逗号五基本上是一百。
这就是为什么我把一百放在这里。
现在您的逗号参数为0.8。
所以，伙计们，我在这里做什么
我只是用这个公式替换值。
因此，让我重复一下整个过程。
Q状态逗号动作。
所以你处于第一状态，对吗？
然后您要做的就是去五号房间。
因此，您的Q状态逗号操作是一个逗号5。
同样，您的奖励矩阵R一逗号五为100。
所以这是你要放的一百
加上您的Gamma参数。
您的Gamma参数是0.8。
然后，您将要计算最大Q值
基于所有可能的动作的下一个状态。
因此，让我们看看下一个状态。
从五号房，您可以选择其中一个。
您可以转到4，也可以转到5。
因此，您的操作是五个逗号1，五个逗号4，
和五个逗号五个。
这正是我在这里提到的。
Q 5逗号1，Q 5逗号4和Q 5逗号5。
您基本上是将所有接下来的可能动作
来自五号州
从这里，您将计算出最大值
您为每个这些获得的Q值。
现在您的Q值为零，
因为最初，您的Q矩阵设置为零。
因此，对于Q五个逗号1，您将得到零，
5个逗号4和5个逗号5。
这就是为什么您将得到0.8和零的原因，
因此，您的Q一逗号5变为一百。
这一百个来自R一逗号五。
希望大家都明白这一点。
接下来，您要做的就是更新
Q矩阵中的这个一个逗号五个值，
因为您只计算了Q 1逗号5。
所以我在这里更新了它。
现在，下一集
我们将从随机选择的初始状态开始。
再说一次，我们随机选择了状态3。
现在从三号房开始
您可以去一号，二号或四号房。
让我们随机选择一号房间。
现在，从五号房开始
您将计算最大Q值
用于下一步可能的操作。
因此，我们为此计算Q公式。
因此，您的Q状态逗号动作变为三个逗号之一，
因为你处于第三状态
然后您要去一号房。
因此，您的R三个逗号之一，
让我们看看R三个逗号是什么。
R三个逗号一为零。
所以你要把零放在这里
加上您的Gamma参数0.8
然后您将检查下一个可能的操作
从一号房开始
然后您将选择最大值
从这两个。
所以Q 1逗号3和Q 1逗号5
表示您从第一号房间可能要采取的行动。
因此，Q一逗号三为零，
但是Q一逗号五就是一百。
因此，我们只是在上一步中计算了这一百。
因此，从零到一百
最大值是一百
所以你要选择一百。
现在0.8成100就是80。
同样，您的Q矩阵也会更新。
您在这里看到80。
因此，基本上，您正在做的是在执行操作时，
您正在更新您的Q值，
您只是在计算每一步的Q值，
你把它放在你的Q矩阵中
让您的经纪人记住这一点，
好的，当我从一号房间转到五号房间时，
我的Q值为100。
同样，三对一的Q值也为80。
所以基本上，这个Q矩阵代表
代理商的记忆。
希望大家对此都清楚。
所以基本上，我们要做的是
是我们要继续迭代这个循环
直到我们经历了所有可能的状态
并达到目标状态5。
另外，我们这里的主要目的是找到最优化的政策
到五号房。
现在，让我们使用Python实现完全相同的事情。
所以这是很多理论。
现在，让我们了解一下这是如何实际完成的。
好了，因此我们首先导入您的库。
我们将在这里使用NumPy库。
之后，我们将导入R矩阵。
我们已经创建了R矩阵。
这是我给你展示的确切矩阵
几分钟前。
所以我创建了一个名为R的矩阵
而且我基本上已经将所有奖励都存储在其中了。
如果要查看R矩阵，请让我打印。
因此，基本上，这是您的R矩阵。
如果您还记得节点1到5，
你有一百点的报酬。
节点4到5，您将获得100的奖励，
五到五，你有一百分的报酬，
因为所有这些节点直接将我们引向了回报。
正确？
接下来，我们要做的是创建一个Q矩阵
基本上是六进六出的矩阵
代表所有状态，零到五个。
而且这个矩阵基本上是零。
之后，我们要设置Gamma参数。
伙计们，您可以使用此代码，
而且您知道可以更改逗号参数
到0.7或0.9
并查看代理商会探索多少
或者您是否进行剥削。
在这里，我将Gamma参数设置为0.8
这是一个相当不错的数字。
现在，我正在将初始状态设置为1。
您可以随机选择此状态
根据您的需要。
我将初始状态设置为1。
现在，这个功能基本上会给我
从我的初始状态开始的所有可用操作。
由于我将初始状态设为1，
它会给我所有可能的操作。
我在这里做的是因为我的初始状态是1，
我正在检查第一行，
该值等于零或大于零。
这些表示我可以执行的操作。
因此，请看我们的第一行。
在这里，我们有一个零，在这里有一百。
这是一个逗号四，这是一个逗号五。
因此，如果您查看第一行，
由于我已将初始状态选择为一种，
我们将考虑第一行。
好吧，我正在做的是第一行
我有两个等于零的数字
或大于零。
这些表示我可能采取的行动。
一个逗号三的值为零
一个逗号5的值是100，
这意味着该代理
可以去三号房
或者可以去五号房。
我想说的是一号房
你基本上可以去三号房
或五号房。
这正是我在这里编码的内容。
如果您还记得奖励矩阵，
从一个您可以直接穿越到三号房间
和五号房直接。
好的，那正是我提到的
在我的代码在这里。
所以这基本上会给我可用的操作
从我目前的状态来看。
现在，一旦我移至下一个状态，
我需要检查该状态下的可用操作。
我在这里所做的基本上就是这个。
如果您还记得，
从一号房，我们可以转到三号和五号，对吗？
从三到五
我将随机选择状态。
从那个状态，我需要找出
所有可能的动作。
这正是我在这里所做的。
好的。
现在这将为我随机选择一个动作
从我所有可用的动作中
接下来，我们需要更新我们的Q矩阵，
根据我们采取的行动，
如果你记得。
这正是此更新功能的四个要素。
伙计们，这整个都是用来计算Q值的。
我希望大家都记得这个公式，
这是Q状态逗号动作，
R状态逗号动作加上Gamma变成最大值。
最大值基本上会给我最大值
在所有可能的动作中。
我基本上是在计算这个公式。
现在，这将仅更新Q矩阵。
进入训练阶段
我们要做的是设定一个范围。
在这里，我设定了10,000个范围
表示我的代理将执行10,000次迭代。
您可以根据自己的需要进行设置，
10,000次迭代是一个非常庞大的数字。
所以，基本上，我的经纪人要经历
10,000次可能的迭代
为了找到最好的政策。
现在，这与我们之前所做的完全相同。
我们正在设置当前状态，
然后我们选择可用的操作
从当前状态开始。
从那里，我们将随机选择一个动作。
在这里我们将计算一个Q值
然后我们将更新矩阵中的Q值。
好的。
在这里我什么都不做，
但是我正在打印经过训练的Q矩阵。
这是训练阶段。
现在基本上是测试阶段
您将随机选择当前状态。
您将选择当前状态，
而且您将继续循环播放
通过整个代码，
直到达到目标状态，即五号房。
这正是我在整个过程中所做的。
另外，最后，我将打印选定的零件。
这基本上是代理商采取的政策
达到五号房。
现在，如果我将当前状态设置为1，
它应该给我最好的政策
从一号房到达五号房。
好吧，让我们运行这段代码，
让我们看看它是否正在为我们提供。
现在在那之前，我要你检查一下并告诉我
这是最好的方法
从一号房到五号房。
显然就是这样。
一号到五号是从一号房得到的最佳政策
到五号房。
因此，我们应该得到一个逗号5的输出。
这正是我们得到的
这是一个包含所有Q值的Q矩阵，
这就是我们选择的路径。
因此，如果您当前的状态是1，
最好的策略是从一增加到五。
现在，如果您想更改当前状态，
假设我们将当前状态设置为2。
在运行代码之前，
让我们看看哪种是最好的方法
从第二个房间到第五个房间。
从第二号房间，您可以转到第三号，
然后可以转到1，然后可以转到5。
这会给你一百点奖励，
或者你可以去三号房
然后转到四个，然后转到五个。
这也会给您一百点的奖励。
我们的道路应该是这样。
保存并运行文件。
因此，基本上，从第二阶段开始，
你要说三个，然后是四个，
然后到五个。
这是我们最好的途径
从二号房到五号房
所以，伙计们，这正是
Q学习算法有效，
这是一个简单的实现
我刚才告诉你的整个例子。
现在你们当中还有人怀疑吗
关于Q学习或强化学习，
确保您在评论部分中对其进行评论，
我会尽力回答您的所有疑问。
不，我们已经完成了机器学习。
我们已经完成了整个机器学习模型。
我们了解强化学习，
有监督的学习，无监督的学习等等。
在我开始深度学习之前，
我想清除一个非常普遍的误解。
很多人感到困惑
在AI机器学习和深度学习之间
因为，人工智能，
机器学习和深度学习
是非常常见的应用。
例如，Siri是一个应用程序
人工智能
机器学习和深度学习。
那么这三个如何连接？
他们是同一件事还是完全一样
是人工智能之间的关系，
机器学习和深度学习？
这就是我要讨论的。
现在人工智能基本上就是科学
让机器模仿人类行为的过程。
但是当涉及到机器学习时
机器学习是人工智能的子集
专注于让机器做出决定
通过向他们提供数据。
这正是机器学习。
它是人工智能的子集。
另一方面，深度学习
是机器学习的一个子集
使用神经网络的概念
解决复杂的问题。
总而言之，人工智能
机器学习和深度学习
是相互关联的字段。
机器学习和深度学习
辅助人工智能
通过提供一组算法和神经网络
解决数据驱动的问题。
这就是AI，机器学习和深度学习的方式
有关系。
希望大家都消除了误解
以及对AI，ML和深度学习的怀疑。
现在让我们来看下一个主题，
这是机器学习的局限性。
现在第一个限制是机器学习
没有足够的能力来处理高维数据。
这是输入和输出很大的地方。
因此，处理和处理此类数据
变得非常复杂
并且占用了大量资源。
有时也称为维数的诅咒。
因此，为了更简单地理解这一点，
看这张幻灯片上显示的图像。
考虑一条一百码的线
假设您在生产线上的某个地方丢了一个硬币。
现在，您可以很方便地找到硬币
只需沿着线走。
这很简单，因为考虑了这一行
作为一维实体。
接下来，您认为您有
一平方百码
假设您在两者之间的某个地方丢了一个硬币。
现在很明显，您将花费更多时间
在那个正方形内找到硬币
与之前的情况相比
假设正方形是一个二维实体。
让我们向前迈进，让我们考虑一个立方体。
好吧，假设有一个500码的立方体
并且您在此多维数据集之间的某个位置投入了硬币。
现在变得更加困难
这次你要找硬币
因为这是一个三维实体。
因此，随着尺寸的增加，
问题变得更加复杂。
因此，如果您观察到复杂性
正在增加尺寸的增加，
在现实生活中，高维数据
我们正在谈论的具有数千个维度
这使得处理和处理非常复杂。
和高维数据
可以在诸如图像处理，
自然语言处理，图像翻译等。
现在在K-means本身中
我们看到有1600万种可能的颜色。
那是很多数据。
这就是为什么机器学习受到限制的原因。
无法在图像识别过程中使用
因为图像识别和图像有很多像素
他们有很多高维数据
这就是机器学习变得非常严格的原因
当涉及到这种用例时。
现在第二个主要挑战是告诉计算机
它应该寻找什么功能
将发挥重要作用
预测结果并获得良好的准确性。
现在，此过程称为特征提取。
现在将原始数据馈送给算法的工作很少，
这就是特征提取的原因
是机器学习工作流程的关键部分。
现在对程序员的挑战越来越大
因为算法的有效性
取决于程序员的洞察力。
作为程序员，
您必须告诉机器这些是功能。
根据这些功能，
您必须预测结果。
这就是机器学习的工作方式。
到目前为止，在我们所有的演示中，
我们看到我们正在提供预测变量。
我们正在提供输入变量
这将有助于我们预测结果。
我们试图找到变量之间的相关性，
我们正在尝试找出变量
这对于预测输出变量非常重要。
因此，这对程序员来说是一个挑战。
这就是为什么很难申请
复杂问题的机器学习模型
如物体识别，笔迹识别，
自然语言处理等等。
现在所有这些问题
以及机器学习中的所有这些限制
导致了深度学习的引入。
现在我们将讨论深度学习。
现在深度学习是唯一的方法之一
通过它我们可以克服挑战
特征提取。
这是因为深度学习模型
有能力学习专注
自己选择合适的功能
这几乎不需要程序员的指导。
基本上，深度学习模仿了我们大脑的运作方式。
那就是它从经验中学到的东西。
所以在深度学习中，发生的是
特征提取自动进行。
您几乎不需要程序员的指导。
因此，深度学习将学习模型，
它将了解哪个功能或哪个变量
对预测结果很重要。
假设您有数百万个预测变量
对于特定的问题陈述。
你怎么坐下
了解意义
这些预测变量中的每一个
这几乎是不可能的
坐下来有这么多功能
这就是为什么我们要进行深度学习。
每当有高维数据时
或每当数据非常大时
它有很多功能
和许多预测变量，我们使用深度学习。
深度学习将自行提取功能
并了解哪些功能很重要
在预测您的输出。
这就是深度学习背后的主要思想。
让我也给你一个小例子。
假设我们要建立一个系统
可以认出不同人的脸
在图像中。
好的，基本上，我们正在创建一个系统
可以识别图像中不同人的面孔。
如果我们通过使用解决
典型的机器学习算法
我们必须定义诸如眼睛的面部特征，
鼻子，耳朵等
好的，然后系统将识别
哪些功能对哪个人更重要。
现在，如果您考虑针对同一示例进行深度学习，
深度学习将自动找出功能
对于分类很重要，
因为它使用了神经网络的概念，
而在机器学习中，我们必须
我们自己手动定义这些功能。
那是深度学习之间的主要区别
和机器学习。
现在下一个问题是深度学习如何工作？
现在，当人们开始进行深度学习时，
他们的主要目的是重新设计人的大脑。
好吧，深度学习研究大脑的基本单位
称为脑细胞或神经元。
你们所有的生物学学生
会知道我在说什么。
因此，基本上，深度学习是受启发的
从我们的大脑结构。
好吧，在我们的大脑中，我们有一种称为神经元的东西，
这些神经元在深度学习中得以复制
作为人工神经元
也称为感知器
现在，在我们了解人工神经网络之前
或人工神经元起作用
让我们了解这些生物神经元是如何工作的，
因为我不确定你们有多少人
是这里的生物学生。
因此，让我们了解生物神经元的功能
以及我们如何模仿此功能
在感知器或人工神经元中。
所以，伙计们，如果您浏览这张图片，
这基本上是生物神经元的图像。
如果您专注于生物神经元的结构，
它有一些已知的树突。
这些树突基本上用于接收输入。
现在，输入基本上可以在单元体内找到
然后传递给下一个生物神经元
因此，通过树突，您将接收信号
基本上是来自其他神经元的输入
然后，单元主体将汇总所有这些输入，
轴突会将这个输入传递给其他神经元。
轴突将通过某个阈值发射，
它将传递到下一个神经元。
与此类似，感知器或人工神经元
收到多个输入
并应用各种转换和功能
并提供输出。
这些多个输入不过是您的输入变量
或您的预测变量。
您正在将输入数据馈送到人工神经元
或感知器
这个感知器将适用
各种功能和转换，
它会给你输出。
现在就像我们的大脑由
多个连接的神经元，称为神经网络，
我们还建立了一个称为
人工神经元网络
称为人工神经网络。
这就是深度学习背后的基本概念。
综上所述，深度学习到底是什么？
现在深度学习是
统计机器学习技术
用于基于概念学习要素层次结构
人工神经网络
因此，深度学习背后的主要思想
是人工神经网络
就像我们的大脑一样运作。
现在在此图中，您可以看到
有几层。
第一层称为输入层。
在这里您将收到所有输入。
最后一层称为输出层
提供所需的输出。
现在，输入层之间的所有层
和您的输出层称为隐藏层。
现在，它们可以是任意数量的隐藏层，
感谢这些天我们拥有的所有资源。
因此，您可以在它们之间有数百个隐藏层。
现在，隐藏层数
以及每层中的感知器数量
完全取决于问题
或您要解决的用例。
因此，这基本上就是深度学习的工作原理。
因此，让我们看一下我们之前看到的示例。
我们想要做的就是执行
使用深度网络的图像识别。
首先，我们要做的是通过
将此高维数据输入到输入层。
要计算输入数据的维数，
输入层将包含
感知器的多个子层
这样就消耗了整个输入。
好的，因此您将拥有多个感知器子层。
现在，从输入层收到的输出
将包含模式，并且只能识别
基于对比度级别的图像边缘。
然后，此输出将输入到第一隐藏层
在哪里可以识别面部特征
像你的眼睛，鼻子，耳朵等等。
现在从这里开始输出
到第二层隐藏
在那里可以形成整个面孔
它将深入人脸识别，
而隐藏层的输出
将被发送到输出层
或那里的任何其他隐藏层
在输出层之前。
现在，最后，输出层将执行分类，
根据您得到的结果
从之前的图层开始。
因此，这正是深度学习的工作原理。
这是我使用的一个小类比
让您了解什么是深度学习。
现在让我们了解什么是单层感知器。
就像我说的，感知器基本上是
人工神经元。
对于称为单层的东西
和多层感知器
我们将首先关注单层感知器。
现在，在我解释感知器的真正含义之前，
您应该知道感知器是线性分类器。
单层感知器
是线性分类器或二进制分类器。
它主要用于监督学习中，
它有助于对给定的输入数据进行分类
分成单独的类。
因此，该图基本上表示一个感知器。
一个感知器具有多个输入。
它具有一组标记为X一，X二，
直到X n。
现在，这些输入中的每一个都具有特定的权重。
好的，W 1代表输入X 1的权重。
W二代表输入X二的权重，依此类推。
现在如何分配这些权重
完全是另一回事。
但是现在，您需要知道每个输入
被分配了特定的权重。
现在，感知器会执行一些功能
在这些加权的输入上，它将为您提供输出。
因此，基本上，这些加权输入
经历称为求和的过程。
好吧，求和只是产品
每个输入的权重。
现在求和后
这传递给传递函数。
传递函数不过是激活函数。
我将在稍后讨论更多有关此的内容。
激活功能。
然后从激活功能开始
您将获得输出Y一，Y二，依此类推。
伙计们，您需要了解四个重要部分
在感知器中。
因此，首先，您具有输入值。
您有X 1，X 2，X 3。
您有权重和偏见，
然后你有一个叫做净额的东西
最后是激活功能。
现在，所有输入X
分别乘以各自的权重。
因此，X 1将与W 1相乘。
这称为求和。
然后，您将所有相乘的值相加，
我们称它们为加权总和。
这是使用求和函数完成的。
现在我们应用加权和
正确的激活功能。
现在，很多人感到困惑
关于激活功能。
激活功能也称为传递函数。
现在，为了了解激活功能，
这个词源于神经元的方式
在人脑中工作。
神经元被激活
只有在达到一定的潜力之后。
该阈值称为激活保护。
因此，从数学上讲
它可以用一个函数来表示
在达到阈值后达到饱和。
好的，我们有很多激活功能
像Signum，Sigmoid，棕褐色，树篱等。
你可以想到激活功能
作为映射输入的函数
到各自的输出。
现在我也谈到了权重和偏见。
现在为什么我们要为每个输入分配权重？
重量是在显示力量
特定的输入
或特定输入的重要性
用于预测最终输出。
因此，基本上，输入的权重
表示该输入的重要性。
现在，我们的偏见基本上使我们
转移激活功能
为了获得精确的输出。
这就是所有感知器。
现在，为了使您更好地理解感知器，
让我们看一个小的类比。
假设您想参加聚会
发生在您的软管附近。
现在，您的决定将取决于一系列因素。
首先是天气如何。
其次可能是你的妻子或女友，
或你的男朋友和你一起去。
第三，有公共交通工具吗？
假设这是三个因素
在参加聚会之前要考虑的问题。
因此，取决于这些预测变量
或这些功能，
你要决定是否要待在家里
或参加聚会。
现在，天气将是您的第一个输入。
我们将用值X one表示它。
是你的妻子和你一起去是另一个输入X两个。
提供任何公共交通工具
是您的另一个输入X三。
现在，X一个将具有两个值，一个和零。
一个代表天气很好。
零表示天气不好。
同样，有人表示您的妻子要去，
零表示您的妻子不去。
在X中，三个代表一个
有公共交通工具，
零表示没有公共交通工具。
现在您的输出将为一或零。
一种意味着你要去参加聚会，
零表示您将坐在家里。
现在为了了解体重，
假设对您来说最重要的因素
是你的天气。
如果天气好的话
这意味着您将100％参加聚会。
现在如果天气不好，
您已经决定要坐在家里。
因此，最大重量取决于您的天气变量。
因此，如果您的天气真的很好，
你将去参加聚会。
这是了解的非常重要的因素
你是否要坐在家里
或者你要去参加聚会。
因此，基本上，如果X一等于一，
您的输出将为一。
意思是说如果天气好的话
你去参加聚会。
现在让我们为每个输入随机分配权重。
W one是与输入X one相关的权重。
W二是X二的重量
和W三是与X三相关联的权重。
假设您的W等于6，
您的W二是二，而W三是二。
现在，通过激活功能，
您将把阈值设置为5。
现在这意味着它将触发
天气好时
天气不好就不会开火
不管其他输入。
现在在这里，因为您的体重是六，
因此，基本上，如果您考虑首次输入
重量为六，
这意味着您将100％离开。
假设您只考虑第二个输入。
这意味着您不会去，
因为您的权重是2，阈值是5。
因此，如果您的体重低于阈值，
这意味着你不会去。
现在让我们考虑另一种情况
我们的门槛是三
这意味着它将开火
当X高时
或其他两个输入为高。
现在，W两个与您的妻子是否去有关。
假设天气不好
而且你没有公共交通工具
表示您的x一和x三为零，
只有两个x是1。
现在，如果您的x 2为1，
你的体重将是两个。
如果你的体重是二
您不会继续，因为阈值设置为3。
阈值设置为
如果X 2和X 3结合在一起，
只有那样你才会走
或仅当x one为true时，您才会参加。
因此，您以这种方式分配阈值
您将确定天气是否良好。
这是分配阈值的方式。
这不过是您的激活功能。
所以，我希望大家都明白
最大重量
与非常重要的输入相关联
在预测您的输出。
这正是感知器的工作方式。
现在让我们看一下感知器的局限性。
现在，在感知器中没有隐藏层。
只有一个输入层
并且有一个输出层。
我们之间没有隐藏层。
因此，您无法分类
非线性可分离数据点。
好的，如果您有数据（如上图所示），
您将如何分开。
您不能使用感知器来执行此操作。
好吧，如此复杂的问题涉及
很多参数无法解决
通过单层感知器。
这就是为什么我们需要被称为
多层感知器。
所以现在我们将讨论
多层感知器。
多层感知器具有相同的结构
单层感知器
但具有一个或多个隐藏层。
好的，这就是为什么将其视为深度神经网络的原因。
所以在单层感知器中
我们只有输入层，输出层。
我们没有任何隐藏层。
现在说到多层感知器
在它们之间有隐藏的层，
然后是输出层。
就像我说的那样，
首先，您将输入X一，X二，X三，
等等。
这些输入中的每一个都将被分配一些权重。
W一，W二，W三，依此类推。
然后您将计算加权总和
这些输入中的每一个及其权重。
之后，您将把它们发送给转换
或激活功能，
然后您将最终获得输出。
现在，唯一的是您将拥有多个
在它们之间的隐藏层
一个或多个隐藏层。
所以，伙计们，这就是多层感知器的工作方式。
它基于前馈神经网络的概念。
前馈意味着每个级别的每个节点
或每一层都连接到其他每个节点。
这就是前馈网络。
现在要分配权重
我们要做的是随机分配权重。
最初，我们输入X一，X二，X三。
我们随机分配一些权重W一，W二，W三，
等等。
现在，无论什么重量，
我们分配给我们的输入，
这些权重实际上是正确的，
意味着这些权重对于公司而言至关重要
在预测您的输出。
因此，多层感知器的工作原理是
一组输入传递到第一个隐藏层。
现在，该层的激活已通过
通过下一层。
然后从该层传递到下一个隐藏层，
直到到达输出层。
在输出层，您将形成两个类，
一班和二班
基本上，您将输入内容分类为
这两个类之一。
这就是多层感知器的工作方式。
多层感知器是一个非常重要的概念
是反向传播。
现在什么是反向传播。
反向传播算法是
多层感知器的监督学习方法。
好吧，现在为什么我们需要反向传播？
伙计们，当我们设计神经网络时
首先，我们初始化权重
带有一些随机值或该事实的任何变量。
现在，显然，我们需要确保这些权重
实际上是正确的
表示这些权重显示出了重要性
每个预测变量。
这些权重必须适合我们的模型
这样我们的输出非常精确。
假设我们随机选择
一开始有些权重
但是我们的模型输出却大不相同
比我们的实际输出
这意味着我们的错误值非常大。
那么如何减少这个错误。
基本上，您需要做的是
我们需要以某种方式向模型解释
我们需要改变体重
以使误差最小化的方式。
所以最主要的是重量和您的错误
是高度相关的
您赋予每个输入的权重
将显示您的输出中有多少错误，
因为最重要的变量
将具有最高的重量。
如果重量不正确，
那么您的输出也不正确。
现在，反向传播是一种更新权重的方法
以使您的结果精确的方式
并且减少了您的错误。
因此，简而言之，反向传播用于训练
多层感知器。
基本上是用来更新体重的
以使您的输出更加精确的方式，
并且减少了您的错误。
因此，训练神经网络全都与反向传播有关。
所以最常见的深度学习算法
用于多层感知器的监督训练
被称为反向传播。
因此，在计算输入的加权和之后
并将它们传递给激活功能，
我们向后传播并更新权重
减少错误。
就这么简单。
所以一开始，您将要分配一些权重
到您的每个输入。
现在这些输入将通过激活功能
它会遍历所有隐藏层
并给我们一个输出。
现在，当您获得输出时，
输出不是很精确，
或它不是所需的输出。
因此，您要做的就是向后传播，
然后您开始更新体重
以这样的方式，您的错误
尽可能最小。
所以，我将再重复一次。
所以背后传播的想法
就是这样选择重量
使您的错误最小化。
为了理解这一点，我们将看一个小例子。
假设我们有一个包含这些标签的数据集。
好的，您输入的是零，一，二，
但您想要的输出是零，一和四
现在您模型的输出
当W等于3时就是这样。
注意模型输出之间的差异
和您想要的输出。
因此，您的模型输出为三，
但是您想要的输出是两个。
同样，当模型输出为六个时，
您期望的输出应该是四。
现在让我们计算重量等于三时的误差。
此处的错误为零
因为您期望的输出为零，
并且您的模型输出也为零。
现在，第二种情况下的错误是一个。
基本上，您的模型输出减去所需的输出。
三减二，您的错误就是一。
同样，第三个输入的错误是两个，
是6减4。
当你走广场时
这实际上是一个很大的差异，
您的错误变得更大。
现在我们需要做的
是我们需要更新重量值吗
以使我们的错误减少的方式。
现在在这里，我们考虑了权重为四。
因此，当您考虑重量为四时，
您的模型输出将变为零，四个和八个。
您期望的输出是零，二和四。
因此您的模型输出变为零，四和八，
很多。
各位，我希望大家都知道
如何在这里计算输出。
我正在做的就是将输入相乘
与你的体重。
重量是四
所以零变成四会给我零。
四分之一会给我四个
二进四出会给我八分。
这就是我在这里得到模型输出的方式。
现在，这就是我在这里获得输出的方式。
这就是您计算体重的方式。
现在，在这里，如果您看到我们的愿望输出
应该是零，二和四，
但是我们得到的输出为零，四和八。
所以我们的错误实际上正在增加
随着我们增加体重。
我们的误差四W等于四
已经变成零，四和十六
而W的误差等于3，
零，一和四。
我的意思是平方误差。
因此，如果您看一下，随着我们体重的增加，
我们的错误正在增加。
所以，显然，我们知道
没有必要进一步增加W的值。
但是如果我们降低W的值，
我们的错误实际上减少了。
好吧，如果我们给两个权重，
我们的错误减少了。
如果我们发现体重和误差之间的关系，
基本上，如果增加体重，
您的错误也会增加。
如果减轻重量，错误也会减少。
现在我们在这里要做的是首先初始化
W的一些随机值，
然后我们向前传播。
然后我们注意到有一些错误。
为了减少该错误，我们向后传播
并增加W的值。
之后，我们注意到错误增加了，
并且我们知道我们无法增加w值。
显然，如果您的错误在增加
随着体重的增加，
您不会增加体重。
再一次，我们向后传播，
我们降低了W值
因此，在那之后，我们注意到该错误已减少。
所以我们正在尝试的是
重量的价值就是这样
误差变得越小越好
所以我们需要弄清楚是否需要
增加或减少这八个值。
一旦知道了，我们就继续更新权重值
在那个方向上
直到误差变为最小。
现在您可能会达到
如果您进一步更新权重，
错误将再次增加。
此时，您需要停止。
好那时候
是您的最终体重值所在的位置。
因此，基本上，该图表示该点。
现在，这一点不过是全球最低损失。
如果您进一步更新权重，
您的错误也会增加。
现在，您需要找出最低总损失量在哪里，
这就是您的最佳体重所在。
因此，让我为您总结步骤。
首先，您将计算误差。
这是模型输出的距离
从您的实际输出。
然后，您将检查错误
是否最小化。
之后，如果误差很大，
然后您将更新重量，
然后您将再次检查错误。
您将重复该过程，直到误差最小为止
现在，一旦达到全球最低损失，
您将停止更新权重，
我们将最终确定您的体重值。
这正是反向传播的工作方式。
现在为了以数学方式告诉您我们在做什么
我们正在使用一种称为梯度下降的方法。
好的，使用这种方法
调整网络中的所有权重
目的是减少输出层的错误。
因此，梯度下降如何优化我们的工作是
第一步是您将计算误差
通过考虑以下等式。
在这里，您减去实际输出的总和
从您的网络输出。
第二步基于您得到的错误，
您将计算误差的变化率
关于重量的变化。
学习率是您设定的
在开始本身。
第三步是基于体重的变化，
您将计算新的重量。
好了，您更新的体重就是您的体重
加上体重的变化率。
伙计们，这就是全部
反向传播和权重更新。
现在让我们看一下前馈网络的局限性。
到目前为止，我们正在讨论多层感知器，
使用前馈网络。
让我们讨论这些限制
前馈网络。
现在让我们考虑一个图像分类的例子。
好吧，假设您已经训练了神经网络
对各种动物的图像进行分类。
现在让我们考虑一个例子。
这里的第一个输出是一头大象。
我们有一头大象。
而这个输出将无关
与先前的输出，这是一条狗。
这意味着在时间T的输出
与时间T减一时的输出无关。
现在考虑这种情况
您需要使用的地方
先前获得的输出。
好的，这个概念与看书非常相似。
翻动每一页时，您需要
对前几页的理解
如果您想了解这些信息，
那么您需要知道您以前学到了什么。
那正是您现在正在做的。
为了了解深度学习，
您必须了解机器学习。
因此，基本上，使用前馈网络
T时刻的新输出加一
与时间T的输出无关
或T减1或T减2。
因此无法使用前馈网络
在预测句子中的单词时
因为它绝对没有关系
与之前的一组单词。
因此，前馈网络不能用于
用例中您必须预测结果
根据您以前的结果。
因此，在很多用例中，
您之前的输出也将确定您的下一个输出。
因此，在这种情况下，您可能无法使用
前馈网络。
现在，您可以进行哪些修改
以便您的网络可以学习
从你以前的错误。
为此，我们有解决方案。
因此，解决方案是递归神经网络。
所以，基本上，假设您有一个输入
在时间T减去一，
当您将其输入网络时，您将获得一些输出。
现在，此输入的一些信息在T减一
被输入到下一个输入，
在时间T输入的
此输出中的一些信息
被输入到下一个输入
在T加1时输入。
因此，基本上，您会不断获取信息
从上一个输入到下一个输入。
这就是递归神经网络真正起作用的方式。
所以循环网络
是一种人工神经网络
旨在识别数据序列中的模式，
例如文字，基因组，笔迹，口语，
时间序列数据，传感器，股票市场，
和政府机构。
所以，伙计们，递归神经网络实际上是
深度学习的一个非常重要的部分，
因为循环神经网络具有
在很多领域的应用程序。
好吧，在时间序列和股票市场上，
我使用的主要网络
是循环神经网络，
因为您的每个输入都相关
现在，为了更好地了解递归神经网络，
让我们考虑一个小例子
假设您定期去健身房，
教练给了你
锻炼时间表。
所以基本上重复练习
每三天一次。
好的，这就是您的日程安排。
因此，请注意重复所有这些练习
每周以适当的顺序或顺序
首先，让我们使用前馈网络
尝试并预测锻炼的类型
我们要做的。
这里的输入是星期几，月份，
和你的健康状况。
好的，因此必须训练神经网络
使用这些输入为我们提供预测
我们应该做的练习。
现在让我们尝试使用
递归神经网络。
在递归神经网络中
我们要做的是考虑输入
前一天。
好吧，如果你昨天做肩部锻炼，
那你今天就可以做二头肌练习
这将持续一周的剩余时间。
但是，如果您碰巧在健身房里错过了一天，
先前参加的时间戳记中的数据
可以考虑。
可以这样做。
因此，如果根据数据训练模型
它可以从上一个练习中获得，
模型的输出将非常准确。
在这种情况下，如果您需要知道输出
在T减去1以便预测T处的输出。
在这种情况下，循环神经网络非常重要。
所以，基本上，我正在输入一些输入
通过神经网络。
您将完成一些功能，
然后您将获得输出。
因此，基本上，您正在预测输出
根据过去的信息或您过去的输入。
这就是递归神经网络的工作方式。
现在让我们看另一种神经网络
被称为卷积神经网络。
要了解为什么我们需要卷积神经网络，
让我们看一个类比。
您如何看待计算机读取图像？
考虑这个图像。
这是纽约天际线图像。
乍一看，
您会看到很多建筑物和很多颜色。
计算机如何处理此图像？
图像实际上分为三个颜色通道，
红色，绿色和蓝色。
它以RGB值的形式读取。
现在，每个颜色通道都已映射
与图像的像素
然后计算机将识别出该值
与每个像素相关联
并确定图像的尺寸。
现在，对于黑白图像，
只有一个频道
但概念仍然相同。
事情是我们不能利用
完全连接的网络
卷积神经网络。
我告诉你为什么。
现在考虑第一个输入图像。
好的，第一张图片的大小约为
28成28成三像素。
如果我们将其输入到神经网络，
我们将得到约2,352重量
在第一个隐藏层本身中。
现在考虑另一个例子。
好吧，假设我们有一张图片
200变成200变成三个像素。
所以你第一个隐藏层的大小
变成大约120,000。
现在，如果这只是第一个隐藏层，
想象一下您需要的神经元数量
处理整个复杂图像集。
这导致了过度拟合，
因为所有隐藏层都已连接。
他们紧密相连。
每个节点之间都有连接。
因此，我们面临着过度拟合的问题。
我们有太多的数据。
我们必须使用太多的神经元
这不切实际。
这就是为什么我们有一个被称为
卷积神经网络。
现在卷积神经网络
像其他任何神经网络一样
由具有可学习的权重和基础的神经元组成。
因此，每个神经元接收几个输入。
他们需要加权总和
并通过一些激活功能进行传递，
最后以输出为响应。
因此，卷积神经网络中的概念
是特定层中的神经元
只会连接到一个很小的区域
之前的层。
并非所有的神经元都会被连接
以完全连接的方式
导致过度拟合
因为我们需要太多的神经元
解决这个问题。
仅重要的区域
相互连接。
没有完整的连接
在卷积神经网络中。
这么说，我们到目前为止所做的是讨论
什么是感知器。
我们讨论了不同的类型
那里的神经网络
我们讨论了前馈神经网络。
我们讨论多层感知器
我们讨论了递归神经网络，
和卷积神经网络
我不会深入太多
这些概念
现在，我将执行一个演示。
如果你还不懂
深度学习的理论概念
请在评论部分让我知道。
除此之外，我也会离开
说明框中的几个链接，
以便您更好地了解整个下载过程。
好吧，如果您想要更深入的解释，
我将在描述框中保留几个链接。
现在，我要做的就是跑步
演示给你看
究竟下载了什么
因此，基本上，我们将在此演示中进行操作
我们将要预测股价。
就像我说的，股价预测
是很好的应用之一
深度神经网络
您可以轻松预测股价
下一分钟的特定股票
或第二天使用深度神经网络。
这就是我们在本演示中要做的
现在，在我讨论代码之前，
让我告诉您一些有关我们的数据集的信息。
数据集包含约42,000分钟
从2017年4月到2017年8月的数据
在500只股票上
以及标普500指数总价格。
所以索引和股票被安排了
以广泛的格式。
因此，这是我的数据集data_stocks。
格式为CSV。
所以我要做的就是使用
读取CSV功能以导入此数据集。
这只是我的数据集存储的一部分。
该数据集实际上已经清理和准备好了，
这意味着我们没有任何缺货
和指数价格。
因此，该文件不包含任何缺失值。
现在我们要做的是
我们会丢弃有价值的数据吗
我们有一个称为日期的变量，
这不是真的必要
在这里预测我们的结果。
这正是我在这里所做的。
我只是删除日期变量。
因此，在这里，我正在检查数据集的尺寸。
这是可以理解的，
使用形状函数来做到这一点。
现在，始终将数据制作为NymPy数组。
这使计算更加容易。
下一步是数据拼接。
我已经与大家讨论了数据拼接的数据。
在这里，我们只是在准备培训
和测试数据。
因此训练数据将包含
占总数据集的80％。
好的，而且我们也没有改组数据集。
我们只是按顺序切片数据集。
这就是为什么我们有一个测试开始
和测试结束变量。
按顺序，我将选择数据。
无需改组此数据集。
这些是股票价格
随机整理这些数据没有任何意义。
现在在下一步中，我们要做的是
我们将扩展数据
现在，扩展数据和数据标准化
是最重要的步骤之一。
你不能错过这一步
我已经提到过了
什么是标准化和缩放。
现在大多数神经网络
受益于扩展输入。
这是因为最常见的激活功能
网络神经元的颜色，例如棕褐色，树篱和乙状结肠。
棕褐色，树篱和S形基本上是激活函数，
这些定义在负一到一的范围内
或零和一。
这就是为什么缩放很重要
在深度神经网络中
为了进行缩放，我们将再次使用MinMaxScaler。
因此，我们只是在此处导入该功能。
还有一点需要注意的是
你要非常小心
关于您要扩展的数据部分
当你这样做的时候
一个非常普遍的错误是缩放整个数据集
在进行训练和测试分组之前。
因此在进行数据拼接之前，
您不应该扩展数据。
现在这是一个错误，因为
缩放调用统计信息的计算。
例如，变量的最小或最大范围
受到影响。
因此，在现实生活中进行时间序列预测时，
您没有来自未来观察的信息
在预测时。
这就是为什么计算比例统计
必须根据训练数据进行
并且只有在那时，才必须将其应用于测试数据。
否则，您基本上是在使用将来的信息
在预测时，
这显然会导致偏见
所以这就是为什么你需要确保
您可以非常精确地缩放比例。
因此，基本上，我们要做的是功能数量
在训练数据中存储
在称为n个股票的变量中。
之后，我们将导入臭名昭著的TensorFlow。
伙计们，TensorFlow实际上是一个非常好的
软件，它是目前领先的
深度学习和神经网络计算框架。
它基于C ++低级后端，
但通常是通过Python控制的。
所以TensorFlow实际上以
计算的图形表示。
这很重要，因为神经网络
实际上是数据和数学运算的图形。
这就是TensorFlow完美的原因
用于神经网络和深度学习。
所以导入TensorFlow库之后的下一件事
被称为占位符。
占位符用于存储，导入和定位数据。
我们需要两个占位符才能适合我们的模型。
因此，基本上，X将包含网络的输入，
这是所有股票的股票价格
在时间T等于T。
y将包含网络的输出，
它是时间T的股票价格等于T加一。
现在，X占位符的形状
表示输入是二维矩阵。
输出是一维向量。
所以，基本上，无争论的人表示
在这一点上我们还不知道
观察数
它将流经神经网络。
我们暂时将其保留为灵活的数组。
稍后我们将定义可变的批量大小
控制观察次数
在每个培训批次中。
现在，除了这个，我们还有
称为初始化器的东西。
现在，在我告诉您这些初始化程序是什么之前，
你需要明白
有一种叫做变量的东西
用作柔性容器
在执行过程中允许更改的内容。
权重和偏差表示为变量
为了适应训练。
前面已经与您讨论过权重和偏见。
现在权重和偏见是
在训练模型之前需要初始化。
即使在我解释的时候，这也是我们讨论的方式
神经网络给你。
因此，在这里，基本上，我们利用称为
变体缩放初始值设定项
对于偏差初始值设定项
我们使用零初始化器。
这些是我们的TensorFlow模型中的一些预定义功能。
我们不会深入探讨这些事情。
现在让我们看看我们的模型架构参数。
所以接下来我们要讨论的是
是模型架构参数。
现在我们建立的模型
它由四个隐藏层组成。
在第一层，我们分配了1,024个神经元
这可能是输入量的两倍多。
随后的隐藏层始终是
前一层大小的一半，
这意味着在隐藏的第二层中
我们将有512个神经元。
隐藏的第三层将有256个。
同样，隐藏的第四层
将具有128个神经元。
现在为什么我们要不断减少神经元的数量
当我们穿过每个隐藏层时。
我们这样做是因为神经元的数量
对于每个后续层压缩信息
网络在上一层中识别出来的
当然，还有其他可能的网络架构
您可以申请此问题陈述，
但我正在尝试使其尽可能简单，
因为我正在向大家介绍深度学习。
所以我无法建立模型架构
这是非常复杂且难以解释的。
当然，我们在这里输出了
这将被分配一个神经元。
现在，了解这一点非常重要
您输入之间的可变尺寸，
隐藏，并输出图层。
因此，根据多层感知器的经验，
上一层的第二维
是当前图层的第一维。
所以我的第一个隐藏层的第二个维度
将是我在第二个隐藏层中的第一个维度。
现在，这背后的原因是很合逻辑的。
这是因为第一个隐藏层的输出
作为输入传递给第二个隐藏层。
这就是为什么上一层的第二维
与第一维相同
下一层或当前层的
我希望这是可以理解的。
现在到这里的偏向维度，
偏差尺寸始终是
等于当前图层的第二维，
意味着你将要过去
该特定隐藏层中神经元的数量
作为您偏见的维度。
所以在这里，神经元的数量是1,024
您将与参数相同的数字传递给您的偏好。
同样，即使对于第二个隐藏层，
如果您在这里看到第二个维度
是n_neurons_2。
我也在这里传递相同的参数。
同样，对于隐藏的第三层
和隐藏的第四层
好吧，我希望这是可以理解的
现在我们进入输出层。
输出层显然将具有
隐藏层四的输出。
这是我们隐藏第四层的输出
在我们的输出层中作为第一个维度传递，
最终将有您的n个目标，
在这里设置为一个。
这是我们的输出。
您的偏差将基本上具有当前图层的尺寸，
这是n个目标。
您要在此处传递相同的参数。
现在定义所需的重量之后
和偏差变量
必须指定网络的体系结构。
您要做的是占位符和变量
需要结合成一个系统
顺序矩阵乘法。
这就是这里正在发生的事情。
除此之外，所有隐藏的图层
需要使用激活函数进行转换。
因此，激活功能很重要
网络的组成部分
因为它们将非线性引入系统。
这意味着高维数据
可以借助激活功能进行处理。
显然，我们有很高的维度数据
当涉及到神经网络时。
我们没有一个维度
或我们没有两个或三个输入。
我们有成千上万的投入。
因此，为了让神经网络进行处理
大量的高维数据，
我们需要一些称为激活功能的东西。
这就是为什么我们使用激活功能。
现在，有数十种激活功能，
也是最常见的一种
是整流线性单位，
整流线性单元。
RELU就是整流线性单元，
这就是我们将在此模型中使用的内容。
所以，之后，您应用了转换功能
到您的隐藏层，您需要确保
您的输出已转置。
接下来是一个非常重要的功能，称为
成本函数。
所以网络的成本函数
用于产生偏差的量度
在网络的预测之间
以及实际观察到的训练目标。
所以这基本上是您的实际输出
减去模型输出。
它基本上计算出实际输出之间的误差
和您的预测输出。
因此，对于回归问题，均方误差函数
是常用的。
我之前已经讨论过MSC，均方误差。
所以，基本上，我们只是在测量
这里的偏差。
MSC绝对不是您的偏差
从您的实际输出。
这正是我们在这里所做的。
所以计算完错误后
下一步显然是要更新
你的体重和偏见。
因此，我们有一些称为优化器的东西。
他们基本上会处理所有必要的计算
调整网络权重所需的
并在训练阶段偏差变量。
这就是这里正在发生的事情。
现在，此优化程序的主要功能是
它调用一种称为渐变的东西。
现在，如果大家都记得，我们之前讨论过梯度
它基本上指示方向
其中的权重和偏见
在训练期间必须改变
为了最小化网络的成本函数
或网络错误。
所以你需要弄清楚是否需要增加
权重和偏差以减少误差，
或者是周围的其他方式？
你需要了解这种关系
在您的错误和体重变量之间。
这正是优化器的工作。
它调用渐变。
我们将为您提供权重方向
和偏见必须改变。
因此，既然您知道优化器的作用，
在我们的模型中，我们将使用
称为AdamOptimizer的东西。
这是当前的默认优化器之一
在深度学习中。
亚当基本上代表自适应矩估计，
可以认为是
有两个非常流行的优化器，分别称为Adagrad和RMSprop。
现在，让我们不深入优化器。
这里的主要议程
让您了解深度学习背后的逻辑。
我们不必进入功能。
我知道这些是预定义的功能
TensorFlow负责。
接下来，我们有一个称为初始化器的东西。
现在，使用初始化程序进行初始化
训练之前网络的变量。
我们之前已经讨论过了。
我将在这里再次定义初始化程序。
在本节的早些时候，我已经做到了。
初始化程序已经定义。
所以我只是删除了那行代码。
下一步将是拟合神经网络。
因此，在定义占位符，变量之后，
基本上是权重和偏差的变量，
初始化程序，成本函数，
和网络的优化器
必须对模型进行训练。
现在，通常使用
迷你批量训练方法
因为我们有非常庞大的数据集。
因此，始终最好使用小型批量训练方法。
现在在小批量训练中会发生什么
是任何批次大小的随机数据样本
从训练数据中得出
然后将它们馈入网络。
所以训练数据集分为
N除以您的批次大小
依次馈入网络。
所以，一个接一个
这些批次的每一个都将被馈送到网络中。
此时，占位符是您的X和Y，
他们发挥作用。
它们存储输入和目标数据
并将其作为输入和目标呈现给网络。
那是占位符的主要功能。
他们要做的是存储输入和目标数据，
他们将其提供给网络
作为输入和目标。
那正是您的占位符所做的。
假设有一个样本数据X。
现在，此数据批流通过网络
直到到达输出层。
TensorFlow在那里比较模型的预测
违反实际观察到的目标
存储在Y中。
如果大家都记得，
我们将实际观察到的目标存储在Y中。
之后，TensorFlow将进行
称为优化步骤
并会更新网络参数
喜欢网络的权重和偏见。
因此，在更新了体重和偏见之后，
下一批将被采样，然后重复该过程。
因此，此过程将继续
直到所有批次都提交到网络。
一扫所有批次
被称为时代。
所以我在这里定义了整个过程。
所以我们要经历10个时代
表示所有批次
要接受培训，
这意味着您将输入每个X的批次，
它将流经网络
直到到达输出层。
发生了什么事TensorFlow
将比较您的预测。
这基本上就是您的模型所预测的
违反实际观察到的目标
存储在Y中。
之后，TensorFlow将执行优化
它将更新网络参数
喜欢你的体重和偏见。
更新权重和偏差后，
下一批将被采样
并且该过程将不断重复。
直到所有批次都
在网络中实施。
所以我刚才告诉你的是一个时代。
我们将重复10次。
因此，批次大小为256，
意味着我们有256个批次。
所以在这里我们要分配x和y
我刚才跟你说的
迷你批处理培训从这里开始
所以，基本上，你的第一批
将开始通过网络流动
直到到达输出层。
之后，TensorFlow将比较模型的预测。
这是发生预测的地方。
它将比较模型的预测
达到实际观察到的目标
存储在y中。
然后TensorFlow将开始进行优化，
它将更新网络参数
喜欢你的体重和偏见。
因此，在您更新权重和偏见之后，
下一批将输入网络
并且此过程将不断重复。
此过程将重复10次
因为我们已经定义了10个时期。
现在，在训练中
我们根据测试集评估网络的预测，
基本上就是我们还没有学到的数据
但每五批都会保留一次此数据，
这是可视化的。
因此，在我们的问题陈述中，
网络将要做什么
它会预测股价吗
在T加一的时间内连续
我们正在向其提供有关时间T的股票价格的数据。
这将为我们提供时间T加一的输出。
现在让我运行这段代码
让我们看看我们的预测值有多接近
到实际值。
我们将可视化整个过程，
我们也已经导出了
以便将其合并为视频动画。
我将向您展示视频的外观。
现在让我们看一下可视化。
我们将看看我们的输出。
因此，橙色基本上显示了我们模型的预测。
因此模型可以快速学习形状
以及时间序列在测试数据中的位置
并向我们​​显示准确的预测。
这非常接近实际的预测。
现在，当我向您解释时，
每批都在这里运行。
我们处于第二个时代。
我们要经过10个纪元。
这样您可以看到网络实际上正在适应
时间序列的基本形状
而且它正在学习数据中更好的模式。
您会看到它保持学习模式
生产越来越近
在每个时代之后。
所以让我们等到纪元10
我们完成了整个过程。
伙计们，我认为预测非常接近，
像图案和形状都学得很好
通过我们的神经网络
它实际上是在模仿这个网络。
唯一的偏差在于值。
除此之外，它还在学习形状
时间序列数据的方式几乎相同。
形状完全相同。
它看起来与我非常相似。
现在，还请记住，有很多方法
改善您的结果。
您可以更改图层的设计
或者您可以更改神经元的数量。
您可以选择不同的初始化功能
和激活功能。
您可以引入称为辍学层的东西
基本上可以帮助您摆脱过度拟合的困扰，
还有所谓的提前停止。
尽早停止可以帮助您了解
您必须停止批量培训的地方。
这也是您可以实现的另一种方法
用于改善模型。
现在也有不同类型的深度学习模型
您可以用于解决此问题。
这里我们使用前馈网络，
这基本上意味着批次
从左向右流动。
好的，我们的10个时代已经结束。
现在要计算的最后一件事是我们的错误，
MSC或均方误差。
所以，伙计们，不用担心这个警告。
这只是一个警告。
因此我们的均方误差降至0.0029
这很低，因为目标已缩放。
这意味着我们的准确性非常好。
就像我提到的，
如果您想提高模型的准确性，
您可以使用不同的方案，
您可以使用不同的初始化函数，
或者您可以尝试其他转换功能。
您可以使用所谓的辍学技术
并尽早停止以进入训练阶段
更好。
伙计们，这就是我们深度学习演示的结尾。
我希望你们所有人都了解深度学习演示。
对于那些刚刚开始学习的人
第一次深度学习
这可能有点令人困惑。
因此，如果您对演示有任何疑问，
让我知道在评论部分。
我还将在描述框中保留几个链接，
这样您就可以了解深度学习
再深入一点。
现在让我们看一下今天的最后一个主题，
这是自然语言处理。
现在，在我们了解什么是文本挖掘之前
什么是自然语言处理
我们必须了解文本挖掘的需求
和自然语言处理。
伙计们，我们需要的第一原因
文本挖掘和自然语言处理
是因为数据量大
在这段时间内生成的
就像我之前提到的
大约有2.5亿亿字节的数据
每天创建的
而且这个数字只会增加。
随着通讯的发展
通过社交媒体，
我们生成了大量的数据。
这些数字在您的屏幕上。
这些数字实际上是每分钟。
在Instagram上，每分钟发布170万张图片。
好的，发布了1.7张或超过170万张图片。
同样，我们有推文。
我们在Twitter上每分钟大约有347,000条推文。
实际上，这是很多数据。
因此，每次我们使用电话时，
我们正在生成太多数据。
只是在YouTube上观看视频
正在生成大量数据。
从WhatsApp发送短信时，
这也产生了大量的数据。
现在唯一的问题不是我们的数据生成。
问题在于所有数据中
我们正在生成的数据中，只有21％
结构合理。
其余数据是非结构化的，
非结构化数据的主要来源包括
来自WhatsApp的短信，Facebook喜欢，
在Instagram上发表评论，批量发送电子邮件
我们每天都发出。
所有这些都说明了非结构化数据
我们今天有。
现在的问题是，可以做什么
有那么多数据
现在我们生成的数据
可用于发展业务。
通过分析和挖掘数据，
我们可以为企业增加更多价值。
这正是文本挖掘的全部内容。
因此，文本挖掘或文本分析
对我们可用的数据分析
以日常口头或书面语言。
我们产生了如此惊人的数据
可以实际用于文本挖掘。
我们有Word文档中的数据，
PowerPoint，聊天消息，电子邮件。
所有这些都用来为企业增值
现在我们从来源获得的数据
像社交媒体，物联网，
它们主要是非结构化的
并且不能使用非结构化数据
收集有用的见识以发展业务。
这正是我们需要进行文本挖掘的原因。
文本挖掘或文本分析
是获取有意义的信息的过程
来自自然语言文字。
因此，我们通过短信生成的所有数据，
电子邮件，文档，文件，
用自然语言文字书写。
我们将使用文本挖掘
和自然语言处理
从此类数据中得出有用的见解或模式。
现在让我们看几个例子
向您展示自然语言处理的方式
和文本挖掘被使用。
所以现在在我进一步前进之前，
我想比较文本挖掘和NLP。
你们很多人可能会感到困惑
关于什么是文本挖掘
以及它与自然语言处理之间的关系。
很多人也问我
为什么要进行NLP和文本挖掘
被认为是相同的
他们是同一回事。
因此，基本上，文本挖掘是一个广阔的领域
利用自然语言处理
从文本中获取高质量的信息。
因此，基本上，文本挖掘是一个过程，
自然语言处理是一种方法
用于进行文本挖掘。
因此，可以说，文本挖掘
是一个使用和NLP的广阔领域
为了执行文本分析和文本挖掘。
因此，NLP是文本挖掘的一部分。
现在让我们来了解一下
自然语言处理是。
现在，自然语言处理
是文本挖掘的组成部分
基本上可以帮助机器阅读文本。
显然，机器实际上并不懂英语或法语，
他们以零和一的形式解释数据。
这就是自然语言处理的用武之地。
NLP是计算机和智能手机
用来理解我们的语言，
口语和书面语言。
现在，由于使用语言与我们的设备进行互动，
NLP成为我们生活中不可或缺的一部分。
NLP使用计算机科学的概念
和人工智能
研究数据并从中获取有用的信息。
现在，在我们进一步前进之前，
让我们看一下NLP和文本挖掘的一些应用。
现在，我们所有人都花了大量时间在网上冲浪。
你有没有注意到
如果您开始在Google上输入单词，
您会立即收到类似的建议。
这些功能也称为自动完成。
基本上，它将为您建议其余的单词。
我们也有一些称为垃圾邮件检测的东西。
这是Google如何识别的示例
拼写错误的Netflix
并显示与您的拼写错误相匹配的关键字的结果。
因此，垃圾邮件检测也基于
关于文本挖掘的概念
和自然语言处理。
接下来，我们有预测性的打字和拼写检查器。
自动更正，电子邮件分类等功能
是文本挖掘和NLP的所有应用程序。
现在我们来看几个其他的应用程序
自然语言处理。
我们称之为情感分析。
情感分析非常有用
在社交媒体监控中
因为它可以让我们获得概述
某些主题背后的广泛公众舆论。
所以，基本上，情感分析
用来了解公众的意见
或客户对某种产品的意见
或关于某个主题。
情感分析实际上是非常重要的部分
许多社交媒体平台
像Twitter，Facebook。
他们非常频繁地使用情感分析。
然后我们有一个叫做聊天机器人的东西。
聊天机器人基本上是解决方案
对于所有的消费者挫败感，
关于客户呼叫协助。
所以我们有像必胜客，Uber这样的公司
谁开始使用聊天机器人
提供良好的客户服务，
除了语音识别。
NLP已广泛用于语音识别。
我们都知道Alexa，Siri，Google助手，
和Cortana。
这些都是自然语言处理的应用。
机器翻译是NLP的另一个重要应用。
例如Google Translator
使用NLP处理和翻译
一种语言传给另一种语言。
其他应用包括拼写检查器，
关键字搜索，信息提取，
和NLP可用于获取有用的信息
来自各种网站，来自Word文档，
从文件等等。
它也可以用于广告匹配。
这基本上意味着广告的推荐
根据您的历史记录。
所以，现在您对位置有了基本了解
使用自然语言处理
到底是什么
让我们看一些重要的概念。
因此，首先，我们将讨论令牌化。
现在，标记化是文本挖掘中mos的基本步骤。
令牌化基本上意味着分解数据
分成较小的块或令牌
以便可以轻松对其进行分析。
现在令牌化的工作原理是
它通过将一个复杂的句子分解为单词来工作。
因此，您正在将一个庞大的句子分解为单词。
您将了解每个单词的重要性
关于整个句子，
之后将产生描述
在输入句子上。
例如，假设我们有这句话，
令牌很简单。
如果我们在这句话上应用标记化，
我们得到的是这个。
我们只是把一句话分解成单词。
然后我们了解了重要性
这些单词中的每一个。
我们将对每个单词执行NLP处理
了解每个单词的重要性
在整个句子中
对我而言，我认为标记和简单是重要的词，
基本上是另一个停用词。
我们将在后续幻灯片中讨论停用词。
但是现在，您需要了解令牌化
这是一个非常简单的过程，涉及
把句子分解成单词。
接下来，我们有一个所谓的词干。
词干基本上是将单词标准化
变成其基本形式或其根形式。
看一下这个例子。
我们有检测之类的词，
检测，检测和检测。
现在我们都知道词根
对于所有这些话，都是检测。
基本上，所有这些词都意味着检测。
因此，词干算法会通过切断结尾来起作用
或单词的开头
并考虑到通用前缀列表
以及可以在任何单词上找到的后缀。
因此，在某些情况下，阻止可能会成功，
但不总是。
这就是为什么很多人肯定
阻止有很多限制。
因此，为了克服词干的局限性，
我们有称为lemmatization的东西。
现在lemmatization做的是
它考虑了形态分析
的话。
为此，有必要提供详细的字典
该算法可以查看以链接表格
回到其引理。
所以，基本上是词形化
也非常类似于阻止。
它将不同的单词映射到一个共同的词根中。
有时候，词干发生的事情是
大多数单词都被删掉了。
假设我们想将检测分为检测。
有时候它变得很呆板或变得僵硬，
或类似的东西。
所以因为这个，语法
或这个词的重要性消失了。
您不知道这些单词的含义了。
由于不加区分地删减了这个词，
有时语法对单词的理解
不在了。
这就是为什么引入了词形化的原因。
lemmatization的输出始终是
一个恰当的词。
好吧，这不会是一半的东西
或类似的东西。
您将了解形态分析
然后只有您要执行词条还原。
lemmatizer的一个例子
是您要转换已消失，即将运行并进入已运行状态。
无论如何，这三个词都是同一件事。
因此，您将将其转换为go。
我们不会删除单词的第一部分和最后一部分。
我们正在做的是我们正在理解
这个词背后的语法。
我们正在了解英语
或单词的形态分析，
只有这样，我们才可以执行词条还原。
这就是词形化的全部内容。
现在停用词基本上是一组
常用的任何语言的单词，而不仅仅是英语。
现在停词的原因
对许多应用而言至关重要的是
如果我们删除非常常用的词
用给定的语言
我们终于可以把重点放在重要的单词上。
例如，在搜索引擎的上下文中，
假设您打开Goog​​le
然后尝试制作草莓奶昔。
搜索引擎要做的是
它会发现更多页面
包含如何制作的字词，
而不是包含配方的页面
为您的草莓奶昔。
这就是为什么您必须忽略这些条款。
搜索引擎实际上可以集中精力
在草莓奶昔食谱上
而不是寻找具有操作方法的页面等等。
这就是为什么您需要删除这些停用词。
停用词是如何，开始，消失，各种以及
所有这些都是停用词。
他们不一定重要
了解句子的重要性。
因此，您可以摆脱这些常用词，
这样您就可以专注于实际的关键字。
您需要了解的另一个术语
是文档术语矩阵。
文档术语矩阵基本上是一个矩阵
带有按角色指定的文档和按列指定的单词。
因此，如果您的文档中有这句话，这很有趣，
或有这些词，这很有趣，
那么您将在这里得到一个，一个，一个。
在第二个文件中，如果您看到我们有这个，而我们有
但是我们没有乐趣。
这就是文档术语矩阵。
基本上是了解您的文件是否
包含每个单词。
它是一个频率矩阵。
那就是文档术语矩阵。
现在让我们继续看一下
自然语言处理演示。
所以我们要做的就是表演
情感分析。
现在就像我说的，感性分析
是最受欢迎的应用程序之一
自然语言处理。
它是指确定过程
给定的一段文字还是给定的句子
是正面还是负面。
因此，在某些变体中，我们考虑
一句话也要保持中立。
这是第三种选择。
这项技术通常用于发现
人们对特定主题的感觉
或人们对特定主题有何看法？
所以这主要是用来分析用户的情绪
各种形式
例如在营销活动，社交媒体中，
在电子商务网站中等等。
所以现在我们将进行情感分析
使用Python。
因此，我们将执行自然语言处理
通过使用NaiveBayesClassifier。
这就是为什么我们要导入NaiveBayesClassifier的原因。
伙计们，Python提供了一个已知的库
作为自然语言工具包。
该库包含所有需要的功能
执行自然语言处理。
同样在这个库中
我们有一个称为电影评论的预定义数据集。
我们要做的就是下载
来自我们的NLTK，这是​​自然语言工具包。
我们基本上将进行分析
在此电影评论数据集上。
这正是我们在这里所做的。
现在我们要做的是定义一个函数
为了提取特征。
这就是我们的职能。
它只是提取所有单词。
现在我们已经提取了数据，
我们需要训练它
因此我们将通过使用电影评论数据集来实现
我们刚刚下载的。
我们将要了解
肯定词和否定词。
所以我们在这里要做的是
和我们的负面评论。
我们正在加载它们。
之后，我们将这些分开
分为正面特征和负面特征。
这是可以理解的。
接下来，我们将拆分数据
进入我们的培训和测试集。
现在这是我们一直在做的事情
对于我们所有的演示。
这也称为数据拼接。
我们还将阈值因子设置为0.8
这基本上意味着您数据集的80％
将属于您的训练，
而20％将用于您的测试。
即使您的积极性，您也会这样做
和你的负面话。
之后，您只需重新提取功能，
而你只是在打印
您拥有的训练数据点的数量。
您只是打印训练功能的长度
然后打印长度
您的测试功能。
我们可以看到输出，让我们运行该程序。
所以，如果您看到我们正在
训练数据点数为1,600
您的测试数据点数是400，
这里的比例为80％到20％。
之后，我们将使用NaiveBayesClassifier
我们将定义对象
对于具有基本分类器的NaiveBayesClassifier，
我们将使用我们的训练数据集进行训练。
我们还将研究模型的准确性。
我们分类器的准确性约为73％，
这是一个非常好的数字。
现在，此分类器对象实际上将包含
最翔实的单词
在分析过程中获得的。
这些话基本上是理解必不可少的
哪个词被归类为肯定
并归为负面。
我们在这里要做的是要看电影。
我们将看看哪个电影评论是正面的
或哪部电影评论是负面的。
现在这个分类器将基本上有
所有有助于我们做出决定的翔实词
是正面评论还是负面评论。
然后，我们只打印这10个最有用的单词，
我们有杰出的侮辱
脆弱，可笑，无所事事，
避免，着迷等等。
这些是我们文本中最重要的词。
现在我们要做的是测试模型。
我随机给出了一些评论。
如果需要，让我们添加另一个评论。
我们会说
我喜欢
电影。
所以我在这里添加了另一条评论。
在这里，我们只是打印评论，
我们正在检查这是否是正面评价
或负面评论。
现在让我们看看我们的预测。
我们将保存并...
我忘了在这里加逗号。
保存它，然后再次运行该文件。
这些是我们随机撰写的电影评论。
预期情绪是积极的。
我们的概率得分是0.61。
这里很准确。
这是一部乏味的电影，我永远不会推荐，
是负面情绪。
摄影非常好，
这是一个积极的评价。
这部电影可怜，显然是一个负面评论。
方向很糟糕
故事到处都是。
这也被视为负面评论。
同样，我喜欢我刚刚输入的电影，
我对此给予了积极评价。
因此，我们的分类器实际上工作得很好。
它给我们很好的准确性
并且可以非常准确地对情感进行分类。
伙计们，这全是关于情感分析的。
在这里，我们基本上看到了电影评论
是正面还是负面。
伙计们，这就是我们的NLP演示。
希望大家都明白这一点。
这是一个简单的情感分析
我们通过Python看到的。
再说一次，如果您有疑问，
请把它们留在评论部分，
我会为您提供所有查询。
伙计们，这是我们的最后一个模块，
这是自然语言处理。
在我结束今天的会议之前，
我想和你讨论
机器学习工程师计划
我们有Edureka。
所以我们都知道
机器学习工程师的需求。
因此，在Edureka，我们有一个硕士课程
涉及200多个小时的互动培训。
因此，Edureka的机器学习硕士课程
大约有九个模块，耗时200多个小时
互动学习。
所以我告诉你课程
本课程提供的内容。
因此，您的第一个模块将基本涵盖
Python编程。
它具有所有基础知识和所有数据可视化功能，
您的GUI编程，您的功能，
和您的面向对象的概念。
第二个模块将介绍使用Python进行机器学习。
因此，您将监督算法
和无监督算法
以及统计数据和时间序列
Python中的内容将在您的第二个模块中介绍。
您的第三个模块将具有图形建模。
当ti涉及机器学习时，这一点非常重要。
在这里，您将学习有关决策的知识，
图论，推论以及贝叶斯和马尔可夫网络，
第四个模块将涵盖
加强学习。
在这里，您将了解动态编程，
时间差，贝尔曼方程，
所有强化学习的概念都在深入。
所有细节提前概念
强化学习。
因此，第五个模块将涵盖Python的NLP。
您将了解令牌化，词干限制词法，
语法，树解析等。
第六个模块将拥有第六个模块
使用TensorFlow进行人工智能和深度学习。
该模块是非常高级的版本
您所有的机器学习中
以及您将学习的强化学习。
深度学习将在这里深入。
您将在整个过程中使用TensorFlow。
它们将涵盖我们看到的所有概念，CNN，RNN。
它将涵盖各种类型的神经网络，
像卷积神经网络
循环神经网络
长期的短期记忆，神经网络，
以及自动编码器等。
第七个模块是关于PySpark的。
它将向您展示Spark SQL的工作方式
以及Spark ML库的所有功能。
最后一个模块将最终覆盖
关于使用PySpark的Python Spark。
通过这七个模块，
您还将获得两门免费的自定进度课程。
让我们实际看一下课程。
这就是您的机器学习
工程师硕士课程。
您将拥有九门课程，超过200小时
互动学习。
这是整个课程的课程，
我们刚刚讨论过。
这里有七个模块。
除了这七个模块之外，
您将获得两门免费的自定进度课程，
我将在稍后讨论。
您还可以了解平均年薪
对于机器学习工程师，
超过$ 134,000。
而且也有很多职位空缺
在机器学习AI和数据科学领域。
所以你可能会得到的职位
是机器学习工程师，人工智能工程师，
数据科学家，数据和分析经理
NLP工程师和数据工程师。
所以这基本上是课程。
您的第一个意愿是通过Python编程认证，
使用Python进行机器学习认证，
图形建模，强化学习，
自然语言处理
使用TensorFlow进行AI和深度学习。
使用PySpark进行Python Spark认证培训。
如果您想进一步了解这些模块，
您可以去查看课程表。
他们会解释每个概念
他们将在此模块中显示。
所有这些都将在这里讨论。
这只是第一个模块。
现在在该项目的结尾，
您将获得经过验证的结业证书
上面写着你的名字
这些是免费的选修课
你会得到的。
一是您的Python脚本认证培训。
另一个是您的Python统计信息
用于数据科学课程。
这两个课程都深入解释了Python。
第二门统计学
将解释所有概念
统计概率，描述性统计，
推论统计，
时间序列，测试数据，
数据聚类，回归建模等。
因此，每个模块的设计方式
您将有一个实际的演示
或实际的实现
在每个模型之后。
所以我理论上教给你的所有概念
将通过实际演示进行解释。
这样您将对
整个机器学习和AI概念。
所以，如果你们有兴趣
在注册该程序
或者如果您想了解更多有关
Edureka提供的机器学习课程，
请在评论部分保留您的电子邮件ID，
我们会尽快回复您
与课程的所有细节。
大家，到此，我们走到了尽头
这个AI全课程课程。
希望大家都了解基本概念
以及AI机器学习，深度学习，
和自然语言处理。
因此，如果您仍有疑问
关于任何这些主题，
在评论部分提及他们，
我会尽力回答您的所有疑问。
伙计们，非常感谢您加入我的会议。
祝你有美好的一天。
希望您喜欢听这段视频。
请足够友善地喜欢它，
您可以评论您的任何疑问和疑问，
我们将尽快答复他们。
请在我们的播放列表中查找更多视频
并订阅Edureka频道以了解更多信息。
学习愉快。