DNA图谱 / 问答 / 问答详情

xgboost算法原理与实战|xgboost算法

2023-07-03 11:08:14
TAG: 算法
共1条回复
西柚不是西游

前言:

xgboost是大规模并行boosted tree的工具,它是目前最快最好的开源boosted tree工具包,比常见的工具包快10倍以上。在数据科学方面,有大量kaggle选手选用它进行数据挖掘比赛,其中包括两个以上kaggle比赛的夺冠方案。在工业界规模方面,xgboost的分布式版本有广泛的可移植性,支持在YARN, MPI, Sungrid Engine等各个平台上面运行,并且保留了单机并行版本的各种优化,使得它可以很好地解决于工业界规模的问题。

花了几天时间粗略地看完了xgboost原论文和作者的slide讲解,仅仅是入门入门入门笔记。给我的感觉就是xgboost算法比较复杂,针对传统GBDT算法做了很多细节改进,包括损失函数、正则化、切分点查找算法优化、稀疏感知算法、并行化算法设计等等。本文主要介绍xgboost基本原理以及与传统gbdt算法对比总结,后续会基于Python版本做了一些实战调参试验。想详细学习xgboost算法原理建议通读作者原始论文与slide讲解。

相关文献资料: Xgboost Slides XGBoost中文版原理介绍 原始论文XGBoost: A Scalable Tree Boosting System XGBoost Parameters (official guide)

精彩博文: XGBoost浅入浅出——wepon xgboost: 速度快效果好的boosting模型 Complete Guide to Parameter Tuning in XGBoost (with codes in Python)

一、xgboost基本原理介绍

1.提升方法是一种非常有效的机器学习方法,在前几篇笔记中介绍了提升树与GBDT基本原理,xgboost(eXtreme Gradient Boosting)可以说是提升方法的完全加强版本。xgboost算法在各大比赛中展现了强大的威力,引用原论文中的一段描述:

The impact of the system has been widely recognized in a number of machine learning and data mining challenges. Take the challenges hosted by the machine learning competition site Kaggle for example. Among the 29 challenge winning solutions published at Kaggle"s blog during 2015, 17 solutions used XGBoost. Among these solutions, eight solely used XGBoost to train the model,while most others combined XGBoost with neural nets in ensembles. For comparison, the second most popular method,deep neural nets, was used in 11 solutions. The success of the system was also witnessed in KDDCup 2015, where XGBoost was used by every winning team in the top-10.Moreover, the winning teams reported that ensemble methods outperform a well-configured XGBoost by only a small amount.

2.Regression Tree and Ensemble (What are we Learning,得到学习目标)

(1).Regression Tree (CART)回归树

(2).Regression Tree Ensemble 回归树集成

在上面的例子中,我们用两棵树来进行预测。我们对于每个样本的预测结果就是每棵树预测分数的和。

(3).Objective for Tree Ensemble 得到学习目标函数

这里是构造一个目标函数,然后我们要做的就是去尝试优化这个目标函数。读到这里,感觉与gbdt好像没有什么区别,确实如此,不过在后面就能看到他们的不同了(构造(学习)模型参数)。

3.Gradient Boosting (How do we Learn,如何学习)

(1).So How do we Learn? 目标函数:

(2).Additive Training

(3).Taylor Expansion Approximation of Loss 泰勒近似展开

把平方损失函数的一二次项带入原目标函数,你会发现与之前那张ppt的损失函数是一致的

(4).Our New Goal 得到新的学习目标函数

从这里就可以看出xgboost的特点了,目标函数保留了泰勒展开的二次项。

(5).Refine the definition of tree 重新定义每棵树

(6).Define the Complexity of Tree 树的复杂度项

从图中可以看出,xgboost算法中对树的复杂度项增加了一个L2正则化项,针对每个叶结点的得分增加L2平滑,目的也是为了避免过拟合。

(7).Revisit the Objectives

(8).The Structure Score 这个score你可以理解成类似于信息增益的一个指标,在切分点查找算法中用到。

(9)切分点查找算法(贪心算法)

上图中G都是各自区域内的gi总和,此外,作者针对算法设计对特征进行了排序,有兴趣的可以阅读原始论文,这里不做详解。

二、xgboost特点(与gbdt对比)

说明一下:这部分内容参考了知乎上的一个问答—机器学习算法中GBDT和XGBOOST的区别有哪些?,答主是wepon大神,根据他的总结我自己做了一理解和补充。

1.传统GBDT以CART作为基分类器,xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)。 —可以通过booster [default=gbtree]设置参数:gbtree: tree-based models/gblinear: linear models

2.传统GBDT在优化时只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数。顺便提一下,xgboost工具支持自定义代价函数,只要函数可一阶和二阶求导。 —对损失函数做了改进(泰勒展开,一阶信息g和二阶信息h,上一章节有做介绍)

3.xgboost在代价函数里加入了正则项,用于控制模型的复杂度。正则项里包含了树的叶子节点个数、每个叶子节点上输出的score的L2模的平方和。从Bias-variance tradeoff角度来讲,正则项降低了模型variance,使学习出来的模型更加简单,防止过拟合,这也是xgboost优于传统GBDT的一个特性 —正则化包括了两个部分,都是为了防止过拟合,剪枝是都有的,叶子结点输出L2平滑是新增的。

4.shrinkage and column subsampling —还是为了防止过拟合,论文2.3节有介绍,这里答主已概括的非常到位

(1)shrinkage缩减类似于学习速率,在每一步tree boosting之后增加了一个参数n(权重),通过这种方式来减小每棵树的影响力,给后面的树提供空间去优化模型。

(2)column subsampling列(特征)抽样,说是从随机森林那边学习来的,防止过拟合的效果比传统的行抽样还好(行抽样功能也有),并且有利于后面提到的并行化处理算法。

5.split finding algorithms(划分点查找算法):—理解的还不够透彻,需要进一步学习

(1)exact greedy algorithm—贪心算法获取最优切分点

(2)approximate algorithm— 近似算法,提出了候选分割点概念,先通过直方图算法获得候选分割点的分布情况,然后根据候选分割点将连续的特征信息映射到不同的buckets中,并统计汇总信息。详细见论文3.3节

(3)Weighted Quantile Sketch—分布式加权直方图算法,论文3.4节 这里的算法(2)、(3)是为了解决数据无法一次载入内存或者在分布式情况下算法(1)效率低的问题,以下引用的还是wepon大神的总结:

可并行的近似直方图算法。树节点在进行分裂时,我们需要计算每个特征的每个分割点对应的增益,即用贪心法枚举所有可能的分割点。当数据无法一次载入内存或者在分布式情况下,贪心算法效率就会变得很低,所以xgboost还提出了一种可并行的近似直方图算法,用于高效地生成候选的分割点。

6.对缺失值的处理。对于特征的值有缺失的样本,xgboost可以自动学习出它的分裂方向。 —稀疏感知算法,论文3.4节,Algorithm 3: Sparsity-aware Split Finding

7.Built-in Cross-Validation(内置交叉验证)

XGBoost allows user to run a cross-validation at each iteration of the boosting process and thus it is easy to get the exact optimum number of boosting iterations in a single run. This is unlike GBM where we have to run a grid-search and only a limited values can be tested.

8.continue on Existing Model(接着已有模型学习)

User can start training an XGBoost model from its last iteration of previous run. This can be of significant advantage in certain specific applications. GBM implementation of sklearn also has this feature so they are even on this point.

9.High Flexibility(高灵活性)

**XGBoost allow users to define custom optimization objectives and evaluation criteria. This adds a whole new dimension to the model and there is no limit to what we can do.**

10.并行化处理 —系统设计模块,块结构设计等

xgboost工具支持并行。boosting不是一种串行的结构吗?怎么并行的?注意xgboost的并行不是tree粒度的并行,xgboost也是一次迭代完才能进行下一次迭代的(第t次迭代的代价函数里包含了前面t-1次迭代的预测值)。xgboost的并行是在特征粒度上的。我们知道,决策树的学习最耗时的一个步骤就是对特征的值进行排序(因为要确定最佳分割点),xgboost在训练之前,预先对数据进行了排序,然后保存为block结构,后面的迭代中重复地使用这个结构,大大减小计算量。这个block结构也使得并行成为了可能,在进行节点的分裂时,需要计算每个特征的增益,最终选增益最大的那个特征去做分裂,那么各个特征的增益计算就可以开多线程进行。

此外xgboost还设计了高速缓存压缩感知算法,这是系统设计模块的效率提升。 当梯度统计不适合于处理器高速缓存和高速缓存丢失时,会大大减慢切分点查找算法的速度。 (1)针对 exact greedy algorithm采用缓存感知预取算法 (2)针对 approximate algorithms选择合适的块大小

我觉得关于xgboost并行化设计仅仅从论文PPT博客上学习是远远不够的,有时间还要从代码层面去学习分布式 xgboost的设计理念。

三、xgboost参数详解

官方参数介绍看这里: Parameters (official guide)

General Parameters(常规参数) 1.booster [default=gbtree]:选择基分类器,gbtree: tree-based models/gblinear: linear models 2.silent [default=0]:设置成1则没有运行信息输出,最好是设置为0. 3.nthread [default to maximum number of threads available if not set]:线程数

Booster Parameters(模型参数) 1.eta [default=0.3]:shrinkage参数,用于更新叶子节点权重时,乘以该系数,避免步长过大。参数值越大,越可能无法收敛。把学习率 eta 设置的小一些,小学习率可以使得后面的学习更加仔细。 2.min_child_weight [default=1]:这个参数默认是 1,是每个叶子里面 h 的和至少是多少,对正负样本不均衡时的 0-1 分类而言,假设 h 在 0.01 附近,min_child_weight 为 1 意味着叶子节点中最少需要包含 100 个样本。这个参数非常影响结果,控制叶子节点中二阶导的和的最小值,该参数值越小,越容易 overfitting。 3.max_depth [default=6]: 每颗树的最大深度,树高越深,越容易过拟合。 4.max_leaf_nodes:最大叶结点数,与max_depth作用有点重合。 5.gamma [default=0]:后剪枝时,用于控制是否后剪枝的参数。 6.max_delta_step [default=0]:这个参数在更新步骤中起作用,如果取0表示没有约束,如果取正值则使得更新步骤更加保守。可以防止做太大的更新步子,使更新更加平缓。 7.subsample [default=1]:样本随机采样,较低的值使得算法更加保守,防止过拟合,但是太小的值也会造成欠拟合。 8.colsample_bytree [default=1]:列采样,对每棵树的生成用的特征进行列采样.一般设置为:

0.5-1 9.lambda [default=1]:控制模型复杂度的权重值的L2正则化项参数,参数越大,模型越不容易过拟合。 10.alpha [default=0]:控制模型复杂程度的权重值的 L1 正则项参数,参数值越大,模型越不容易过拟合。 11.scale_pos_weight [default=1]:如果取值大于0的话,在类别样本不平衡的情况下有助于快速收敛。

Learning Task Parameters(学习任务参数) 1.objective [default=reg:linear]:定义最小化损失函数类型,常用参数: binary:logistic –logistic regression for binary classification, returns predicted probability (not class) multi:softmax –multiclass classification using the softmax objective, returns predicted class (not probabilities) you also need to set an additional num_class (number of classes) parameter defining the number of unique classes multi:softprob –same as softmax, but returns predicted probability of each data point belonging to each class. 2.eval_metric [ default according to objective ]: The metric to be used for validation data. The default values are rmse for regression and error for classification. Typical values are: rmse – root mean square error mae – mean absolute error logloss – negative log-likelihood error – Binary classification error rate (0.5 threshold) merror – Multiclass classification error rate mlogloss – Multiclass logloss auc: Area under the curve 3.seed [default=0]: The random number seed. 随机种子,用于产生可复现的结果 Can be used for generating reproducible results and also for parameter tuning.

注意: Python sklearn style参数名会有所变化 eta –> learning_rate lambda –> reg_lambda alpha –> reg_alpha

四、实战

官方样例: XGBoost Python API Reference (official guide) XGBoost Demo Codes (xgboost GitHub repository)

xgboost参数设置代码示例:

相关推荐

什么是信息增益

信息增益(Kullback–Leibler divergence)又称information divergence,information gain,relative entropy 或者KLIC。信息增益在概率论和信息论中,信息增益是非对称的,用以度量两种概率分布P和Q的差异。信息增益描述了当使用Q进行编码时,再使用P进行编码的差异。通常P代表样本或观察值的分布,也有可能是精确计算的理论分布。Q代表一种理论,模型,描述或者对P的近似。尽管信息增益通常被直观地作为是一种度量或距离,但事实上信息增益并不是。就比如信息增益不是对称的,从P到Q的信息增益通常不等于从Q到P的信息增益。信息增益是f增益(f-divergences)的一种特殊情况。在1951年由Solomon Kullback 和Richard Leibler首先提出作为两个分布的直接增益(directed divergence)。它与微积分中的增益不同,但可以从Bregman增益(Bregman divergence)推导得到。
2023-07-03 09:22:081

信息增益到底怎么理解呢?

信息增益(Kullback–Leibler divergence)又叫做information divergence,relative entropy 或者KLIC。在概率论和信息论中,信息增益是非对称的,用以度量两种概率分布P和Q的差异。信息增益描述了当使用Q进行编码时,再使用P进行编码的差异。通常P代表样本或观察值的分布,也有可能是精确计算的理论分布。Q代表一种理论,模型,描述或者对P的近似。扩展资料:信息增益相关延伸:增益一般指对元器件、电路、设备或系统,其电流、电压或功率增加的程度,以分贝(dB)数来规定,即增益的单位一般是分贝(dB),是一个相对值。电子学上常使用对数单位量度增益,并以贝(bel)作为单位:Gain = log10(P2/P1) bel其中P1与P2分别为输入及输出的功率。由于增益的数值通常都很大,因此一般都使用分贝(dB,贝的10分之1)来表示:Gain = 10×log10(P2/P1) dB这就是增益的绝对值与相对值分贝之间的关系。参考资料来源:百度百科-增益参考资料来源:百度百科-信息增益
2023-07-03 09:22:162

信息增益越大越好还是越小越好

信息增益越大越好。信息增益越大,表示信息的不确定度降低的越多,即信息的纯度越高。在决策树的ID3算法中,追求的是信息熵越小越好,信息增益越大越好。ID3中样本分布越均匀,它的信息熵就越大,所以其原则就是样本熵越小越好,也就是信息增益越大越好。信息熵的意思就是一个变量i(就是这里的类别)可能的变化越多(只和值的种类多少以及发生概率有关,反而跟变量具体的取值没有任何关系),它携带的信息量就越大(因为是相加累计),这里就是类别变量i的信息熵越大。系统越是有序,信息熵就越低;反之,一个系统越乱,信息熵就越高。所以,信息熵也可以说是系统有序化程度的一个衡量。二分类问题中,当X的概率P(X)为0.5时,也就是表示变量的不确定性最大,此时的熵也达到最大值1。信息增益:评价一个系统的特征t对系统的影响程度就要用到条件熵,即是特征t存在和不存在的条件下,系统的类别变量i的信息熵。特征t条件下的信息熵与原始信息熵的差值就是这个特征给系统带来的信息增益。信息增益最大的问题还在于它只能考察特征对整个系统的贡献,而不能具体到某个类别上,这就使得它只适合用来做所谓“全局”的特征选择(指所有的类都使用相同的特征集合),而无法做“本地”的特征选择。在概率论和信息论中,信息增益是非对称的,用以度量两种概率分布P和Q的差异。信息增益描述了当使用Q进行编码时,再使用P进行编码的差异。通常P代表样本或观察值的分布,也有可能是精确计算的理论分布。Q代表一种理论,模型,描述或者对P的近似。
2023-07-03 09:22:431

information gain是什么意思

information gain信息增益双语对照词典结果:information gain[英][u02ccu026anfu0259u02c8meiu0283u0259n ɡein][美][u02ccu026anfu025au02c8meu0283u0259n ɡen]情报增益,信息增益; 很高兴为您解答如果你对这个答案有什么疑问,请追问
2023-07-03 09:23:1210

信息增益计算公式

