集成学习初步task_2

集成学习(上):任务二

掌握基本的回归模型、机器学习问题一般流程

1、什么是回归?

​ 概念来源:19世纪80年代由英国统计学家郎西斯.高尔顿在研究父子身高关系提出来的,他发 现:在同一族群中,子代的平均身高介于父代的身高以及族群的平均身高之间。具体而言,高个 子父亲的儿子的身高有低于其父亲身高的趋势,而矮个子父亲的儿子身高则有高于父亲的身高的 趋势。也就是说,子代的身高有向族群平均身高"平均"的趋势,这就是统计学上"回归"的最初含 义。

2、回归的问题对象是什么?

​ 研究的是因变量(目标)和自变量(特征)之间的关 系。

3、回归的用处是什么?

​ 回归分析是一种预测性的建模技术,这种技术通常用于预测分析,时间序列模型以及发现变量之间的因果关系。

4、回归的目标是什么?

​ 通常使用曲线/线 来拟合数据点,目标是使曲线到数据点的距离差异最小。

5、以线性回归为例:

​ 线性回归就是回归问题中的一种,线 性回归假设目标值与特征之间线性相关,即满足一个多元一次方程。通过构建损失函数,来求解 损失函数最小时的参数w、b。

我们需要衡量真实值 与线性回归模型的预测值 之间的差距

​ (a) 最小二乘估计:

​ 涉及的知识点:

​ L1,L2范数

​ 线性均方误差是一个关于 w 的可微凸函数,即线性回归是一个凸优化问题,所以线性回归有唯一最优值,即

​ 条件是L’(w) = 0

​ (b) 几何解释:

​ © 概率视角:假设噪声 ,因此: 我们使用极大似然估计MLE对参数w进行估计: 𝜖 ∽ 𝑁(0, 𝜎 ), 𝑦 = 𝑓(𝑤) + 𝜖 = 𝑥 + 𝜖 2 𝑤𝑇 𝑦|𝑥 , 𝑤 𝑁( 𝑥, )

6、线性回归的推广

(a) 多项式回归:线性回归可以对样本数据是非线性而只对参数是线性的

(b) 广义可加模型(GAM):

如果y与x不满足线性关系,即hθ(x1,x2,⋯,xn)不能用表达式θ0+θ1x1+θ2x2+⋯+θnxn来表示,但是通过某个单调可微的函数,如 g(y),使得

​ g(hθ(x1,x2,⋯,xn))=θ0+θ1x1+θ2x2+⋯+θnxn

GAM模型框架:

​ 𝑦𝑖 = 𝑤0 + ∑ ( ) + 𝑗=1 𝑝 𝑓𝑗 𝑥𝑖𝑗 𝜖�

GAM模型的优点与不足: 优点:简单容易操作,能够很自然地推广线性回归模型至非线性模型,使得模型的预测精度 有所上升;由于模型本身是可加的,因此GAM还是能像线性回归模型一样把其他因素控制不 变的情况下单独对某个变量进行推断,极大地保留了线性回归的易于推断的性质。 缺点:GAM模型会经常忽略一些有意义的交互作用,比如某两个特征共同影响因变量,不过 GAM还是能像线性回归一样加入交互项 的形式进行建模;但是GAM模型本质上还 是一个可加模型,如果我们能摆脱可加性模型形式,可能还会提升模型预测精度,详情请看 后面的算法。

GAM模型实例介绍: 安装pygam:pip install pygam https://github.com/dswah/pyGAM/blob/master/doc/source/notebooks/quick_start.ipynb (https://github.com/dswah/pyGAM/blob/master/doc/source/notebooks/quick_start.ipynb)

© 局部加权回归

7、回归树

参考Regression Tree 回归树:https://zhuanlan.zhihu.com/p/82054400

目前,最流行的两类算法莫过于神经网络算法(卷积神经网络、循环神经网络、生成式对抗网络和图神经网络)树形算法(随机森林、GBDT、XGBoost和LightGBM)。树形算法的基础就是决策树,由于其易理解、易构建、速度快等特点,被广泛的应用在数据挖掘、机器学习等领域。因此,决策树是经典的机器学习算法,很多复杂的机器学习算法都是由决策树演变而来。

