分类和回归

分类与回归区别是什么? - 知乎  https://www.zhihu.com/question/21329754

分类和回归_第1张图片

 用matlab实现分类和回归

1、分类

在构建高质量预测分类模型时,选择正确的特征(或预测变量)并调整超参数(未估计的模型参数)非常重要。

  • 分类学习器
  • 分类树
  • 判别分析
  • 朴素贝叶斯
  • 最近邻
  • 支持向量机分类
  • 分类集成
  • 广义加性模型
  • 神经网络
  • 增量学习
  • 用于分类的半监督学习
  • 可解释性

特征选择和超参数调整可能会产生多个模型。您可以比较模型之间的 k 折分类错误率、受试者工作特征 (ROC) 曲线或混淆矩阵。还可以进行统计检验,以检测一个分类模型是否明显优于另一个。

要在训练分类模型之前对新函数进行工程处理,请使用 gencfeatures。

要以交互方式构建和评估分类模型,可以使用分类学习器分类学习器app会训练模型,以对数据进行分类。您可以使用各种分类器来探索有监督机器学习。您可以探查数据,选择特征,指定验证方案,训练模型和评估结果。您可以执行自动训练来搜索最佳分类模型类型,包括决策树、判别分析、支持向量机、逻辑回归、最近邻、朴素贝叶斯、核逼近、集成和神经网络分类。

您可以通过提供一组已知的输入数据(观测值或示例)和对数据的已知响应(例如标签或类)来执行有监督的机器学习。您可以使用这些数据来训练模型,该模型可以为对新数据的响应生成预测。要将模型与新数据结合使用或要了解编程式分类,您可以将模型导出到工作区或生成 MATLAB® 代码来重新创建经过训练的模型。

要自动选择具有调整后的超参数的模型,请使用 fitcauto。此函数尝试选择具有不同超参数值的分类模型类型,并返回预期在新数据上表现良好的最终模型。当您不确定哪些分类器类型最适合您的数据时,请使用 fitcauto

要调整特定模型的超参数,请选择超参数值并使用这些值对模型进行交叉验证。例如,要调整 SVM 模型,可以选择一组框约束和核尺度,然后使用每对值对模型进行交叉验证。某些 Statistics and Machine Learning Toolbox™ 分类函数通过贝叶斯优化、网格搜索或随机搜索提供自动超参数调整。实现贝叶斯优化的主函数 bayesopt 对于许多其他应用来说也足够灵活。请参阅Bayesian Optimization Workflow。

要解释分类模型,您可以使用 lime、shapley 和 plotPartialDependence。

2、回归

在构建高质量回归模型时,选择正确的特征(或预测变量)、调整超参数(未与数据拟合的模型参数)以及通过残差诊断评估模型假设非常重要。

  • 回归学习器
  • 线性回归
  • 广义线性模型
  • 非线性回归
  • 支持向量机回归
  • 高斯过程回归
  • 回归树
  • 回归树集成
  • 广义加性模型
  • 神经网络
  • 增量学习
  • 可解释性

您可以先为超参数选择值,然后使用您选择的值对模型进行交叉验证,通过这样的迭代对超参数进行调整。这个过程会生成多个模型,其中估计的泛化误差最小的可能是最佳模型。例如,要调整 SVM 模型,可以选择一组框约束和核尺度,使用每对值对模型进行交叉验证,然后比较它们的 10 折交叉验证均方误差估计值。

要在训练回归模型之前对新函数进行工程处理,请使用 genrfeatures。

要以交互方式构建和评估回归模型,请使用回归学习器

要自动选择具有调整后的超参数的模型,请使用 fitrauto。该函数尝试选择具有不同超参数值的回归模型类型,并返回预期表现良好的最终模型。当您不确定哪些回归模型类型最适合您的数据时,请使用 fitrauto

Statistics and Machine Learning Toolbox™ 中的某些非参数化回归函数通过贝叶斯优化、网格搜索或随机搜索提供自动超参数调整。实现贝叶斯优化的主函数 bayesopt 对于许多其他应用来说也足够灵活。有关详细信息,请参阅Bayesian Optimization Workflow。

要解释回归模型,可以使用 lime、shapley 和 plotPartialDependence。

知乎答案:分类和回归的区别。

分类和回归_第2张图片

 分类和回归_第3张图片

支持向量机SVM

支持向量机support vector machine SVM,是一种二分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略是间隔最大化,最终可转化为一个凸二次规划问题的求解。

1、分类的起源——Logistic回归

先弄清楚线性分类器。给定一些数据点,它们分别属于两个不同的类,现在要找到一个线性分类器把这些数据分成两类。如果用x表示数据点,用y表示类别(y可以取1或者-1,分别代表两个不同的类),一个线性分类器的学习目标便是要在n维的数据空间中找到一个超平面hyper plane,超平面的方程表示为:\omega ^{T}x+b=0,其中y取1或-1的分类标准起源于logistic回归。Logistic回归目的是从特征学习出一个0/1分类模型,而这个模型是将特性的线性组合作为自变量,由于自变量的取值范围是负无穷到正无穷。因此,使用logistic函数(也称sigmoid函数,常作为神经网络激活函数)将自变量映射到(0,1)上,映射后的值被认为是属于y=1的概率。