信息增益计算公式是:可用下式估算其增益:G(dBi)=10Lg{32000/(2θ3dB,E×2θ3dB,H)},式中, 2θ3dB,E与2θ3dB,H分别为天线在两个主平面上的波瓣宽度;32000为统计出来的经验数据。可以这样来理解增益的物理含义: 在一定的距离上的某点处产生一定大小的信号,如果用理想的无方向性点源作为发射天线,需要100W的输入功率,而用增益为G=13dB=20的某定向天线作为发射天线时,输入功率只需100/20=5W 。换言之,某天线的增益,就其最大辐射方向上的辐射效果来说,与无方向性的理想点源相比,把输入功率放大的倍数。半波对称振子的增益为G=2.15dBi。4个半波对称振子沿垂线上下排列,构成一个垂直四元阵,其增益约为G=8.15dBi( dBi 这个单位表示比较对象是各向均匀辐射的理想点源)。如果以半波对称振子作比较对象,其增益的单位是dBd 。半波对称振子的增益为G=0dBd(因为是自己跟自己比,比值为1 ,取对数得零值。)垂直四元阵,其增益约为G=8.15 –2.15=6dBd 。
2023-07-03 09:23:331

什么是信息熵、条件熵和信息增益

信息增益描述了一个特征带来的信息量的多少,往往用于特征选择信息增益 = 信息熵 - 条件熵 一个特征往往会使一个随机变量Y的信息量减少,减少的部分就是信息增益 一个例子 如图所示,目标值是:playtennis,也就是是否打球 有四个特征:天气、温度、湿度、风 信息熵 信息熵的公式: H(X)=u2212∑i=1np(xi)logp(xi) 以上图为例,设是否打球这一随机变量为Y,则 p(y=yes)=514 p(y=no)=914 所以H(Y)=u2212514u2217log(514)u2212914u2217log(914)=0.6518 条件熵 条件熵表示在条件X下Y的信息熵。公式如下: H(Y|X)=∑x∈Xp(x)H(Y|X=x) 在上图的例子中,设humidity湿度为随机变量X 则,p(x=high)=7/14=1/2=p1 p(x=normal)=7/14=1/2=p2 所以,H(Y|X)=p1*H(Y|X=high)+p2*H(Y|X=normal) 而接下来就是计算H(Y|X=high)和H(Y|X=normal) 根据信息熵的计算方法可以得出: H(Y|X=high)=-4/7*log(4/7)-3/7*log(3/7) = 0.6829 H(Y|X=normal)=-1/7*log(1/7)-6/7*log(6/7) = 0.4101 因此,条件熵为:1/2*0.6829+1/2*0.4101=0.5465 信息增益 信息增益 = 信息熵 - 条件熵=0.6518-0.5465=0.1053 也就是说,引入了湿度humidity这个变量之后,就使得是否打球这个变量的信息量就从0.6518减小到了0.5465 信息量是描述变量的不确定性的,值越大,就表示这个事件越不确定 因此,湿度这个变量的引进,使得这种不确定性降低了,有利于做决定 信息增益常用于决策树的构建,和特征选择
2023-07-03 09:24:001

信息熵(香农熵)、条件熵、信息增益的简单了解

1948年,香农提出了 “信息熵(entropy)”的概念 信息熵是消除不确定性所需信息量的度量,即未知事件可能含有的信息量。通俗的讲信息熵是用来衡量信息量的大小。 信息熵是代表随机变量的复杂度(不确定度),条件熵代表在某一个条件下,随机变量的复杂度(不确定度) 例子: 信息增益 = 信息熵 - 条件熵 信息增益代表了在一个条件下,信息复杂度(不确定性)减少的程度 上面例子的 得知身高信息 后,信息增益为(我们知道信息熵与条件熵相减就是我们的信息增益): 1 - 0.103 = 0.897 所以我们可以得出我们在知道了身高这个信息之后,信息增益是0.897
2023-07-03 09:24:071

特征选择之信息增益

在文本分类中利用信息增益进行特征提取 信息增益体现了特征的重要性,信息增益越大说明特征越重要 假设数据中有k类: 每类出现的概率是:各类的信息熵计算公式:对某个词汇word需要计算word在所有类别中出现的概率:就是:出现word的文件数 除以总文件数 word不出现的概率:就是没有出现word的文件数 除以总文件数 条件熵的计算:这里我们用到了T表示word这个特征 其中表示:出现word的文件的信息熵 计算方式:其中: 表示出现word的情况下是Ci类的概率,计算方式:Ci类中出现word的文件数 除以 总的出现word的文件数表示不出现word的条件熵 计算方式其中 表示没有出现word的情况下是Ci类的概率,计算方式:Ci类中没有出现word的次数 除以 总类中没有出现word的次数 总的信息增益计算公式信息熵体现了信息的不确定程度,熵越大表示特征越不稳定,对于此次的分类,越大表示类别之间的数据差别越大 条件熵体现了根据该特征分类后的不确定程度,越小说明分类后越稳定 信息增益=信息熵-条件熵,越大说明熵的变化越大,熵的变化越大越有利于分类
2023-07-03 09:24:141

python里怎么计算信息增益,信息增益比,基尼指数

1、首先自定义一份数据,分别计算信息熵,条件信息熵,从而计算信息增益。2、然后我们按下图输入命令计算信息熵。3、再按照下图输入命令计算条件信息熵。4、再输入下图命令,计算信息增益。5、输入下列代码计算信息增益比。6、最后按照下图代码计算出基尼指数。
2023-07-03 09:24:231

会飞信息增益计算公式

信息增益=父节点的熵-条件熵。父节点的熵表示整个数据集的不确定性,条件熵表示在某个特征下,数据集的不确定性。信息增益越大,表示使用该特征进行分类可以获得更多的信息,因此该特征的重要性越高。
2023-07-03 09:25:301

【理论篇】决策树算法 - 信息增益

连载上一篇文章末尾提到的两个问题: 1)如何选择特征? 2)如何进行特征的切分? 本节我们主要解决第一个问题:如何选择特征。 根节点的选择该用哪个特征呢?接下来呢?如何切分呢? 可以想象一下,根节点好比一个趁手的过滤网,通过根节点切分数据之后,可以很好地将样本初步区分开,即分类效果更好。根节点下面的节点,自然就是分类能力第二的特征了。 那如何评估特征的分类能力呢? 这就须要我们找到一种衡量标准,来计算通过不同特征进行分支选择后的分类情况,找出来最好的那个当成根节点,以此类推。 通俗讲就是物体内部的混乱程度,比如杂货市场里面什么都有,非常混乱,选择购买某类商品(随机变量)的不确定性很大,熵就越高。专卖店只卖一个牌子的商品,商品种类有限,不确定小,熵就越小。 举个栗子: 上述两个集合,显然 A 集合的熵值要低,因为 A 里面只有两种类别,不确定性小;而 B 中类别太多了,熵值就会大很多。 熵可以帮助我们度量随机变量的不确定性,不确定性越大,得到的熵值也就越大。 那在分类任务中我们希望通过节点分支后数据类别的熵值大还是小呢?当然是越小越好了,数据通过节点分支后,我们希望每个分支的数据越干净越好,这样才能把不同的类别更好的区分开。 那如何决策一个节点的选择呢?我们可以使用数据集原始的熵值减去经过节点分支之后求取的熵,选择差额最大的作为第一个节点。 这个差额我们称之为信息增益,即特征 X 使得类 Y 的不确定性减少的程度。可以理解为分类后的专一性,希望分类后的结果是同类在一起。 有如下数据集:包含 4 个特征,分别是天气、温度、湿度以及是否有风;标签列为 Play 是否出游。 我们将根据该数据集,构造决策树,更具输入的户外情况来预测是否出游。 首先,原始数据集中有 9 天出游,剩下的 5 天不出游,所以原始数据集的熵为: 接下来,我们选取根节点,分别计算 4 个特征切分后的熵值。先从 outlook 特征开始: 计算切分后的整体熵值,需要为每个切分后的数据集乘以一个权重参数: 上述的权重参数 5/14 4/14 5/14 即统计数据中, outlook 取值分别为 sunny,overcast,rainy 的概率。 经过 outlook 节点切分后,系统的熵值从原始的 0.940 下降到了 0.693 ,信息增益为 0.247。 同样的方式可以计算出其他特征的信息增益: 使用 temperature 切分数据集后的信息增益: 使用 humidity 切分数据集: 使用 humidity 切分数据集后的信息增益: 使用 windy 切分数据集: 使用 windy 切分数据集后的信息增益: 最后,我们选择信息增益最大的特征就可以了,相当于是遍历了一遍特征,找出来了根节点,然后再其余的特征中继续通过信息增益找接下来的分支节点。 使用信息增益作为衡量标准的决策树算法又称为 ID3 。但 ID3 算法对于分布稀疏的特征是存在问题的,具体是什么问题呢? 我们下节见~ (* ̄︶ ̄)
2023-07-03 09:25:481

信息增益擅长处理的数据类型

您要问的是信息增益擅长处理的数据类型是什么?分类数据。信息增益是决策树算法中特征选择的一个重要指标,它定义为一个特征能够为分类系统带来多少信息,带来的信息越多,说明该特征越重要,相应的信息增益也就越大。因此,信息增益擅长处理的数据类型是分类数据。
2023-07-03 09:25:551

信息增益准则为什么对可取值数目较多的属性有所偏好

从公式出发,信息增益是整个数据集的经验熵与特征A对整个数据集的经验条件熵的差值,信息增益越大即经验条件熵越小,那什么情况下的属性会有极小的的经验条件熵呢?举个极端的例子,如果将身份证号作为一个属性,那么,其实每个人的身份证号都是不相同的,也就是说,有多少个人,就有多少种取值,如果用身份证号这个属性去划分原数据集,那么,原数据集中有多少个样本,就会被划分为多少个子集,这样的话,会导致信息增益公式的第二项整体为0,虽然这种划分毫无意义,但是从信息增益准则来讲,这就是最好的划分属性。其实从概念来讲,就一句话,信息增益表示由于特征A而使得数据集的分类不确定性减少的程度,信息增益大的特征具有更强的分类能力。
2023-07-03 09:26:032

信息增益越大属性优先执行?

信息增益越大属性优先执行。好的条件就是信息增益越大越好,即变化完后熵越小越好(熵代表混乱程度,最大程度地减小了混乱)。因此我们在树分叉的时候,应优先使用信息增益最大的属性,这样降低了复杂度,也简化了后边的逻辑。
2023-07-03 09:26:091

什么是信息增益?

Information GainName: Information Gain CrossReferences: EntropyFOIL"s Information GainDescriptionThe Information Gain is a measure based on Entropy. Givena set E of classified examples and a partition P = {E1, ..., En} of E. The Information Gain is defined asig(E, P) := entropy(E) - entropy(Ei) * |Ei| / |E| i=1,...,n Intuitively spoken the Information Gain measures the decrease of the weighted average impurity of the partitions E1, ..., En, compared with the impurity of the complete set of examples 数据的某个属性的信息增益是将一个数据集划分后熵(混乱,无序)的减少量.另外http://www.everything2.com/index.pl?node_id=1208357有一个很形象的说法,不过是英语的,自己搞定吧,好象是数据挖掘方面的术语,找本数据挖掘的书看有没有吧,希望有帮助!另外还可以用信息增益作为关键词搜索pdf文件,我搜到了可是上班的机子没有adobe reader,剩下的自己搞定吧!
2023-07-03 09:26:161

5算法选择分裂节点的特征

算法选择分裂节点的特征如下:1、信息增益(Informationgain):通过计算每个特征对于分类任务的信息增益,选择信息增益最大的特征作为分裂节点。2、基尼不纯度(Giniimpurity):通过计算每个特征对于分类任务的基尼不纯度,选择基尼不纯度最小的特征作为分裂节点。3、增益率(Gainratio):通过计算每个特征对于分类任务的增益率,选择增益率最大的特征作为分裂节点。4、卡方检验(Chi-squaretest):通过计算每个特征与分类任务之间的卡方值,选择卡方值最大的特征作为分裂节点。5、支持向量机(SupportVectorMachine,SVM):通过使用SVM算法,选择最优的超平面作为分裂节点。选择分裂节点是指在决策树算法中,根据某种策略从当前节点中选择一个最优的属性作为分裂属性,将当前节点分裂成两个或多个子节点。这个过程是决策树算法中的重要步骤,它决定了决策树的结构和分类能力。
2023-07-03 09:26:231

信息增益率的介绍

信息增益率,是一种增益率,数学名词。
2023-07-03 09:26:301

ig什么意思?电竞?

IG是一个多义词,所指的意思分别是:1、IG指的是IG电子竞技俱乐部:iG电子竞技俱乐部成立于2011年,旗下拥有英雄联盟分部、DOTA2分部、星际争霸Ⅱ分部等。在DOTA2分部取得了第二届DOTA2国际邀请赛冠军、WCG2012世界总决赛冠军,2017年DAC亚洲邀请赛冠军等。2、IG指的是Instagram:IG是Instagram的缩写,Instagram是一款类似于FB的移动应用,可以进行照片分享。或作为此类应用的代表。可支持iOS、Windows Phone、Android平台的移动应用。3、IG指的是信息增益的简称:信息增益在概率论和信息论中是非对称的,用以度量两种概率分布P和Q的差异。信息增益描述了当使用Q进行编码时,再使用P进行编码的差异。4、IG指的是免疫球蛋白:Ig是免疫球蛋白的缩写。免疫球蛋白是具有抗体活性或化学结构与抗体相似的球蛋白的统称。免疫球蛋白是化学结构上的概念,而抗体是生物功能上的概念。5、IG指的是浏览器:IG是Web2.0技术应用的集大成者,它以第三代搜索引擎技术为基础, 以个人用户为中心,实现了互联网信息的及时获取和主动呈现,是基于桌面的互联网个人门户。不管单机游戏(单人游戏),还是网络游戏(多人游戏),只要符合“电子”、“竞技”这两个特征,那么它们都可以称为广义上的电子竞技。主要区别在于:1、基本属性不同,网络游戏是娱乐游戏,电子竞技属于体育运动项目,网络游戏主要是在虚拟的世界中以追求感受为目的的模拟和角色扮演,电子竞技则是在信息技术营造的虚拟环境中,有组织进行的人与人之间的智力对抗;2、电子竞技有明确统一的比赛规则,最大特点是严格的时间和回合限制,而网游缺乏明确统一的比赛规则,没有时间和回合的限制,容易使人沉迷;3、电子竞技比赛是运动员之间秉着公正公平的体育精神的竞赛,通过人与人之间的智力和体力对抗,决出胜负,而网络游戏主要是人机之间或人与人之间的交流互动,不一定需要人与人的对抗来评判结果。4、电子竞技注重于思维能力、反应能力、心眼四肢协调能力、大局观、意志力,以及团队精神,而部分网游只需充值就能取得优势,这也是电子竞技有别于网络游戏的主要不同。
2023-07-03 09:26:461

请基于"信息增益"的方法判断哪个属性更好

粗略判断,你可以考虑用分类决策树模型来做决策树模型在以连续性变量为目标的时候,是一种特殊形式的回归模型,它可以给出其它信息对目标变量改变情况贡献程度的量化(标准化),还可以用建好的模型预测新样本的目标变量。(数学学到很深的程度以后,你就会知道,这些东西都是相通的)
2023-07-03 09:27:031

什么是数据的相关性分析?

