计算机科学中的数学之:机器学习数学基础

作者:禅与计算机程序设计艺术

1.简介

一、定义

“机器学习”(Machine Learning)是一个基于数据构建模型、优化参数、求解目标函数的迭代过程,通过训练集对模型参数进行估计,从而对新数据预测或分类。由于其自然的解释性强,运用范围广泛,已成为当今人工智能领域最热门、最重要的研究方向之一。

二、概述

机器学习的任务是从给定数据中学习到某种模型,这个模型能够在未知的数据上做出很好的预测或者分类。对于某个任务来说,通常需要面临着如下三个主要困难:

(1)数据量太小:如传统的统计方法所需要的数据量过于庞大,无法有效处理大规模的问题。

(2)复杂的非线性关系:许多现实世界的问题存在着复杂的非线性关系,使得使用传统的统计方法进行建模变得十分困难。

(3)缺乏足够的信息:很多情况下,即便有充足的数据,仍然不可能获得足够的信息进行建模。例如,在一个健康诊断系统里,病人的各种症状特征与最终诊断结果之间并没有明显的联系,因此即使有病例的记录,也无法将病人的症状及时关联起来,形成有效的模型。

为了解决以上三个问题,机器学习提出了一种新的框架——结构化数据的假设,借助这种假设建立基于规则和抽象的模型,逐步地拟合这些数据,使得模型具备高效、精确的预测能力,并进一步推广到新的、没有见过的样本。

三、基本概念

在开始讨论具体的数学模型之前,首先要了解一些重要的概念。

(1)监督学习

在监督学习过程中,系统由输入和输出组成,其中输入称为特征向量或样本向量,输出为相应的标签值或类别标记。通过监督学习,系统可以学习到特征之间的相互作用,从而对未知数据进行分类、预测等。 监督学习分为两个子类:

1.分类问题:输入变量X的取值只能是有限个离散的值,输出变量Y的取值只能是有限个离散的值。常用的分类算法包括决策树、贝叶斯法、神经网络、支持向量机、K-近邻、提升方法等。
2.回归问题:输入变量X的取值可以是连续值,输出变量Y的取值也可以是连续值。常用的回归算法包括简单回归、岭回归、局部加权回归、套索回归等。

(2)无监督学习

无监督学习不需要输出信息,系统自身对数据进行分析、聚类、降维、建模等。常用的无监督学习算法包括聚类、密度聚类、异常检测、主成分分析、关联规则、因子分析等。

(3)样本和特征

机器学习模型通过对输入数据进行学习,得到一个函数或映射关系g(x),用来进行预测或分类。其中,输入数据包含多个样本,每个样本包含多个特征。特征代表了样本在某些方面的特点,比如图像中的像素值,文本中的单词、短语等;而样本则代表了一个实际的实体或事物,比如图像中的一个对象、文本中的一个句子、一组购买行为。

(4)目标函数

目标函数就是学习系统希望达到的效果,它刻画了损失函数与模型输出的误差大小之间的关系,使系统能够根据错误率最小化或最大化目标函数。常见的目标函数包括交叉熵、0/1损失、均方误差、L2正则项损失等。

(5)超参数

超参数是指机器学习模型的参数,是机器学习算法内部的参数,与模型的性能直接相关。它们是模型设计者通过人为设定的参数,如惩罚项系数λ,学习速率α,树节点数量m等。超参数影响模型的训练速度、准确度和泛化能力。

四、决策树算法

决策树(Decision Tree)是一种常用的机器学习算法,它是一种贪心算法,递归地划分空间,选择最优的切分方式,直至所有样本被完全分类。

(1)基本流程