实际上,回归树总体流程类似于分类树,分枝时穷举每一个特征的每一个阈值,来寻找最优切分特征和最优切分点,衡量的方法是平方误差最小化。分枝直到达到预设的终止条件为止。

当然,在处理具体的实际问题时,使用单一的回归树肯定是不够的。我们可以利用集成学习中的boosting框架,对回归树进行改良升级,得到的新模型就是提升树(Boosting Decision Tree),在进一步改造,就可以得到梯度提升树(Gradient Boosting Decision Tree,GBDT),再进一步可以升级为XGBoost或者LightGBM。我们在学习这些模型时,可以把它们归为一个学习系列,这样便于我们系统理解模型进展。

8、回归树与线性模型的比较:

线性模型的模型形式与树模型的模型形式有着本质的区别,具体而言,线性回归对模型形式 做了如下假定:

𝑓(𝑥) = 𝑤0 + ∑^𝑝 (𝑗=1 )(𝑤(𝑗)𝑥 (𝑗))

而回归树则是

𝑓(𝑥) = ∑ 𝐼(𝑥 ∈ ) 𝑚=1 𝐽 𝑐𝑚̂ 𝑅�那问 题来了,哪种模型更优呢?这个要视具体情况而言,如果特征变量与因变量的关系能很好的 用线性关系来表达,那么线性回归通常有着不错的预测效果,拟合效果则优于不能揭示线性 结构的回归树。反之,如果特征变量与因变量的关系呈现高度复杂的非线性,那么树方法比 传统方法更优。

树模型的优缺点:

(1)解释性强

(2)接近人的决策方式

(3)树模型能很好处理缺失值和异常值,对异常值不敏感,但是这个对线性模型来说却是致 命的。 树模型的预测准确性一般无法达到其他回归模型的水平,但是改进的方法很多。

9、支持向量机–SVR

支持向量机算法的核心思想:

寻找最中立的分离直线等价于寻找间隔最大的分离直线

SVR:宽容的支持向量回归(SVR)

介绍一种“宽容的”回归模型:支持向量回归(Support Vector Regression,SVR)

模型函数
支持向量回归模型的模型函数也是一个线性函数:y = w x + b y=wx+by=wx+b,但是和线性回归是两个不同的回归模型!
不同点在于:计算损失的原则不同,目标函数和最优化算法也不同。
————————————————

参考原文:https://blog.csdn.net/qq_41909317/article/details/88542892

模型精度的评价

(1) 方差(variance):

方差的意思是每一次使用不同的样本集,得到 f 估计的改变量。理想的情况下,用不同的数据集得到的 f相差应该不大,也就是方差很小。

方差的含义:方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影

(2) 偏差(bias)

偏差的意思是为了选择一个简单的模型逼近真实的函数而引入的误差,其构成非常复杂。

偏差的含义:偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力。

偏差度量的是单个模型的学习能力,而方差度量的是同一个模型在不同数据集上的稳定性。

给定学习任务,为了取得好的泛化性能,则需使偏差较小,即能够充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小。img

一般而言,增加模型的复杂度,会增加模型的方差,但是会减少模型的偏差,我们要找到一个方差–偏差的权衡,使得测试均方误差最小,我们将在模型选择的章节中讨论。

img

以上是线性回归模型得理论知识

机器学习集成学习与模型融合

具体请参考链接:https://blog.csdn.net/qq_28168421/article/details/108413700

https://zhuanlan.zhihu.com/p/141690284

管道简化工作流

解释:Pipeline可以将许多算法模型串联起来,比如将特征提取、归一化、分类组织在一起形成一个典型的机器学习问题工作流

#    例子
from sklearn.preprocessing import StandardScaler # 用于进行数据标准化
from sklearn.decomposition import PCA # 用于进行特征降维
from sklearn.linear_model import LogisticRegression # 用于模型预测
from sklearn.pipeline import Pipeline
pipe_lr = Pipeline([('scl', StandardScaler()),
                    ('pca', PCA(n_components=2)),
                    ('clf', LogisticRegression(random_state=1))])