在做数据分析时,为了提炼观点,相关性分析是必不可少,而且尤为重要的一个环节。但是,对于不同类型的数据,相关性分析的方法都各不相同。本文,主要按照不同的数据类型,来对各种相关性分析方法进行梳理总结。相关性分析是指对两个或多个具备相关性的变量元素进行分析,相关性不等于因果性。一、离散与离散变量之间的相关性1、卡方检验卡方检验是一种用途很广的计数资料的假设检验方法。它属于非参数检验的范畴,主要是比较两个及两个以上样本率( 构成比)以及两个分类变量的关联性分析。其根本思想就是在于比较理论频数和实际频数的吻合程度或拟合优度问题。它在分类资料统计推断中的应用,包括:两个率或两个构成比比较的卡方检验;多个率或多个构成比比较的卡方检验以及分类资料的相关分析等。(1)假设,多个变量之间不相关(2)根据假设计算得出每种情况的理论值,根据理论值与实际值的差别,计算得到卡方值 及 自由度df=(C-1)(R-1)(3)查卡方表,求p值卡方值越大,P值越小,变量相关的可能性越大,当P<=0.05,否定原假设,认为变量相关。2、信息增益 和 信息增益率在介绍信息增益之前,先来介绍两个基础概念,信息熵和条件熵。信息熵,就是一个随机变量的不确定性程度。条件熵,就是在一个条件下,随机变量的不确定性。(1)信息增益:熵 - 条件熵在一个条件下,信息不确定性减少的程度。Gain(Y,X)=H(Y)-H(Y|X)信息增益越大,表示引入条件X之后,不纯度减少得越多。信息增益越大,则两个变量之间的相关性越大。(2)信息增益率假设,某个变量存在大量的不同值,例如ID,引入ID后,每个子节点的不纯度都为0,则信息增益减少程度达到最大。所以,当不同变量的取值数量差别很大时,引入取值多的变量,信息增益更大。因此,使用信息增益率,考虑到分支个数的影响。Gain_ratio=(H(Y)-H(Y|X))/H(Y|X)二、连续与连续变量之间的相关性1、协方差协方差,表达了两个随机变量的协同变化关系。如果两个变量不相关,则协方差为0。Cov(X,Y)=E{[X-E(X)],[Y-E(Y)]}当 cov(X, Y)>0时,表明 X与Y 正相关;当 cov(X, Y)<0时,表明X与Y负相关;当 cov(X, Y)=0时,表明X与Y不相关。协方差只能对两组数据进行相关性分析,当有两组以上数据时就需要使用协方差矩阵。协方差通过数字衡量变量间的相关性,正值表示正相关,负值表示负相关。但无法对相关的密切程度进行度量。当我们面对多个变量时,无法通过协方差来说明那两组数据的相关性最高。要衡量和对比相关性的密切程度,就需要使用下一个方法:相关系数。2、线性相关系数也叫Pearson相关系数, 主要衡量两个变量线性相关的程度。r=cov(X,Y)/(D(X)D(Y))相关系数是用协方差除以两个随机变量的标准差。相关系数的大小在-1和1之间变化。再也不会出现因为计量单位变化,而数值暴涨的情况了。线性相关系数必须建立在因变量与自变量是线性的关系基础上,否则线性相关系数是无意义的。三、连续与离散变量之间的相关性1、连续变量离散化将连续变量离散化,然后,使用离散与离散变量相关性分析的方法来分析相关性。2、箱形图使用画箱形图的方法,看离散变量取不同值,连续变量的均值与方差及取值分布情况。如果,离散变量取不同值,对应的连续变量的箱形图差别不大,则说明,离散变量取不同值对连续变量的影响不大,相关性不高;反之,相关性高。
2023-07-03 09:27:101

女生说ig是什么意思?

IG是一个多义词,所指的意思分别是:1、IG指的是IG电子竞技俱乐部:iG电子竞技俱乐部成立于2011年,旗下拥有英雄联盟分部、DOTA2分部、星际争霸Ⅱ分部等。在DOTA2分部取得了第二届DOTA2国际邀请赛冠军、WCG2012世界总决赛冠军,2017年DAC亚洲邀请赛冠军等。2、IG指的是Instagram:IG是Instagram的缩写,Instagram是一款类似于FB的移动应用,可以进行照片分享。或作为此类应用的代表。可支持iOS、Windows Phone、Android平台的移动应用。3、IG指的是信息增益的简称:信息增益在概率论和信息论中是非对称的,用以度量两种概率分布P和Q的差异。信息增益描述了当使用Q进行编码时,再使用P进行编码的差异。4、IG指的是免疫球蛋白:Ig是免疫球蛋白的缩写。免疫球蛋白是具有抗体活性或化学结构与抗体相似的球蛋白的统称。免疫球蛋白是化学结构上的概念,而抗体是生物功能上的概念。5、IG指的是浏览器:IG是Web2.0技术应用的集大成者,它以第三代搜索引擎技术为基础, 以个人用户为中心,实现了互联网信息的及时获取和主动呈现,是基于桌面的互联网个人门户。
2023-07-03 09:27:282

增益什么意思

问题一:电路中所说的增益是什么意思! 增益这个词多用在有放大和转换的电路里!既特指在放大和转换过程中前后级间的正负倍数之意! 增益的单位是分贝!分贝值以零为轴!这就有了正增益和负增益之分了! 也就是说零增益就是1:1! 简单地说,分贝就是放大器增益的单位。放大器输出与输入的比值为放大倍数,单位是“倍”,如10倍放大器,100倍放大器。当改用“分贝”做单位时,放大倍数就称之为增益,这是一个概念的两种称呼。电学中分贝与放大倍数的转换关系为:AV(I)(dB)=20lg[Vo/Vi(Io/Ii)];Ap(dB)=10lg(Po/Pi)分贝定义时电压(电流)增益和功率增益的公式不同,但我们都知道功率与电压、电流的关系是P=V2/R=I2R。采用这套公式后,两福的增益数值就一样了:10lg[Po/Pi]=10lg(V2o/R)/(V2i/R)=20lg(Vo/Vi)。使用分贝做单位有很大好处。 电子系统的总放大倍数常常是几千、几万甚至几十万,一架收音机从天线收到的信号至送入喇叭放音输出,一共要放大2万倍左右。用分贝表示先取个对数,数值就小得多。附表为放大倍数与增益的对应关系。 放大器级联时,总的放大倍数是各级相乘。用分贝做单位时,总增益就是相加。若某功放前级是100倍(20dB),后级是20倍(13dB),那么总功率放大倍数是100×20=2000倍,总增益为20dB+13dB=33dB。 问题二:增益是什么意思 增益这个词多用在有放大和转换的电路里!既特指在放大和转换过程中前后级间的正负倍数之意! 增益的单位是分贝!分贝值以零为轴!这就有了正增益和负增益之分了! 也就是说零增益就是1:1! 简单地说,分贝就是放大器增益的单位。放大器输出与输入的比值为放大倍数,单位是“倍”,如10倍放大器,100倍放大器。当改用“分贝”做单位时,放大倍数就称之为增益,这是一个概念的两种称呼。电学中分贝与放大倍数的转换关系为:AV(I)(dB)=20lg[Vo/Vi(Io/Ii)];Ap(dB)=10lg(Po/Pi)分贝定义时电压(电流)增益和功率增益的公式不同,但我们都知道功率与电压、电流的关系是P=V2/R=I2R。采用这套公式后,两者的增益数值就一样了:10lg[Po/Pi]=10lg(V2o/R)/(V2i/R)=20lg(Vo/Vi)。使用分贝做单位有很大好处。 电子系统的总放大倍数常常是几千、几万甚至几十万,一架收音机从天线收到的信号至送入喇叭放音输出,一共要放大2万倍左右。用分贝表示先取个对数,数值就小得多。附表为放大倍数与增益的对应关系。 放大器级联时,总的放大倍数是各级相乘。用分贝做单位时,总增益就是相加。若某功放前级是100倍(20dB),后级是20倍(13dB),那么总功率放大倍数是100×20=2000倍,总增益为20dB+13dB=33dB。 问题三:增益的增是什么意思 放大的倍数.比如信号进去是10mV,出来是1V,那么增益就是100. 增益在使用的过程中一般采用dB来表示.可以用下面公式来计算. (1)对于电压增益或者电流增益:Au(dB)=20*lg(Y) Y=Uo/Ui.前面那个结果就是40dB (2)对于功率增益:A(dB)=10lg(Y) 倘若一个电路,功率增益是100倍,那么也就相当于20dB. 增益计算上,增益的数值表达形式和dB的表达形式是等价的. 问题四:什么是增益值 增大增益值是什么意思 增益就是放大的意思,根据不同的增益值(即放大的倍数),信号通过不同的放大器进行处理。增益大,得到的信号值大,但背景噪声也大!增益控制在放大电路中是控制放大倍数的电路,如在收音机中有自动增益控制电路.它是根据所接收的信号强弱自动控制放大器的放大倍数.当信号弱时放大倍数增加,信号强时自动减小放大倍数,使收音机接收的广播信号的输出不致于相差太大。 问题五:频率增益是什么意思 频率增益意思就是频率的放大倍数,举例来说: 当你输入8mA电流,对应30Hz的频率,提高增益后,8mA电流就可对应35Hz或以上的频率。 因为线路对信号有衰减,所以用增益,使信号能保持正常显示。 问题六:佛法里的增益是什么意思 佛法中,增益就是增加、增长的意思,是用来表示善法的。 问题七:增益的益是什么意思 益释义: 1.增加:~寿延年。增~。损~。 2.好处,有好处:利~。~处。公~。权~。受~非浅。 3.更加:~发。日~壮大。 4.古同“溢”,水漫出来。 问题八:信息增益是什么意思 信息增益(KullbackLeibler divergence)又称information divergence,information gain,relative entropy 或者KLIC。 信息增益在概率论和信息论中,信息增益是非对称的,用以度量两种概率分布P和Q的差异。信息增益描述了当使用Q进行编码时,再使用P进行编码的差异。通常P代表样本或观察值的分布,也有可能是精确计算的理论分布。Q代表一种理论,模型,描述或者对P的近似。 尽管信息增益通常被直观地作为是一种度量或距离,但事实上信息增益并不是。就比如信息增益不是对称的,从P到Q的信息增益通常不等于从Q到P的信息增益。信息增益是f增益(f-divergences)的一种特殊情况。在1951年由Solomon Kullback 和Richard Leibler首先提出作为两个分布的直接增益(directed divergence)。它与微积分中的增益不同,但可以从Bregman增益(Bregman divergence)推导得到。 问题九:什么 是 增益? 【增益】 增加;增添。 放大器输出功率与输入功率比值的对数,用以表示功率放大的程度。亦指电压或电流的放大倍数。 表示定向天线辐射集中程度的参数,为定向天线和无方向天线在预定方向产生的电场强度平方之比
2023-07-03 09:27:451

信息增益在线性回归中的作用

一个是线性回归分析研究X(自变量,通常为定量数据)对Y(因变量,定量数据)的影响关系情况另一个是使用建立的线性回归模型,去利用已经知道的自变量来预测未知的因变量。
2023-07-03 09:28:211

为什么说信息增益量偏向具有许多输出的测试

import java.awt.*;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.SwingConstants;import javax.swing.WindowConstants;import javax.swing.border.*;public class jframe {/*** @param args*/public void CreateJFrame(String title) {JFrame jf = new JFrame(title);Container container = jf.getContentPane();JLabel jl = new JLabel("");jl.setHorizontalAlignment(SwingConstants.CENTER);container.add(jl);container.setBackground(Color.white);jf.setVisible(true);jf.setSize(200, 150);jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);};
2023-07-03 09:28:291

数据挖掘中,属性A的信息增益比属性B的信息增益大,说明了什么?

说明A更能决定训练集的分类,也就是A比B更重要。举个极端的例子,以学生买电脑为例,如下所示:=======================================性别 学历 专业 是否买电脑=======================================男 研究生 计算机 买女 研究生 非计算机 不买男 本科 计算机 买女 研究生 非计算机 买男 大专 非计算机 买男 本科 计算机 买======================================== 设A属性为专业,B属性为学历,计算得到A属性的信息增益比B的大,也就是说在分类时,A属性比B属性更具参考价值。事实也正是这样,从上表可得到:只要是计算机专业的学生都买电脑的结论,而通过学历并不能得出任何结论,以为哪种学历的学生都可能买或不买。不知道这样你能否懂。 信息收益可以定义为样本按照某属性划分时造成熵减少的期望。也即是否能由该属性直接判断处分类,而不用在考虑其他属性。
2023-07-03 09:28:351

数据挖掘课程,有关信息增益的代替指标有哪些,并找出相关英文论文,我只找到了gini index,帮帮我

国际权威学术组织的数据挖掘(ICDM)12 2006 IEEE国际会议上入选十大经典领域的数据挖掘算法:C4.5,K均值,SVM,先验,EM的PageRank,AdaBoost的朴素贝叶斯,KNN,和CART 不只是所选算法10,事实上,参与的18种算法的选择,其实,只是为了拿出一个可以称得上是经典算法的数据挖掘领域有产生深远的影响。 的C4.5 C4.5算法是一种分类决策树算法,机器学习算法,核心算法是ID3算法C4.5算法继承了ID3算法的优点和ID3算法已经在以下几个方面: 1)信息增益率提高,选择属性,克服偏差值选择属性信息增益选择属性缺乏; 2)在树结构中修剪; 3)完成的过程中连续属性离散化; 4)不完整的数据。 C4.5算法有以下优点:产生的分类规则易于理解,准确率较高。其缺点是:在树形结构中,顺序扫描和排序的数据集,从而导致低效率的算法。 2。 K-means算法 k-means算法算法的k-means算法是一个聚类算法,根据其属性分成K,K <N的n个对象。与混合正态分布预期的算法是非常相似的,因为他们正试图找到一个自然聚类在数据中心。它假定从向量空间的对象属性,并且目标的各组内的最小均方误差的总和。 支持向量机支持向量机,支持向量机的英语,简称SV机(通常被称为纸SVM)。这是一个监督的学习方法,这是广泛使用的统计分类和回归分析。支持向量机向量映射到高维空间,在这个空间中创建有一个最大间隔超平面。在单独的数据的超平面的两侧上的两个相互平行的超平面。分离超平面,使两个平行的超平面的距离最大化。假设越大平行的超平面的距离或空隙时,分类器的总误差越小。优秀导游CJC Burges“模式识别支持向量机指南。范德沃尔特和巴纳德的支持向量机等分类进行了比较。Apriori算法 Apriori算法是一个最有影响力的挖掘布尔关联规则频繁项集算法,其核心是一组递归算法思想的基础上两个阶段的频率。关联规则被归类为一维的,单一的,布尔关联规则。在这里,所有支持大于称为最小支持度的项集称为频繁项集,作为频率设定 最大期望(EM)算法在统计计算的最大期望(EM,期望最大化)算法找到参数最大的期望经常用在机器学习和计算机视觉数据采集领域(数据聚类模型中的概率(概率)似然估计算法,其中概率模型是依赖于不可观察的隐变量(潜variabl)。 )6。的PageRank 谷歌的PageRank算法,2001年9月被授予了美国专利,该专利是谷歌创始人拉里·佩奇(Larry Page)。,PageRank和多年的不是指到页面上,但,这个水平是命名。的PageRank根据网站的数量和质量来衡量网站的价值的内部和外部链接。背后的PageRank概念每个链接的网页是一个投票的页面,链接,投票更意味着其他网站,这是所谓的“链接流行度” - 衡量有多少人愿意被链接到他们的网站,您的网站。被引述的PageRank的概念经常被引用在学术论文 - 即被引用其他一些更普遍的权威判断本文 7 AdaBoost的 Adaboost的是一种迭代算法其核心思想是相同的训练集的不同的分类器(弱分类器),然后这些弱分类器共同构成一个更强的最终分类器(强分类器)。这个算法本身是通过改变数据分布,它是正确的,根据分类每个训练集的每个样品,和最后的总分类精度来确定每个样品的重量。的新数据集的权重给较低的分类器的训练,融合每个训练上的最终的分类,作为最终决定分类KNN:k-最近邻分类 K近邻(K近邻,KNN)分类算法,是一个理论上更成熟的方式,也是最简单的机器学习算法的想法?方法是:如果在特征空间中的样本,K最相似的(即,在特征空间中最接近的大多数样品)属于一类,将样品也属于这一类。 BR p> 9。朴素贝叶斯在众多的分类模型,两种最常用的分类模型是决策树模型(决策树模型)和Na?ve Bayes分类模型(朴素贝叶斯模型,NBC)天真贝叶斯模型发源于古典数学理论,具有扎实的数学基础,以及稳定的分类效率。与此同时,需要非常少的参数估计NBC模型,丢失的数据是不敏感的算法是相对简单。从理论上讲,NBC模型具有最小的误差率相比,与其他分类方法。但事实上并非总是如此,这是因为NBC模型假设属性相互独立的,在实际应用中,这种假设是往往不成立的,这带来了一定影响NBC模型的正确分类。数量的属性或属性之间的相关性较大时,NBC模型的分类比较决策树模型的效率。物业较少有关,表现NBC模型是最有利的。10。车:分类和回归树车,分类与回归树。在分类树下面有两个关键的思路。第一个是的想法?递归划分的独立变量的空间;第二个想法是修剪与验证数据。
2023-07-03 09:28:421

决策树(Decision Tree)

