淘宝实时优惠券网站怎么做的网站怎样做
news/
2025/9/23 2:50:52/
文章来源:
淘宝实时优惠券网站怎么做的,网站怎样做,百度搜索公司网站展现图片,wordpress cgi漏洞文章目录 1 基本原理2 最优划分属性选择2.1 信息增益选择最优属性方法2.2 信息增益率选择最优属性方法——C4.5决策树2.3 基尼指数选择最优属性——CART决策树 3 剪枝处理3.1 预剪枝3.2 后剪枝 决策树是一种常用的机器学习算法#xff0c;它模拟了人类决策过程中的思考方式。想… 文章目录 1 基本原理2 最优划分属性选择2.1 信息增益选择最优属性方法2.2 信息增益率选择最优属性方法——C4.5决策树2.3 基尼指数选择最优属性——CART决策树 3 剪枝处理3.1 预剪枝3.2 后剪枝 决策树是一种常用的机器学习算法它模拟了人类决策过程中的思考方式。想象一下你要决定是否出门散步你可能会考虑几个因素天气、心情、体力状况等。每个因素都像是一个问题你的回答是或否会引导你做出最终的决定。决策树就是这样一种结构它通过一系列的问题来帮助你做出选择。 通俗来说决策树由以下几个部分组成 根节点Root Node这是决策树的起点相当于你要解决的问题。比如你的问题可能是“今天是否出门散步”。 内部节点Internal Nodes这些节点代表决策过程中的考虑因素。比如你可能要考虑“天气是否晴朗”、“心情是否好”、“体力是否充沛”。 分支Branches每个内部节点都会分出两个或更多的分支这些分支代表了对问题的肯定或否定回答。例如“天气晴朗”是一个分支“天气不晴朗”是另一个分支。 叶节点Leaf Nodes这些是决策树的终点代表了最终的决策结果。比如一个叶节点可能是“出门散步”另一个可能是“不出门”。
构建决策树的过程通常包括以下几个步骤 数据准备收集相关的数据这些数据包含了不同的特征比如天气、心情等和对应的决策结果是否出门。 选择最佳特征在每个节点上算法会评估哪个特征最能区分数据以便做出最好的决策。这通常涉及到计算特征的信息增益、基尼不纯度或熵等指标。 递归构建从根节点开始根据选择的最佳特征递归地创建分支直到达到叶节点。每个叶节点都对应一个决策结果。 剪枝为了防止过拟合模型在训练数据上表现很好但在新数据上表现不佳通常会对决策树进行剪枝移除一些不必要的分支。
决策树的优点是模型简单直观易于理解和解释。但它也有缺点比如容易过拟合对于数据中的小变化可能过于敏感。为了克服这些缺点通常会使用一些改进的决策树算法如随机森林和梯度提升树等。
1 基本原理
伪代码如下
def 决策树构建(数据集):if 数据集中所有实例都属于同一类别则返回单节点树return 类别为该类别if 特征集为空则返回单节点树类别为数据集中实例数最多的类别否则选择最优特征 best_feature 划分数据集(在第二节讲最重要的)使用最优特征 best_feature 划分数据集得到子集合 sub_datasets对于每个子集合 sub_datasetif 子集合为空则将该子节点标记为叶节点类别为数据集中实例数最多的类别else 递归调用 决策树构建(sub_dataset)得到子树将子树作为当前节点的一个分支返回当前节点作为根节点的决策树
2 最优划分属性选择
其中
关键是如何选择最优划分属性使得节点纯度越来越高
用信息增益增益率基尼系数
2.1 信息增益选择最优属性方法
信息增益Information Gain是决策树算法中用来选择特征的一个关键指标。它基于信息论中的熵Entropy概念用于衡量数据集的不确定性。在构建决策树时我们希望选择那些能够最大程度减少数据集不确定性的特征即具有最高信息增益的特征。利用C
信息增益的基本思想是如果一个特征能够将数据集划分成几个子集而这些子集在类别上更加纯净即子集中的实例大多数属于同一个类别那么这个特征就被认为是好的因为它增加了我们对数据集分类的知识。
好的我们来用一个简单的例子来讲解信息增益的计算。假设你想要决定是否去打篮球而天气是一个影响因素。你有以下数据
总共有 10 天的数据其中 6 天是晴天4 天是阴天在晴天中有 4 天去打篮球2 天不去在阴天中有 1 天去打篮球3 天不去
首先我们需要计算在没有任何信息的情况下天气对我们的决定产生的平均信息量。这个值称为信息熵Entropy。计算公式如下 Entropy − p ( play ) × log 2 ( p ( play ) ) − p ( not play ) × log 2 ( p ( not play ) ) \text{Entropy} -p(\text{play}) \times \log_2(p(\text{play})) - p(\text{not play}) \times \log_2(p(\text{not play})) Entropy−p(play)×log2(p(play))−p(not play)×log2(p(not play))
其中 p ( play ) p(\text{play}) p(play)是打篮球的概率 p ( not play ) p(\text{not play}) p(not play) 是不打篮球的概率。在这个例子中两个都等于0.5
所以信息熵为 Entropy − 0.5 × log 2 ( 0.5 ) − 0.5 × log 2 ( 0.5 ) − 0.5 × ( − 1 ) − 0.5 × ( − 1 ) 1 \text{Entropy} -0.5 \times \log_2(0.5) - 0.5 \times \log_2(0.5) -0.5 \times (-1) - 0.5 \times (-1) 1 Entropy−0.5×log2(0.5)−0.5×log2(0.5)−0.5×(−1)−0.5×(−1)1
接下来我们计算根据天气晴天或阴天来划分数据集后的信息增益。信息增益表示在知道了天气信息之后对于打篮球决策的不确定性减少了多少,减少的越多越好计算公式如下 Gain ( S , Weather ) Entropy ( S ) − ∑ v ∈ Values ( Weather ) ∣ S v ∣ ∣ S ∣ × Entropy ( S v ) \text{Gain}(S, \text{Weather}) \text{Entropy}(S) - \sum_{v \in \text{Values}(\text{Weather})} \frac{|S_v|}{|S|} \times \text{Entropy}(S_v) Gain(S,Weather)Entropy(S)−∑v∈Values(Weather)∣S∣∣Sv∣×Entropy(Sv)
其中( S ) 是原始数据集 ( Weather ) ( \text{Weather}) (Weather) 是天气这个特征 Values ( Weather ) \text{Values}(\text{Weather}) Values(Weather) 是天气可能的取值这里是晴天和阴天 ( S v ) ( S_v ) (Sv) 是在天气为 ( v ) 时的数据集。
在这个例子中我们需要计算晴天和阴天两种情况下的信息熵
对于晴天 Entropy ( S sunny ) − 4 6 × log 2 ( 4 6 ) − 2 6 × log 2 ( 2 6 ) ≈ 0.918 \text{Entropy}(S_{\text{sunny}}) -\frac{4}{6} \times \log_2(\frac{4}{6}) - \frac{2}{6} \times \log_2(\frac{2}{6})≈0.918 Entropy(Ssunny)−64×log2(64)−62×log2(62)≈0.918
对于阴天 Entropy ( S overcast ) − 1 4 × log 2 ( 1 4 ) − 3 4 × log 2 ( 3 4 ) ≈ 0.811 \text{Entropy}(S_{\text{overcast}}) -\frac{1}{4} \times \log_2(\frac{1}{4}) - \frac{3}{4} \times \log_2(\frac{3}{4}) ≈0.811 Entropy(Sovercast)−41×log2(41)−43×log2(43)≈0.811
然后我们计算信息增益 Gain ( S , Weather ) Entropy ( S ) − ( 6 10 × Entropy ( S sunny ) 4 10 × Entropy ( S overcast ) ) 1 − 0.874 ≈ 0.126 \text{Gain}(S, \text{Weather}) \text{Entropy}(S) - \left( \frac{6}{10} \times \text{Entropy}(S_{\text{sunny}}) \frac{4}{10} \times \text{Entropy}(S_{\text{overcast}}) \right)1-0.874≈0.126 Gain(S,Weather)Entropy(S)−(106×Entropy(Ssunny)104×Entropy(Sovercast))1−0.874≈0.126
将具体的值代入计算即可得到信息增益的结果
例子中我们只有一个属性即天气情况实际中有可能有多个属性比如心情作业多少等等
我们要依次计算每一个属性的信息增益选出信息增益最大的那个不确定度减小最多的那个属性作为下一次的划分属性
2.2 信息增益率选择最优属性方法——C4.5决策树
信息增益率是在信息增益基础上的一些改进可以减少对可取值数目较多的属性产生的偏好
首先计算出增益率Gain Gain ( S , Weather ) Entropy ( S ) − ( 6 10 × Entropy ( S sunny ) 4 10 × Entropy ( S overcast ) ) 1 − 0.874 ≈ 0.126 \text{Gain}(S, \text{Weather}) \text{Entropy}(S) - \left( \frac{6}{10} \times \text{Entropy}(S_{\text{sunny}}) \frac{4}{10} \times \text{Entropy}(S_{\text{overcast}}) \right)1-0.874≈0.126 Gain(S,Weather)Entropy(S)−(106×Entropy(Ssunny)104×Entropy(Sovercast))1−0.874≈0.126
然后要计算一个新的指标 I V ( feature ) − ∑ i 1 n ∣ S i ∣ ∣ S ∣ × log 2 ( ∣ S i ∣ ∣ S ∣ ) IV(\text{feature}) -\sum_{i1}^{n} \frac{|S_i|}{|S|} \times \log_2 \left( \frac{|S_i|}{|S|} \right) IV(feature)−∑i1n∣S∣∣Si∣×log2(∣S∣∣Si∣)
最后两个一相除就可以了,得到GainRatio GainRatio ( feature ) Gain ( feature ) I V ( feature ) \text{GainRatio}(\text{feature}) \frac{\text{Gain}(\text{feature})}{IV(\text{feature})} GainRatio(feature)IV(feature)Gain(feature)
对应到我们上面的例子
对于“天气” I V ( Weather ) − ( 6 10 × log 2 ( 6 10 ) 4 10 × log 2 ( 4 10 ) ) IV(\text{Weather}) -\left( \frac{6}{10} \times \log_2(\frac{6}{10}) \frac{4}{10} \times \log_2(\frac{4}{10}) \right) IV(Weather)−(106×log2(106)104×log2(104))[ ≈ 0.971 ]
最后计算信息增益率
对于“天气” GainRatio ( Weather ) 0.126 0.971 \text{GainRatio}(\text{Weather}) \frac{0.126}{0.971} GainRatio(Weather)0.9710.126≈ 0.13
2.3 基尼指数选择最优属性——CART决策树
CARTClassification and Regression Trees决策树是一种常用的机器学习算法他用基尼指数进行节点的选择。
基尼指数越小节点的纯度越高也就是节点中包含的样本属于同一类别的概率越大。
基尼指数的计算公式如下 G i n i ( p ) ∑ k 1 K p k ( 1 − p k ) Gini(p) \sum_{k1}^{K} p_k (1 - p_k) Gini(p)∑k1Kpk(1−pk)
其中(p_k) 是样本属于第 (k) 类的概率(K) 是类别的总数。对于二分类问题(K2)可以简化为 G i n i ( p ) 1 − p 2 − ( 1 − p ) 2 Gini(p) 1 - p^2 - (1-p)^2 Gini(p)1−p2−(1−p)2
在构建CART决策树时算法会选择使得划分后基尼指数最小的特征和划分点作为节点的划分依据从而构建出一棵具有较高预测准确率的决策树。
让我们来考虑一个更贴近日常生活的例子假设有一个电商平台想要通过用户的年龄和购买金额来预测用户是否会购买某种产品。我们有以下几位用户的数据
用户ID年龄购买金额元是否购买125200是235150是345100否45550否56520否
我们以年龄作为划分特征考虑以30岁和40岁为划分点进行划分。 以30岁为划分点划分后的基尼指数计算如下 年龄小于等于30岁的组 购买25岁、200元未购买无 年龄大于30岁的组 购买35岁、150元未购买45岁、100元55岁、50元65岁、20元 计算基尼指数 G i n i 30岁 1 − ( 1 2 0 2 ) 0 Gini_{\text{30岁}} 1 - (1^2 0^2) 0 Gini30岁1−(1202)0 以40岁为划分点划分后的基尼指数计算如下 年龄小于等于40岁的组 购买25岁、200元35岁、150元未购买无 年龄大于40岁的组 购买无未购买45岁、100元55岁、50元65岁、20元 计算基尼指数 G i n i 40岁 1 − ( 0. 5 2 0. 5 2 ) ≈ 0.5 Gini_{\text{40岁}} 1 - (0.5^2 0.5^2) ≈ 0.5 Gini40岁1−(0.520.52)≈0.5
综合来看以30岁为划分点的基尼指数更低因此在构建决策树时应该选择以30岁为划分点进行划分。
3 剪枝处理
决策树的剪枝是为了防止过拟合而进行的一种策略通过去除一些决策树中的节点即剪枝可以提高模型的泛化能力。主要有两种剪枝策略预剪枝Pre-pruning和后剪枝Post-pruning。
3.1 预剪枝
预剪枝Pre-pruning在构建决策树的过程中在每个节点划分前都先进行判断若当前节点的划分不能提高泛化性能则停止划分将当前节点标记为叶节点。预剪枝的优点是简单高效可以减少决策树的过拟合但可能会导致欠拟合因为有时会过早停止划分导致模型过于简单。
3.2 后剪枝
后剪枝Post-pruning先构建完整的决策树然后自底向上地对树进行剪枝。具体做法是对每个非叶节点尝试将其变为叶节点并评估剪枝前后的泛化性能差异若剪枝后泛化性能提高则进行剪枝操作。后剪枝的优点是可以获得更加精确的剪枝决策但需要额外的计算开销。
无论是预剪枝还是后剪枝剪枝的目的都是为了在保持模型准确性的同时降低模型的复杂度避免过拟合。在实际应用中可以根据数据集的大小和特性以及模型的性能要求来选择合适的剪枝策略。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/911161.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!