当前位置:首页>python>决策树模型超详细解析(附Python实战)

决策树模型超详细解析(附Python实战)

  • 2026-03-23 20:13:55
决策树模型超详细解析(附Python实战)

朋友们,大家好,我是小静。

公众号很久没有更新了,因为近几个月一直在实习。之前一直在更新SQL系列,想学习SQL的朋友可以暂时先阅读之前的文章,基本可以应对日常工作。接下来我准备更新一些机器学习中的经典算法,先从树模型进行更新。

在机器学习算法家族中,有一个模型既古老又现代,既简单又强大——它就是决策树。从金融风控的信用评估,到医疗诊断的辅助决策;从电商推荐的用户分层,到工业质检的缺陷识别——决策树以其可解释性强、无需特征缩放、能处理混合类型数据等独特优势,成为无数AI解决方案的基石。

今天这篇文章中,将从核心思想到三大经典算法的详细讲解,再到鸢尾花数据集的python完整实战,一起完成决策树的学习,文章中附有案例的完整代码,感兴趣的朋友不妨亲自实践一下。

决策树的核心思想

想象一下你决定是否去户外打高尔夫球的过程:

  • 先看天气:如果下雨→ 取消;如果晴天 → 继续考虑

  • 再看风速:如果强风→ 取消;如果微风 → 继续考虑

  • 最后看湿度:如果高湿→ 取消;如果正常 → 出发

这个层层递进的判断流程,天然形成了一棵树:每个内部节点是一个条件判断,每个分支是判断结果,每个叶子节点是最终决策。

决策树算法正是模仿了这种人类的决策思维:

以全部训练数据为根节点,每一步选择一个“最优特征”对数据进行划分;在划分后的子节点上递归执行“选最优特征-划分数据”的操作;直到满足停止条件,比如所有样本属于同一类别、特征用尽、树深度达到预设值、样本数少于阈值等,停止递归并将最终子节点设为叶节点。

决策树的核心难题——如何定义“最优特征”,即如何进行特征选择。

不同的算法采用了不同的度量标准进行特征选择,这也造就了ID3、C4.5、CART三大经典算法。

三大经典算法

这里介绍核心思想和简单的公式,若想对原理公式详细了解,可以阅读李航老师的《统计学习方法》第二版。

| ID3算法:信息增益最大化

核心思想:
ID3(Iterative Dichotomiser 3)算法是使用信息增益作为特征选择准则,信息增益衡量的是划分前后数据集纯度的提升程度。
  • 信息熵:衡量一个系统的混乱程度,即不纯度的度量,公式为
Entropy(D)的值越大代表该节点中D的混乱程度越高,纯度越低。
  • 信息增益:数据集D划分前后的信息熵的变化,这一差值称为“信息增益”,公式为
Gain(D,a)越大,表示通过该特征划分数据集后所带来的整体的信息熵下降程度越大,也就是数据集纯度的越大。所以ID3算法选择信息增益最大的特征作为当前节点的分裂特征。
特征选择在于选取对训练数据具有分类能力的特征。
ID3算法使用信息增益来度量该特征的分类能力,信息增益越大,使用该特征划分数据集后的纯度提升程度越大,说明该特征的分类能力越强。
下面通过一个案例来详细了解ID3算法的计算原理。
案例详解:
这里以李航老师的《统计学习方法》第二版中的贷款申请样本数据集为例进行演算。自变量是贷款申请人的4个特征,因变量是类别列,即是否同意贷款。
Step1:计算根节点熵
Step2:计算每个特征的信息增益
这里用A1表示年龄,A2表示有工作,A3表示有自己的房子,A4表示信贷情况。
  • 特征A1:年龄
  • 特征A2:有工作
  • 特征A3:有自己的房子
  • 特征A4:信贷情况
由上可知,Gain(D,A3)>Gain(D,A4)>Gain(D,A2)>Gain(D,A1),所以选择A3作为最优特征。
Step3:进一步划分
选择A3作为根节点特征后,数据集D被拆分为两个子集D1和D2。
①子集D1:A3=“是”的子节点
由上可知,该子集的类别均为“是”,无需进一步划分。
②子集D2:A3=“否”的子节点
针对数据集D2,由于最终的类别并不唯一,可在A1、A2和A4中进一步选择信息增益最大的特征进行拆分。
数据集D2的整体信息熵:
下面计算A1、A2和A4的信息增益:
  • 特征A1在D2中的分布
  • 特征A2在D2中的分布
  • 特征A4在D2中的分布