决策树是一种非参数有监督的机器学习方法,可以用于解决回归问题和分类问题。通过学习已有的数据,计算得出一系列推断规则来预测目标变量的值,并用类似流程图的形式进行展示。决策树模型可以进行可视化,具有很强的可解释性,算法容易理解,以决策树为基础的各种集成算法在很多领域都有广泛的应用。 熵的概念最早起源于物理学,用于度量一个热力学系统的无序程度。在信息论里面,信息熵代表着一个事件或一个变量等所含有的信息量。 在信息世界,熵越高,则能传输越多的信息,熵越低,则意味着传输的信息越少。 发生概率低的事件比发生概率高的事件具有更大的不确定性,需要更多的信息去描述他们,信息熵更高。 我们可以用计算事件发生的概率来计算事件的信息,又称“香农信息”( Shannon Information )。一个离散事件x的信息可以表示为: h(x) = -log(p(x)) p() 代表事件x发生的概率, log() 为以二为底的对数函数,即一个事件的信息量就是这个事件发生的概率的负对数。选择以二为底的对数函数代表计算信息的单位是二进制。因为概率p(x)小于1,所以负号就保证了信息熵永远不为负数。当事件的概率为1时,也就是当某事件百分之百发生时,信息为0。 熵( entropy ),又称“香农熵”( Shannon entropy ),表示一个随机变量的分布所需要的平均比特数。一个随机变量的信息熵可以表示为: H(x) = -sum(each k in K p(k)log(p(k))) K表示变量x所可能具有的所有状态(所有事件),将发生特定事件的概率和该事件的信息相乘,最后加和,即可得到该变量的信息熵。可以理解为,信息熵就是平均而言发生一个事件我们得到的信息量大小。所以数学上,信息熵其实是事件信息量的期望。 当组成该随机变量的一个事件的概率为1时信息熵最小,为0, 即该事件必然发生。当组成该随机变量的所有事件发生的概率相等时,信息熵最大,即完全不能判断那一个事件更容易发生,不确定性最大。 当一个事件主导时,比如偏态分布( Skewed Probability Distribution ),不确定性减小,信息熵较低(low entropy);当所有事件发生概率相同时,比如均衡分布( Balanced Probability Distribution ),不确定性极大,信息熵较高(high entropy)。 由以上的香农信息公式可知,信息熵主要有三条性质: - 单调性 。发生概率越高的事件,其所携带的信息熵越低。比如一个真理的不确定性是极低的,那么它所携带的信息熵就极低。 - 非负性 。信息熵不能为负。单纯从逻辑层面理解,如果得知了某个信息后,却增加了不确定性,这也是不合逻辑的。 - 可加性 。即多随机事件同时发生存在的总不确定性的量度是可以表示为各事件不确定性的量度的和。 若两事件A和B同时发生,两个事件相互独立。 p(X=A,Y=B) = p(X = A)*p(Y=B) , 那么信息熵为 H(A,B) = H(A) + H(B) 。但若两事件不相互独立,那么 H(A,B) = H(A) + H(B) - I(A,B) 。其中 I(A,B) 是互信息( mutual information,MI ),即一个随机变量包含另一个随机变量信息量的度量。即已知X的情况下,Y的分布是否会改变。 可以理解为,两个随机变量的互信息度量了两个变量间相互依赖的程度。X 和 Y的互信息可以表示为: I(X;Y) = H(X) - H(X|Y) H(X)是X的信息熵,H(X|Y)是已知Y的情况下,X的信息熵。结果的单位是比特。 简单来说,互信息的性质为: - I(X;Y)>=0 互信息永远不可能为负 - H(X) - H(X|Y) = I(X;Y) = I (Y;X) = H(Y) - H(Y|X) 互信息是对称的 -当X,Y独立的时候, I(X;Y) = 0 互信息值越大,两变量相关性越强。 -当X,Y知道一个就能推断另一个的时候, I(X;Y) = H(Y) = H(X) 在数据科学中,互信息常用于特征筛选。在通信系统中互信息也应用广泛。在一个点到点的通信系统中,发送信号为X,通过信道后,接收端接收到的信号为Y,那么信息通过信道传递的信息量就是互信息 I(X,Y) 。根据这个概念,香农推导出信道容量(即临界通信传输速率的值)。 信息增益( Information Gain )是用来按照一定规则划分数据集后,衡量信息熵减少量的指数。 那数据集的信息熵又是怎么计算的呢?比如一个常见的0,1二分类问题,我们可以计算它的熵为: Entropy = -(p(0) * log(P(0)) + p(1) * log(P(1))) 当该数据集为50/50的数据集时,它的信息熵是最大的(1bit)。而10/90的数据集将会大大减少结果的不确定性,减小数据集的信息熵(约为0.469bit)。 这样来说,信息熵可以用来表示数据集的纯度( purity )。信息熵为0就表示该数据集只含有一个类别,纯度最高。而较高的信息熵则代表较为平衡的数据集和较低的纯度。 信息增益是提供了一种可以使用信息熵计算数据集经过一定的规则(比如决策树中的一系列规则)进行数据集分割后信息熵的变化的方法。 IG(S,a) = H(S) - H(S|a) 其中,H(s) 是原数据集S的信息熵(在做任何改变之前),H(S|a)是经过变量a的一定分割规则。所以信息增益描述的是数据集S变换后所节省的比特数。 信息增益可以用做决策树的分枝判断方法。比如最常用CART树( Classification and Regression Tree )中的分枝方法,只要在python中设置参数 criterion 为 “entropy” 即可。 信息增益也可以用作建模前的特征筛选。在这种场景下,信息增益和互信息表达的含义相同,会被用来计算两变量之间的独立性。比如scikit-learn 中的函数 mutual_info_classiif() 信息增益在面对类别较少的离散数据时效果较好,但是面对取值较多的特征时效果会有 偏向性 。因为当特征的取值较多时,根据此特征划分得到的子集纯度有更大的可能性会更高(对比与取值较少的特征),因此划分之后的熵更低,由于划分前的熵是一定的,因此信息增益更大,因此信息增益比较偏向取值较多的特征。举一个极端的例子来说,如果一个特征为身份证号,当把每一个身份证号不同的样本都分到不同的子节点时,熵会变为0,意味着信息增益最大,从而该特征会被算法选择。但这种分法显然没有任何实际意义。 这种时候,信息增益率就起到了很重要的作用。 gR(D,A)=g(D,A)/HA(D) HA(D) 又叫做特征A的内部信息,HA(D)其实像是一个衡量以特征AA的不同取值将数据集D分类后的不确定性的度量。如果特征A的取值越多,那么不确定性通常会更大,那么HA(D)的值也会越大,而1/HA(D)的值也会越小。这相当于是在信息增益的基础上乘上了一个惩罚系数。即 gR(D,A)=g(D,A)u2217惩罚系数 。 在CART算法中,基尼不纯度表示一个随机选中的样本被分错类别的可能性,即这个样本被选中的概率乘以它被分错的概率。当一个节点中所有样本均为一种时(没有被分错的样本),基尼不纯度达到最低值0。 举例来说,如果有绿色和蓝色两类数据点,各占一半(蓝色50%,绿色50%)。那么我们随机分类,有以下四种情况: -分为蓝色,但实际上是绿色(u274c),概率25% -分为蓝色,实际上也是蓝色(u2714ufe0f),概率25% -分为绿色,实际上也是绿色(u2714ufe0f),概率25% -分为绿色,但实际上是蓝色(u274c),概率25% 那么将任意一个数据点分错的概率为25%+25% = 50%。基尼不纯度为0.5。 在特征选择中,我们可以选择加入后使数据不纯度减少最多的特征。 噪音数据简单来说就是会对模型造成误导的数据。分为类别噪声( class noise 或 label noise )和 变量噪声( attribute noise )。类别噪声指的的是被错误标记的错误数据,比如两个相同的样本具有不同的标签等情况。变量噪声指的是有问题的变量,比如缺失值、异常值和无关值等。 决策树其实是一种图结构,由节点和边构成。 -根节点:只有出边没有入边。包含样本全集,表示一个对样本最初的判断。 -内部节点:一个入边多个出边。表示一个特征或是属性。每个内部节点都是一个判断条件,包含数据集中从根节点到该节点所有满足条件的数据的集合。 -叶节点:一个入边无出边。表示一个类,对应于决策结果。 决策树的生成主要分为三个步骤: 1. 节点的分裂 :当一个节点不够纯(单一分类占比不够大或者说信息熵较大)时,则选择将这一节点进行分裂。 2. 决策边界的确定 :选择正确的决策边界( Decision Boundary ),使分出的节点尽量纯,信息增益(熵减少的值)尽可能大。 3. 重复及停止生长 :重复1,2步骤,直到纯度为0或树达到最大深度。为避免过拟合,决策树算法一般需要制定树分裂的最大深度。到达这一深度后,即使熵不等于0,树也不会继续进行分裂。 下面以超级知名的鸢尾花数据集举例来说明。 这个数据集含有四个特征:花瓣的长度( petal length )、花瓣的宽度( petal width )、花萼的长度( sepal length )和花萼的宽度( sepal width )。预测目标是鸢尾花的种类 iris setosa, iris versicolor 和 iris virginica 。 建立决策树模型的目标是根据特征尽可能正确地将样本划分到三个不同的“阵营”中。 根结点的选择基于全部数据集,使用了贪婪算法:遍历所有的特征,选择可以使信息熵降到最低、基尼不纯度最低的特征。 如上图,根节点的决策边界为" petal width = 0.8cm "。那么这个决策边界是怎么决定的呢? -遍历所有可能的决策边界(需要注意的是,所有可能的决策边界代表的是该子集中该特征所有的值,不是以固定增幅遍历一个区间内的所有值!那样很没有必要的~) -计算新建的两个子集的基尼不纯度。 -选择可以使新的子集达到最小基尼不纯度的分割阈值。这个“最小”可以指两个子集的基尼不纯度的和或平均值。 ID3是最早提出的决策树算法。ID3算法的核心是在决策树各个节点上根据 信息增益 来选择进行划分的特征,然后递归地构建决策树。 - 缺点 : (1)没有剪枝 (2)只能用于处理离散特征 (3)采用信息增益作为选择最优划分特征的标准,然而信息增益会偏向那些取值较多的特征(例如,如果存在唯一标识属性身份证号,则ID3会选择它作为分裂属性,这样虽然使得划分充分纯净,但这种划分对分类几乎毫无用处。) C4.5 与ID3相似,但对ID3进行了改进: -引入“悲观剪枝”策略进行后剪枝 -信息增益率作为划分标准 -将连续特征离散化,假设 n 个样本的连续特征 A 有 m 个取值,C4.5 将其排序并取相邻两样本值的平均数共 m-1 个划分点,分别计算以该划分点作为二元分类点时的信息增益,并选择信息增益最大的点作为该连续特征的二元离散分类点; -可以处理缺失值 对于缺失值的处理可以分为两个子问题: (1)在特征值缺失的情况下进行划分特征的选择?(即如何计算特征的信息增益率) C4.5 中对于具有缺失值特征,用没有缺失的样本子集所占比重来折算; (2)选定该划分特征,对于缺失该特征值的样本如何处理?(即到底把这个样本划分到哪个结点里) C4.5 的做法是将样本同时划分到所有子节点,不过要调整样本的权重值,其实也就是以不同概率划分到不同节点中。 (1)剪枝策略可以再优化; (2)C4.5 用的是多叉树,用二叉树效率更高; (3)C4.5 只能用于分类; (4)C4.5 使用的熵模型拥有大量耗时的对数运算,连续值还有排序运算; (5)C4.5 在构造树的过程中,对数值属性值需要按照其大小进行排序,从中选择一个分割点,所以只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时,程序无法运行。 可以用于分类,也可以用于回归问题。CART 算法使用了基尼系数取代了信息熵模型,计算复杂度更低。 CART 包含的基本过程有 分裂,剪枝和树选择 。 分裂 :分裂过程是一个二叉递归划分过程,其输入和预测特征既可以是连续型的也可以是离散型的,CART 没有停止准则,会一直生长下去; 剪枝 :采用“代价复杂度”剪枝,从最大树开始,每次选择训练数据熵对整体性能贡献最小的那个分裂节点作为下一个剪枝对象,直到只剩下根节点。CART 会产生一系列嵌套的剪枝树,需要从中选出一颗最优的决策树; 树选择 :用单独的测试集评估每棵剪枝树的预测性能(也可以用交叉验证)。 (1)C4.5 为多叉树,运算速度慢,CART 为二叉树,运算速度快; (2)C4.5 只能分类,CART 既可以分类也可以回归; (3)CART 使用 Gini 系数作为变量的不纯度量,减少了大量的对数运算; (4)CART 采用代理测试来估计缺失值,而 C4.5 以不同概率划分到不同节点中; (5)CART 采用“基于代价复杂度剪枝”方法进行剪枝,而 C4.5 采用悲观剪枝方法。 (1)决策树易于理解和解释,可以可视化分析,容易提取出规则 (2)可以同时处理分类型和数值型数据 (3)可以处理缺失值 (4)运行速度比较快(使用Gini的快于使用信息熵,因为信息熵算法有log) (1)容易发生过拟合(集成算法如随机森林可以很大程度上减少过拟合) (2)容易忽略数据集中属性的相互关联; (3)对于那些各类别样本数量不一致的数据,在决策树中,进行属性划分时,不同的判定准则会带来不同的属性选择倾向。 写在后面:这个专辑主要是本小白在机器学习算法学习过程中的一些总结笔记和心得,如有不对之处还请各位大神多多指正!(关于决策树的剪枝还有很多没有搞懂,之后弄明白了会再单独出一篇总结哒) 参考资料链接: 1. https://machinelearningmastery.com/what-is-information-entropy/ 2. https://zhuanlan.zhihu.com/p/29679277 3. https://machinelearningmastery.com/information-gain-and-mutual-information/ 4. https://victorzhou.com/blog/gini-impurity/ 5. https://sci2s.ugr.es/noisydata 6. https://towardsdatascience.com/understanding-decision-trees-once-and-for-all-2d891b1be579 7. https://blog.csdn.net/weixin_36586536/article/details/80468426 8. https://zhuanlan.zhihu.com/p/85731206
2023-07-03 09:29:371

决策树(Decision Tree)

