本机器学习教程提供了机器学习的基础和中级概念。它专为初学者和专业工作者而设计。到本教程结束时,您不会成为机器学习方面的专家,但您将能够制作执行复杂任务的机器学习模型,例如预测房价或根据大小识别虹膜的类型。花瓣和萼片的长度。如果你还不是一个完全的初学者,并且对机器学习有一定的了解,那么我建议你从副题八,机器学习的类型开始。在开始学习本教程之前,您应该熟悉Pandas和NumPy。这对于理解实现部分很重要。以下是我们将在本教程中讨论的子主题:什么是机器学习?它与传统编程有何不同?为什么我们需要机器学习?机器学习的历史机器学习的今天机器学习有什么特点机器学习最好的语言是什么?机器学习的类型监督学习无监督学习强化学习机器学习算法机器学习步骤机器学习的优势未来机器学习什么是机器学习?亚瑟·塞缪尔(ArthurSamuel)于1959年创造了“机器学习”一词。他是人工智能和计算机游戏的先驱,并将机器学习定义为“使计算机无需明确编程即可学习的研究领域”。简单地说,机器学习是人工智能(AI)的一种应用,它允许程序(软件)从经验中学习并在完成任务时改进自身,而无需明确编程。例如,您将如何编写一个程序来根据水果的各种属性(例如颜色、形状、大小或任何其他属性)来识别水果?一种方法是对所有内容进行硬编码,制定一些规则并使用它们来确定结果。这似乎是唯一的出路,但永远无法制定出适用于所有情况的完美规则。使用没有任何规则的机器学习可以很容易地解决这个问题,这使得它更加健壮和实用。在接下来的部分中,您将看到我们将如何使用机器学习来完成此任务。因此,我们可以说机器学习是通过赋予机器以最少的人为干预(即无需显式编程)进行学习的能力,使机器的行为和决策更加人性化的能力。现在问题来了,程序是如何获得经验和学习的呢?答案是数据。数据也被称为机器学习的驱动力,可以肯定地说没有数据就没有机器学习。你可能想知道,机器学习这个词是在1959年提出的,所以它可以追溯到很久以前,为什么直到最近几年才被提及呢?您可能需要注意,机器学习需要巨大的计算能力、大量数据以及能够存储如此大量数据的设备。我们最近才满足所有这些要求,可以实践机器学习。它与传统编程有何不同?你有没有想过机器学习与传统编程有何不同?好吧,在传统编程中,我们将输入数据连同经过良好编写和测试的程序一起输入机器以生成输出。在机器学习方面,在学习阶段,输入数据以及与数据相关的输出被输入机器和程序本身。如果您不完全理解这些,请不要担心,您将在接下来的部分中获得更好的理解。为什么我们需要机器学习?今天的机器学习得到了它所需要的所有关注。机器学习可以自动执行许多任务,尤其是那些只有人类才能利用其内在智能执行的任务。这种智能只能在机器学习的帮助下在机器上复制。在机器学习的帮助下,企业可以自动执行日常任务。它还有助于自动化和快速创建数据分析模型。每个行业都依赖大量数据来优化运营并做出明智的决策。机器学习有助于创建可以处理和分析大量复杂数据以提供准确结果的模型。这些模型准确、可扩展且周转时间更短。通过构建如此准确的机器学习模型,企业可以利用盈利机会并避免未知风险。图像识别、文本生成和许多其他用例正在现实世界中找到应用。这拓宽了机器学习专家成为抢手专业人士的视野。当前的机器学习2012年,AlexKrizhevsky、GeoffreyHinton和IlyaSutskever发表了一篇有影响力的研究论文,描述了一种可以显着降低图像识别系统错误率的模型。与此同时,谷歌的XLab开发了一种机器学习算法,能够自动筛选YouTube视频以识别包含猫的视频。2016年,由GoogleDeepMind的研究人员创建的用于玩中国古代围棋游戏的AlphaGo在与十多年来世界顶级棋手李世石的五场比赛中赢得了四场。去球员。现在,在2020年,OpenAI发布了GPT-3,这是有史以来最强大的语言模型。它可以编写创意小说、生成功能代码、编写周到的业务备忘录等等。它可能的用例仅受我们想象力的限制。机器学习自动化功能:如今,您的Gmail帐户中有一个垃圾邮件文件夹,其中包含所有垃圾邮件。您可能想知道Gmail如何知道所有这些电子邮件都是垃圾邮件?这是机器学习的工作。它可以识别垃圾邮件,因此很容易自动执行此过程。自动执行重复性任务的能力是机器学习的最大特征之一。许多组织已经在使用基于机器学习的文书工作和电子邮件自动化。例如,在金融领域,需要执行大量重复性、数据量大且可预测的任务。因此,该行业主要使用不同类型的机器学习解决方案。改善客户体验:对于任何企业而言,提供定制化体验和提供更好的服务是提高参与度、提升品牌忠诚度和建立长期客户关系的最关键方法之一。机器学习可以帮助我们实现这两个目标。您是否注意到,每当您打开任何购物网站或在互联网上看到任何广告时,大多数都与您最近的搜索有关?这是因为机器学习让我们能够做出非常准确的推荐系统。它们帮助我们定制用户体验。现在就开始使用这项服务吧,现在大多数公司都有一个24×7可用的聊天机器人。比如亚航的长荣。这些机器人提供智能答案,有时您甚至可能没有注意到您正在与机器人交谈。自动化数据可视化:过去,我们看到公司和个人生成大量数据。以谷歌、推特、脸书等为例。他们每天产生多少数据?我们可以使用这些数据并可视化显着关系,使企业能够做出更好的决策,使公司和客户都受益。在AutoViz等用户友好的自动化数据可视化平台的帮助下,企业可以获得大量新见解,从而提高其流程的生产力。商业智能:机器学习功能与大数据分析结合使用时,可以帮助公司找到解决问题的方法,从而帮助企业发展并产生更多利润。从零售到金融服务再到医疗保健等,机器学习已成为促进业务运营的最有效技术之一。机器学习的最佳语言是什么?虽然有很多语言可供机器学习使用,但在我看来,Python是机器学习应用程序的最佳编程语言。这是由于以下部分中提到的各种好处。其他可用于机器学习应用程序的编程语言有R、C++、JavaScript、Java、C#、Julia、Shell、TypeScript和Scala。R也是一种非常好的机器学习入门语言。与其他编程语言相比,Python以其可读性和相对较低的复杂性而闻名。机器学习应用涉及复杂的概念,例如微积分和线性代数,需要花费大量的精力和时间来实现。Python通过帮助机器学习工程师通过快速实施验证想法来减轻负担。您可以查看《Python教程》以获得对该语言的基本理解。使用Python进行机器学习的另一个好处是预建库。不同类型的应用程序有不同的包,如下所述:用于图像处理的Numpy、OpenCV和ScikitNLTK与Numpy和Scikit用于文本处理Librosa用于音频应用程序Matplotlib、Seaborn和Scikit用于数据表示TensorFlow和Pytorch用于深度学习应用程序科学计算用于集成Web应用程序的Django用于高级数据结构和分析的PandasPython提供了在面向对象编程或脚本之间进行选择的灵活性。也不需要重新编译代码。开发人员可以实施任何更改并立即查看结果。您可以将Python与其他语言结合使用来实现所需的功能和结果。Python是一种通用编程语言,可以在任何平台上运行,包括Windows、MacOS、Linux、Unix等。从一个平台迁移到另一个平台时,代码需要进行一些小的调整和更改,并且可以在新平台上运行。下面总结了使用Python解决机器学习问题的好处:机器学习的类型机器学习可以大致分为三类监督学习无监督学习强化学习什么是监督学习?让我们从一个简单的例子开始,假设您正在教孩子区分狗和猫。你会怎么做?你可以给他/她看狗,说“这是狗”,遇到猫你会指出它是猫。当您向孩子展示足够多的猫和狗时,他可能会学会区分它们。如果他训练有素,他也许能够认出他以前从未见过的不同品种的狗。同样,在监督学习中,我们有两组变量。一个叫做目标变量,或者标签(我们要预测的变量)和特征(帮助我们预测目标变量的变量)。我们向程序(模型)显示特征和与这些特征相关的标签,程序能够在数据中找到潜在的模式。以这个数据集为例,我们想根据房屋的大小来预测房屋的价格。价格作为目标变量取决于大小作为特征。房间数量价格1$1003$3005$500在真实数据集中,我们会有更多行和不止一个特征,如大小、位置、楼层数等。因此,监督学习模型可以说具有一组输入变量(x)和一个输出变量(y)。算法识别输入和输出变量之间的映射函数。关系是y=f(x)。在我们已经知道输出并且每次都对算法进行更正以优化其结果的意义上,学习受到监控或监督。该算法在数据集上进行训练并进行修改,直到达到可接受的性能水平。我们可以将监督学习问题归类为:回归问题——用于预测未来值并使用历史数据来训练模型。例如,预测房子的未来价格。分类问题——各种标签训练算法识别特定类别中的项目。例如,狗或猫(如上例所示)、苹果或橙子、啤酒或葡萄酒或水。什么是无监督学习?该方法没有目标变量,只有输入变量(特征)。该算法自行学习并发现数据中令人印象深刻的结构。目标是破译数据中的潜在分布以获得更多关于数据的知识。我们可以将无监督学习问题分为:聚类:这意味着将具有相同特征的输入变量捆绑在一起。例如,根据搜索记录对用户进行分组和关联:在这里,我们发现了管理数据集之间有意义关联的规则。例如,看“X”的人也看“Y”。什么是强化学习?在这种方法中,机器学习模型经过训练,可以根据它们收到的有关其行为的奖励和反馈做出一系列决策。机器学习如何在复杂和不确定的情况下实现目标,并在学习过程中每次达到目标时获得奖励。强化学习在没有可用答案的意义上不同于监督学习,因此强化代理决定采取哪些步骤来执行任务。当没有训练数据集时,机器会从自己的经验中学习。机器学习算法这可能是您的机器学习过程中最耗时和最困难的过程。机器学习中有很多算法,你不需要完全理解它们就可以上手。但我建议一旦你开始练习机器学习,你应该开始学习那里最流行的算法,例如:线性回归逻辑回归决策树支持向量机朴素贝叶斯K-最近邻K-均值随机森林梯度提升算法GBMXGBoostLightGBMCatBoosters在这里,我将简要概述机器学习中最简单的算法之一,即K-最近邻算法(这是一种监督学习算法),并解释它如何用于回归和分类。我强烈建议您查看线性回归和逻辑回归,因为我们将要实现它们,并将结果与??实现部分中的KNN(K最近邻)算法进行比较。您可能需要注意,回归问题和分类问题通常有不同的算法。但是通过修改算法,我们可以将其用于分类和回归,如下所示K-最近邻算法KNN属于一组懒惰的学习者。与热切的学习者(例如逻辑回归、支持向量机、神经网络)相反,懒惰的学习者只是将训练数据存储在内存中。在训练阶段,KNN组织数据(建立索引的过程)以在推理阶段有效地找到最近的邻居。否则,它必须在推理过程中将每个新案例与整个数据集进行比较,从而使其效率非常低下。因此,如果您想知道什么是训练阶段、热切学习者和惰性学习者,请记住训练阶段是算法从提供给它的数据中学习的时候。例如,如果你通过上面链接的线性回归算法,在训练阶段,算法会尝试找到最适合的线,这个过程包括很多计算,因此需要很多时间,而这种类型的算法被称为渴望学习者。另一方面,惰性学习器与KNN一样,不涉及很多计算,因此训练速度更快。K-NN用于分类问题现在让我们看看如何使用K-NN进行分类。这是一个假设的数据集,它试图根据身高和体重(特征)来预测一个人是男性还是女性(标签)。身高(cm)-特征体重(kg)-特征。性别(标签)18780男16550女19999男14570女18087男17865女18760男现在让我们绘制这些点:现在,我们要分类一个新点,因为它的高度为190厘米,重量为100公斤。K-NN是这样分类的:选择一个K值,用户在分析数据后选择他认为最好的K值。测量新点到它的K个最近点的距离。有多种计算此距离的方法,其中最常见的是-欧几里德距离、曼哈顿距离(用于连续数据点,即回归问题)和汉明距离(用于分类,即用于分类问题)。确定更接近新点的点的类别并相应地标记新点。所以,如果大多数靠近我们新点的点属于某个类“a”,那么我们的新点应该来自类“a”。现在让我们将此算法应用于我们自己的数据集。让我们从绘制新数据点开始。现在让我们取k=3,也就是说,我们将看到离新点最近的三个点:所以,它被归类为男性:现在让我们取k=5,看看会发生什么:如您所见,这四个点最接近新数据点的是男性,只有一个点是女性,所以我们取多数并将其再次归类为“男性”。在分类时,K的值必须始终选择为奇数。用于回归问题的K-NN我们已经了解了如何使用K-NN进行分类。现在,让我们看看为了使用它进行回归做了哪些更改。算法几乎相同,只有一处不同。在分类中,我们检查所有最近点中的大多数。在这里,我们将取所有最近点的平均值并将其用作预测值。我们再举同样的例子,但是这里我们要根据一个人的身高(特征)来预测他的体重(标签)。身高(cm)-FeatureWeight(kg)-Label18780165501999914570180871786518760现在我们有了一个身高为160cm的新数据点,我们将K值设置为1,2和4来预测它的重量。当K=1时:我们数据中最接近160cm的点是165cm,它的权重是50,所以我们得出预测权重本身就是50。当K=2时:最接近的两个点是165和145,并且权重分别等于50和70。取平均值,我们说预测权重为(50+70)/2=60。当K=4时:重复同样的过程,现在我们取最近的4个点,所以我们得到70.6作为预测权重。您可能认为这真的很简单,机器学习没有什么特别的,它只是基础数学。但请记住,这是最简单的算法,一旦你继续前进,你会看到更复杂的算法。机器学习步骤我期望机器学习只是对数据应用算法并获得预测,但它并没有那么简单。每个项目都需要机器学习中的几个步骤。1.收集数据:这可能是最重要和最耗时的过程。在这一步中,我们需要收集可以帮助我们解决问题的数据。例如,如果要预测房屋的价格,我们需要一个适当的数据集,其中包含有关过去房屋销售的所有信息,然后形成表格结构。我们将在实施部分解决类似的问题。2.准备数据:一旦我们有了数据,我们需要以正确的格式处理它。预处理涉及数据清洗等各个步骤,例如,如果你的数据集包含一些空值或异常值(例如,字符串而不是数字),你会如何处理?我们可以采用多种方法,但一种简单的方法是只删除具有空值的行。还有有时候在数据集中,我们可能会有一些对结果没有影响的列,比如id,我们也会把这些列删掉。我们通常使用数据可视化,通过图形和图表将数据可视化,然后在分析图形之后识别重要的特征。数据预处理是一个很大的话题。3.选择模型:现在我们的数据已准备好输入机器学习算法。如果您想知道什么是模型?通常,“机器学习算法”和“机器学习模型”可以互换使用。模型是在数据上运行的机器学习算法的输出。简而言之,当我们对所有数据实施算法时,我们得到的输出包含所有规则、数字和进行预测所需的任何其他特定于算法的数据结构。例如,对数据进行线性回归后,我们得到最佳拟合线的方程,称为模型。下一步通常是训练模型,以防万一我们不想调整超参数并选择默认参数。4.超参数调整:超参数至关重要,因为它们控制着机器学习模型的整体行为。最终目标是找到能给我们带来最佳结果的最佳超参数组合。但是这些超参数是什么?记住我们的K-NN算法中的变量K。当我们设置不同的K值时,会得到不同的结果。K的最佳值不是预先定义的,并且对于不同的数据集是不同的。没有办法知道K的最佳值,但您可以尝试不同的值并检查哪个给您最好的结果。这里K是一个超参数,每个算法都有自己的超参数,我们需要调整它们的值以获得最好的结果。5.评估:你可能想知道,你怎么知道模型的性能如何,还有什么比在某些数据上测试模型更好的方法呢?此数据称为测试数据,不能是我们训练算法所依据的数据(训练数据)的子集。训练模型的目标不是让它学习训练数据集中的所有值,而是识别数据中的潜在模式,并基于该模式对前所未见的数据做出预测。有多种评估方法,例如K-fold交叉验证等。我们将在下一节中详细讨论这一步。6.预测:既然我们的模型在测试集上也表现不错,那么我们可以在现实世界中使用它,希望它在现实世界的数据上表现良好。机器学习的优势1.轻松识别趋势和模式机器学习可以查看大量数据并找到人类看不到的特定趋势和模式。例如,对于亚马逊和Flipkart等电子商务网站,它可以了解用户的浏览行为和购买历史,帮助他们选择合适的产品、交易和提醒。它使用结果向他们展示相关广告。2.持续改进我们将不断生成新数据,并在数据输入时帮助机器学习模型随着时间的推移升级和提高其性能和准确性。可以说,这就像在不断提高准确性和效率中获得经验一样。这使他们能够做出更好的决定。3.处理多维和多元数据机器学习算法擅长处理多维和多类型数据,并且可以在动态或不确定的环境中进行处理。4.广泛的应用你可以是电子零售商或医疗保健提供者并使用机器学习。在适用的情况下,它能够帮助为客户提供更加个性化的体验,同时还能瞄准合适的客户。机器学习的未来机器学习可以成为任何公司的竞争优势,无论是顶级跨国公司还是初创公司。因为今天手工完成的工作明天将由机器完成。通过无人驾驶汽车Sophia等项目,这是一款由香港公司HansonRobotics开发的类人机器人,我们已经开始瞥见未来。机器学习革命将伴随我们很长一段时间,机器学习的未来也将如此。