由上可知,Gain(D2,A2)>Gain(D2,A4)>Gain(D2,A1),所以选择A2进行进一步划分。
当A2=“是”时,类别均为“是”,所以该节点是一个叶节点;
当A2=“否”时,类别均为“否”,故该节点也是一个叶节点。
经过两次划分,数据集已经纯净,生成如下决策树:
ID3算法特点:
只能处理离散数据;
偏好取值多的特征。因为该特征取值越多,信息增益容易偏大。若将ID作为一个特征,则产生与样本量相同的数据子集,且每个子集仅有一个数据,不纯度为0,信息增益最大化。为了避免这一问题,提出了C4.5算法。

| C4.5算法:信息增益率最大化

核心思想:
C4.5是ID3的改进版,使用信息增益率来克服对多值特征的偏好,并引入连续特征处理、缺失值处理和剪枝。
其中,SplitInfo(a)为分裂信息,衡量特征取值分散程度。
C4.5算法特点:
生成多叉树,通过二分法离散化以支持连续特征,可处理缺失值,引入后剪枝。

| CART算法:基尼指数最小化

核心思想:
CART(Classification and Regression Tree)由Breiman等人在1984年提出,对分类树使用基尼指数最小化准则,对回归树使用均方误差最小化作为划分准则,且生成的是二叉树
基尼指数度量数据集的不确定性,即不纯度:
基尼指数值越大,样本集合的不确定性越大,这⼀点与熵相似。若所有样本均属于同一个类别,则基尼指数为0。当样本均匀分布在各个类别时,基尼指数最大,此时数据集的不纯度最高,不确定性最大。
案例详解:
继续使用上述的贷款申请样本,用CART算法生成决策树。
Step1:根节点基尼指数
Step2:计算各特征的基尼指数
  • 特征A1:年龄(青年/中年/老年)
由于CART是二叉树结构,当变量有多个属性时需要合并成2个,因此年龄变量的属性共有3种二分方式。
二分方式1:青年 vs (中年 + 老年)
青年子集(5个):是2,否3
中年 + 老年子集(10个):是7,否3
加权基尼:
二分方式2:中年 vs (青年 + 老年)
中年子集(5个):是3,否2
青年 + 老年子集(10个):是6,否4
加权基尼:
二分方式3:老年 vs (青年 + 中年)
老年子集(5个):是4,否1
青年 + 中年子集(10个):是5,否5
加权基尼:
由上可知,年龄的最佳基尼为0.44,方式一和三均可。
  • 特征A2:有工作(是/否)
是子集(5个):是5,否0
否子集(10个):是4,否6
加权基尼:
  • 特征A3:有自己的房子(是/否)
是子集(6个):是6,否0
否子集(9个):是3,否6
加权基尼:
  • 特征A4:信贷情况(一般/好/非常好)
二分方式1:一般 vs (好 + 非常好)
一般子集(5个):是1,否4
好 + 非常好子集(10个):是8,否2
加权基尼:
二分方式2:好 vs (一般 + 非常好)
好子集(6个):是4,否2
一般 + 非常好子集(9个):是5,否4
加权基尼:
二分方式3:非常好 vs (一般 + 好)
非常好子集(4个):是4,否0
一般 + 好子集(11个):是5,否6
加权基尼:
由上可知,信贷情况的最佳基尼为0.32,二分方式一最佳。
总体来看,特征A3(有自己的房子)的基尼指数最小,所以选择A3为最优特征。生成两个节点,A3=“是”的节点类别均为“是”,所以该节点为叶节点,A3=“否”的节点类别包含3个“是”和6个“否”,需进一步划分。
将A3=“否”的数据集划分为两个子集,然后按照上述思路在A1、A2和A4中寻找最优特征。这里不再详细列出过程,感兴趣的同学可以自己试着推理下。最终结果是特征A2的基尼指数最小。形成的决策树和前面的ID3算法是一样的。
CART算法特点:
生成二叉树,可处理连续特征,内置剪枝,广泛应用于随机森林和GBDT。

