回归算法(回归算法原理是什么)
大家好!今天让创意岭的小编来大家介绍下关于回归算法的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等
只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端
创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008
本文目录:
一、机器学习故事汇-逻辑回归算法
机器学习故事汇-逻辑回归算法
今天我们要来讨论的一个分类算法-逻辑回归(你有没有搞错,这不还是回归吗,虽然名字带上了回归其实它是一个非常实用的分类算法)。,适合对数学很头疼的同学们,小板凳走起!
先来吹一吹逻辑回归的应用,基本上所有的机器学习分类问题都可以使用逻辑回归来求解,当前拿到一份数据想做一个分类任务的时候第一手准备一定要拿逻辑回归来尝试(虽然有很多复杂的模型比如神经网络,支持向量机的名气更大,但是逻辑回归却更接地气,用的最多的还是它)!在机器学习中无论是算法的推导还是实际的应用一直有这样的一种思想,如果一个问题能用简单的算法去解决那么绝对没必要去套用复杂的模型。
在逻辑回归中最核心的概念就是Sigmoid函数了,首先我们先来观察一下它的自变量取值范围以及值域,自变量可以是任何实数(这没啥特别的!)但是我们观察值域的范围是[0,1]也就是任意的一个输入都会映射到[0,1]的区间上,我们来想一想这个区间有什么特别的含义吗?在我们做分类任务的时候一般我都都会认为一个数据来了它要么是0要么是1(只考虑二分类问题),我们其实可以更细致一点得出来它是0或者1的可能性有多大,由此我们就得出了一个输入属于某一个类别的概率值,这个[0,1]不就恰好是这个概率吗!
在这里我们的预测函数还是跟线性回归没有多大差别,只不过我们将结果又输入到Sigmoid函数中,这样得到了数据属于类别的概率值。在推导过程中,我们假定分类是两个类别的(逻辑回归是经典的而分类器)。设定y(标签)要么取0要么取1,这样就可以把两个类别进行整合,得到一个更直观的表达。
对于逻辑回归的求解,已然沿用我们上次跟大家讨论的梯度下降算法。给出似然函数,转换对数似然(跟线性回归一致),但是我们现在的优化目标却跟之前不太一样了,线性回归的时候我们要求解的是最小值(最小二乘法),但是现在我们想得到的却是使得该事件发生得最大值,为了沿用梯度下降来求解,可以做一个简单的转换添加一个负号以及一个常数很简单的两步就可以把原始问题依然转换成梯度下降可以求解的问题。
此处求导过程看起来有些长,但也都是非常非常基本的运算了,感兴趣拿起一支笔来实际算算吧!
最终就是参数更新了,迭代更新是机器学习的常规套路了。但是我们来简单想一想另外的一个问题,现在我们说的逻辑回归是一个二分类算法,那如果我的实际问题是一个多分类该怎么办呢?这个时候就需要Softmax啦,引入了归一化机制,来将得分值映射成概率值。
最后一句话总结一下吧,任何时候(没错就是这么狠)当我们一个实际任务来了,第一个算法就是逻辑回归啦,可以把它当成我们的基础模型,然后不断改进对比!
二、GBDT与XGBoost
之前介绍过 梯度下降法与牛顿法 ,GBDT与XGBoost就与这两种方法有关。
GBDT泛指所有梯度提升树算法,包括XGBoost,它也是GBDT的一种变种,为了区分它们,GBDT一般特指“Greedy Function Approximation:A Gradient Boosting Machine”里提出的算法,只用了一阶导数信息。
算法流程如下:
算法流程图也可以如下图:
GBDT常用损失函数
分类算法:
分类算法中CART树也是采用回归树
(1) 指数损失函数:
负梯度计算和叶子节点的最佳负梯度拟合与Adaboost相似。
(2) 对数损失函数:
二元分类:
多元分类:
回归算法:
(1)均方差:
(2)绝对损失:
负梯度误差为:
(3)Huber损失:
均方差和绝对损失的折中,对远离中心的异常点,采用绝对损失,而中心附近的点采用均方差。界限一般用分位数点度量。损失函数如下:
负梯度误差:
(4) 分位数损失:分位数回归的损失函数,表达式为
θ为分位数,需要我们在回归前指定。对应的负梯度误差为:
Huber损失和分位数损失,减少异常点对损失函数的影响。
问题:GBDT如何减少异常点的影响?
GBDT优点:
GBDT缺点:
Adaboost与GBDT:
RF与GBDT:
RF优点:
RF缺点:
XGBoost目标函数及归一化公式
归一化解释
XGBoost参数定义
XGBoost第t次迭代: 训练第t棵子树,损失函数最小求参数,计算过程如下
假设分到j这个叶子节点上的样本只有一个。那么,w* j 如下:
回归树的学习策略
XGBoost的打分函数
树节点分裂方法
寻找分为点可以使用Weighted Quantile Sketch—分布式加权直方图算法
稀疏值处理
关键的改进是只访问非缺失的条目I k 。 所提出的算法将不存在的值视为缺失值并且学习处理缺失值的最佳方向。稀疏感知算法运行速度比初始版本快50倍
XGBoost的其它特性
Shrinkage and Column Subsampling
Shrinkage and Column Subsampling均是为了防止过拟合
XGBoost的系统设计
Column Block
xgboost的并行不是tree粒度的并行,而是特征粒度上。
缓存感知访问(Cache-aware Access)
XGBoost的优点
XGBoost与GBDT对比
问题:XGBoost为什么使用CART树而不是用普通的决策树呢?
XGBoost参数说明
回归树 生成算法如下,使用最小二乘偏差(LSD)。
分类树 算法流程如下,使用GINI指数
GINI 指数:
分类中,假设 K 个类,样本属于第 k 类的概率为 p k ,概率分布的基尼指数为:
样本集合 D 的基尼指数为:
C k 为数据集D中属于第k类的样本子集,| * |表示样本集中样本的个数。
数据集 D 根据特征 A 在某一取值 a 上进行分割,得到 D 1 、D 2 两部分,则在特征 A 下集合 D 的基尼指数为:
停止条件:
剪枝
决策树防止过拟合方法:
代价复杂度剪枝 Cost-Complexity Pruning(CCP) 方法对CART剪枝,算法流程如下:
其中 C(T)为误差(例如基尼指数),|T| 为 T 的叶节点个数,alpha 为非负参数,用来权衡训练数据的拟合程度和模型的复杂度。
剪枝例子如下:
例如 t 1 节点,R(t)即剪枝后误差,数据所占比例16/16,节点误差率 = 该节点较少类别的数/该节点类别总数 = 8/16
R(Tt)为剪枝前误差,即叶子节点误差之和,以该节点为根节点的4叶子节点均只有一个类别的样本,该节点较少类别的数/该节点类别总数 = 0,所以R(Tt) = 0
参考
三、什么是指机器学习过程中需要提供指导信号的学习方式
机器学习过程中需要提供指导信号的学习方式
根据数据类型的不同,对一个问题的建模有不同的方式。在机器学习或者人工智能领域,人们首先会考虑算法的学习方式。在机器学习领域,有几种主要的学习方式。将算法按照学习方式分类是一个不错的想法,这样可以让人们在建模和算法选择的时候考虑能根据输入数据来选择最合适的算法来获得最好的结果。
1.监督式学习:

