‫真漂亮｡
‫现在, 我们已经设置好了环境, Jupyter Notebook或Jupyter Notebook服务器也已经运行｡
‫我们可以创建一个新的Jupiter笔记本电脑并开始编写一些代码｡
‫我们把它装上吧｡
‫我将最大化此窗口｡
‫所以我们在这里给予它命名｡
‫我们要从头到脚做些简单的事｡
‫端到端心脏病分类｡
‫而在良好的沟通风格将把一个标记下来的标题去简单的东西｡
‫预测心脏病｡
‫使用机器学习｡
‫然后是一个小眼线｡
‫因此,
‫本笔记本将探讨如何使用各种基于Python的机器学习和数据科学库, 这些都是我们的工具, 旨在构建一个能够根据医疗属性预测某人是否患有心脏病的机器学习模型｡
‫谁啊？
‫所以可能不止一条班轮｡
‫我们可以稍微精简一下, 但这不是我们的重点｡
‫我们的重点是编写代码并将其应用到框架中｡
‫这就是我们要解决的问题｡
‫这就是我们要开始做的｡
‫我们开始在一个全面的端到端机器学习项目的范围内, 将我们学到的工具应用到我们的机器学习框架中｡
‫我希望你能感受到兴奋｡
‫那我们怎么开始呢？
‫好吧, 第一件事可能是好的概述我们的方法｡
‫我们将采取以下方法｡
‫所以第一步是问题定义｡
‫我们在开场白中也是这样做的｡
‫所以问题的定义也是数据, 我们将使用什么数据来解决这个问题｡
‫我们已经在之前的视频中看到过, 但同样, 如果要完整, 我们只需要做一点概述,
‫请看这里, 然后我们将继续｡
‫评估将快速定义评估指标对我们的意义｡
‫比如成功的定义是什么？
‫如果我们认为这个项目是成功的, 这个机器学习的概念证明, 我们能用机器学习来预测心脏病吗？
‫我们需要什么作为评估指标, 作为最低限度的功能？
‫因此, 我们将最关注数据的哪些特征, 甚至哪些特征对模型的贡献最大,
‫这是第五步建模｡
‫最后, 第六步是实验｡
‫实际上, 这一切都是实验｡
‫所以我们可以从这个开始｡
‫同样, 如果你在这方面很有经验, 你可能会直接开始钻研代码, 你可能知道该怎么做｡
‫但对我们来说, 因为我们还在学习,
‫我们还在弄清楚如何处理不同的问题, 我们建立了这个框架, 然后我们弄清楚如何在每个不同的步骤中使用我们的工具｡
‫那么让我们首先回到问题定义｡
‫我们已经在声明中做了任何可以告诉别人的事情｡
‫在我们的例子中, 我们做的是二元分类, 也就是某人是否有心脏病｡
‫所以只有两门课｡
‫请记住, 分类是预测某件事是这样还是那样｡
‫所以在一个声明中, 我们想把它放在一个漂亮的小引号里｡
‫所以, 如果给出一个病人的临床参数, 我们能预测他们是否有心脏病吗？
‫好极了｡
‫然后是数据二｡
‫现在, 我们来到这里, 我们知道我们的心脏病数据已经在一个CSV文件中, 如果我们单击它,
‫它将加载｡
‫在这里很难阅读｡
‫我们很快就会用熊猫的数据框来导入它｡
‫但是如果我们到这里, 如果我们到UCI, 心脏病数据集｡
‫这是我们找到的第二步, 顺便说一下, 数据｡
‫这是我们发现更多关于我们实际使用的数据｡
‫所以你可以从这里下载｡
‫这是它的原始来源, UCI机器学习库, 它有很多不同的数据集, 你可以处理和使用,
‫比如, 像我们正在解决的问题｡
‫但是要把它转换成CSV格式, 它已经被格式化了, 这在Kaggle上｡
‫现在你也可以去Kaggle, 得到更多不同的数据集｡
‫这边有个小菜单｡
‫那里有数据集｡
‫你甚至可以搜索不同的东西｡
‫但这是我最初在这个数据集上看到的｡
‫您可以在此处下载｡
‫如果您单击“下载”, 它将告诉我们更多关于数据的信息, 一些属性信息,
‫例如不同的列代表什么｡
‫如果我们继续前进｡
‫我们看这里, 我们看到不同的列, 这是它们不同的值所在的位置｡
‫这是一个数据字典｡
‫我们马上就会看到这个｡
‫我们用, 这个会派上用场的｡
‫我们可以做的是, 看看我们是否能复制这个｡
‫然后把它带回我们的笔记本｡
‫这是一个数据字典｡
‫所以我们可能会说, 创建数据有点超前了｡
‫所以如果我们去那里, 砰｡
‫这就是我们可以用来引用数据中的列｡
‫所以如果我们在这里输入数据, 我们可能可以从中提取一些信息｡
‫如果我们复制这个数据库, 这个数据库包含76个属性, 那么, 实际上我们的数据集只包含14个｡
‫但我们读到这里｡
‫但所有发表的实验都提到使用其中14个的子集｡
‫好的, 太棒了｡
‫所以如果我们回到UCI｡
‫心脏病数据集｡
‫我们在这里得到了一点信息｡
‫所以只使用了14种属性｡
‫现在, 你不会总是对你所从事的每个项目都这样做, 特别是如果你在一家公司或一个团队中工作｡
‫数据集可能是由客户提供给你的,
‫但对于我们正在解决的问题, 因为我们需要访问开源数据, 这意味着每个人都可以访问的数据,
‫我们可以在互联网上公开找到它们, 但话说回来, 过程非常相似｡
‫无论您正在处理什么数据集, 都需要以正确的格式进行处理, 以便在Jupyter
‫Notebook中使用｡
‫我们可以放在这里｡
‫原始数据来自克利夫兰数据库, 来自UCI机器学习库｡
‫在Kaggle上也有一个版本｡
‫所以你可以把它复制到这里｡
‫真漂亮｡
‫我们也会在那里复制｡
‫我们可以晚点再收拾｡
‫但这只是关于数据的一些信息｡
‫它是从哪里来的？
‫我们有什么数据？
‫所以我们来这里｡
‫第三, 评估｡
‫所以如果我们真的在做这个项目, 我们想实现这个｡
‫假设我们是一家医院, 希望能够将其实现为机器学习模型, 作为前台的一个应用｡
‫如果有人来找我们, 而我们是一名护士, 我们会测量他们的这些不同参数｡
‫所以我们发现了不同的病人属性｡
‫我们需要什么样的度量标准来判断我们的模型是否有效, 是否在游戏中被淘汰？
‫所以如果我们要对一个人是否患有心脏病进行分类, 因为这是非常重要的,
‫我们需要一个非常非常准确的模型｡
‫比如说, 我会编一个数字｡
‫所以你可能会说,
‫如果你能在这个概念验证阶段达到95%的准确率来预测一个病人是否患有心脏病, 这就是我们在这里所做的, 那么你可能会追求并试图真正进入其他人的手中｡
‫这就是我们要做的事情的本质, 我们要构建一个机器学习概念验证｡
‫我之所以说概念验证, 是因为机器学习项目往往一开始就试图弄清楚数据中是否有足够的模式可供机器学习模型学习｡
‫如果有的话, 那么你可以进一步推进这个项目, 把它投入生产或某种应用程序｡
‫因此, 这只是我们在项目一开始就为自己设定的另一个目标, 它不是一成不变的｡
‫这可能会改变｡
‫你可能会和你的团队一起思考,
‫比如, 嘿, 如果我们要花两周的时间来做这个机器学习项目, 我们最终要达到什么样的数字才能让它得到更多的追求？
‫那就这么办吧｡
‫因此, 如果我们能达到95%的准确率, 在预测是否有心脏病的病人在概念验证将继续该项目｡
‫而这可能是另一件事, 对吧？
‫可能会有人在数据科学公司或类似的公司找到你｡
‫另一个团队的人可能会说, 嘿, 我们有这个数据集｡
‫我们想衡量有多少客户在流失, 我们想看看我们是否能建立一个机器学习模型来帮助我们解决问题｡
‫然后他们可能会说, 嘿, 你想做一个概念验证吗？
‫就像我们在这里做的一样？
‫这就是实验室的设置方式｡
‫你可以从问题定义开始, 弄清楚客户是否会流失｡
‫数据从何而来？
‫它来自我们的客户数据库｡
‫我们的评估指标是什么？
‫如果我们能够以80%的准确率确定客户是否会流失, 那么我们可能会继续追求这一点,
‫并将其真正纳入我们的生产管道｡
‫这是前三个步骤的工作流程示例｡
‫最后, 第四步, 我们还没有完成｡
‫我们还有更多功能要做｡
‫那么, 如果我们回过头来, 我们已经做了这个, 我们已经做了评估, 什么定义了成功, 我们应该模仿什么特性？
‫这是第四步｡
‫这就是我们创建数据字典的地方｡
‫我的意思是, 你也许可以通过做一点研究来自己创造这个｡
‫所以在我的观点中, 这涉及到, 我们可以通过把这些都放在点上来整理, 但是一旦我们看到我们正在处理的数据,
‫它们很快就会有意义｡
‫事实上是的
‫是的, 我们可以把这个输入成点｡
‫现在我们已经创建了数据字典｡
‫你可能会通过自己的研究找到这些东西, 就像我们在这里做的一样,
‫找到这里的数据, 找到这些数据, 或者你可以在主题专家的帮助下创建它｡
‫我的意思是, 比如说,
‫你让那个团队带着一大堆关于谁会流失或不流失的客户数据来找你, 这意味着他们会离开或停止使用你的产品,
‫他们可能会告诉你这些数据的不同特征意味着什么｡
‫所以我们在这里放上, 这是你可以得到关于数据中每一个特征的不同信息的地方｡
‫因此, 基本上, 当你开始处理数据时, 你不会是一个完全的新手｡
‫您将对实际发生的情况或数据的每个部分的含义有一些了解｡
‫当我们看到真实的数据时, 当我们将心脏病CSV文件导入到Jupyter
‫Notebook中时, 这将变得更有意义, 这是我们在下一个视频中要做的｡
‫所以这四个步骤｡
‫一, 二, 三, 四｡
‫问题定义｡
‫数据｡
‫我们有什么数据？
‫功能评估不一定需要那么长时间,
‫所以我们在大约10分钟内就完成了所有四个功能, 因为我们想要做的是亲自操作代码,
‫让代码和数据为自己说话, 而不是在这里思考, 我们想要看到它的运行｡
‫这就是我们在接下来的几个视频中要做的｡