决策树的剪枝

在决策树的生成过程中,很容易过拟合,因为在训练集上为了尽可能将更多样本正确分类,可能会将样本数已经很小的数据子集进一步细分。从而可能生长得过于复杂,把噪声也学习了进去。剪枝是防止过拟合的主要手段,分为预剪枝和后剪枝。

| 预剪枝

在决策树生长过程中,提前停止分裂。通过设定阈值(如最大深度、节点最小样本数、最小信息增益等),当不满足条件时,当前节点不再分裂,直接作为叶节点。

优点:训练速度快,能有效防止过拟合。
缺点:可能过早停止,导致欠拟合,且阈值需人工设定。

| 后剪枝

先让决策树完全生长,然后自底向上对内部节点进行考察,用验证集判断将某个子树替换为叶节点是否能提升泛化性能,若是则剪枝。
优点:比预剪枝更少欠拟合风险,通常效果更好。
缺点:训练时间较长,需额外验证集。
两者都是避免过拟合的重要手段,通常可以先做简单预剪枝,如限制树深度等,再用后剪枝做精细优化,兼顾效率和效果。

完整案例

1. 环境准备

2. 数据集加载

共有150个样本数据,每个样本包含4个特征变量,单位均为cm,具体特征如下:花萼长度(sepal length)、花萼宽度(sepal width)、花瓣长度(petal length)、花瓣宽度(petal width)。

类别共3类:山鸢尾(setosa)、杂色鸢尾(versicolor)、维吉尼亚鸢尾(virginica),每类各有50个样本数据。

3. 描述性统计

描述性统计:
特征箱线图:
花瓣特征:是区分鸢尾品种的最强特征,setosa与另外两类几乎完全分离,versicolor和virginica也有明显分界。
花萼特征:花萼长度可区分setosa与另外两类,但versicolor和virginica重叠较多;花萼宽度则是setosa更宽,另外两类更窄。
异常值:各特征均存在少量异常值,对整体分布影响较小。
散点图矩阵:
这是鸢尾花数据集的特征两两对比图,对角线为单变量分布密度曲线,非对角线为特征间散点图,用于直观展示特征相关性和类别可分性。
特征重要性:花瓣长度/宽度是区分鸢尾品种的核心特征,花萼特征辅助作用有限。
类别可分性:setosa(山鸢尾)可通过任意花瓣特征完全区分,versicolor(变色鸢尾)和virginica(维吉尼亚鸢尾)在花瓣特征上可较好分离,在花萼特征上重叠较多。

4. 划分训练集和测试集

按照7:3的比例划分训练集和测试集,即训练集105个,测试集45个。

5. 训练决策树模型

采用CART算法训练决策树模型,并设置最大深度为3的预剪枝策略,防止过拟合。

6. 模型评估

① 准确率与分类报告

输入结果如下:
测试集准确率:0.9778,这意味着在45个测试样本中,只有1个样本被误分类,分类效果很好。
setosa:完全正确,精准率和召回率均为1.00,说明该类别与另外两类区分度极高。
versicolor:召回率为0.93,表示有1个真实的versicolor样本被误判为virginica;精准率为1.00,意味着所有被预测为versicolor的样本都是正确的。
virginica:精准率为0.94,说明有1个被预测为virginica的样本实际是versicolor;召回率为1.00,表明所有真实的virginica均被正确识别。
仅有的1个错误发生在versicolor与virginica之间,这也是鸢尾花分类中最常见的混淆情况,因为这两个物种在花瓣特征上有部分重叠。
模型在setosa上的分类完全正确,符合预期,因为setosa的花瓣特征与其他两类差异明显。

② ROC曲线与AUC

