Artificial Intelligence With Python 简明教程

AI with Python – Machine Learning

学习是指通过学习或经验获取知识或技能。基于此,我们可以对机器学习(ML)进行如下定义:−

它可以被定义为计算机科学领域,更具体地说,是一种人工智能的应用,它为计算机系统提供了利用数据学习和从经验中提高的能力,而不用明确编程。

基本上,机器学习的主要焦点在于让计算机在没有人工干预的情况下自动学习。现在问题来了,这样的学习是如何开始的又是如何进行的?它可以从数据观察开始。数据可以是某些示例、指令或某些直接经验。然后,机器根据这些输入寻找数据中的某些模式,从而做出更好的决策。

Types of Machine Learning (ML)

机器学习算法帮助计算机系统学习而无需明确编程。这些算法分为监督或非监督。下面我们来看看几种算法 −

Supervised machine learning algorithms

这是最常用的机器学习算法。它被称为监督算法,因为算法从训练数据集中学习的过程可以看作是教师监督学习过程。在这种机器学习算法中,可能的结果已经知道,训练数据也用正确的答案进行了标记。它可以理解如下 −

假设我们有输入变量 x 和输出变量 y ,我们应用一个算法来学习从输入到输出的映射函数,例如 −

Y = f(x)

现在,主要目标是很好地逼近映射函数,这样当我们有新的输入数据(x)时,我们可以预测该数据的输出变量(Y)。

主要是监督学习问题可以分为以下两种问题 −

  1. Classification − 当我们具有分类输出(例如“黑”、“教学”、“非教学”等)时,此问题称为分类问题。

  2. Regression − 当我们具有实际值输出(例如“距离”、“千克”等)时,此问题称为回归问题。

决策树、随机森林、knn、逻辑回归是监督机器学习算法的示例。

Unsupervised machine learning algorithms

顾名思义,这些机器学习算法没有任何主管来提供任何指导。因此,无监督机器学习算法与有些人所说的真正人工智能紧密相关。它可以理解如下 −

假设我们有输入变量 x,那么将没有像在监督学习算法中对应的输出变量。

简单来说,我们可以说在无监督学习中没有正确答案,也没有指导老师。算法有助于发现数据中的有趣模式。

无监督学习问题可以分为以下两种问题 −

  1. Clustering − 在聚类问题中,我们需要发现数据中的固有分组。例如,按购买行为对客户进行分组。

  2. Association − 问题之所以称为关联问题,是因为此类问题需要发现描述我们数据大部分规则。例如,发现同时购买了 xy 的客户。

用于聚类的 K-means、用于关联的 Apriori 算法是无监督机器学习算法的示例。

Reinforcement machine learning algorithms

这类机器学习算法的使用很少。这些算法训练系统做出特定决策。基本上,机器暴露在环境中,在该环境中它不断使用试验和错误法进行自我训练。这些算法从过去的经验中学习,并尝试捕捉最佳可能的知识以做出准确的决策。马尔可夫决策过程是强化机器学习算法的一个示例。

Most Common Machine Learning Algorithms

在本节中,我们将学习最常见的机器学习算法。以下描述了这些算法:

Linear Regression

它是统计学和机器学习中最著名的算法之一。

基本概念 - 主要线性回归是一个线性模型,它假设输入变量(例如 x)和单个输出变量(例如 y)之间存在线性关系。换句话说,我们可以说 y 可以从输入变量 x 的线性组合中计算得到。变量之间的关系可以通过拟合最佳线来建立。

Types of Linear Regression

线性回归具有以下两种类型 −

  1. Simple linear regression - 如果线性回归算法只有一个自变量,则该算法称为简单线性回归。

  2. Multiple linear regression - 如果线性回归算法有多个自变量,则该算法称为多元线性回归。

线性回归主要用于基于连续变量估计真实值。例如,可以通过线性回归根据真实值估计商店一天内的总销售额。

Logistic Regression

它是一种分类算法,也称为 logit 回归。

主要逻辑回归是一种分类算法,用于根据一组给定的自变量估计离散值,如 0 或 1、真或假、是或否。基本上,它预测概率,因此其输出介于 0 和 1 之间。

Decision Tree

决策树是一种监督学习算法,主要用于分类问题。

基本上它是一个分类器,表示为基于自变量的递归划分。决策树具有形成有根树的节点。有根树是一个有向树,其中一个节点称为“根”。根没有任何入边,所有其他节点都有一个入边。这些节点称为叶节点或决策节点。例如,考虑以下决策树,以查看一个人是否健康。

decision tree

Support Vector Machine (SVM)

它用于分类和回归问题。但主要用于分类问题。SVM 的主要概念是将每个数据项绘制为 n 维空间中的一个点,其中每个特征的值是特定坐标的值。这里 n 将是我们拥有的特征。以下是一个简单的图形表示,用于理解 SVM 的概念:

support vector machine

在上图中,我们有两个特征,因此我们首先需要将这两个变量绘制在二维空间中,其中每个点的两个坐标称为支持向量。该线将数据分成两个不同的分类组。这条线将是分类器。

Naïve Bayes

这也是一种分类技术。这种分类技术的逻辑是使用贝叶斯定理构建分类器。假设预测变量是独立的。简单来说,它假设类中是否存在特定特征与是否存在任何其他特征无关。以下是贝叶斯定理的公式:

P\left ( \frac{A}{B} \right ) = \frac{P\left ( \frac{B}{A} \right )P\left ( A \right )}{P\left ( B \right )}

朴素贝叶斯模型易于构建,尤其适用于大型数据集。

K-Nearest Neighbors (KNN)

它用于问题的分类和回归。它被广泛用于解决分类问题。此算法的主要概念是它用于存储所有可用的案例,并按其 k 个邻居中的多数票对新案例进行分类。然后将案件分配给在其 K 个最近邻居中最常见的类别,由距离函数测量。距离函数可以是欧几里得距离、闵可夫斯基距离和汉明距离。考虑使用 KNN 的以下内容:

  1. 在计算上,KNN 比用于分类问题的其他算法的成本更高。

  2. 变量的标准化が必要である場合、それ以外の高範囲変数によってバイアスがかかる可能性があります。

  3. KNNでは、ノイズ除去などの事前処理段階で作業を行う必要があります。

K-Means Clustering

名前が示すように、クラスタリングの問題を解決するために使用されます。これは基本的に、無教師学習の種類です。K手段クラスタリングアルゴリズムの主な論理は、いくつかのクラスタを通してデータセットを分類することです。K手段によるクラスタを形成するには、次の手順に従います。

  1. K手段は、重心として知られる各クラスタのポイントの数kを選択します。

  2. 現在、各データポイントは最も近い重心とのクラスタ、つまりkクラスタを形成します。

  3. 次に、既存のクラスタメンバを元に各クラスタの重心を見極めます。

  4. 収束するまでこれらの手順を繰り返す必要があります。

Random Forest

これは、教師付き分類アルゴリズムです。ランダムフォレストアルゴリズムの利点は、分類と回帰の両方の種類の問題に使用できることです。基本的に、決定木の集合(すなわち、フォレスト)であるか、決定木のアンサンブルであると言えます。ランダムフォレストの基本的な概念は、各木が分類を提供し、フォレストはそれらから最高の分類を選択するというものです。ランダムフォレストアルゴリズムの利点は次のとおりです。

  1. ランダムフォレスト分類器は、分類と回帰の両方のタスクに使用できます。

  2. 欠損値を処理することができます。

  3. フォレストにたくさんの木があっても、モデルを過剰適合することはありません。