pipe_lr.fit(X_train, y_train)
print('Test Accuracy: %.3f' % pipe_lr.score(X_test, y_test))
y_pred = pipe_lr.predict(X_test)
from sklearn.pipeline import Pipeline   # 管道简化工作流

pipe1 = Pipeline([['sc',StandardScaler()],['clf',clf1]])

pipe3 = Pipeline([['sc',StandardScaler()],['clf',clf3]])

集成学习库安装遇到问题

相关库:均在cmd窗口进行安装操作

import lightgbm as lgb
import xgboost as xgb
from catboost import CatBoostRegressor
问题:

1、安装慢

pip install xgboost
pip install catboost
pip install lightgbm

2、安装多次未成功

3、安装成功之后依然导入出错

解决:

1、使用清华镜像解决安装慢的问题

pip install catboost -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install ngboost -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install xgboost -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install lightgbm -i https://pypi.tuna.tsinghua.edu.cn/simple

3、

# 首先
pip uninstall xgboost
#然后重新
pip3 install xgboost

集成学习之catboost

一个超级简单并且又极其实用的boosting算法包Catboost,据开发者所说这一boosting算法是超越Lightgbm和XGBoost的又一个神器。

catboost有一下三个的优点:

1、 它自动采用特殊的方式处理类别型特征(categorical features)

2、 catboost还使用了组合类别特征,可以利用到特征之间的联系,这极大的丰富了特征维度

3、 catboost的基模型采用的是对称树,同时计算leaf-value方式和传统的boosting算法也不一样,传统的boosting算法计算的是平均数,而catboost在这方面做了优化采用了其他的算法,这些改进都能防止模型过拟合

参考链接:

https://www.jianshu.com/p/49ab87122562

https://blog.csdn.net/friyal/article/details/82758532

集成学习之LightGBM

https://www.hrwhisper.me/machine-learning-lightgbm/

调参、优化:

https://blog.csdn.net/qq_35679464/article/details/85223467?ops_request_misc=&request_id=&biz_id=102&utm_term=LightGBM&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-9-85223467.first_rank_v2_pc_rank_v29

(Light Gradient Boosting Machine)是一款基于决策树算法的分布式梯度提升框架。为了满足工业界缩短模型计算时间的需求,LightGBM的设计思路主要是两点:
减小数据对内存的使用,保证单个机器在不牺牲速度的情况下,尽可能地用上更多的数据;
减小通信的代价,提升多机并行时的效率,实现在计算上的线性加速。
由此可见,LightGBM的设计初衷就是提供一个快速高效、低内存占用、高准确度、支持并行和大规模数据处理的数据科学工具。
LightGBM是微软旗下的Distributed Machine Learning Toolkit (DMKT)的一个项目,由2014年首届阿里巴巴大数据竞赛获胜者之一柯国霖主持开发。虽然其开源时间才仅仅2个月,但是其快速高效的特点已经在数据科学竞赛中崭露头角。Allstate Claims Severity竞赛中的冠军解决方案里就使用了LightGBM,并对其大嘉赞赏。