sigmoid函数/logistic函数,取值范围为(0,1),它可以将一个实数x映射到(0,1)的区间,可以用来做二分类。在特征相差比较复杂或是相差不是特别大时效果比较好。Sigmoid作为激活函数有以下优缺点,优点:平滑、易于求导。缺点:激活函数计算量大,反向传播求误差梯度时,求导涉及除法;反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练。Sigmoid函数定义:

S(x)=\frac{1}{1+e^{-x}}分类和回归_第4张图片

Sigmoid函数和tanh函数是早期被广泛使用的2种激活函数。两者都为S型饱和函数。当sigmoid函数输入的值趋于正无穷或负无穷时,梯度会趋近零,从而发生梯度弥散现象。sigmoid函数的输出恒为正值,不是以零为中心的,这会导致权值更新时只能朝一个方向更新,从而影响收敛速度。tanh激活函数是sigmoid函数的改进版,是以零为中心的对称函数,收敛速度快,不容易出现 loss 值晃动,但是无法解决梯度弥散的问题。2个函数的计算量都是指数级的,计算相对复杂。

假设函数h如下,其中x是n维特征向量:

h_{\theta }(x)=S(\theta ^{T}x)=\frac{1}{1+e^{-\theta ^{T}x}}

假设函数h的值就是特征属于y=1的概率:

P(y=1|x;\theta )=h_{\theta }(x)

P(y=0|x;\theta )=1-h_{\theta }(x)

当我们要判别特征x属于哪个类时,只需求h_{\theta }(x)即可,若h_{\theta }(x)大于0.5就是y=1的类,反之x属于y=0类。而h_{\theta }(x)只和\theta ^{T}x有关,\theta ^{T}x>0h_{\theta }(x)>0.5,类别决定权在于\theta ^{T}x。模型的训练目标就是让训练数据中y=1的特征向量\theta ^{T}x\gg 0,y=0的特征向量\theta ^{T}x\ll 0Logistic回归就是要学习得到\theta,使得正例的特征远大于0,负例的特征远小于0,而且要在全部训练实例上达到这个目标。 

接下来把logistic回归做变形。首先,将标签y=0和1替换为y=-1和1,将\theta ^{T}x=\theta _{0}+\theta _{1}x_{1}+...+\theta _{n}x_{n},(x_{0}=1)中的\theta _{0}替换为b,将后面的\theta _{1}x_{1}+...+\theta _{n}x_{n}替换为\omega ^{T}x。则\theta ^{T}x=\omega ^{T}x+b。 遇到一个新的数据点x进行分类的时候,将x代入\omega ^{T}x+b 中:

  • \omega ^{T}x+b等于0,x是位于超平面上的点
  • \omega ^{T}x+b大于0,x点分类为 y=1的数据
  • \omega ^{T}x+b小于0,x点分类为 y=-1的数据

即用一个超平面把x分2类。

接下来的问题是确定这个超平面?直观上,这个超平面应该是最适合分开两类数据的直线。而判定“最适合”的标准就是这条直线离直线两边的数据的间隔最大,寻找有最大间隔的超平面

在超平面\omega ^{T}x+b=0确定的情况下,|\omega ^{T}x+b|表示点x到超平面的距离,通过观察\omega ^{T}x+b的符号与类标记y的符号是否一致可判断分类是否正确。引出函数间隔(functional margin)概念,用\hat{\gamma }表示。再进一步,对法向量\omega加些约束条件,从而引出真正定义点到超平面的距离:几何间隔(geometrical margin)概念,用\tilde{\gamma }表示。\tilde{\gamma }=\frac{\hat{\gamma }}{||\omega ||}。从上述函数间隔和几何间隔的定义可以看出:几何间隔就是函数间隔除以||w||,而且函数间隔是人为定义的一个间隔度量,而几何间隔才是直观上的点到超平面的距离。

 对数据点分类时,当超平面离数据点的“间隔”越大,分类的确信度(confidence)也越大。所以,为了使得分类的确信度尽量高,需要让所选择的超平面能够最大化这个“间隔”值。目标是最大化1/||w||值。   目标函数为:

目标函数等价于:???

 2、深入SVM

因为等价的目标函数是二次的,约束条件是线性的,所以它是一个凸二次规划问题。这个问题可以用QP(quadratic programming)优化包进行求解。一言以蔽之:在一定的约束条件下,目标最优,损失最小。