u2003u2003决策树(Decision Tree)是一种基本的分类与回归方法,其模型呈树状结构,在分类问题中,表示基于特征对实例进行分类的过程。本质上,决策树模型就是一个定义在特征空间与类空间上的条件概率分布。决策树学习通常包括三个步骤: 特征选择 、 决策树的生成 和 决策树的修剪 。 u2003u2003分类决策树模型是一种描述对实例进行分类的树形结构,决策树由节点(node)和有向边(directed edge)组成。节点有两种类型:内部节点(internal node)和叶节点(leaf node)。内部节点表示一个特征或属性,叶节点表示一个类。 u2003u2003利用决策树进行分类,从根节点开始,对实例的某一特征进行测试,根据测试结果将实例分配到其子节点;这时,每一个子节点对应着该特征的一个取值。如此递归地对实例进行测试并分配,直至达到叶节点。最后将实例分到叶节点的类中。 u2003u2003决策树是给定特征条件下类的条件概率分布,这一条件概率分布定义在特征区间的一个划分(partiton)上。将特征空间划分为互不相交的单元(cell)或区域(region),并在每个单元定义一个类的概率分布就构成了一个条件概率分布。决策树的一条路径对应划分中的一个单元,决策树所表示的条件概率分布由各个单元给定条件下类的条件概率分布组成。假设X为表示特征的随机变量,Y为表示类的随机变量,那么这个条件概率分布可以表示成P(Y|X)。X取值于给定划分下单元的集合,Y取值于类的集合,各叶节点(单元)上的条件概率往往偏向于某一个类,即属于某一类的概率较大,决策树分类时将该节点的实例分到条件概率大的那一类去。也就以为着决策树学习的过程其实也就是由数据集估计条件概率模型的过程,这些基于特征区间划分的类的条件概率模型由无穷多个,在进行选择时,不仅要考虑模型的拟合能力还要考虑其泛化能力。 u2003u2003为了使模型兼顾模型的拟合和泛化能力,决策树学习使用正则化的极大似然函数来作为损失函数,以最小化损失函数为目标,寻找最优的模型。显然从所有可能的决策树中选取最优决策树是NP完全问题,所以在实际中通常采用启发式的方法,近似求解这一最优化问题: 通过递归的选择最优特征,根据该特征对训练数据进行划分直到使得各个子数据集有一个最好的分类,最终生成特征树 。当然,这样得到的决策树实际上是次最优(sub-optimal)的。进一步的,由于决策树的算法特性,为了防止模型过拟合,需要对已生成的决策树自下而上进行剪枝,将树变得更简单,提升模型的泛化能力。具体来说,就是去掉过于细分的叶节点,使其退回到父节点,甚至更高的节点,然后将父节点或更高的节点改为新的叶节点。如果数据集的特征较多,也可以在进行决策树学习之前,对数据集进行特征筛选。 u2003u2003由于决策树是一个条件概率分布,所以深浅不同的决策树对应着不同复杂度的概率模型,决策树的生成对应模型的局部选择,决策树的剪枝对应着模型的全局选择。 u2003u2003 熵(Entropy) 的概念最早起源于物理学,最初物理学家用这个概念度量一个热力学系统的无序程度。在1948年, 克劳德·艾尔伍德·香农 将热力学的熵,引入到 信息论 ,因此它又被称为 香农熵 。在信息论中,熵是对不确定性的量度,在一条信息的熵越高则能传输越多的信息,反之,则意味着传输的信息越少。 u2003u2003如果有一枚理想的硬币,其出现正面和反面的机会相等,则抛硬币事件的熵等于其能够达到的最大值。我们无法知道下一个硬币抛掷的结果是什么,因此每一次抛硬币都是不可预测的。因此,使用一枚正常硬币进行若干次抛掷,这个事件的熵是一 比特 ,因为结果不外乎两个——正面或者反面,可以表示为 0, 1 编码,而且两个结果彼此之间相互独立。若进行 n 次 独立实验 ,则熵为 n ,因为可以用长度为 n 的比特流表示。但是如果一枚硬币的两面完全相同,那个这个系列抛硬币事件的熵等于零,因为 结果能被准确预测 。现实世界里,我们收集到的数据的熵介于上面两种情况之间。 u2003u2003另一个稍微复杂的例子是假设一个 随机变量 X ,取三种可能值 ,概率分别为 ,那么编码平均比特长度是: 。其熵为 。因此<u>熵实际是对随机变量的比特量和顺次发生概率相乘再总和的</u> 数学期望 。 u2003u2003依据玻尔兹曼H定理,香农把随机变量X的熵 定义为: u2003u2003其中 是随机变量X的信息量,当随机变量取自有限样本时,熵可以表示为: u2003u2003若 ,则定义 。 u2003u2003同理可以定义条件熵 : u2003u2003很容易看出,条件熵(conditional entropy) 就是X给定条件下Y的条件概率分布的熵对X的数学期望。当熵和条件熵中的概率有极大似然估计得到时,所对应的熵和条件熵分别称为检验熵(empirical entropy)和经验条件熵(empirical conditional entropy). u2003u2003熵越大,随机变量的不确定性就越大,从定义可以验证: u2003u2003当底数 时,熵的单位是 ;当 时,熵的单位是 ;而当 时,熵的单位是 . u2003u2003如英语有26个字母,假如每个字母在文章中出现的次数平均的话,每个字母的信息量 为: u2003u2003同理常用汉字2500有个,假设每个汉字在文章中出现的次数平均的话,每个汉字的信息量 为: u2003u2003事实上每个字母和汉字在文章中出现的次数并不平均,少见字母和罕见汉字具有相对较高的信息量,显然,由期望的定义,熵是整个消息系统的平均消息量。 u2003u2003熵可以用来表示数据集的不确定性,熵越大,则数据集的不确定性越大。因此使用 划分前后数据集熵的差值 量度使用当前特征对于数据集进行划分的效果(类似于深度学习的代价函数)。对于待划分的数据集 ,其划分前的数据集的熵 是一定的,但是划分之后的熵 是不定的, 越小说明使用此特征划分得到的子集的不确定性越小(也就是纯度越高)。因此 越大,说明使用当前特征划分数据集 时,纯度上升的更快。而我们在构建最优的决策树的时候总希望能更快速到达纯度更高的数据子集,这一点可以参考优化算法中的梯度下降算法,每一步沿着负梯度方法最小化损失函数的原因就是负梯度方向是函数值减小最快的方向。同理:在决策树构建的过程中我们总是希望集合往最快到达纯度更高的子集合方向发展,因此我们总是选择使得信息增益最大的特征来划分当前数据集 。 u2003u2003显然这种划分方式是存在弊端的,按信息增益准则的划分方式,当数据集的某个特征B取值较多时,依此特征进行划分更容易得到纯度更高的数据子集,使得 偏小,信息增益会偏大,最终导致信息增益偏向取值较多的特征。 u2003u2003设 是 个数据样本的集合,假定类别属性具有 个不同的值: ,设 是类 中的样本数。对于一个给定样本,它的信息熵为: u2003u2003其中, 是任意样本属于 的概率,一般可以用 估计。 u2003u2003设一个属性A具有 个不同的值 ,利用属性A将集合 划分为 个子集 ,其中 包含了集合 中属性 取 值的样本。若选择属性A为测试属性,则这些子集就是从集合 的节点生长出来的新的叶节点。设 是子集 中类别为 的样本数,则根据属性A划分样本的信息熵为: u2003u2003其中 , 是子集 中类别为 的样本的概率。最后,用属性A划分样本子集 后所得的 信息增益(Gain) 为: u2003u2003即,<u>属性A的信息增益=划分前数据的熵-按属性A划分后数据子集的熵</u>。 信息增益(information gain)又称为互信息(matual information)表示得知特征X的信息而使得类Y的信息的不确定性减少的程度 。信息增益显然 越小, 的值越大,说明选择测试属性A对于分类提供的信息越多,选择A之后对分类的不确定程度越小。 u2003u2003经典算法 ID3 使用的信息增益特征选择准则会使得划分更偏相遇取值更多的特征,为了避免这种情况。ID3的提出者 J.Ross Quinlan 提出了 C4.5 ,它在ID3的基础上将特征选择准则由 信息增益 改为了 信息增益率 。在信息增益的基础之上乘上一个惩罚参数。特征个数较多时,惩罚参数较小;特征个数较少时,惩罚参数较大(类似于正则化)。这个惩罚参数就是 分裂信息度量 的倒数 。 u2003u2003不同于 ID3 和 C4.5 , CART 使用基尼不纯度来作为特征选择准则。基尼不纯度也叫基尼指数 , 表示在样本集合中一个随机选中的样本被分错的概率 则<u>基尼指数(基尼不纯度)= 样本被选中的概率 * 样本被分错的概率</u>。Gini指数越小表示集合中被选中的样本被分错的概率越小,也就是说集合的纯度越高,反之,集合越不纯。 样本集合的基尼指数: 样本集合 有m个类别, 表示第 个类别的样本数量,则 的Gini指数为: 基于某个特征划分样本集合S之后的基尼指数: u2003u2003CART是一个二叉树,也就是当使用某个特征划分样本集合后,得到两个集合:a.等于给定的特征值的样本集合 ;b.不等于给定特征值的样本集合 。实质上是对拥有多个取值的特征的二值处理。 对于上述的每一种划分,都可以计算出基于划分特=某个特征值将样本集合划分为两个子集的纯度: 因而对于一个具有多个取值(超过2个)的特征,需要计算以每个取值为划分点,对样本集合划分后子集的纯度 ( 表示特征 的可能取值)然后从所有的划分可能 中找出Gini指数最小的划分,这个划分的划分点,就是使用特征 对样本集合 进行划分的最佳划分点。 参考文献 : 决策树--信息增益,信息增益比,Geni指数的理解 【机器学习】深入理解--信息熵(Information Entropy) 统计学习方法 (李航) u2003u2003为了便于理解,利用以下数据集分别使用三种方法进行分类: u2003u2003在进行具体分析之前,考虑到收入是数值类型,要使用决策树算法,需要先对该属性进行离散化。 u2003u2003在机器学习算法中,一些分类算法(ID3、Apriori等)要求数据是分类属性形式,因此在处理分类问题时经常需要将一些连续属性变换为分类属性。一般来说,连续属性的离散化都是通过在数据集的值域内设定若干个离散的划分点,将值域划分为若干区间,然后用不同的符号或整数数值代表落在每个子区间中的数据值。所以,离散化最核心的两个问题是:如何确定分类数以及如何将连续属性映射到这些分类值。常用的离散化方法有 等宽法 , 等频法 以及 一维聚类法 等。 在实际使用时往往使用Pandas的 cut() 函数实现等宽离散化: u2003u2003可以看到与手工计算的离散化结果相同,需要注意的是,<u> 等宽法对于离群点比较敏感,倾向于不均匀地把属性值分布到各个区间,导致某些区间数据较多,某些区间数据很少,这显然不利用决策模型的建立。 </u> 使用四个分位数作为边界点,对区间进行划分: <u> 等频率离散化虽然避免了等宽离散化的数据分布不均匀的问题,却可能将相同的数据值分到不同的区间以满足每个区间具有相同数量的属性取值的要求。 </u> 使用一维聚类的离散化方法后得到数据集为: u2003u2003在本次实例中选择使用基于聚类的离散化方法后得到的数据集进行指标计算。为了预测客户能否偿还债务,使用A(拥有房产)、B(婚姻情况)、C(年收入)等属性来进行数据集的划分最终构建决策树。 单身 : 离婚 : 已婚 : 显然,由B属性取值"已婚"划分得到的子数据集属于同一个叶节点,无法再进行分类。 接下来,对由B属性取值"单身"划分得到的子数据集 再进行最优特征选择: 1)计算数据集 总的信息熵,其中4个数据中,能否偿还债务为"是"数据有3,"否"数据有1,则总的信息熵: 2)对于A(拥有房产)属性,其属性值有"是"和"否"两种。其中,在A为"是"的前提下,能否偿还债务为"是"的有1、"否"的有0;在A为"否"的前提下,能否偿还债务为"是"的有2、为"否"的有1,则A属性的信息熵为: 3)对于B(婚姻情况)属性,由于已被确定,在这个数据子集信息熵为0 4)对于C(年收入)属性,其属性值有"中等输入"、"低收入"两种。在C为"中等收入"的前提下,能否偿还作为为"是"的有1,为"否"的有0;在C为"低收入"的前提下,能否偿还作为为"是"的有2,为"否"的有1;则C属性的信息熵为: 5)最后分别计算两个属性的信息增益值: 信息增益值相同,说明以两个属性对数据子集进行划分后决策树的纯度上升是相同的,此时任选其一成为叶节点即可。 同理,对数据子集 进行最优特征选择,发现信息熵为0: 整理得到最终的决策树:
2023-07-03 09:29:441

决策树(decisionTree)

决策树(decisionTree)是一种基本的分类和回归方法。此文仅讨论用于分类方法的决策树。 决策树的学习通常分为3步: 决策树的学习的思想主要源于 定义决策树 : 分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点(node)和有向边(directed edge)组成。结点又分为内部结点(internal node)和叶结点(leaf node)。内部结点表示一个特征或属性,叶结点表示一个类。 形如: 其中,圆表示内部结点,方框表示叶结点。 if-then规则,简单来说就是 : 举例:对于一个苹果,外表是红色的是红苹果,外表是绿色的是青苹果。可以表示为: if-then规则集合具有一个重要的性质: 这就是说每一个实例都被一条路径或规则覆盖,并且只被一条路径或规则覆盖。这里所谓的覆盖是指实例的特征与路径上的特征一致,或实例满足规则的条件。 给定数据集: 其中, 为输入实例(特征向量),含有 个特征, 为类标记, , 为样本容量。 目标 : 根据给定的训练数据集构建一个决策树模型,使它能够对实例进行正确分类。 特征选择在于选取对训练数据具有分类能力的特征,这样可以提高决策树学习的效率。 如果我们利用某一个特征进行分类的结果与随机分类的结果没什么很大的差别的话,则称这个特征没有分类能力。 那么问题来了,怎么选择特征呢? 通常特征选择的准则是 下面通过例子来说明一下。 目标 : 希望通过所给的训练集数据,学习一个贷款申请的决策树。当新的客户提出贷款申请的时候,根据申请人的特征利用决策树决定是否批准贷款申请。 可见这里共有4个特征可供选择。用特征选择的准则是 。接下来介绍 。 : 熵是表示随机变量不确定性的度量。 设 是一个取有限个值的随机变量,其概率分布为 则随机变量 的熵定义为 若 ,则定义 。通常对数取以2为底,或是以 为底,熵的单位分布为比特(bit)或是纳特(nat)。 由上式可知,熵只依赖 的分布,而已 的值无关,则 的熵还可记作 ,即 则从定义可知 当随机变量只取2个值的时候,例如 时, 的分布为 熵为 熵随概率变化的曲线为 当 或 时 ,随机变量完全没有不确定性,当 时 ,熵取值最大,随机变量不确定性最大。 设随机变量 ,其联合概率分布 条件熵 表示在已知随机变量 的条件下随机变量 的不确定性。随机变量 给定条件下随机变量 的条件熵(conditional entropy),定义为 给定条件下 的条件概率分布的熵对 的数学期望 信息增益 特征 对训练集 的信息增益 根据信息增益准则的特征选择方法:对训练集 ,计算其每个特征的信息增益,并比较大小,选择信息增益最大的特征。 前期定义各个量: 信息增益的算法 输入:训练集 和特征 ; 输出:特征 对训练集 的信息增益 回看刚才的例子, 解 : 这一次我很无聊的想用一下.csv文件类型。 所以训练数据集部分如下,我存在一个loan.csv文件里了。对.csv文件的各种处理一般由python的pandas模块完成。 第一步,导入相关模块 第二步,读入数据 若是使用jupyter,可以即刻查看一下数据,和数据标签。 可以看出,除了"ID"之外前4个标签 "age", "work", "own house", "Credit conditions"为我们一直在说的特征 ,而最后一个标签"label"是我们所说的类 ,所以要处理一下这些标签, 第三步,计算训练集 的熵 : 这里会用到pandas的一个统计数据的功能, groupby(by = [列]).groups ,将数据统计成字典的形式,这么说比较抽象,看下图,将我们用pandas读入的data,分为2类, , Index 表示索引,即第0,1,4,5,6,14(python计数从0开始)个数据的 ,第2,3,7,8,9,10,11,12,13个数据的 . 那么计算训练集 的熵 第四步,计算特征 对数据集 的条件熵 第五步 ,计算信息增益 输入:训练集 和特征 和阈值 ; 输出:决策树 (1) 中所有实例都属于同一类 ,则 为单结点树,并将类 作为该结点的类标记,返回 ; (2) 若 ,则 为单结点树,并将 中实例数最大的类 作为该结点的类标记,返回 ; (3)否则,按照上述信息增益的算法,计算 中各个特征对 的信息增益,选择信息增益最大的特征 ; (4)如果特征 的信息增益小于阈值 ,将置 为单结点树,并将 中实例数最大的类 作为该结点的类标记,返回 ; (5)否则,对 的每一个可能值 ,依 将 分割为若干非空子集 ,将 中实例数最大的类 作为该结点的类标记,构建子结点,由结点及其子结点构成树 ,返回 ; (6)对第 个子结点,以 为训练集,以 为特征集,递归的调用步骤(1)~步骤(5),得到子树 ,返回 。 对上述表的训练集数据,利用ID3算法建立决策树。 解 : 第一次迭代 : 【特征:有自己的房子】将数据集 划分为2个子集 (有自己的房子)和 (没有自己的房子),观察一下 和 : : 由于 所有实例都属于同一类 ,所以它是一个叶结点,结点的类标记为“是”。 : 对于 则需从特征 中选择新的特征。 第二次迭代 : 将 看作新的数据集 。【特征:有工作】有2个可能值,划分为2个子集 (有工作)和 (没有工作),观察一下 和 : : 由于 所有实例都属于同一类 ,所以它是一个叶结点,结点的类标记为“是”。 :
2023-07-03 09:29:501

决策树的原理及算法

