2022年 11月 8日

Python机器学习简介

机器学习是使计算机无需显式编程即可学习的行为。 这是通过将数据提供给计算机并将其转换为决策模型,然后将其用于未来的预测来完成的。

在本教程中,我们将讨论机器学习以及开始机器学习所需的一些基本概念。 我们还将设计一些Python示例来预测某些元素或事件。

机器学习导论

机器学习是一种旨在从经验中学习的技术。 例如,作为一个人,您可以通过观察其他人下棋来学习如何下棋。 以相同的方式,通过为计算机提供从中学习的数据,然后能够预测未来的要素或条件来对计算机进行编程。

例如,假设您要编写一个程序,该程序可以判断某种类型的水果是橙色还是柠檬。 您可能会发现编写这样的程序很容易,并且会给出所需的结果,但是您可能还会发现该程序对于大型数据集无法有效运行。 这就是机器学习发挥作用的地方。

机器学习涉及多个步骤:

  1. 资料收集
  2. 数据过滤
  3. 数据分析
  4. 算法训练
  5. 算法测试
  6. 使用算法进行未来预测

机器学习使用不同种类的算法来查找模式,这些算法分为两类:

  • 监督学习
  • 无监督学习

监督学习

监督学习是训练计算机通过提供样本数据来识别元素的科学。 然后,计算机从中学习,并能够根据学习到的数据预测未来的数据集。

例如,您可以训练计算机以根据过去的信息过滤掉垃圾邮件。

监督学习已在许多应用程序(例如Facebook)中使用,以基于特定描述搜索图像。 现在,您可以使用描述照片内容的文字在Facebook上搜索图像。 由于该社交网站已经具有字幕图像的数据库,因此它能够以某种程度的准确性搜索描述并将其与照片中的特征进行匹配。

监督学习仅涉及两个步骤:

  • 训练
  • 测试

一些监督学习算法包括:

  • 决策树
  • 支持向量机
  • 朴素的贝叶斯
  • k最近邻居
  • 线性回归

我们将编写一个简单的程序来演示使用Sklearn库和Python语言进行监督学习的方式。 Sklearn是适用于Python编程语言的机器学习库,具有多种功能,例如多重分析,回归和聚类算法。

Sklearn还可以与NumPy和SciPy库良好地互操作。

安装Sklearn

Sklearn安装指南为在多个平台上的安装提供了一种非常简单的方法。 它需要几个依赖项:

  • Python(> = 2.7或> = 3.3),
  • NumPy(> = 1.82)
  • 科学(> = 0.13.3)

如果已经具有这些依赖项,则可以像下面这样简单地安装Sklearn:

pip install -U scikit-learn

一个简单的方法是简单地安装Anaconda。 这将处理所有依赖项,因此您不必担心一一安装。

要测试Sklearn是否正常运行,只需按如下所示从Python解释器导入它即可:

import sklearn

如果没有错误发生,那您就很好了。

现在我们已经完成了安装,让我们回到问题所在。 我们希望能够区分不同的动物。 因此,我们将设计一种算法,该算法可以具体分辨给定的动物是马还是鸡。

我们首先需要从每种动物中收集一些样本数据。 下表中显示了一些示例数据。

身高(英寸) 重量(公斤) 温度(摄氏度) 标签
7 0.6 40 鸡(0)
7 0.6 41 鸡(0)
37 0.8 37 马(1)
37 0.8 38 马(1)

我们获得的样本数据给出了两只动物的一些共同特征以及两只动物的数据。 样本数据越大,结果越准确,偏差也越小。

利用这种类型的数据,我们可以对算法进行编码,然后根据训练后的值对算法进行训练,以识别出动物,然后将其分类为马还是鸡。 现在,我们将继续编写完成任务的算法。

首先,从Sklearn导入树模块。

from sklearn import tree

定义要用于对动物进行分类的特征。