在监督式学习下,输入数据被称为“训练数据”,每组训练数据有一个明确的标识或结果,如对防垃圾邮件系统中“垃圾邮件”“非垃圾邮件”,对手写数字识别中的“1“,”2“,”3“,”4“等。在建立预测模型的时候,监督式学习建立一个学习过程,将预测结果与“训练数据”的实际结果进行比较,不断的调整预测模型,直到模型的预测结果达到一个预期的准确率。监督式学习的常见应用场景如分类问题和回归问题。常见算法有逻辑回归(Logistic Regression)和反向传递神经网络(Back Propagation Neural Network)
2.非监督式学习:

在非监督式学习中,数据并不被特别标识,学习模型是为了推断出数据的一些内在结构。常见的应用场景包括关联规则的学习以及聚类等。常见算法包括Apriori算法以及k-Means算法。
3.半监督式学习:

在此学习方式下,输入数据部分被标识,部分没有被标识,这种学习模型可以用来进行预测,但是模型首先需要学习数据的内在结构以便合理的组织数据来进行预测。应用场景包括分类和回归,算法包括一些对常用监督式学习算法的延伸,这些算法首先试图对未标识数据进行建模,在此基础上再对标识的数据进行预测。如图论推理算法(Graph Inference)或者拉普拉斯支持向量机(Laplacian SVM.)等。
4.强化学习:

在这种学习模式下,输入数据作为对模型的反馈,不像监督模型那样,输入数据仅仅是作为一个检查模型对错的方式,在强化学习下,输入数据直接反馈到模型,模型必须对此立刻作出调整。常见的应用场景包括动态系统以及机器人控制等。常见算法包括Q-Learning以及时间差学习(Temporal difference learning)
在企业数据应用的场景下, 人们最常用的可能就是监督式学习和非监督式学习的模型。 在图像识别等领域,由于存在大量的非标识的数据和少量的可标识数据, 目前半监督式学习是一个很热的话题。 而强化学习更多的应用在机器人控制及其他需要进行系统控制的领域。
二、算法类似性
根据算法的功能和形式的类似性,我们可以把算法分类,比如说基于树的算法,基于神经网络的算法等等。当然,机器学习的范围非常庞大,有些算法很难明确归类到某一类。而对于有些分类来说,同一分类的算法可以针对不同类型的问题。这里,我们尽量把常用的算法按照最容易理解的方式进行分类。
1.回归算法

回归算法是试图采用对误差的衡量来探索变量之间的关系的一类算法。回归算法是统计机器学习的利器。在机器学习领域,人们说起回归,有时候是指一类问题,有时候是指一类算法,这一点常常会使初学者有所困惑。常见的回归算法包括:最小二乘法(Ordinary Least Square),逻辑回归(Logistic Regression),逐步式回归(Stepwise Regression),多元自适应回归样条(Multivariate Adaptive Regression Splines)以及本地散点平滑估计(Locally Estimated Scatterplot Smoothing)
2.基于实例的算法

基于实例的算法常常用来对决策问题建立模型,这样的模型常常先选取一批样本数据,然后根据某些近似性把新数据与样本数据进行比较。通过这种方式来寻找最佳的匹配。因此,基于实例的算法常常也被称为“赢家通吃”学习或者“基于记忆的学习”。常见的算法包括 k-Nearest Neighbor(KNN), 学习矢量量化(Learning Vector Quantization, LVQ),以及自组织映射算法(Self-Organizing Map , SOM)
3.正则化方法

正则化方法是其他算法(通常是回归算法)的延伸,根据算法的复杂度对算法进行调整。正则化方法通常对简单模型予以奖励而对复杂算法予以惩罚。常见的算法包括:Ridge Regression, Least Absolute Shrinkage and Selection Operator(LASSO),以及弹性网络(Elastic Net)。
4.决策树学习

决策树算法根据数据的属性采用树状结构建立决策模型, 决策树模型常常用来解决分类和回归问题。常见的算法包括:分类及回归树(Classification And Regression Tree, CART), ID3 (Iterative Dichotomiser 3), C4.5, Chi-squared Automatic Interaction Detection(CHAID), Decision Stump, 随机森林(Random Forest), 多元自适应回归样条(MARS)以及梯度推进机(Gradient Boosting Machine, GBM)
5.贝叶斯方法