决策树算法的基本流程如下:

  1. 收集数据:对数据进行清洗、准备,并将数据按样本与特征划分成不同的集合。
  2. 构建决策树:构造一棵树,其中每个结点表示一个条件判断,根据决策树算法的原则,在该结点处选取最佳的测试属性,然后再分别处理子结点的两个子集。
  3. 剪枝:当树的深度过大时,可以通过剪枝的方式对树进行压缩,以减少过拟合。
  4. 模型评估:通过衡量标准,比如熵、Gini指数等,评估决策树的好坏。

    (2)决策树术语

    (a)根节点
    根节点是决策树的起始节点,表示整个决策树的决策起点。
    (b)终止节点
    终止节点是指决策树的所有子节点都不能再分割的节点。对于分类问题,表示叶子结点对应的类别。对于回归问题,表示叶子结点对应的值。
    (c)内部节点
    内部节点表示一个条件判断,是可以继续进行划分的节点。
    (d)父亲节点
    父亲节点是指在当前节点的上一级。
    (e)孩子节点
    孩子节点是指在当前节点的下一级。
    (f)属性
    属性是指一个事物的特征,它可以是连续值或离散值。
    (g)结点的度
    结点的度表示一个结点拥有的子结点的个数。
    (h)划分点
    划分点是指两个子结点的分界值,用于对样本进行分割。
    (i)样本
    样本是指数据集中的一条记录,它由若干个特征值组成。
    (j)样本的类别
    样本的类别是指样本的输出值,也就是决策树算法所预测的结果。
    (k)叶结点
    叶结点是指划分完成的结点。
    (l)父结点
    父结点是指某个结点的直接前驱,它的上一级是其祖先结点。
    (m)子结点
    子结点是指某个结点的直接后继,它的下一级是其后裔结点。
    (n)路径长度
    路径长度是指从根结点到某一叶子结点的边的条数。
    (o)深度
    深度是指从根结点到叶子结点的最长路径上的边的条数。
    (p)平衡划分
    平衡划分是指每一个内部结点要么有两个孩子结点,要么有左右孩子结点,且两边子结点的大小要相近。

    (3)算法详解

    (a)构建树
    构建树的过程可以描述为:从根结点开始,对每个结点计算所有可能的划分点,根据选取的划分点,将输入空间划分成两个子空间,使得各个子空间内的样本尽量分得开,并且这些子空间是完备的(即包含了所有样本)。然后对两个子空间递归地调用同样的方法,直到所有的子空间只包含一个样本。此时,将生成这样的一颗满二叉树,这棵树就构成了决策树。
    (b)选择最优的划分点
    对于内部结点,如果所有样本属于同一类,则停止继续划分,因为没有任何划分可以让信息增益最大化。对于内部结点,遍历所有可能的划分点,计算以该划分点作为分界值的两个子空间的信息增益。选择信息增益最大的划分点作为该结点的划分点。
    (c)计算信息增益
    信息增益是指对于某个特征,它提供多少信息,使得数据按照特征分类的好坏更容易预测出来。它是熵的倒数。假设特征A有V个可能的取值,那么计算特征A的信息熵H(A)为: $$ H(A)=\sum_{v=1}^V-\frac{|C_v|}{|D|}log_2\frac{|C_v|}{|D|} $$ 其中,$|C_v|$是特征A取值为v的样本数目,$|D|$是样本总数目,$-log_2 \frac{|C_v|}{|D|}$表示特征A取值为v的样本占比。信息增益表示的是特征A的信息不确定性减少量,即使特征A发生变化,带来的信息量的下降。 信息增益越大,表示该特征对样本的分类效果越好。信息增益越小,表示该特征对样�的分类效果越差。所以,信息增益大的特征往往应该优先被选择。
    (d)构建叶结点
    构建叶结点的过程类似于建立决策树的过程。如果划分完成后,子结点只包含一类样本,则停止划分。否则,继续递归地对子结点进行划分,直至所有子结点只包含一类样本。
    (e)剪枝
    剪枝(pruning)是指修剪决策树的过程。它通过一定的策略,对树进行合并或删除,以减少树的复杂度或提升树的预测性能。通过剪枝,可以避免过拟合,提高决策树的预测能力。常见的剪枝策略包括:
    (i)预剪枝
    在生成决策树的过程中,对已经纯净(即没有任何错误记录的样本)的叶结点进行合并,从而缩小决策树的规模。
    (ii)后剪枝
    在生成完整的决策树之后,对较浅的叶结点进行合并,使得决策树的宽度不超过某个阈值,从而减少决策树的复杂度。
    (f)决策树的生成
    决策树的生成是指基于数据样本递归地构建树的过程,直到所有叶结点都只包含相同的类别或数值。决策树的生成一般分为如下几个步骤:
  5. 根据输入的训练集数据生成初始结点;
  6. 对初始结点进行测试,决定是否将其拆分为两个子结点;
  7. 如果满足停止条件,则将当前结点标记为叶结点,并将其类别标记为测试结果;
  8. 如果当前结点不是叶结点,则依次对两个子结点重复步骤2~3,直到所有叶结点都只包含相同的类别或数值。
    (g)决策树算法的优缺点
    决策树算法具有以下优点:
  9. 直观可理解:决策树很容易理解和解释,它非常直观地表示出数据的内部模式,并且它易于实现和操作。
  10. 可处理多维数据:决策树算法可以轻松应对多维数据,并且在保留输入数据特征之间的相关性的同时,对数据进行降维,使得决策树更容易处理。
  11. 不受约束:决策树算法对数据的分布和特征无任何要求,它可以处理任意类型的输入数据,并且它不受输入数据的大小、取值分布等约束。
  12. 稳定性:决策Tree算法使用了“贪心算法”的思想,每次只从当前最优选择中选择一个切分变量和切分点,使得整体的损失函数减小。
  13. 适合处理标称型数据:决策树算法只适合处理标称型数据,对于有序、离散或密度分布的数据,决策树算法可能会欠拟合。
  14. 在树生成阶段容易处理缺失值:决策树算法可以使用多数投票法处理缺失值,而且在树生成阶段,它可以有效地进行特征选择。 但决策树算法也有以下缺点:
  15. 决策树算法对于小数据集(如百万级别数据)可能过拟合。
  16. 决策树算法不利于数据特征的选择。
  17. 决策树算法对异常值不敏感。

猜你喜欢

转载自blog.csdn.net/universsky2015/article/details/133446607
今日推荐