此外,由于这个问题的特殊结构,还可以通过拉格朗日对偶性(Lagrange Duality)变换到对偶变量 (dual variable) 的优化问题,即通过求解与原问题等价的对偶问题(dual problem)得到原始问题的最优解,这就是线性可分条件下支持向量机的对偶算法。这样做的优点在于:一,对偶问题往往更容易求解;二,可以自然的引入核函数,进而推广到非线性分类问题。那什么是拉格朗日对偶性呢?简单来讲,通过给每一个约束条件加上一个拉格朗日乘子(Lagrange multiplier)α,通过拉格朗日函数将约束条件融合到目标函数里去,只用一个函数表达式表达问题。KKT条件是指最优化数学模型的标准形式中的最小点 x* 必须满足的条件。原始问题通过满足KKT条件,转化成对偶问题。求解这个对偶学习问题,分为3个步骤:首先要让L(w,b,a) 关于 w 和 b 最小化,然后求对α的极大,最后利用SMO算法求解对偶问题中的拉格朗日乘子。Sequential minimal optimization。

引入核函数Kernel,推广到非线性分类问题。对于非线性的情况,SVM的处理方法是选择一个核函数 κ(⋅,⋅) ,通过将数据映射到高维空间,来解决在原始空间中线性不可分的问题。因为训练样例一般是不会独立出现的,它们总是以成对样例的内积形式出现,而用对偶形式表示学习器的优势在为在该表示中可调参数的个数不依赖输入属性的个数,通过使用恰当的核函数来替代内积,可以隐式得将非线性的训练数据映射到高维空间,而不增加可调参数的个数(前提是核函数能够计算对应着两个输入特征向量的内积)。在线性不可分的情况下,支持向量机首先在低维空间中完成计算,然后通过核函数将输入空间映射到高维特征空间,最终在高维特征空间中构造出最优分离超平面,从而把平面上本身不好分的非线性数据分开

核函数如何处理非线性数据?做一个映射,新空间中原来不可分的数据变成线性可分的,再使用线性分类算法处理。这是 Kernel 方法处理非线性问题的基本思想。不过事实上没有这么简单,将低维映射到高维空间,在高维空间种计算困难,而且对无穷维无法计算。所以Kernel简化计算的关键在于:

  1. 一个是映射到高维空间中,然后再根据内积的公式进行计算;
  2. 而另一个则直接在原来的低维空间中进行计算,而不需要显式地写出映射后的结果

在前一种方法已经无法计算的情况下,后一种方法却依旧能从容处理,甚至是无穷维度的情况也没有问题。把这里的计算两个向量在隐式映射过后的空间中的内积的函数叫做核函数 (Kernel Function)。核函数能简化映射空间中的内积运算——刚好“碰巧”的是,在我们的 SVM 里需要计算的地方数据向量总是以内积的形式出现的。避开了直接在高维空间中进行计算,而结果却是等价的。对于简单例子可以手工构造出对应核函数,但对于任意一个映射,想要构造出对应的核函数就很困难了。常用的核函数:

  • 多项式核。
  • 高斯核。将原始空间映射为无穷维空间。如果参数选得大,高次特征上的权重衰减得非常快,所以近似一个低维的子空间;反过来,如果选得很小,则可以将任意的数据映射为线性可分。总的来说,通过调控参数,高斯核相当灵活,是使用最广泛的核函数之一。

因为数据有噪音,存在偏离正常位置很远的数据点称 outlier ,outlier 的存在有可能造成很大的影响,因为超平面本身就是只有少数几个 support vector 组成的,如果这些 support vector 里又存在 outlier 的话,其影响就很大了。为了处理这种情况,SVM 允许数据点在一定程度上偏离一下超平面,松弛

小结,不准确的说,SVM它本质上即是一个分类方法,用w^T+b定义分类函数,于是求w、b,为寻最大间隔,引出1/2||w||^2,继而引入拉格朗日因子,化为对拉格朗日乘子α的求解(求解过程中会涉及到一系列最优化或凸二次规划等问题),如此,求w.b与求α等价,而α的求解可以用一种快速学习算法SMO,至于核函数,是为处理非线性情况,若直接映射到高维计算恐维度爆炸,故在低维计算,等效高维表现。

参考文献:

1、分类与回归区别是什么? - 知乎  https://www.zhihu.com/question/21329754

2、回归 - MATLAB https://ww2.mathworks.cn/help/stats/model-building-and-assessment.html?searchHighlight=%E6%A8%A1%E5%9E%8B%E7%9A%84%E6%9E%84%E5%BB%BA&s_tid=srchtitle_%25E6%25A8%25A1%25E5%259E%258B%25E7%259A%2584%25E6%259E%2584%25E5%25BB%25BA_2

3、分类 - MATLAB  https://ww2.mathworks.cn/help/stats/classification-model-building-and-assessment.html?searchHighlight=%E6%A8%A1%E5%9E%8B%E7%9A%84%E6%9E%84%E5%BB%BA&s_tid=srchtitle_%25E6%25A8%25A1%25E5%259E%258B%25E7%259A%2584%25E6%259E%2584%25E5%25BB%25BA_1

4、支持向量机通俗导论(理解SVM的三层境界)_Paul_Huang的专栏-CSDN博客  https://blog.csdn.net/huang1024rui/article/details/46723751

5、

6、

7、

8、

你可能感兴趣的:(分类,回归,人工智能)