贝叶斯方法算法是基于贝叶斯定理的一类算法,主要用来解决分类和回归问题。常见算法包括:朴素贝叶斯算法,平均单依赖估计(Averaged One-Dependence Estimators, AODE),以及Bayesian Belief Network(BBN)。
6.基于核的算法

基于核的算法中最着名的莫过于支持向量机(SVM)了。 基于核的算法把输入数据映射到一个高阶的向量空间, 在这些高阶向量空间里, 有些分类或者回归问题能够更容易的解决。 常见的基于核的算法包括:支持向量机(Support Vector Machine, SVM), 径向基函数(Radial Basis Function ,RBF), 以及线性判别分析(Linear Discriminate Analysis ,LDA)等。
7.聚类算法

聚类,就像回归一样,有时候人们描述的是一类问题,有时候描述的是一类算法。聚类算法通常按照中心点或者分层的方式对输入数据进行归并。所以的聚类算法都试图找到数据的内在结构,以便按照最大的共同点将数据进行归类。常见的聚类算法包括 k-Means算法以及期望最大化算法(Expectation Maximization, EM)。
8.关联规则学习

关联规则学习通过寻找最能够解释数据变量之间关系的规则,来找出大量多元数据集中有用的关联规则。常见算法包括 Apriori算法和Eclat算法等。
9.人工神经网络

人工神经网络算法模拟生物神经网络,是一类模式匹配算法。通常用于解决分类和回归问题。人工神经网络是机器学习的一个庞大的分支,有几百种不同的算法。(其中深度学习就是其中的一类算法,我们会单独讨论),重要的人工神经网络算法包括:感知器神经网络(Perceptron Neural Network), 反向传递(Back Propagation), Hopfield网络,自组织映射(Self-Organizing Map, SOM)。学习矢量量化(Learning Vector Quantization, LVQ)
10.深度学习

深度学习算法是对人工神经网络的发展。 在近期赢得了很多关注, 特别是 百度也开始发力深度学习后, 更是在国内引起了很多关注。 在计算能力变得日益廉价的今天,深度学习试图建立大得多也复杂得多的神经网络。很多深度学习的算法是半监督式学习算法,用来处理存在少量未标识数据的大数据集。常见的深度学习算法包括:受限波尔兹曼机(Restricted Boltzmann Machine, RBN), Deep Belief Networks(DBN),卷积网络(Convolutional Network), 堆栈式自动编码器(Stacked Auto-encoders)。
11.降低维度算法

像聚类算法一样,降低维度算法试图分析数据的内在结构,不过降低维度算法是以非监督学习的方式试图利用较少的信息来归纳或者解释数据。这类算法可以用于高维数据的可视化或者用来简化数据以便监督式学习使用。常见的算法包括:主成份分析(Principle Component Analysis, PCA),偏最小二乘回归(Partial Least Square Regression,PLS), Sammon映射,多维尺度(Multi-Dimensional Scaling, MDS), 投影追踪(Projection Pursuit)等。
12.集成算法

集成算法用一些相对较弱的学习模型独立地就同样的样本进行训练,然后把结果整合起来进行整体预测。集成算法的主要难点在于究竟集成哪些独立的较弱的学习模型以及如何把学习结果整合起来。这是一类非常强大的算法,同时也非常流行。常见的算法包括:Boosting, Bootstrapped Aggregation(Bagging), AdaBoost,堆叠泛化(Stacked Generalization, Blending),梯度推进机(Gradient Boosting Machine, GBM),随机森林(Random Forest)。
四、多元回归属于分类算法吗
你好,经过我查阅相关资料得知
多元回归不属于分类算法,回归算法与分类算法都属于监督学习算法,不同的是,分类算法中标签是一些离散值,代表不同的分类,而回归算法中,标签是一些连续值,回归算法需要训练得到样本特征到这些连续标签之间的映射。
以上就是关于回归算法相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。
推荐阅读:
抗氧化食物排行榜(抗氧化食物排行榜对照着吃比买化妆品更养颜)