目录
第一章 机器学习的概念及其应用
1.1机器学习的特点:
**1.2机器学习的分类:
1.2.1监督学习:
1.2.2无监督学习:
1.2.3强化学习:
1.2.4三种机器学习的区别
*1.3深度学习
1.3.1深度学习的实质:
1.3.2深度学习的种类:
第二章 线性回归
2.1线性回归概念
2.2监督学习和线性回归
2.3线性回归模型
2.3.1一元线性回归模型
*1.建立一元线性回归模型:
2.一元线性回归模型的损失函数
**3.一元线性回归模型的参数估计
2.3.2 多元线性回归模型(选看,不考)
2.4数据拟合与可视化操作(可以了解)
2.4.1 Numpy多维数组操作
2.4.2 Scipy数据拟合操作
2.4.3 Matplotlib数据可视化操作
2.5 梯度下降法及其模型(选看)
2.5.1梯度下降法的概念
第三章 逻辑回归及多分类
3.1 逻辑回归的概念与模型
*3.1.1概念
**3.1.2逻辑回归模型
3.1.3 逻辑回归模型的极大似然估计
3.2 逻辑回归与朴素贝叶斯分类
第四章 分类与聚类
*4.1决策树
*4.1.1 决策树与决策过程
4.1.2 CART(分类与回归树)(了解即可)
**决策树的构造(要了解,会考,需要往下看才能了解得好):
**4.1.3信息熵与信息增益
4.1.4 剪枝算法
* 4.2支持向量机(SVM)
**4.3聚类算法
第四章 基于神经网络的机器学习
*4.1人工神经网络
**神经元的值的计算(必看)
4.2感知机
4.2.1概念:
4.3 BP(误差反向传播)算法
概念:
4.4 卷积的概念及运算
卷积在图像处理中的应用
卷积在卷积神经网络中的应用
4.5卷积神经网络
第一章 机器学习的概念及其应用
1.1机器学习的特点:
是一种先利用已有数据训练出模型,然后使用模型预测未知数据方法。
**1.2机器学习的分类:
监督学习、无监督学习、强化学习
有标签样本和无标签样本:
有标签样本:想象一下,你手里有一堆邮件,每封邮件上都已经标记了是否为垃圾邮件。这里的每封邮件就是一个样本,而邮件上的标记(即“垃圾邮件”或“非垃圾邮件”)就是标签。意味着每个样本都已经被分类或标记了,我们确切知道它属于哪个类别或具有哪个数值。这些信息帮助机器学习模型了解数据,并学习如何对新的、未标记的样本进行分类。
无标签样本:再想象一下,你现在有另一堆邮件,但这些邮件上没有任何标记,你不知道哪些是垃圾邮件,哪些不是。这些就是无标签样本。在机器学习中,无标签样本没有预先分配的类别或数值,模型需要自己找出如何对这些样本进行分类或预测。
1.2.1监督学习:
- 在监督学习中,算法使用带有标签的训练数据集进行学习,即每个训练样本都有一个对应的标签或结果。
- 目标是训练一个模型,使其能够预测或决定新的、未见过的数据的标签。
- 常见的监督学习任务包括分类(例如,识别图片中的物体)和回归(例如,预测房价),而且分类和回归都是两种常见的预测问题。
- 监督学习可以视为“有教师学习”,因为模型从带有正确答案的示例中学习。
监督学习的任务:
分类:
是指基于对已知数据(带标签)的学习,实现对新样本标签(类别)的预测,预测的是数据属于哪个预定义的类别或标签。
主要的分类算法:
逻辑回归、决策树、随机森林、支持向量机、朴素贝叶斯和神经网络等。
回归:
回归是针对连续型输出变量进行的预测,即预测的是连续的数值。
主要算法:线性回归,决策树回归,随机森林回归,支持向量机回归,多项式回归等。
在机器学习中,这两种任务都需要使用带有标签的训练数据来训练模型,以便模型能够学习如何根据输入特征来预测输出。
类型和预测方法有明显区别:
- 回归通常使用连续的数值范围作为输出,可能涉及预测一个具体的数量或度量,也就是概念上的拟合曲线。
- 分类则是将数据项分配到有限数量的类别中,通常输出是离散的标签,产生的结果是不连续的。
1.2.2无监督学习:
- 无监督学习使用没有标签(特征)的训练数据集,即算法需要自己找出数据中的结构、模式或分布。
- 目标是探索数据的内在结构和模式,而不是预测新的数据点的标签。
- 常见的无监督学习任务包括聚类(例如,将数据点分组成不同的类别)和关联规则学习(例如,在市场篮子分析中发现商品之间的购买模式)。
- 无监督学习可以视为“无教师学习”,因为模型没有预先指定的标签或正确答案来指导学习过程。
无监督学习典型代表:
- 聚类:聚类也是分类问题,但没有训练过程,是一种探索性的数据分析技术。聚类算法将一批无标签样本划分为多个类,使得每个类中的样本都尽量相同,不同类中的样本之间尽量不同。
- 表征学习(表示学习或特征学习):表征学习通过自主学习得到(提取到)样本中有用的特征,并利用特征实现分类和聚类的目的(优点)。
- 数据降维:数据分析和机器学习中用于减少数据集中变量数量的技术,目的是在保留数据集中最重要信息的同时,简化模型并提高效率。
- 半监督学习(混合监督学习):半监督的训练集是有标签与无标签样本点的混合,典型的半监督算法是先用少量有标签样本进行训练,再用大量无标签样本进行训练。
两者的形象比喻:
监督学习:就像有一个老师在课堂上指导学生,提供正确和错误的答案,帮助学生学习特定的知识或技能。在机器学习中,这相当于模型通过比较预测结果和实际标签来学习。
无监督学习:就像让孩子们在游乐场自由玩耍,没有成人的指导,孩子们自己发现玩耍的方式和社交规则。在机器学习中,这相当于模型在没有标签的数据中自己发现模式和结构。
1.2.3强化学习:
强化学习又称评价学习或增强学习。
强化学习的核心是智能体(Agent)通过与环境(Environment)的交互来学习最佳行为策略。强化学习是一个动态的学习过程,智能体通过不断尝试和学习,逐渐掌握如何在复杂环境中实现长期目标。随着技术的发展,强化学习在许多领域展现出巨大的应用潜力。
另一种理解:
强化学习通过反复试探、不断积累经验来构建预测能力,并在预测过程中不断校正并增强这种能力。
1.2.4三种机器学习的区别
-
监督学习(Supervised Learning):
- 监督学习的目标是利用有标签的训练数据集来学习一个模型,该模型能够预测或决定新的、未见过的数据的标签。
- 它通常用于分类和回归任务。
-
半监督学习(Semi-Supervised Learning):
- 半监督学习结合了有标签和无标签的数据来训练模型,适用于标签获取成本高但未标记数据容易获得的场景。
- 它试图利用大量未标记的数据来提高学习模型的性能。
-
强化学习(Reinforcement Learning):
- 强化学习的目标是学习一个策略,以最大化智能体在环境中的累积奖励。
- 它关注于决策过程,智能体通过与环境的交互来学习最佳行为。
*1.3深度学习
深度学习是以人工神经网络为架构,对数据进行表征学习的机器学习方法。一个深度学习系统往往需要巨量的训练样本,需要庞大的计算资源及较长的训练时间,其中,“深度”是指从输入层到输出层经历的层数,即隐藏层的层数。一般来说,解决的问题越复杂,机器学习模型需要的层越多,每层的神经元或感知机的数目越多。
工作方式:输入样本——>自主学习提取特征——>输出值
1.3.1深度学习的实质:
通过构建具有很多隐藏层的模型及海量的训练样本来学习更有用的特征,从而提升模型分类或预测的准确性。因此,对于深度学习而言,“深度模型”是手段,“表征学习”是目的,深度学习强调了模型结构的深度,突出了表征学习的重要性。
1.3.2深度学习的种类:
- 卷积神经网络
- 自编码神经网络
- 深度置信网络
第二章 线性回归
2.1线性回归概念
线性回归是比较简单的监督学习方法。这种方法利用来自客观世界的因变量与自变量之间具有线性关系或近似为线性关系的特点,构建基于线性方程或方程组的机器学习模型来描述这种线性关系,从而获得对目标变量进行预测的能力。
在回归分析中,若只包含一个自变量和一个因变量,且二者之间的关系可以用一条直线近似表示,则为一元线性回归分析:若只包含两个或两个以上的自变量且因变量与自变量之间是线性关系,则为多元线性回归分析。
线性回归本质:确定斜率和截距的值。
2.2监督学习和线性回归
1.监督学习可以按照一下步骤进行:
- 得到一个有限的训练数据集;
- 确定所有备选模型,即模型的假设空间;
- 确定学习策略,即模型选择的准则;
- 执行求解最优模型的算法,通过学习选择最优模型;
- 利用学习得到的最优模型对新数据进行预测或分析。
2.线性回归概念
在监督学习中,若样本的标签值是连续实数,则称之为回归问题,所谓回归,就是用历史数据来预测未来的数据趋势。
3.线性回归的主要任务
选择回归模型,确定损失函数,进行参数估计。
2.3线性回归模型
统计学上,线性回归通过拟合因变量与自变量的最佳线性关系来预测目标变量。如果只有一个自变量,就称之为简单回归;如果自变量过于一个,就称之为多元回归。
2.3.1一元线性回归模型
回归分析就是确定随机变量y与确定性变量x之间的关系:
式中,w为回归系数(斜率);b为偏置值(截距)。
*1.建立一元线性回归模型:
一元线性回归模型(预测函数)为直线方程,关键问题是如何拟合一条可以匹配所有数据的最佳直线,一般使用最小二乘法来求解。
最小二乘法的基本思想:假设拟合得到的直线代表数据的真值,观测到的数据代表具有误差的值。为了减少误差的影响,设法构拟一条直线,是所有误差的平方和最小,从而将最优问题转化为求函数极值的问题。
2.一元线性回归模型的损失函数
求解过程实际上是通过损失函数来估计w和b的过程。
损失函数是用于评估模型的预测值与真值差异的非负函数。在机器学习中常用的损失函数有多种,如平方损失函数,绝对损失函数,对数损失函数,指数损失函数等。
线性回归采用的是平方损失(又称均方误差)函数。用于求解参数w和b使其均方误差最小的方法被称为最小二乘法参数估计。
假定是实际输出的预测值,y是期望输出的预测值,
解释:将所有进行累加,这个总和表示了所有特征共同对预测值的综合影响。
则均方误差为:
该函数的几何意义是数据集中第i个离散点与直线上具有相同横坐标的点之间的距离的平方和。使用L(w,b)来估计w和b,要求L(w,b)最小。从L(w,b)的定义可以看出,它的二阶导数非负,故为凸函数,凸函数的一阶导数为零的点就是最低点。
**3.一元线性回归模型的参数估计
对于求解参数的公式有好几种,对于最初始的方式是先求出数据的方差值的方程S(w,b),然后在求出w和b的偏导,使一阶导数为零,最后再合成二元一次方程组求出w和b的值。
通过上面的方法,得出其他求参数的公式:
1. ,
2.
w斜率的求法都是通过求出w和b的偏导,最后导出的公式的。
2.3.2 多元线性回归模型(选看,不考)
建立多元线性回归模型
多元线性回归模型是一种统计模型,它描述了因变量(Y)与多个自变量(X1, X2, ..., Xk)之间的线性关系。该模型假设因变量是这些自变量的线性组合,并可能包括一个常数项(截距)。
数学表达式如下:
Y = β0 + β1X1 + β2X2 + ... + βkXk + ε
其中:
- Y 是因变量。
- X1, X2, ..., Xk 是自变量。
- β0, β1, ..., βk 是回归系数,它们表示了自变量对因变量的影响程度。
- ε 是误差项,表示模型无法解释的部分。
多元线性回归模型的损失函数
损失函数用于衡量模型的预测值与实际值之间的差距。在多元线性回归中,损失函数通常采用残差平方和的形式,即每个观测值的实际值与模型预测值之间的差的平方的总和。这个损失函数也称为平方损失函数或最小二乘损失函数。
数学表达式为:
L(β) = 1/2m * Σ(k=1到m) (Pk' - Pk)2 = 1/2 * (Vβ - P)T * (Vβ - P)
其中:
- m 是观测值的数量。
- Pk' 是模型的预测值。
- Pk 是实际观测值。
- V 是自变量的矩阵。
- β 是回归系数的向量。
多元线性回归的参数估计
参数估计是指通过观测数据估计模型中未知参数的过程。在多元线性回归中,目标是找到一组回归系数,使得模型的预测值与实际值的差距(即损失函数的值)最小。这通常使用最小二乘法来实现。
具体步骤包括:
- 计算回归模型的预测值:Y' = β0 + β1X1 + ... + βkXk。
- 计算残差:e = Y - Y'。
- 最小化残差平方和:argmin(Σ(e^2))。
- 通过对目标函数求导并令其为零,解得回归系数的估计值。
在实际应用中,由于数据可能存在噪声和异常值,为了提高参数估计的稳健性,可以采用正则化方法,如岭回归(Ridge Regression)和LASSO回归(Least Absolute Shrinkage and Selection Operator Regression)。这些方法通过在目标函数中引入正则化项,来降低估计结果对噪声和异常值的敏感性。
2.4数据拟合与可视化操作(可以了解)
2.4.1 Numpy多维数组操作
NumPy(Numerical Python)是一个开源的Python数值计算库,它为Python提供了大量的数学函数库以及多维数组对象,使得数值计算变得高效且方便。以下是NumPy库的主要特点和功能:
- 多维数组对象(ndarray):
- NumPy提供了一个称为ndarray的多维数组对象,用于存储和处理大型矩阵和数组。
- 与Python的原生列表相比,ndarray在存储数据时,数据与数据的地址都是连续的,这使得批量操作数组元素时速度更快。
- ndarray支持大量的维度数组与矩阵运算,同时所有的元素都是同一类型,提高了计算效率。
- 数学函数库:
- NumPy包含了大量的数学函数,如三角函数、指数函数、对数函数等,这些函数可以在数组上进行逐元素操作。
- 它还提供了线性代数、傅里叶变换和随机数生成等函数,能够高效地处理大规模数据集。
- 线性代数运算:
- NumPy支持各种线性代数运算,如矩阵乘法、求逆矩阵、特征值分解等,这些功能在科学计算和数据分析中非常重要。
- 随机数生成:
- NumPy可以生成各种分布的随机数,如均匀分布、正态分布等,这在模拟和统计测试等场景中非常有用。
- 广播功能:
- NumPy的广播功能允许不同形状的数组进行运算,自动进行形状转换,这使得数组操作更加灵活和高效。
- 高效性能:
- NumPy底层使用C语言编写,内部使用了向量化操作和广播功能,因此具有非常高的性能。
- 它还内置了并行运算功能,当系统有多个核心时,可以自动进行并行计算,进一步提高了计算效率。
- 开源免费:
- NumPy是一个开源库,可以免费使用,并且有一个庞大的社区支持,提供了大量的文档和示例代码。
- 科学计算和数据处理:
- NumPy广泛应用于科学计算领域,如物理学、生物学、化学、地理学等。
- 它可以方便地处理和操作多维数组,对数据进行排序、去重、筛选、统计等操作。
- 同时,NumPy也是许多其他数据科学和机器学习库的基础,如Pandas、Scikit-Learn等。
2.4.2 Scipy数据拟合操作
Scipy库是一个基于Python的开源科学计算库,旨在提供广泛的数学、科学和工程计算功能。它扩展了NumPy库,提供了更多的科学计算工具,如优化、统计、信号处理、图像处理等。以下是Scipy库的主要特点和功能:
- 广泛的数学和科学计算功能:
- Scipy库提供了大量的数学和科学计算功能,包括数值积分、优化、插值、信号处理、线性代数等。
- 这些功能可以满足各种科学和工程计算的需求,帮助用户进行复杂的数据分析和建模。
- 优化功能:
- Scipy库提供了多种优化算法,如非线性优化、线性规划、曲线拟合和最小二乘法等。
- 这些算法可以帮助用户找到函数的最小值或最大值,解决各种优化问题。
- 统计功能:
- Scipy库包含丰富的统计分布函数,如正态分布、t分布、F分布等,以及统计测试方法,如假设检验、拟合分布等。
- 它还提供了概率密度函数、累积分布函数、分位数和随机抽样等常见操作,方便用户进行统计分析。
- 信号处理功能:
- Scipy库提供了信号处理相关的功能,如滤波、谱分析、波形生成等。
- 这些功能可以帮助用户分析和处理各种信号数据,如音频、图像等。
- 线性代数功能:
- Scipy库包含线性代数操作,如矩阵分解、求解线性方程组等。
- 这些功能在机器学习和数据分析等领域具有广泛的应用。
- 图像处理功能:
- Scipy库还包括图像处理功能,如图像滤波、形态学操作、图像变换和图像分割等。
- 这些功能可以帮助用户进行图像处理和分析任务。
- 高效和易用性:
- Scipy库封装了用Fortran、C和C++编写的高效实现,结合了Python的灵活性和编译代码的速度。
- 它提供了简洁易用的API接口,使得用户可以方便地调用各种功能。
- 广泛的应用场景:
- Scipy库广泛应用于科学和工程领域,特别是在数据分析、机器学习、物理模拟、图像处理、信号处理等方面。
- 无论是学术研究还是商业项目,Scipy都是进行复杂数学计算和数据分析的重要工具。
2.4.3 Matplotlib数据可视化操作
Matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。Matplotlib提供了丰富的功能,能够满足各种绘图需求,并与其他Python库(如NumPy和pandas)很好地集成使用。以下是关于Matplotlib的一些关键点:
- 基本功能
- Matplotlib可以绘制各种基本图形,如线图、散点图、柱状图、饼图、直方图等。
- 它支持定制化图形,允许用户调整图形的颜色、线型、标签、标题、图例等。
- 特点
- 易于使用:Matplotlib提供了简单直观的API,使得绘制图表变得简单。用户可以通过简单的几行代码就能够创建出复杂的图表。
- 高度可定制性:用户可以对图表的各个方面进行高度自定义,包括图像样式、颜色、坐标轴设置等。
- 多种输出格式:Matplotlib可以将图表导出为多种格式,包括图片格式如PNG、JPG、SVG等,以及PDF、SVG和EPS等矢量格式。
- 支持Jupyter Notebook:Matplotlib可以很好地与Jupyter Notebook集成,方便在Notebook环境下创建和展示图表。
- 主要功能
- 绘制基本图形:除了上述提到的基本图形外,还可以绘制误差图、QQ图等特定于统计学的图表。
- 支持多个坐标轴:Matplotlib可以绘制具有多个坐标轴的图形,包括主轴和次轴,使得图形更加灵活和丰富。
- 3D绘图:能够绘制三维图形,包括三维散点图、曲线图、表面图等,以展示更复杂的数据关系。
- 动态交互绘图:通过使用交互式后端,如Qt或Tk,实现动态绘图,允许用户进行交互操作。
- 绘制地图:可以绘制地理数据,包括地图、热力图、等高线图等。
- 使用方式
- Matplotlib的使用通常涉及创建Figure对象(画布),然后添加Axes(绘图区域),最后调用绘图函数来生成图表。
- 用户可以通过
figure.add_subplot()
方法创建并选中子图,指定子图的行数、列数和选中图片编号。 - 使用
plt.title()
,plt.xlabel()
,plt.ylabel()
,plt.xlim()
,plt.ylim()
等方法可以设置图表的标题、坐标轴标签、坐标轴范围等属性。 plt.legend()
方法用于添加图例,plt.show()
方法用于显示图表。
2.5 梯度下降法及其模型(选看)
2.5.1梯度下降法的概念
梯度下降法是一种迭代算法,是最常用的求解机器学习的模型参数的方法之一(线性、非线性均可)。在求解损失函数的最小值时,可以通过梯度下降法一步步迭代,得到最小化的损失函数和模型参数值,也就是找到损失函数曲线的最低点。利用迭代求得该函数对所有参数(变量)的偏导数,每次迭代都更新这些参数,直到到达最低点(局部或全局最低)为止。
1.针对最小二乘法求解线性回归问题
使用最小二乘法求解线性回归模型,若数据量很大,就因运算速度太慢而难以实现。这时,可以使用梯度下降法更快地求得损失函数最小的w和b。
2.梯度下降法分类
在使用梯度下降法对线性回归问题求解时,对数据集的使用有三种不同的方式,据此可将梯度下降法分为三类。
- 批量梯度下降(Batch Gradient Descent):每次迭代使用整个数据集来计算梯度。
- 随机梯度下降(Stochastic Gradient Descent, SGD):每次迭代只使用一个样本来计算梯度。
- 小批量梯度下降(Mini-batch Gradient Descent):每次迭代使用一小部分数据来计算梯度,介于批量和随机之间。
第三章 逻辑回归及多分类
3.1 逻辑回归的概念与模型
*3.1.1概念
常见的分类算法是逻辑回归,逻辑回归模型是一种广义线性回归分析模型,实际上是分类模型,常用于解决二分类问题。逻辑回归是基于“直来直去”的线性模型来构建模型的。但它期望解决的分类问题的预测结果是离散的,即对输出数据的类别进行判断。类别预设条件分为0(是)类和1(否)类,因此描述因变量与自变量关系的函数图像只会在0和1之间上下起伏。
总之,给线性模型加上限幅函数就是逻辑回归构建的模型。
因此用于二分类的逻辑回归模型就是:,式子中,g(z)被称为Logistic函数,形式为 : 。
**3.1.2逻辑回归模型
1.Sigmoid函数
Siomoid函数是一个数学函数,其形式如下:
这个函数将任何实数输入压缩到(0, 1)区间内。Sigmoid函数的特点是它在输入值很大或很小的时候接近于0或1,而在输入值为0时输出为0.5。这使得Sigmoid函数非常适合用于二分类问题中,将线性输出转换为概率值。
2.逻辑回归模型
逻辑回归是一种统计模型,用于二分类问题。逻辑回归模型的核心是使用线性模型的输出,然后通过Sigmoid函数将其转换为概率形式,从而预测事件发生的可能性(即预测两个类中,其中一个类的概率)。逻辑回归模型通常包括以下步骤:
1.线性组合:首先计算特征的线性组合,即
2.应用Sigmoid函数:将线性组合的结果通过Sigmoid函数转换为概率,即
逻辑回归模型:
正类的概率(条件概率):
p(y=1|x)是给定特征向量x时,事件发生的概率。
反类的概率:
3.设定阈值,判断结果
通过设定阈值判断逻辑回归模型得到的结果是否是正类还是反类, 那么如果阈值为0.5,那么p(y=1∣x)>0.5(y=1),归为1类;如果 p(y=1∣x)≤0.5(y=0)归为0类。
逻辑回归模型中使用Sigmoid函数作为激活函数,将线性模型的输出转换为概率预测。换句话说,Sigmoid函数是逻辑回归模型的核心组成部分,它定义了模型如何将线性输出转换为概率形式。
3.1.3 逻辑回归模型的极大似然估计
概念:极大似然估计是一种参数估计方法,用于找到一组参数值,使得观测数据在这些参数下的概率最大(即用来求出逻辑回归模型的参数值)。
*3.2 朴素贝叶斯分类
朴素贝叶斯器的核心假设特征之间相互独立,这个假设大大简化了后验概率的计算。
表达式如下:
- P(C|X):后验概率,即在观测到数据X的条件下,假设C为真的概率。
- P(X|C):似然概率,即在假设C为真的条件下,观测到数据X的概率。
- P(C):先验概率,即在没有观测到任何数据之前,假设C为真的概率。
- P(X):边缘概率,即不考虑任何特定假设,观测到数据X的概率。这可以通过对所有的假设C求和来计算,即 其中求和是对所有可能的假设 进行的。
第四章 分类与聚类
*4.1决策树
决策树是一种离散函数的树形表示,简单并被广泛使用。决策树使用一组嵌套规则进行预测,树中每个决策节点依据判断结果进入某个分支,反复执行 这种操作,直到叶节点(获取预测结果)为止。这些规则是通过训练得到的,不是人工制定的。
构成:
决策树由节点和有向边构成。节点有两种类型:内部节点(圆形)和叶节点(矩形)。其中,内部节点表示一个特征(属性)叶节点表示一个类别。而有向边则对应其所属内部节点的可选项(属性的取值范围)。
通过训练集构建决策树,可以高效地对未知数据进行分类或回归。决策树主要有如下两大优点。
- 决策树预测模型的可读性好,便于人工分析。
- 决策树一次构建,可以反复使用,每次预测的最大计算次数不超过决策树自身的深度。
*4.1.1 决策树与决策过程
决策树是由节点和边构成的描述分类过程的层次数据结构。根节点表示分类的开始,叶节点表示一个实例的结束,中间节点表示相应实例的某个属性,边表示某个属性可能的值。决策树的分类过程从树的根节点开始,按照给定实例的属性值测试对应的树枝,并依次往下移,直到某个叶节点为止。
4.1.2 CART(分类与回归树)(了解即可)
CART是二叉决策树,既可以用于分类问题,也可以用于回归问题,其具有以下特点:
- 分类树的映射函数是多维空间的分段线性划分函数,用平行于各坐标轴的超平面来切分空间;回归树的映射函数是分段常数函数。CART并不是线性函数,而是分段线性函数,具有非线性建模能力。
- 对于回归问题,只要划分的足够细,分段常数函数就可以将闭区间上的任意函数逼近到指定的任意精度。因此,CART在理论上可以对任意复杂度的数据进行拟合。
- 对于分类问题,若决策树具有足够的深度,则可以将训练集的所有样本正确分类。当然,当特征向量维数过高时,维数灾难可能导致准确率下降。
**决策树的构造(要了解,会考,需要往下看才能了解得好):
选择合适的特征(属性,比如天气作为根节点或其他内部节点)作为判断节点,根据不同的算法(ID3,C4.5,CART)利用纯度函数来选择特征(属性)作为节点。
下面以ID3算法为例(即以信息增益作为判断作为节点的依据(即选择特征进行分裂的依据),即信息增益大的选择作为节点,其他算法要么以基尼指标要么以增益率作为依据):
先计算信息熵,在计算信息增益
**4.1.3信息熵与信息增益
信息熵的计算公式:
其中:
- H(S) 表示样本集合 S 的熵。
- n 是集合 S 中不同类别的数量。
- 是集合 S 中第 i 个类别的样本比例,即第 i个类别的样本数占总样本数的比例。
- 表示以2为底的对数,信息熵的单位是比特(bits)。
信息熵的值越大,表示样本集合的不确定性越高;信息熵的值越小,表示样本集合的纯度越高,不确定性越低。如果集合 S 中所有样本都属于同一个类别,那么熵为0,表示完全的纯度;如果样本均匀分布在多个类别中,熵达到最大值。
信息熵的概念源自于香农在信息论中的工作,它在决策树算法中用于评估特征选择和节点分裂的效果。
信息增益:
信息增益是决策树算法中用于评估特征对分类能力影响的度量,它通过比较分裂前后数据集的熵变化来确定哪个特征在减少不确定性方面最有效。具体来说,信息增益计算了整个数据集的初始熵,然后对于每个可能的特征分裂,计算分裂后各个子集的加权熵,最后用初始熵减去加权熵得到信息增益。选择信息增益最大的特征进行分裂,目的是在每次决策时最大化数据集纯度的提升。
信息增益计算步骤:
1.计算数据集的初始信息熵H(S):
2.根据特征A计算分裂后每个子集的信息熵:
假设特征A可以将数据集S分成m个子集,每个子集的信息熵为:
其中,是子集中第k个类别的样本比例,是子集中的类别总数。
比如,年龄的特征中,分为了各个不同的年龄段,这些年龄段就是不同的类别(就是中的子集),上面的公式就是求不同年龄段(子集)的信息熵。
3.计算分裂后加权信息熵:
其中,是子集中的样本数,是原始数据集S中的样本总数。编辑
这个式子的意思是计算中的每个子集的加权信息熵,然后在加起来;即为权重,是每个子集在整个特征(集合)中的占比。
4.计算信息增益:
这时原始数据集的信息熵与基于特征A分裂后加权信息熵的差值。
画图决策树的例子具体见书本P159
4.1.4 剪枝算法
当决策树的结构过于复杂时,可能会导致过拟合问题,因此需要对树进行剪枝。其中剪枝算法可以分为两类:预剪枝、后剪枝。剪枝只是简单的提及一下,不再详细赘述。
* 4.2支持向量机(SVM)
概念:
支持向量机是一种二分类监督学习模型,其目的是寻找一个分离超平面来分割样本。分割的原则是间隔最大化,确保离最近的样本的的距离最大(即最大化类别间隔的决策边界(超平面)),即在所有样本点中,离分离超平面最近的样本点尽量远离超平面。
支持向量机基本原理
简单来说,支持向量机(SVM)的核心思想就是找到一种切割或分割的方法,只关注那些最接近潜在分割边界的样本点,也就是支持向量。然后,它利用这些支持向量来确定最佳的分割超平面,这个超平面能够最大化不同类别之间的距离,从而对样本进行有效的切割和分类。
详细内容不再赘述
**4.3聚类算法
聚类与分类不同,需要在任何样本标签未知的情况下,通过寻找数据之间的内在联系,将其划分为若干个类别,最终使得同类别样本之间的相似度高而不同类别 样本之间的相似度低,也就是说,目标是减少类内距,增大类间距。
聚类属于非监督学习算法,K-means(均值)聚类算法是迭代求解的常用聚类分析算法。
*步骤(必看):
- 它先随机从样本点中选取k个点;
- 将所有样本就近划分给这些点,于是就形成k簇(数据点的集合,分成的每个组就是一个簇),这k点各自成为所在簇的质心(中心,即簇中所有点的中心);
- 再根据划分的结果重新计算,重新找出k个中心(即找出各个簇中的中心(每个簇中的平均值)),将不合适的样本调整到其他簇中;
- 重复进行2,3操作,直至质心(中心)不再变化或变化小于某个值。
聚类与分类的区别(选看):
目的:
- 分类:是根据已知的标签对数据进行预测,目的是将数据分配到预先定义的类别中。
- 聚类:是将数据集中的样本根据相似性分组,目的是发现数据内在的结构和模式,而不依赖于预先定义的类别。
标签:
- 分类:使用的是标记过的数据集,即每个样本都有一个与之相关的标签或类别。
- 聚类:使用的是未标记的数据集,不依赖于外部的标签,而是根据数据的内在特征来分组。
方法:
- 分类:通常使用有监督学习算法,如决策树、支持向量机、神经网络等。
- 聚类:使用无监督学习算法,如K-means、层次聚类、DBSCAN等。
结果:
- 分类:结果是为每个样本分配一个类别标签,通常用于预测或决策任务。
- 聚类:结果是将数据分成若干组,每组内的样本相似度高,组间的样本相似度低。
应用场景:
- 分类:适用于有明确分类标准的场景,如垃圾邮件识别、疾病诊断等。
- 聚类:适用于探索性数据分析,如市场细分、社交网络分析、天文数据分析等。
评估:
- 分类:评估指标包括准确率、召回率、F1分数、ROC曲线等。
- 聚类:评估指标包括轮廓系数、Davies-Bouldin指数、Silhouette系数等,这些指标衡量的是聚类的质量而不是预测的准确性。
数据要求:
- 分类:需要有标注的训练数据来训练模型。
- 聚类:不需要标注数据,依赖于数据本身的结构。
详细内容不再赘述
第四章 基于神经网络的机器学习
*4.1人工神经网络
人工神经网络与大脑中的生物神经网络类似,包含许多名为神经元的简单却高度互连的处理器。神经元之间相互连接,神经元之间通过加权的连接将信号从一个神经元传递到另一个神经元。一个神经元通过连接接收几个输入信号,但不会产生一个以上的输出信号。
理解概念:
- 单层神经网络:通常指的是只有一个隐藏层的网络,这个隐藏层由多个神经元组成。
- 多层神经网络:指的是有两个或更多隐藏层的网络,每层都包含多个神经元。
图中,人工神经网络被划分为输入层、输出层和隐藏层。输入层的节点对应预测变量,输出层的节点对应目标变量。该示意图中神经元的输出用多条线表示,以展示它可以连接到下一层的多个神经元,每个连接都有权值,而不是展现神经元有多个输出信号;而多条线的输入表示多个输入信号。
加权平均网络如图:
图中,每一个连接对应一个权值。
**神经元的值的计算(必看)
步骤:
1.加权求和:每个输入信号(前一个节点(神经元)的值)与一个权重相乘,然后将所有乘积相加,这个过程可能还包括一个偏置项b,这样计算出神经元的净输入z。
计算公式:
其中:
- 是权重
- 是输入信号
- b是 偏置项
2.应用激活函数:将加权求和的结果(可能加上偏置)作为激活函数的输入。激活函数f是一个数学函数,他将线性的加权求和转换为非线性的输出。
3.计算节点的值:激活函数的输出就是当前神经元的值,这个值将被传递到下一层的神经元作为输入。
数学公式为:
节点的值=或f(z)
其中:
- 是第i个输入信号。
- 是与输入相对应的权重。
- b是偏置项。
- f是激活函数。
激活函数的选择对于神经网络的性能至关重要,因为它决定了网络的非线性特性和学习能力。常见的激活函数包括 Sigmoid、Tanh、ReLU 等,每种函数都有其特定的用途和特性。
其中,大多数激活函数都是非线性的,而利用线性激活函数激活函数,即直接加权求和即为该节点的值,但只能表示线性特征,无法捕捉数据中的非线性特征。
例子:
让我们通过一个简单的例子来说明如何计算神经网络中一个神经元的输出值。
假设我们有一个简单的前馈神经网络,其中有一个神经元接收三个输入信号。这些输入信号分别是 。每个输入信号都有一个对应的权重,分别是 。此外,这个神经元还有一个偏置项 b。我们选择ReLU(Rectified Linear Unit)作为激活函数。
首先,我们计算加权求和,然后加上偏置项,公式如下:
假设具体的数值如下:
- 输入信号:
- 权重:
- 偏置项:b=-0.3将这些数值代入公式,我们得到:
接下来,我们应用ReLU激活函数。ReLU函数的定义是:
f(x)=max(0,x)将 z的值代入ReLU函数,我们得到:
节点的值=节点的值=0.09
因此,这个神经元的输出值是0.09。这个值将被传递到下一层的神经元作为输入,继续神经网络的计算过程。
这个例子展示了如何通过加权求和、添加偏置项,然后应用激活函数来计算一个神经元的输出值。
4.2感知机
4.2.1概念:
*何为感知机(必看):
通过模拟神经元的“感知”过程来构造一种用作人工神经网络基本单元的感知机(类似于感知机神经元)。
感知机的应用:
感知机是在人工神经元的基础上建立的是用于二分类问题的线性分类模型。感知机使用外部环境提供的模式样本进行学习训练,并存储这种模式,其输入为实例的特征向量,输出为实例的类别。感知机取值+1和-1,分别对应输入空间将实例划分为正、负两类的分离超平面,属于判别模型。
感知机结构:
输入层:感知机接收多个输入特征。
权重:每个输入特征都有一个对应的权重
偏置:感知机通常还有一个偏置值b,它允许在特征空间中进行平移,以更好地适应数据。
激活函数:感知机的输出是通过一个激活函数来确定的。最简单的激活函数是符号函数或阈值函数,它将输入信号转换为二进制输出(0或1)。
工作方式:
1.加权求和:
首先将每个输入特征乘以其对应的权重,然后将这些乘积求和,再加上偏置b。这个加权求和可以表示为:
2.激活函数:
加权求和的结果z通过激活函数f(z)来决定最终的输出。对于简单的感知机,激活函数可以是:
这意味着如果加权求和的结果大于,则输出1,表示正类;如果小于或等于0,则输出0,表示负类。
3.输出:
激活函数的输出就是感知机的最终输出,它代表了模型对于输入特征的分策决策。
详细内容不再赘述。
4.3 BP(误差反向传播)算法
概念:
BP算法是一种人工神经网络的监督学习算法,适用于多层神经网络的经典算法。BP算法的基本结构由非线性可变单元组成,网络的隐藏层层数、各层处理单元及网络的学习系数等都可以灵活设定,具有很强的非线性映射能力。在理论上,BP算法可以逼近任意函数,在优化、信号处理与模式识别、智能控制、故障诊断等诸多领域有广泛的应用前景。
详细内容不再赘述
4.4 卷积的概念及运算
卷积是一种数学运算,它在多个领域中都有应用,包括信号处理、图像处理和机器学习中的卷积神经网络(CNN)。卷积的基本思想是通过滑动窗口的方式,将一个函数(或称为核、滤波器)与另一个信号或函数进行逐点相乘然后求和,以产生一个新的输出信号或特征图。
卷积在图像处理中的应用
在图像处理中,卷积用于图像滤波,如模糊、锐化、边缘检测等。通过将一个小的矩阵(通常是3x3或5x5)作为核,与图像的局部区域进行卷积,可以提取图像的特定特征或应用某种效果。
卷积在卷积神经网络中的应用
在卷积神经网络(CNN)中,卷积层使用一组可学习的卷积核来提取输入数据(如图像)的特征。每个卷积核负责提取一种特定的特征,如边缘、角点或其他纹理信息。卷积层的输出是一个特征图(feature map),它表示了输入数据在不同特征维度上的响应。
4.5卷积神经网络
卷积神经网络(CNN)是人工神经网络的一个子类,是一种深度学习框架,其主要特点是卷积操作,特别适用于处理具有明显网格状拓扑结构的数据,如图像(2D网格)和视频(时间序列上的2D网格)。
以下是卷积神经网络的一些特点:
-
局部感知能力:CNN通过卷积层捕获局部特征,每个卷积神经元只响应其感受野内的输入。这使得网络能够检测局部特征,如图像中的边缘或纹理。
-
参数共享:在卷积层中,卷积核的参数在整个输入数据上共享。这意味着无论输入图像有多大,卷积核的大小是固定的,并且只学习少量的权重。
-
自动特征提取:传统的图像处理技术需要手动设计特征提取器。相比之下,CNN能够自动学习数据中的特征表示,这减少了对专业知识的依赖,并提高了特征提取的效率。
-
层次化结构:CNN通常具有多个卷积层,每个层级学习不同级别的特征。底层可能学习到简单的边缘特征,而高层可能学习到更复杂的形状或对象特征。
-
平移不变性:由于卷积操作的特性,CNN能够较好地处理图像平移等变化,即使物体在图像中的位置发生偏移,网络仍然能够识别它们。
-
多通道输入:CNN能够处理多通道输入数据,例如彩色图像的RGB三个颜色通道。卷积核也可以设计为跨通道操作,以捕获不同通道之间的相关性。
-
池化层:CNN通常包含池化层(如最大池化或平均池化),这些层用于降低特征图的空间尺寸,从而减少参数数量和计算量,同时使特征检测更加鲁棒。
-
全连接层:在多个卷积和池化层之后,CNN通常包含一个或多个全连接层,这些层将学习到的特征映射到最终的输出,如分类标签。
-
深度:现代CNN通常非常深,包含多个卷积层和全连接层。这种深度结构使得网络能够学习复杂的数据表示,并在各种视觉任务中取得优异的性能。
-
适用于多种任务:CNN不仅可以用于图像分类,还可以用于其他任务,如语义分割、物体检测、图像生成和风格迁移等。
-
端到端学习:CNN可以从原始像素直接学习到任务相关的输出,无需额外的预处理或特征工程,实现了端到端的学习。
-
数据驱动:CNN的性能很大程度上依赖于大量的训练数据。大数据集可以提供丰富的特征信息,帮助网络更好地泛化。
喜欢以上内容的可以点一下赞点个关注,创作不易,谢谢支持!