决策树基本上就是把我们以前的经验总结出来。我给你准备了一个打篮球的训练集。如果我们要出门打篮球,一般会根据“天气”、“温度”、“湿度”、“刮风”这几个条件来判断,最后得到结果:去打篮球?还是不去? 上面这个图就是一棵典型的决策树。我们在做决策树的时候,会经历两个阶段:构造和剪枝。 构造就是生成一棵完整的决策树。简单来说,构造的过程就是选择什么属性作为节点的过程,那么在构造过程中,会存在三种节点: 根节点:就是树的最顶端,最开始的那个节点。在上图中,“天气”就是一个根节点; 内部节点:就是树中间的那些节点,比如说“温度”、“湿度”、“刮风”; 叶节点:就是树最底部的节点,也就是决策结果。 剪枝就是给决策树瘦身,防止过拟合。分为“预剪枝”(Pre-Pruning)和“后剪枝”(Post-Pruning)。 预剪枝是在决策树构造时就进行剪枝。方法是在构造的过程中对节点进行评估,如果对某个节点进行划分,在验证集中不能带来准确性的提升,那么对这个节点进行划分就没有意义,这时就会把当前节点作为叶节点,不对其进行划分。 后剪枝就是在生成决策树之后再进行剪枝,通常会从决策树的叶节点开始,逐层向上对每个节点进行评估。如果剪掉这个节点子树,与保留该节点子树在分类准确性上差别不大,或者剪掉该节点子树,能在验证集中带来准确性的提升,那么就可以把该节点子树进行剪枝。 1是欠拟合,3是过拟合,都会导致分类错误。 造成过拟合的原因之一就是因为训练集中样本量较小。如果决策树选择的属性过多,构造出来的决策树一定能够“完美”地把训练集中的样本分类,但是这样就会把训练集中一些数据的特点当成所有数据的特点,但这个特点不一定是全部数据的特点,这就使得这个决策树在真实的数据分类中出现错误,也就是模型的“泛化能力”差。 p(i|t) 代表了节点 t 为分类 i 的概率,其中 log2 为取以 2 为底的对数。这里我们不是来介绍公式的,而是说存在一种度量,它能帮我们反映出来这个信息的不确定度。当不确定性越大时,它所包含的信息量也就越大,信息熵也就越高。 ID3 算法计算的是信息增益,信息增益指的就是划分可以带来纯度的提高,信息熵的下降。它的计算公式,是父亲节点的信息熵减去所有子节点的信息熵。 公式中 D 是父亲节点,Di 是子节点,Gain(D,a) 中的 a 作为 D 节点的属性选择。 因为 ID3 在计算的时候,倾向于选择取值多的属性。为了避免这个问题,C4.5 采用信息增益率的方式来选择属性。信息增益率 = 信息增益 / 属性熵,具体的计算公式这里省略。 当属性有很多值的时候,相当于被划分成了许多份,虽然信息增益变大了,但是对于 C4.5 来说,属性熵也会变大,所以整体的信息增益率并不大。 ID3 构造决策树的时候,容易产生过拟合的情况。在 C4.5 中,会在决策树构造之后采用悲观剪枝(PEP),这样可以提升决策树的泛化能力。 悲观剪枝是后剪枝技术中的一种,通过递归估算每个内部节点的分类错误率,比较剪枝前后这个节点的分类错误率来决定是否对其进行剪枝。这种剪枝方法不再需要一个单独的测试数据集。 C4.5 可以处理连续属性的情况,对连续的属性进行离散化的处理。比如打篮球存在的“湿度”属性,不按照“高、中”划分,而是按照湿度值进行计算,那么湿度取什么值都有可能。该怎么选择这个阈值呢,C4.5 选择具有最高信息增益的划分所对应的阈值。 针对数据集不完整的情况,C4.5 也可以进行处理。 暂无 请你用下面的例子来模拟下决策树的流程,假设好苹果的数据如下,请用 ID3 算法来给出好苹果的决策树。 「红」的信息增益为:1「大」的信息增益为:0 因此选择「红」的作为根节点,「大」没有用,剪枝。 数据分析实战45讲.17 丨决策树(上):要不要去打篮球?决策树来告诉你
2023-07-03 09:30:111

1-2 决策树节点划分时的特征选择依据

依据不同的决策树算法,在划分子节点时进行特征选择的依据有信息增益、信息增益比(又称信息增益率)、基尼系数三种。依次阐述如下: 0. 什么是信息熵? 如果没有学过信息论等与信息理论相关的书,初看信息熵是会有点懵逼的。在机器学习领域,信息熵的定义如下: 信息熵是度量样本集合纯度的一种最常用的指标,假设样本集合D的样本数一共有D个,一共有K类(标签),其中第k类样本所占的比例为pk,则该样本集的信息熵为: 有两点可以加强理解:① 信息熵是一个与类别标签相关,而与特征无关的量;②其实际反映的就是这个样本集中不同类别的样本的 占比情况 ,也就是前面所说的 纯度 。 如何直观的理解信息熵?可以从熵的最初概念出发,熵是表示体系混乱程度的度量,熵越大自然纯度就越小。 吊诡的地方在哪里呢?在于前面的信息二字,信息熵越大到底代表信息量越大还是信息量越小?如果我们把信息量理解的直观一点,两者是反着的,信息熵越大,能给我们利用的信息就越少。 举个简单的栗子,样本集D有10个人。如果是5个好人5个坏人,信息熵就会大于8个好人2个坏人的情况。 为什么呢?因为5:5的比例确实带不来任何信息,假设我们现在就只有这么个样本集,然后来一个新样本,我们判断这个新样本是个好人还是坏人?5:5的样本集告诉我们,有0.5的概率是好人0.5的概率是坏人,也就是跟随机抛硬币一样,无论我们最后给新样本定什么标签,都有50%的错误率。但假设我们的样本集是8:2,其它什么特征都不用,我们可以判断,这个新样本80%的概率是好人,20%的概率是坏人,所以我们应该无脑的把所有人都判断为好人,这样我们预计只有20%的错误率。 这就是信息熵发挥的作用,样本类别越均衡,就是纯度越小,信息熵越大,可用的信息就越少。 1. 信息增益 前面扯了这么多废话把信息熵弄明白,信息增益就简单多了。如果我们按照某个特征的取值,把原始样本集划分为若干个子集,然后用某种方式求一下这些子集的信息熵“之和”,我们希望什么,我们希望划分后的信息熵要减小得尽可能的多, 这个信息熵的减小量,就是信息增益 。 第一个问题:划分后的子集信息熵之和怎么算?按照信息熵定义,每个子集都能算一个信息熵出来,简单求个和吗?那肯定不行,毕竟还有个样本量的问题,把样本量考虑进去,就相当于给每个子集的信息熵配一个权重,这个权重就是这个子集的样本数占样本总数的比例,然后加权求个和,这就是划分子集后的信息熵求法。 用原始的信息熵减去上面这个划分后的信息熵,就是信息增益咯。再说一遍,信息增益就是信息熵的减小量。 补充点废话:信息增益大意味着什么?意味着划分后的样本集们普遍的信息熵较小,也就是纯度较大,纯度较大意味着什么,意味着划分后的各个子集有可能这个子集全是好人,那个子集全是坏人,这不正是我们想要的吗,我们要的恰恰就就是根据特征来有效判断人的好坏,所以选信息增益大的特征进行样本划分也就是理所当然的了。 使用信息增益来划分节点的决策树算法叫ID3算法 2. 信息增益比(率) 信息增益有什么问题?假设我们有两个特征可供选择,性别与年龄,其中性别的取值只有男和女两种,而年龄的取值有18、19、20、...、64、65几十个。这会带来什么问题呢?定性想一下,特征取值越多,划分后的各个子集就会越小,而越小的子集其分布就越有可能偏。还是按前面的栗子来说,10个人按性别划分成5个男人5个女人,而这两个子集里有分别都有好人和坏人,信息增益可能just soso,但如果按年龄分,假设10个人恰好是10个不同的年龄,那划分后每个子集里要么是一个好人要么是一个坏人,纯度杠杠的,信息增益杠杠的。但这是否代表年龄真的是个更好用得特征?并不是,这是因为我们的样本集终究是有限个样本构成的,当特征取值很多时,子集越小,越小就越有可能出现统计学意义上的偏差,从而使其信息增益看起来大。废话了这么多,想说明什么问题呢?就是 “依据信息增益划分子集”这个标准会偏爱可取值数多的特征,而这个特征在刻画样本时不一定强 。 为了平衡这一点,我们要设法对信息增益做个类似归一化的操作,让不同特征间能有可比性。归一化肯定要考虑特征取值数了,但直接把信息增益除以特征取值数就太简单粗暴了,因此我们再定义一个指标,这个指标称之为特征的固有值,整体上与特征的可取值数会正相关,定义如下: 使用特征a的信息增益除以特征a的固有值,就是信息增益比了,使用信息增益比来划分节点的决策树算法叫C4.5算法。 前面说过,信息增益会偏爱取值数较多的特征,那么信息增益比是不是一视同仁了呢?没有, 信息增益比会偏爱取值数较少的特征 (捂脸哭)。所以最机智的做法应该是设法结合两者。 3. 基尼系数 其实决策树的节点划分这个事儿吧,搞这么多指标出来自然有它的理由,但这些指标说来说去呢,为的都是一件事儿,那就是我们要 找到最有用的特征 来划分节点。那什么是最有用呢?就是 能最有效的区分样本的类别。 不管什么指标,本质上度量的都是这个事儿。 基尼系数自然也是如此了,基尼系数 反映了 从样本集中随机抽取两个样本,其类别标记不一致的概率,原始样本集的基尼系数这么算: 为毛说基尼系数反映了随机选取的两个样本类别不一致的概率呢?pk是不同类别的样本所占的比例,因此它们的和为1,一堆介于0~1之间的pk的平方和,什么时候最小?当所有的pk相等的时候平方和最小,这个可以用初中数学知识证明。而当每个类别所占的比例都一样的时候,随机抽取的两个样本不一样的概率最大。比如,在5个好人5个坏人里随机抽俩人,这俩人一个是好人一个是坏人的概率还是蛮大的,但如果在9个好人1个坏人里抽俩人,这俩人就有更大概率是两个好人。因此基尼系数度量的也是纯度,由于前面有个1-,基尼系数越大,意味着纯度越小(也意味着信息熵越大)。 理解了基尼系数和信息熵反应的本质是一样的之后,这事就好说了,信息增益是信息熵的减小量,对比想一下这儿就是用划分后基尼系数减小量咯?差不多,但不完全一样,这里是直接用了划分后基尼系数,哪个特征最小就用哪个。为毛呢?因为划分前大家都是一个基尼系数啊,划分后基尼系数最小,可不就是划分后基尼系数减小量最大嘛,所以是一回事。从这个角度来说,前面用信息增益最大也没必要,直接用划分后信息熵最小的那个就行了,效果是一样一样的。 使用基尼系数划分特征的决策树算法叫CART算法。CART的全称是classify and regression tree(分类和回归树),回归树是什么玩意,以后再说了。 以上就是决策树节点划分时特征选择所用的三个指标。
2023-07-03 09:30:171

C4.5算法

C4.5是一系列用在机器学习和数据挖掘的分类问题中的算法。它的目标是监督学习:给定一个数据集,其中的每一个元组都能用一组属性值来描述,每一个元组属于一个互斥的类别中的某一类。C4.5的目标是通过学习,找到一个从属性值到类别的映射关系,并且这个映射能用于对新的类别未知的实体进行分类。 C4.5由J.Ross Quinlan在ID3的基础上提出的。ID3算法用来构造决策树。决策树是一种类似流程图的树结构,其中每个内部节点(非树叶节点)表示在一个属性上的测试,每个分枝代表一个测试输出,而每个树叶节点存放一个类标号。一旦建立好了决策树,对于一个未给定类标号的元组,跟踪一条有根节点到叶节点的路径,该叶节点就存放着该元组的预测。决策树的优势在于不需要任何领域知识或参数设置,适合于探测性的知识发现。 决策树呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。学习时,利用训练数据,根据损失函数最小化的原则建立决策树模型;预测时,对新的数据,利用决策模型进行分类。 决策树是一种通过对特征属性的分类对样本进行分类的树形结构,包括有向边以及三类节点: 上图给出了(二叉)决策树的示例。决策树具有以下特点: 决策树学习的本质是从训练集中归纳出一组分类规则。但随着分裂属性次序的不同,所得到的决策树也会不同。如何得到一棵决策树既对训练数据有较好的拟合,又对未知数据有很好的预测呢? 首先,我们要解决两个问题: 一般的,一颗决策树包含一个根节点、若干个内部结点和若干个叶结点;叶结点则对应于一个属性册书;每个叶结点包含的样本集合根据属性测试的结果被划分到子结点中;根结点包含样本全集,从根结点到每个叶结点的路径对饮过了一个判定测试序列。决策树学习的目的是为了产生一颗泛化能力强的决策树,其基本流程遵循简单且只管的“分而治之”(divide-and-conquer)策略,如下图所示: 显然,决策树的生成是一个递归的过程。在决策树基本算法中,有三种情形会导致递归返回: 在第二种情形下,我们把当前结点标记为叶结点,并且将其类别设定为该结点所含样本最多的类别;在第三种情形下,同样把当前结点标记为叶结点,但将其类别设定为其父结点所含样本最多类别。注意这两种情形的处理实质不同:情形二是在利用当前结点的后验分布,而情形三则是把父结点的样本分布当做当前结点的先验分布。 决策树学习的关键在于如何选择最优划分属性。一般而言,随着划分过程的不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”越来越高。 “信息熵”(information entropy)是度量样本集合纯度最常用的一种指标。假定当前样本集合 中第k类样本所占比例为 ,则 的信息熵定义为 的值越小,则 的纯度越高。 假定离散属性 有 个可能的取值 ,若使用 来对样本集合 进行划分,则会产生 个分支结点,其中第v个分支结点包含了 中所有在属性 上取值为 的样本,记为 ,我们根据上述公式计算出 的信息熵,再考虑到不同的分支结点所包含的样本数不同,给分支结点赋予权重 ,即样本越多的分支结点影响越大,于是可以计算出用属性 对样本集合 进行划分所获得的"信息增益"(information gain) 一般而言,信息增益越大,则意味着使用属性a来进行划分所获得的“纯度提升越大”。因此,我们可用信息增益来进行决策树的划分属性选择。 实际上,信息增益准则对可取值数目较多的属性有所偏好(如何以序号作为划分属性,每一个事物作为一个单独存在的类别的时候,信息增益往往会很高,但是这样进行划分并没有什么意义),为了减少这种偏好可能带来的不利影响,著名的C4.5算法并不是直接使用信息增益,而是使用增益率(gain ratio)来选择最优的划分属性。增益率的定义为: 值得注意的是: 增益率准则对可取值数目较少的属性有所偏好,因此C4.5算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式: 先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的 CART决策树使用“基尼指数”来选择划分属性。数据集 的纯度可用基尼值来度量: 直观来说, 反映了从数据集 中随机抽取两个样本,其类别标记不一致的概率,因此 值越小,则数据集 的纯度就越高。属性 的基尼指数定义为: 于是,我们在候选属性集合 中,选择那个使得划分后基尼指数最小的属性作为最优划分属性,即 银行希望能够通过一个人的信息(包括职业、年龄、收入、学历)去判断他是否有贷款的意向,从而更有针对性地完成工作。下表是银行现在能够掌握的信息,我们的目标是通过对下面的数据进行分析建立一个预测用户贷款一下的模型。 上表中有4个客户的属性,如何综合利用这些属性去判断用户的贷款意向?决策树的做法是每次选择一个属性进行判断,如果不能得出结论,继续选择其他属性进行判断,直到能够“肯定地”判断出用户的类型或者是上述属性都已经使用完毕。比如说我们要判断一个客户的贷款意向,我们可以先根据客户的职业进行判断,如果不能得出结论,再根据年龄作判断,这样以此类推,直到可以得出结论为止。决策树用树结构实现上述的判断流程,如图所示: 以熵作为节点复杂度的统计量,分别求出下面例子的信息增益,图3.1表示节点选择属性1进行分裂的结果,图3.2表示节点选择属性2进行分裂的结果,通过计算两个属性分裂后的信息增益,选择最优的分裂属性。 属性一 属性二 由于 ,所以属性1是比属性2更优的分裂属性,故而选择属性1作为分裂属性。 由于 ,故而选择属性2作为分裂属性。 剪枝(pruning)是决策树学习算法对付“过拟合”的主要手段。在决策树学习中,为了尽可能正确分类训练样本,结点划分过程将不断重复,有事会造成决策树分支过多,这是就可能因为训练样本学得太好了,以致把训练集自身的一些特点党组哟所有数据都具有的一般性质而导致过拟合。因此,可通过主动去掉一些分支来降低过拟合的风险。 其中{1,2,3,6,7,10,14,15,16,17}为测试集,{4,5,8,9,11,12,13}为训练集。 预剪枝是要对划分前后泛化性能进行评估。对比决策树某节点生成前与生成后的泛化性能。 2.计算训练集的信息增益,得知脐部的信息增益最大,因此按照脐部进行划分。又因为在训练集中,凹陷特征好瓜的占比多,因此凹陷划分为好瓜,稍凹特征好过占比多,因此将其标记为好瓜,因此按照脐部划分的子树结果如下: 划分后,对比结果如下: 由图可知,预剪枝使得很多分支没有展开,这不仅降低了过拟合的风险,还显著减少了决策树的训练时间开销和测试时间。但是,有些分支虽当前不能提升泛化性。甚至可能导致泛化性暂时降低,但在其基础上进行后续划分却有可能导致显著提高,因此预剪枝的这种贪心本质,给决策树带来了欠拟合的风险。 后剪枝表示先从训练集中生成一颗完整决策树。 对比标记节点的划分类与各数据的真实分类,计算准确率,如下表所示: 生成的决策树,在验证集上的准确度为3/7*100%=42.9%. 对比预剪枝与后剪枝生成的决策树,可以看出,后剪枝通常比预剪枝保留更多的分支,其欠拟合风险很小,因此后剪枝的泛化性能往往由于预剪枝决策树。但后剪枝过程是从底往上裁剪,因此其训练时间开销比前剪枝要大。
2023-07-03 09:30:251