算上的线性加速。
由此可见,LightGBM的设计初衷就是提供一个快速高效、低内存占用、高准确度、支持并行和大规模数据处理的数据科学工具。
LightGBM是微软旗下的Distributed Machine Learning Toolkit (DMKT)的一个项目,由2014年首届阿里巴巴大数据竞赛获胜者之一柯国霖主持开发。虽然其开源时间才仅仅2个月,但是其快速高效的特点已经在数据科学竞赛中崭露头角。Allstate Claims Severity竞赛中的冠军解决方案里就使用了LightGBM,并对其大嘉赞赏。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: NGBoost(Natural Gradient Boosting)是一种基于概率预测的梯度提升算法,它可以用于回归和分类任务。相较于传统的梯度提升算法,NGBoost 不仅可以预测目标变量的值,还可以给出目标变量值的不确定性,这对于许多实际应用非常有用。 NGBoost 算法的核心思想是利用贝叶斯方法来预测目标变量的概率分布。具体来说,NGBoost 在每一轮迭代中,通过训练一个基本模型(比如回归树或神经网络),来预测目标变量的条件概率分布。然后,NGBoost 通过最小化负对数似然来优化模型参数,使得预测的概率分布更接近于真实分布。最终,NGBoost 将多个基本模型的预测结果加权求和,得到最终的预测结果和不确定性估计。 NGBoost 算法中的一些常用参数包括: - n_estimators:基本模型的数量。 - Base:选择的基本模型,比如回归树或神经网络。 - learning_rate:学习率,控制每个基本模型的权重更新幅度。 - natural_gradient:是否使用自然梯度下降进行优化。 - Dist:选择的概率分布函数,比如正态分布或泊松分布。 - Score:选择的评估指标,比如对数损失或均方误差。 NGBoost 算法的优点包括: - 可以给出目标变量的概率分布,提供更全面的预测结果。 - 可以自适应地选择概率分布函数,适用于各种类型的任务。 - 可以使用自然梯度下降进行优化,收敛更快,避免了梯度下降中的参数缩放问题。 - 可以处理缺失数据和离群值,减少了数据预处理的工作量。 ### 回答2: NGBoost(Natural Gradient Boosting)是一种基于梯度提升树(Gradient Boosting Tree)的机器学习算法。它是在传统梯度提升树算法的基础上进行改进的,通过使用自然梯度(Natural Gradient)来代替传统的欧氏梯度,从而实现更高效的模型训练和更准确的预测。 NGBoost的参数包括:基学习器(base learner)类型,迭代轮数(n_estimators),学习率(learning_rate),损失函数(loss function)以及分布族(distribution family)等。基学习器可以是决策树或其他类型的模型,如线性回归模型。迭代轮数和学习率决定了模型的拟合程度,需要根据具体问题进行调整。损失函数和分布族则根据问题的特点进行选择,常用的有高斯分布,泊松分布和二项分布等。 NGBoost的优点主要体现在以下几个方面:首先,NGBoost通过使用自然梯度,能够避免传统梯度提升树算法中的欠拟合现象,提高了模型的预测准确性。其次,NGBoost的模型训练过程中引入了更多的统计学的理论,使得模型更加鲁棒和稳定。此外,NGBoost还可以通过设置不同的分布族和损失函数,适应于各种类型的分类和回归问题。最后,NGBoost具有较高的可扩展性和灵活性,能够将不同类型的基学习器进行组合,获得更好的性能。 总之,NGBoost是一种基于梯度提升树的机器学习算法,通过使用自然梯度进行优化,提高了模型的预测准确性和鲁棒性。它具有较高的灵活性和可扩展性,适应于各种类型的分类和回归问题,是一种值得尝试的算法。 ### 回答3: NGBoost算法是一种集成学习方法,用于解决回归问题。该算法使用自然梯度提升(Natural Gradient Boosting)来训练一组加法模型,以预测目标变量。NGBoost采用概率预测框架,其中每个基学习器都是在预测目标变量的增量概率分布上训练的。 NGBoost算法的参数包括基学习器(base learner),损失函数(loss function),训练轮数(n_estimators),学习率(learning rate)等。基学习器可以是各种回归模型,如决策树、线性回归等。损失函数可以根据具体问题选择,常见的包括均方误差(mean squared error)、绝对误差(mean absolute error)等。训练轮数和学习率控制了算法的训练过程,可以通过调节它们来优化预测性能。 NGBoost算法的优点包括: 1. 可以处理复杂的非线性关系,适用于各种回归问题。 2. 采用概率预测框架,能够提供目标变量的不确定性估计,提供了更详细的预测结果。 3. 自然梯度提升可以更好地处理参数空间的几何结构,使得算法更快收敛到最优解。 4. 可解释性强,可以查看每个基学习器的贡献和权重,帮助理解模型的预测过程。 5. 可扩展性好,可以轻松应用于大规模数据集,并且支持并行计算加快训练速度。 6. 鲁棒性强,对数据中的异常值和缺失值具有较好的处理能力。 总结而言,NGBoost算法通过自然梯度提升和概率预测框架,提供了一种强大的回归学习方法。其优点包括处理复杂关系、提供不确定性估计、收敛速度快、可解释性强、可扩展性好和鲁棒性强。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值