features = [[7, 0.6, 40], [7, 0.6, 41], [37, 600, 37], [37, 600, 38]]

定义每个分类器将给出的输出。 鸡用0表示,而马用1表示。

  1. #labels = [chicken, chicken, horse, horse]
  2. # we use 0 to represent a chicken and 1 to represent a horse
  3. labels = [0, 0, 1, 1]

然后,我们定义将基于决策树的分类器。

classifier = tree.DecisionTreeClassifier()

将数据输入或适合分类器。

classifier.fit(features, labels)

该算法的完整代码如下所示。

  1. from sklearn import tree
  2. features = [[7, 0.6, 40], [7, 0.6, 41], [37, 600, 37], [37, 600, 38]]
  3. #labels = [chicken, chicken, horse, horse]
  4. labels = [0, 0, 1, 1]
  5. classif = tree.DecisionTreeClassifier()
  6. classif.fit(features, labels)

现在我们可以预测给定的数据集。 以下是预测身高7英寸,体重0.6千克,温度41的动物的方法:

  1. from sklearn import tree
  2. features = [[7, 0.6, 40], [7, 0.6, 41], [37, 600, 37], [37, 600, 38]]
  3. #labels = [chicken, chicken, horse, horse]
  4. labels = [0, 0, 1, 1]
  5. classif = tree.DecisionTreeClassifier()
  6. classif.fit(features, labels)
  7. print classif.predict([[7, 0.6, 41]])
  8. #output
  9. # [0] or a Chicken

以下是预测身高38英寸,体重600公斤,温度37.5的动物的方法:

  1. from sklearn import tree
  2. features = [[7, 0.6, 40], [7, 0.6, 41], [37, 600, 37], [37, 600, 38]]
  3. #labels = [chicken, chicken, horse, horse]
  4. labels = [0, 0, 1, 1]
  5. classif = tree.DecisionTreeClassifier()
  6. classif.fit(features, labels)
  7. print classif.predict([[38, 600, 37.5]])
  8. # output
  9. # [1] or a Horse

从上面可以看到,您已经训练了算法来学习动物的所有特征和名称,并且这些数据的知识用于测试新动物。

无监督学习

无监督学习是指您仅用一组输入来训练机器。 然后,机器将能够找到输入数据与您可能希望预测的任何其他数据之间的关系。 与有监督学习不同,在无监督学习中,您向机器展示了一些要训练的数据,无监督学习的目的是使计算机查找不同数据集之间的模式或关系。

无监督学习可以进一步细分为:

  • 聚类
  • 协会

聚类 :聚类是指固有地对数据进行分组。 例如,您可以根据消费者的购买习惯和购物习惯将其作为目标消费者,从而对消费者的购物习惯进行分类并将其用于广告。

关联 :关联是您在其中标识描述大量数据的规则的地方。 这种类型的学习可以应用于基于作者或类别的书籍,无论是动机书籍,虚构书籍还是教育书籍。

一些流行的无监督学习算法包括:

  • k均值聚类
  • 层次聚类

在不久的将来,无监督学习将成为一项重要技术。 这是由于存在许多尚未过滤的数据尚未数字化的事实。

结论

我希望本教程可以帮助您入门机器学习。 这只是一个介绍-机器学习有很多内容要介绍,而这仅仅是机器学习可以做的一小部分。

此外,不要犹豫,看看我们在Envato市场上有哪些可供出售和研究的物品 ,也不要犹豫,使用下面的提要来问任何问题并提供宝贵的反馈意见。

您决定使用监督还是无监督机器学习算法将取决于各种因素,例如数据的结构和大小。

机器学习可以应用于我们生活的几乎所有领域,例如,预防欺诈,在社交媒体网站中个性化新闻源以适应用户的喜好,电子邮件和恶意软件过滤,天气预报,甚至在电子商务领域以预测消费者购物习惯。

翻译自: https://code.tutsplus.com/tutorials/introduction-to-machine-learning-in-python–cms-30623