决策树中criterion 属性为entropy代表的是信息增益还是信息熵

一、最佳拆分如何将纯度增加进行量化呢?用于评价拆分分类目标变量的纯度变量包括:基尼(Gini)CART熵(信息增益)ID3信息增益比率 C5卡方检验 CHAID1、基尼以意大利统计学家和经济学家Corrado Gini的名字命名的拆分标准,它也被生物学家和生态学家用于总体多样性研究,这种方法用于计算从相同的总体中随机选择的两项处于同一类中的概率,对于一个纯的总体,此概率为12、熵和信息增益对于某个指定决策树结点,熵是该结点所代表的全部类中,每个特定类的记录的比例乘以该比例以2为底的对数后的总和,一个拆分的熵就是该拆分产生的所有结点的熵按照每个结点的记录所占比例的加权和。例子:两课决策树,决策树1根节点包括10个正类,10个负类(总共20个样本),左叶节点9个正类,1个负类。右叶结点9个负类,1个正类。决策树2根结点包括10个正类,10个负类,左叶结点6个正类,右叶结点4个正类,10个负类。通过GINI和信息增益判断两棵树的优劣
2023-07-03 09:30:321

什么是信息增益

信息增益(Kullback–Leibler divergence)又称information divergence,information gain,relative entropy 或者KLIC。信息增益在概率论和信息论中,信息增益是非对称的,用以度量两种概率分布P和Q的差异。信息增益描述了当使用Q进行编码时,再使用P进行编码的差异。通常P代表样本或观察值的分布,也有可能是精确计算的理论分布。Q代表一种理论,模型,描述或者对P的近似。尽管信息增益通常被直观地作为是一种度量或距离,但事实上信息增益并不是。就比如信息增益不是对称的,从P到Q的信息增益通常不等于从Q到P的信息增益。信息增益是f增益(f-divergences)的一种特殊情况。在1951年由Solomon Kullback 和Richard Leibler首先提出作为两个分布的直接增益(directed divergence)。它与微积分中的增益不同,但可以从Bregman增益(Bregman divergence)推导得到。
2023-07-03 09:30:521

什么是信息增益

在概率论和信息论中,信息增益是非对称的,用以度量两种概率分布P和Q的差异。信息增益描述了当使用Q进行编码时,再使用P进行编码的差异。通常P代表样本或观察值的分布,也有可能是精确计算的理论分布。Q代表一种理论,模型,描述或者对P的近似。尽管信息增益通常被直观地作为是一种度量或距离,但事实上信息增益并不是。就比如信息增益不是对称的,从P到Q的信息增益通常不等于从Q到P的信息增益。信息增益是f增益(f-divergences)的一种特殊情况。在1951年由Solomon Kullback 和Richard Leibler首先提出作为两个分布的直接增益(directed divergence)。它与微积分中的增益不同,但可以从Bregman增益(Bregman divergence)推导得到。
2023-07-03 09:31:011

信息增益的定义

设离散随机变量的概率分布P和Q,它们的信息增益定义为其中分布P和Q必须是概率分布,而且对于任何P(i)>0,必须有Q(i)>0。当P(i)=0时,公式的值为0。从公式看,信息增益是以分布P为权重的P和Q对数差值的加权平均。信息增益的连续分布形式:其中p和q表示P和Q的密度概率函数更一般地,P和Q是集合X上的概率测度,Q关于P绝对连续,从P到Q的信息增益定义为假设右式存在,dQ/dp是Q关于P的Radon-Nikodym导数,如果P关于Q也绝对连续,那么上式可变为上式可视为P关于Q的熵。如果u是集合X上的任何测度,即有p=dP/du和q=dQ/du存在,那么从P到Q的信息增益可定义为当信息以比特为单位时,公式中的对数的基数为2。当信息以nats为单位时,基数为e。大多数包括信息增益公式的公式都使对数函数保持原样,即与基数无关。注意,信息增益是要讲方向的,上述公式都是计算从P到Q的信息增益。
2023-07-03 09:31:081

信息增益以什么为基础

信息熵。信息增益直接以信息熵为基础,计算当前划分对信息熵所造成的变化。大多数包括信息增益公式的公式都使对数函数保持原样,即与基数无关。
2023-07-03 09:31:241

SPSS中怎么计算某个属性的信息增益啊,本人新手,求大神给个具体的方法

粗略判断,你可以考虑用分类决策树模型来做决策树模型在以连续性变量为目标的时候,是一种特殊形式的回归模型,它可以给出其它信息对目标变量改变情况贡献程度的量化(标准化),还可以用建好的模型预测新样本的目标变量。(数学学到很深的程度以后,你就会知道,这些东西都是相通的)
2023-07-03 09:31:311

python里怎么计算信息增益,信息增益比,基尼指数

1、首先自定义一份数据,分别计算信息熵,条件信息熵,从而计算信息增益。2、然后我们按下图输入命令计算信息熵。3、再按照下图输入命令计算条件信息熵。4、再输入下图命令,计算信息增益。5、输入下列代码计算信息增益比。6、最后按照下图代码计算出基尼指数。
2023-07-03 09:31:402

决策树信息增益计算结果为负值说明什么

我正在实施C4.5,并在我的计算中得到(对于某些示例)信息增益的负值。我读了Why am I getting a negative information gain,但我的发现看起来不一样。我推杆我的计算脱颖而出,我也得到了相同的结果如下:信息增益的负值My calculations我到底做错了什么?我试图重新计算它的,也是我得到负值是在下面的图片: Newest calculations with data set 80分的值,所以我得到11 < = 80和3objects> 80来源2017-02-09 user3785803您使用的熵的公式是什么? – slcott熵公式: - SUM(概率* LOG(BASE 2,概率)) – user3785803A回答0你乘以你的结果对于熵由-1?$$ H(X)= - sum_ {I = 1}^N { mathrm {P}(X_I) log_b mathrm {P}(X_I)} $$唉.. 。使用mathjax时遇到问题,go here for definition来源2017-02-09 20:03:31 slcott是的,我将熵乘以-1,例如。公式= - (N3 * LOG(N3; 2)+ O3 * LOG(O3; 2)) – user3785803相关问题1. 信息收益的价值可以为负值吗?2. Weka使用增益比和信息增益(ID3&C4.5(J48))3. Rpart改进得分与信息增益4. 为什么我会得到负面的信息收益?5. 如何计算信息增益的值以减少浮点逼近误差?6. 增益蟒蛇y轴值7. 使用Scikit-learn进行信息增益计算8. 获得最佳的功能,它提供了最大的信息增益9. alpha在信息增益修剪功能的上下文中是什么意思?10. 增加收益关键字值?11. 指令在负载信息12. 负荷信息与NSKeyedUnarchiver13. 谷歌地图API的负载信息14. 负载信息的UIWebView作为HTML15. 网络音频API增益16. C++/CLI性能增益17. 声音平底锅增益?18. 性能增益属性19. 使用Simulink的PI控制器的增益值20. 如何制作“太多负载”信息21. jquery ajax使用负载传递信息22. 映射中的值[0.0-1.0]到颜色增益23. 无法将mergeinfo count ...递增到负值24. 如何控制输出的增益?25. OpenJDK中的"不支持主增益"26. 布尔真或假,负收益27. 分片EC2 EBS卷收益性能增益?28. 哪些算法从融合乘法增益中获益最多?29. 无益Oracle错误信息:有望%S,拿到%S使用TO_DATE30. Rpm包信息:自动递增版本每日一句每一个你不满意的现在,都有一个你没有努力的曾经。最新问题1. 关于Windows应用程序开发和NPAPI插件2. 电力数据存储湖泊中的表格数据模型BI3. 需要将文本的特定行写入新文本4. jQuery的动态CSS属性(在滚动)5. Eclipse手动/脱机JBoss Tools Luna安装:缺少需求abc需要"bundle xyz",但找不到6. Laravel登记错误,数据库连接,但收到奇怪的错误7. highmaps在迁移到.NET Core后停止更新8. 拦截winsock的recvfrom函数提供了无效地址错误9. 改变列的默认值10. WCF单例服务:单实例每个?每个主机实例
2023-07-03 09:32:492

信息增益可以是负数吗

决策树中信息增益不可能是负的
2023-07-03 09:32:562

请高手解决一下。数据挖掘中信息增益到底是什么意思。谢啦!

信息增益是指信息不确定性的减少量
2023-07-03 09:33:031

相关性分析有哪几种方法?

在做数据分析时,为了提炼观点,相关性分析是必不可少,而且尤为重要的一个环节。但是,对于不同类型的数据,相关性分析的方法都各不相同。本文,主要按照不同的数据类型,来对各种相关性分析方法进行梳理总结。相关性分析是指对两个或多个具备相关性的变量元素进行分析,相关性不等于因果性。一、离散与离散变量之间的相关性1、卡方检验卡方检验是一种用途很广的计数资料的假设检验方法。它属于非参数检验的范畴,主要是比较两个及两个以上样本率( 构成比)以及两个分类变量的关联性分析。其根本思想就是在于比较理论频数和实际频数的吻合程度或拟合优度问题。它在分类资料统计推断中的应用,包括:两个率或两个构成比比较的卡方检验;多个率或多个构成比比较的卡方检验以及分类资料的相关分析等。(1)假设,多个变量之间不相关(2)根据假设计算得出每种情况的理论值,根据理论值与实际值的差别,计算得到卡方值 及 自由度df=(C-1)(R-1)(3)查卡方表,求p值卡方值越大,P值越小,变量相关的可能性越大,当P<=0.05,否定原假设,认为变量相关。2、信息增益 和 信息增益率在介绍信息增益之前,先来介绍两个基础概念,信息熵和条件熵。信息熵,就是一个随机变量的不确定性程度。条件熵,就是在一个条件下,随机变量的不确定性。(1)信息增益:熵 - 条件熵在一个条件下,信息不确定性减少的程度。Gain(Y,X)=H(Y)-H(Y|X)信息增益越大,表示引入条件X之后,不纯度减少得越多。信息增益越大,则两个变量之间的相关性越大。(2)信息增益率假设,某个变量存在大量的不同值,例如ID,引入ID后,每个子节点的不纯度都为0,则信息增益减少程度达到最大。所以,当不同变量的取值数量差别很大时,引入取值多的变量,信息增益更大。因此,使用信息增益率,考虑到分支个数的影响。Gain_ratio=(H(Y)-H(Y|X))/H(Y|X)二、连续与连续变量之间的相关性1、协方差协方差,表达了两个随机变量的协同变化关系。如果两个变量不相关,则协方差为0。Cov(X,Y)=E{[X-E(X)],[Y-E(Y)]}当 cov(X, Y)>0时,表明 X与Y 正相关;当 cov(X, Y)<0时,表明X与Y负相关;当 cov(X, Y)=0时,表明X与Y不相关。协方差只能对两组数据进行相关性分析,当有两组以上数据时就需要使用协方差矩阵。协方差通过数字衡量变量间的相关性,正值表示正相关,负值表示负相关。但无法对相关的密切程度进行度量。当我们面对多个变量时,无法通过协方差来说明那两组数据的相关性最高。要衡量和对比相关性的密切程度,就需要使用下一个方法:相关系数。2、线性相关系数也叫Pearson相关系数, 主要衡量两个变量线性相关的程度。r=cov(X,Y)/(D(X)D(Y))相关系数是用协方差除以两个随机变量的标准差。相关系数的大小在-1和1之间变化。再也不会出现因为计量单位变化,而数值暴涨的情况了。线性相关系数必须建立在因变量与自变量是线性的关系基础上,否则线性相关系数是无意义的。三、连续与离散变量之间的相关性1、连续变量离散化将连续变量离散化,然后,使用离散与离散变量相关性分析的方法来分析相关性。2、箱形图使用画箱形图的方法,看离散变量取不同值,连续变量的均值与方差及取值分布情况。如果,离散变量取不同值,对应的连续变量的箱形图差别不大,则说明,离散变量取不同值对连续变量的影响不大,相关性不高;反之,相关性高。
2023-07-03 09:33:101

数据挖掘中,连续属性的所有可能的划分的信息增益如何计算啊

不是十分清楚你手中数据的情况,粗略判断,你可以考虑用分类决策树模型来做决策树模型在以连续性变量为目标的时候,是一种特殊形式的回归模型,它可以给出其它信息对目标变量改变情况贡献程度的量化(标准化),还可以用建好的模型预测新样本的目标变量。(数学学到很深的程度以后,你就会知道,这些东西都是相通的)推荐用决策树模型中的CHAID模型,就是卡方自动交互检验模型,如果有更深的问题可以追问我
2023-07-03 09:33:313

网络上ig是什么东西?

IG是一个多义词,所指的意思分别是:1、IG指的是IG电子竞技俱乐部:iG电子竞技俱乐部成立于2011年,旗下拥有英雄联盟分部、DOTA2分部、星际争霸Ⅱ分部等。在DOTA2分部取得了第二届DOTA2国际邀请赛冠军、WCG2012世界总决赛冠军,2017年DAC亚洲邀请赛冠军等。2、IG指的是Instagram:IG是Instagram的缩写,Instagram是一款类似于FB的移动应用,可以进行照片分享。或作为此类应用的代表。可支持iOS、Windows Phone、Android平台的移动应用。3、IG指的是信息增益的简称:信息增益在概率论和信息论中是非对称的,用以度量两种概率分布P和Q的差异。信息增益描述了当使用Q进行编码时,再使用P进行编码的差异。4、IG指的是免疫球蛋白:Ig是免疫球蛋白的缩写。免疫球蛋白是具有抗体活性或化学结构与抗体相似的球蛋白的统称。免疫球蛋白是化学结构上的概念,而抗体是生物功能上的概念。5、IG指的是浏览器:IG是Web2.0技术应用的集大成者,它以第三代搜索引擎技术为基础, 以个人用户为中心,实现了互联网信息的及时获取和主动呈现,是基于桌面的互联网个人门户。不管单机游戏(单人游戏),还是网络游戏(多人游戏),只要符合“电子”、“竞技”这两个特征,那么它们都可以称为广义上的电子竞技。主要区别在于:1、基本属性不同,网络游戏是娱乐游戏,电子竞技属于体育运动项目,网络游戏主要是在虚拟的世界中以追求感受为目的的模拟和角色扮演,电子竞技则是在信息技术营造的虚拟环境中,有组织进行的人与人之间的智力对抗;2、电子竞技有明确统一的比赛规则,最大特点是严格的时间和回合限制,而网游缺乏明确统一的比赛规则,没有时间和回合的限制,容易使人沉迷;3、电子竞技比赛是运动员之间秉着公正公平的体育精神的竞赛,通过人与人之间的智力和体力对抗,决出胜负,而网络游戏主要是人机之间或人与人之间的交流互动,不一定需要人与人的对抗来评判结果。4、电子竞技注重于思维能力、反应能力、心眼四肢协调能力、大局观、意志力,以及团队精神,而部分网游只需充值就能取得优势,这也是电子竞技有别于网络游戏的主要不同。
2023-07-03 09:33:381