对于多分类问题,我们采用“一对多”(One-vs-Rest)策略,为每个类别绘制ROC曲线,并计算micro和macro平均AUC。
输入结果如下:
ROC 曲线核心概念
横轴(FPR):假正率 = 被误判为正类的负样本 / 所有负样本
纵轴(TPR):真正率 = 被正确识别的正样本 / 所有正样本
对角线(随机猜测线):AUC=0.5,代表无区分能力
曲线越靠近左上角,模型区分能力越强;AUC值越接近1.0,性能越好
平均AUC解读
Micro-average AUC(微平均):将所有子问题的真阳性(TP)、假阳性(FP)、真阴性(TN)、假阴性(FN)等统计量全局汇总,然后基于这些汇总的统计量计算整体的TPR和FPR,从而得到一条综合的ROC曲线和对应的AUC。
Macro-average AUC(宏平均):先计算每个类别的AUC,再取算术平均。对每个类别一视同仁,不关心各类别样本数量的差异。当各类别样本分布均衡时,macro平均能很好地反映模型在每个类别上的平均区分能力。
整体来看,模型具有极佳的泛化能力,所有类别均被高置信度区分,仅versicolor与virginica之间存在轻微重叠。微平均和宏平均AUC均大于0.98,模型在多分类任务上表现出色。

7. 决策树可视化

输出结果如下:

8. 特征重要性

输出结果如下:
特征选择:模型仅依赖花瓣长度和宽度两个特征,即可完成高精度分类,花萼特征无贡献;
分类逻辑:决策树结构清晰,先分离易区分的setosa,再通过多层分裂细分versicolor和virginica;
模型可解释性:CART决策树提供了直观的“if-else”分类规则,可解释性极强,适合业务场景落地。

决策树的优缺点

| 优点

解释性极强:决策树的结构直观,可通过可视化清晰展示决策路径,非技术人员也能理解预测逻辑;
无需大量数据预处理:对特征尺度不敏感(无需标准化/归一化),能容忍一定程度的缺失值,且能同时处理离散型和连续型特征;
自动捕捉非线性关系:决策树属于非线性模型,能自动挖掘特征与目标变量之间的复杂交互作用,无需人为指定函数形式;
训练和预测效率较高:基于贪心递归划分,计算复杂度较低,适合快速建模。

| 缺点

易过拟合:如果不加剪枝或限制树深度,决策树会过度拟合训练数据中的噪声,导致泛化能力下降;
模型稳定性差:对训练数据的微小变化敏感,数据集的微小变动可能导致树结构发生较大变化。
非全局最优:贪心算法每次只选择当前最优分裂,得到的树是局部最优而非全局最优;
对类别不平衡数据敏感:当类别分布严重不平衡时,决策树可能偏向多数类,需配合采样或代价敏感学习。

本篇总结

本篇首先介绍了决策树模型的核心思想,然后是三大经典算法的原理,从ID3到C4.5再到CART,随后通过一个鸢尾花的完整案例了解了决策树在分类中的应用,并学习了精准率、召回率、ROC曲线、AUC值等分类模型评价指标,最后介绍了决策树模型的优缺点。

如果这篇内容对您有帮助,欢迎转发、收藏,有任何问题也欢迎在评论区交流讨论~

注:以上内容仅供学习交流,侵权删.

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 09:54:04 HTTP/2.0 GET : https://f.mffb.com.cn/a/482082.html
  2. 运行时间 : 0.151868s [ 吞吐率:6.58req/s ] 内存消耗:4,614.46kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=2d6bc9fa6f0448357a78193dbaf890da
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000909s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001542s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000748s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000704s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001221s ]
  6. SELECT * FROM `set` [ RunTime:0.000606s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001478s ]
  8. SELECT * FROM `article` WHERE `id` = 482082 LIMIT 1 [ RunTime:0.004162s ]
  9. UPDATE `article` SET `lasttime` = 1774576444 WHERE `id` = 482082 [ RunTime:0.013208s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000678s ]
  11. SELECT * FROM `article` WHERE `id` < 482082 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001127s ]
  12. SELECT * FROM `article` WHERE `id` > 482082 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001212s ]
  13. SELECT * FROM `article` WHERE `id` < 482082 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001782s ]
  14. SELECT * FROM `article` WHERE `id` < 482082 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.021886s ]
  15. SELECT * FROM `article` WHERE `id` < 482082 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.008370s ]
0.156388s