什么叫做相关性分析?

在做数据分析时,为了提炼观点,相关性分析是必不可少,而且尤为重要的一个环节。但是,对于不同类型的数据,相关性分析的方法都各不相同。本文,主要按照不同的数据类型,来对各种相关性分析方法进行梳理总结。相关性分析是指对两个或多个具备相关性的变量元素进行分析,相关性不等于因果性。一、离散与离散变量之间的相关性1、卡方检验卡方检验是一种用途很广的计数资料的假设检验方法。它属于非参数检验的范畴,主要是比较两个及两个以上样本率( 构成比)以及两个分类变量的关联性分析。其根本思想就是在于比较理论频数和实际频数的吻合程度或拟合优度问题。它在分类资料统计推断中的应用,包括:两个率或两个构成比比较的卡方检验;多个率或多个构成比比较的卡方检验以及分类资料的相关分析等。(1)假设,多个变量之间不相关(2)根据假设计算得出每种情况的理论值,根据理论值与实际值的差别,计算得到卡方值 及 自由度df=(C-1)(R-1)(3)查卡方表,求p值卡方值越大,P值越小,变量相关的可能性越大,当P<=0.05,否定原假设,认为变量相关。2、信息增益 和 信息增益率在介绍信息增益之前,先来介绍两个基础概念,信息熵和条件熵。信息熵,就是一个随机变量的不确定性程度。条件熵,就是在一个条件下,随机变量的不确定性。(1)信息增益:熵 - 条件熵在一个条件下,信息不确定性减少的程度。Gain(Y,X)=H(Y)-H(Y|X)信息增益越大,表示引入条件X之后,不纯度减少得越多。信息增益越大,则两个变量之间的相关性越大。(2)信息增益率假设,某个变量存在大量的不同值,例如ID,引入ID后,每个子节点的不纯度都为0,则信息增益减少程度达到最大。所以,当不同变量的取值数量差别很大时,引入取值多的变量,信息增益更大。因此,使用信息增益率,考虑到分支个数的影响。Gain_ratio=(H(Y)-H(Y|X))/H(Y|X)二、连续与连续变量之间的相关性1、协方差协方差,表达了两个随机变量的协同变化关系。如果两个变量不相关,则协方差为0。Cov(X,Y)=E{[X-E(X)],[Y-E(Y)]}当 cov(X, Y)>0时,表明 X与Y 正相关;当 cov(X, Y)<0时,表明X与Y负相关;当 cov(X, Y)=0时,表明X与Y不相关。协方差只能对两组数据进行相关性分析,当有两组以上数据时就需要使用协方差矩阵。协方差通过数字衡量变量间的相关性,正值表示正相关,负值表示负相关。但无法对相关的密切程度进行度量。当我们面对多个变量时,无法通过协方差来说明那两组数据的相关性最高。要衡量和对比相关性的密切程度,就需要使用下一个方法:相关系数。2、线性相关系数也叫Pearson相关系数, 主要衡量两个变量线性相关的程度。r=cov(X,Y)/(D(X)D(Y))相关系数是用协方差除以两个随机变量的标准差。相关系数的大小在-1和1之间变化。再也不会出现因为计量单位变化,而数值暴涨的情况了。线性相关系数必须建立在因变量与自变量是线性的关系基础上,否则线性相关系数是无意义的。三、连续与离散变量之间的相关性1、连续变量离散化将连续变量离散化,然后,使用离散与离散变量相关性分析的方法来分析相关性。2、箱形图使用画箱形图的方法,看离散变量取不同值,连续变量的均值与方差及取值分布情况。如果,离散变量取不同值,对应的连续变量的箱形图差别不大,则说明,离散变量取不同值对连续变量的影响不大,相关性不高;反之,相关性高。
2023-07-03 09:33:551

IG什么梗?"?

IG是一个多义词,所指的意思分别是:1、IG指的是IG电子竞技俱乐部:iG电子竞技俱乐部成立于2011年,旗下拥有英雄联盟分部、DOTA2分部、星际争霸Ⅱ分部等。在DOTA2分部取得了第二届DOTA2国际邀请赛冠军、WCG2012世界总决赛冠军,2017年DAC亚洲邀请赛冠军等。2、IG指的是Instagram:IG是Instagram的缩写,Instagram是一款类似于FB的移动应用,可以进行照片分享。或作为此类应用的代表。可支持iOS、Windows Phone、Android平台的移动应用。3、IG指的是信息增益的简称:信息增益在概率论和信息论中是非对称的,用以度量两种概率分布P和Q的差异。信息增益描述了当使用Q进行编码时,再使用P进行编码的差异。4、IG指的是免疫球蛋白:Ig是免疫球蛋白的缩写。免疫球蛋白是具有抗体活性或化学结构与抗体相似的球蛋白的统称。免疫球蛋白是化学结构上的概念,而抗体是生物功能上的概念。5、IG指的是浏览器:IG是Web2.0技术应用的集大成者,它以第三代搜索引擎技术为基础, 以个人用户为中心,实现了互联网信息的及时获取和主动呈现,是基于桌面的互联网个人门户。参考资料来源:百度百科—IG参考资料来源:百度百科—IG参考资料来源:百度百科—IG参考资料来源:百度百科—IG参考资料来源:百度百科—IG
2023-07-03 09:34:021

怎样分析数据的相关性?

在做数据分析时,为了提炼观点,相关性分析是必不可少,而且尤为重要的一个环节。但是,对于不同类型的数据,相关性分析的方法都各不相同。本文,主要按照不同的数据类型,来对各种相关性分析方法进行梳理总结。相关性分析是指对两个或多个具备相关性的变量元素进行分析,相关性不等于因果性。一、离散与离散变量之间的相关性1、卡方检验卡方检验是一种用途很广的计数资料的假设检验方法。它属于非参数检验的范畴,主要是比较两个及两个以上样本率( 构成比)以及两个分类变量的关联性分析。其根本思想就是在于比较理论频数和实际频数的吻合程度或拟合优度问题。它在分类资料统计推断中的应用,包括:两个率或两个构成比比较的卡方检验;多个率或多个构成比比较的卡方检验以及分类资料的相关分析等。(1)假设,多个变量之间不相关(2)根据假设计算得出每种情况的理论值,根据理论值与实际值的差别,计算得到卡方值 及 自由度df=(C-1)(R-1)(3)查卡方表,求p值卡方值越大,P值越小,变量相关的可能性越大,当P<=0.05,否定原假设,认为变量相关。2、信息增益 和 信息增益率在介绍信息增益之前,先来介绍两个基础概念,信息熵和条件熵。信息熵,就是一个随机变量的不确定性程度。条件熵,就是在一个条件下,随机变量的不确定性。(1)信息增益:熵 - 条件熵在一个条件下,信息不确定性减少的程度。Gain(Y,X)=H(Y)-H(Y|X)信息增益越大,表示引入条件X之后,不纯度减少得越多。信息增益越大,则两个变量之间的相关性越大。(2)信息增益率假设,某个变量存在大量的不同值,例如ID,引入ID后,每个子节点的不纯度都为0,则信息增益减少程度达到最大。所以,当不同变量的取值数量差别很大时,引入取值多的变量,信息增益更大。因此,使用信息增益率,考虑到分支个数的影响。Gain_ratio=(H(Y)-H(Y|X))/H(Y|X)二、连续与连续变量之间的相关性1、协方差协方差,表达了两个随机变量的协同变化关系。如果两个变量不相关,则协方差为0。Cov(X,Y)=E{[X-E(X)],[Y-E(Y)]}当 cov(X, Y)>0时,表明 X与Y 正相关;当 cov(X, Y)<0时,表明X与Y负相关;当 cov(X, Y)=0时,表明X与Y不相关。协方差只能对两组数据进行相关性分析,当有两组以上数据时就需要使用协方差矩阵。协方差通过数字衡量变量间的相关性,正值表示正相关,负值表示负相关。但无法对相关的密切程度进行度量。当我们面对多个变量时,无法通过协方差来说明那两组数据的相关性最高。要衡量和对比相关性的密切程度,就需要使用下一个方法:相关系数。2、线性相关系数也叫Pearson相关系数, 主要衡量两个变量线性相关的程度。r=cov(X,Y)/(D(X)D(Y))相关系数是用协方差除以两个随机变量的标准差。相关系数的大小在-1和1之间变化。再也不会出现因为计量单位变化,而数值暴涨的情况了。线性相关系数必须建立在因变量与自变量是线性的关系基础上,否则线性相关系数是无意义的。三、连续与离散变量之间的相关性1、连续变量离散化将连续变量离散化,然后,使用离散与离散变量相关性分析的方法来分析相关性。2、箱形图使用画箱形图的方法,看离散变量取不同值,连续变量的均值与方差及取值分布情况。如果,离散变量取不同值,对应的连续变量的箱形图差别不大,则说明,离散变量取不同值对连续变量的影响不大,相关性不高;反之,相关性高。
2023-07-03 09:34:181

C4.5选择属性用的是()。

C4.5选择属性用的是()。 A.信息增益B.信息增益率C.交叉熵D.信息熵正确答案:信息增益率
2023-07-03 09:34:251

11 - PLS,PCA-LDA, DT, ANN简要介绍

此本来自自己硕士论文的综述部分。 偏最小二乘法可以分为偏最小二乘回归法(Partial least square regression, PLSR)与偏最小二乘法判别分析(Partial least square discriminate analysis, PLS-DA)。PLSR实现的主要思想是将自变量和因变量分别进行线性组合分析,再将求得的数据进行关联分析,所以其为主成分分析、典型相关性分析与多元线性回归建模的组合。PLS-DA是有监督的判别分析法,Gottfries等首先报道了PLS-DA使用,而后Barker与Rayens明确了其用于判别分析的理论基础,并且对于其应用的优缺点由Brereton与Lloyd进一步阐释(Gottfries et al 1995, Barker and Rayens 2003, Brereton and Lloyd 2014 )。其与PLSR区别是因变量是类别,而不是连续的变量,一般是在PLSR分析后加入一个逻辑判别函数如Sigmoid函数(在逻辑回归判别中将详述)。因为两者前面分析部分相似,故这里主要介绍PLSR算法。PLSR中自变量与因变量的基础结构公式为: X = TPT + E Y = UQT + F PLSR一般基于非线性迭代最小二乘算法(NIPALS)建立。其步骤为(1)对自变量X和因变量Y同时提取各自的主成分t1(x1、x2...xn的线性组合)与u1(y1、y2...yn的线性组合),并且要求这两个主成分相关性最大;(2)再进行X与Y分别对t1与u1的回归,若方程达到了设置的满意度,则停止计算;(3)否则,再利用t1对X解释后剩余的信息和u1对Y解释后剩余的信息重新按照(1)进行,再次循环,直到符合设定的阈值。最终X可能会提取到t1、t2...tn个主成分,Y提取到u1、u2…un,使Y的u组合对t1、t2...tn进行回归,进而转化成Y对x1、x2...xn的回归方程(Wold et al 2001)。 PLSR是基于FT-MIR建立模型研究中使用最为广泛和经典的算法,上述关于基于FT-MIR检测牛奶脂肪酸、蛋白质及氨基酸和抗生素残留的定量模型研究中均使用了PLSR算法,可见其应用之普遍。PLS-DA已在食品分析中的产品认证、医学诊断中的疾病分类和代谢组分析中进行广泛应用,并且Gromski等在综述代谢组的分析中,将其和随机森林与支持向量机进行了比较(Gromski et al 2015, Lee et al 2018)。 PLS的优点:(1)能处理样本量远小于特征属性数量的数据;(2)能处理特征属性间存在多重共线性的问题;(3)建立的模型时包含自变量与因变量的信息。其缺点有:(1)不能很好的处理非线性问题;(2)容易过拟合,需注意主成分数的选择。 主成分分析(Principal Component Analysis,PCA)是一种无监督的降维分析方法。PCA降维的基本原则是使降维后方差最大与损失最小,如图1-2。其实现的基本过程:(1)对所有样本进行中心化处理;(2)计算样本的协方差矩阵;(3)对协方差矩阵进行特征值分解;(4)对得到的特征值进行排序,取前n个组成新矩阵;(5)以新矩阵来代替原来样本的特征(Abdi and Williams 2010, Jolliffe and Cadima 2016)。 线性判别分析(Linear discriminat analysis,LDA)是一种有监督的降维与判别分析方法。LDA降维原则是类别内方差最小,类别间方差最大,这样的特点更有利于进行判别分析(Anandkumar et al 2015)。其实现的基本过程为(1)计算样本各类别内的类内散度矩阵Sw;(2)计算样本各类别间的散度矩阵Sb;(3)对Sw做奇异分解,得到Sw -1 ;(4)对Sw -1 Sb做特征分解;(5)取上一步得到的前n特征向量以最大似然法求得各类别的均值和方差做后续的判别分析。 LDA不适用自变量远远大于样本的情况,而PCA可以,故这里将两个算法进行联用,先以PCA进行降维,再以LDA进行判别分析(Yang and Yang 2003)。 PCA-LDA的优点:(1)两个算法的联用可以同时对原数据进行降维和判别分析;(2)LDA采用的是各类均值,算法较优。其缺点有(1)只适合符合高斯分布的样本数据分析;(2)可能会有过拟合的风险。 决策树是基础的分类和回归方法,本研究主要集中在其用于分类上。决策树是通过树状结构对具有特征属性的样本进行分类。每一个决策树都包括根节点(第一个特征属性),内部节点(其他特征属性)以及叶子节点(类别),通用的为每个内部节点有两个分支(Kaminski et al 2018)。其实现的基本步骤:(1)在所有属性中选择最优属性,通过其将样本分类;(2)将分类的样本再通过另一个特征属性再次分类,一直循环直到将样本分到各叶子节点;(3)对生成的树进行剪枝(包含预剪枝与后剪枝)。决策树选择特征属性的算法不同会有不同结果,典型算法包括:CART算法(Breiman et al 1984)、ID3算法(Quinlan 1986)、C4.5算法(Quinlan 1992)等,但这些方法生成的过程相似。 CART采用基尼指数最小化原则,进行特征选择,递归地生成二叉树,该算法只能对特征进行二分。ID3算法在各个节点上采用信息增益来选择特征,每一次选择的特征均使信息增益最大,逐步构建决策树,但缺点是其会选择取值较多的特征,而C4.5算法采用信息增益比选择特征,解决了ID3的缺点。 DT的优点:(1)运行速度相对较快;(2)可同时处理不同类型的数据,基本不需要预处理;(3)结果容易解释,并可进行可视化。其缺点:(1)容易过拟合,导致泛化能力不强;(2)不支持在线学习,若有新样本,DT需要全部重建;(3)当各类别数据样本不平衡时,结果会偏向有更多数值的特征;(4)不能处理样本特征属性之间的相关性(James et al 2013, Painsky and Rosset 2015)。 人工神经网络是以神经元为单位模仿生物神经网络的结构与功能的数学算法模型(Marcel and Sander 2018)。其可以进行线性与非线性的判别分析,属于有监督的学习分类法,主要分为前馈型神经网络、反馈型神经网络与自组织神经网络。 单位神经元如图1-3中A,一般有多个输入的“树突”,再分别给予不同的权重求和,与阈值比较,达到阈值的通过激活函数求出输出数据,最后进行输出。激活函数f通常分为三类:阈值函数、分段函数、双极性连续函数。 这里以经典的单隐层神经网络为例进行讲解,如图1-3中B。其输入层包含三个神经元,隐含层有四个神经元,输出层有两个神经元。其运算过程为由输入层输入数据,随机设定权重和阈值,通过隐藏层计算再传递到输出层,输出层会根据设定的期望进行判断,如果不符合,则返回重新改变权重和阈值,进入循环,直到符合设定的期望再停止运算,这样就能得到模型的权重和阈值,可对新数据进行判别,这种运算法即为常见的反馈型神经网络(Tu 1996)。多层神经网络属于深度学习,以卷积神经网络为基础进行构建。 ANN的优点:(1)能够自主学习;(2)能解决线性与非线性的问题;(3)可处理因变量之间的相互作用。其缺点:(1)需要设置大量的参数进行约束;(2)结果解释性差,为黑箱算法;(3)计算学习时间长;(4)容易过拟合(Tu 1996)。
2023-07-03 09:34:321