当前位置:首页>python>python 实现对率回归决策树

python 实现对率回归决策树

  • 2026-07-02 16:41:34
python 实现对率回归决策树

概述

调用sklearn.linear_model中的LogisticRegression库,尝试通过对率回归对离散数据进行划分,对每个属性进行预测,选取正确率最大的属性作为根节点,并对该节点的每个属性取值进行划分选择,依此类推,最终绘制一棵决策树。

程序功能

对于给定西瓜数据集3.0,将字符串类型的属性取值转换为数值类型以便模型进行训练,并将连续属性离散化以便选取划分点,通过正确率来选取根节点,最终得到决策树数组。通过dealanddraw(n0, pngname)函数将数组转化为字典类型,绘制决策树,将决策树以图片形式保存在程序的同一目录下。

完整代码链接

python实现对率回归决策树https://download.csdn.net/download/qq_36949278/85235060

程序数据及代码

  • 主程序
# -*- coding: utf-8 -*-"""Created on Sun Apr 21 11:57:22 2019@author: lazyn"""import osfrom sklearn.linear_model import LogisticRegressionimport numpy as npimport pandas as pdimport warningsfrom createPlot import createPlotimport matplotlib.pyplot as plt  warnings.filterwarnings("ignore")#定义连续值处理函数def con_deal(temp_df, a):    for j in range(0len(temp_df)):        temp_df.iat[j] = 0 if(temp_df.iat[j] < a) else 1    return temp_df#定义计算连续值正确率的函数def con_acc(data, Y):    a = np.sort(np.array(data))    a = (a[0len(a) - 1] + a[1len(a)])/2    max_acc, ind = 00    for i in range(0len(a)):        temp_df = con_deal(data.copy(), a[i])         X0 = np.array(temp_df).reshape(-11)        logreg = LogisticRegression()        logreg.fit(X0, Y)        acc = logreg.score(X0, Y)        if max_acc < acc:            max_acc = acc            ind = i            temp_df0 = X0    print(round(max_acc, 3), end = ', 判断结果为:\n')    print(logreg.predict(temp_df0))    return [max_acc, a[ind]]#获取根节点函数def getroot(X1, Y1, m):    max_acc = 0    for i in m:        if i != '密度' and i != '含糖率':            print(i + '节点, 正确率为', end = ':')            X0 = np.array(X1[i]).reshape(-11            logreg = LogisticRegression()            logreg.fit(X0, Y1)            acc = logreg.score(X0, Y1)            print(round(acc, 3), end = ', 判断结果为:\n')            print(logreg.predict(X0))            if max_acc < acc:                max_acc = acc                root = i        else:            print(i + '节点, 正确率为', end = ':')            acc = con_acc(X1[i], Y1)[0]            if max_acc < acc:                max_acc = acc                root = i    return root#获取决策树数组函数def gettree(X, Xo, Y, m):    n1, n2 = [], []      root = getroot(X, Y['好瓜'], m)    print('故选择' + root + '为根节点')    n1.append(root)    m.remove(root)     if root == '密度' or root == '含糖率':        div = con_acc(X[root], Y['好瓜'])[1]        X[root], Xo[root], Y[root] = con_deal(X[root], div), con_deal(Xo[root], div), con_deal(X[root], div)#    print(X, Xo)    Attr, Attro = X[root].unique(), Xo[root].unique()#    print(Attr, Attro)    for j, jo in zip(Attr, Attro):        n3 = []        if root == '密度' or root == '含糖率':            if j >= div:                key = '≥' + str(div)            else:                key = '<' + str(div)        else:            key = jo        print(root + '为' + key + '时:')          n3.append(key)        X1 = X[X[root] == j]        Xo1 = Xo[Xo[root] == jo]        Y0 = Y[Y[root] == j]        Y1 = Y0['好瓜']        if Y1.unique().size > 1:            Xn, Xon, Yn = X1, Xo1, Y0            n3.append(gettree(Xn, Xon, Yn, m))           else:            flag = '好瓜' if Y1.unique() == '是' else '坏瓜'            print(flag)            n3.append(flag)        n2.append(n3)    n1 += n2    return n1        #数组处理及绘制函数def dealanddraw(n0, pngname):    alstr = str(n0)    alstr = alstr.replace(','':'); alstr = alstr.replace(']: ['',')    alstr = alstr.replace(']:''],')    alstr = alstr.replace('[''{'); alstr = alstr.replace(']''}')    inTree = eval(alstr)#    print(inTree)    plt.figure(figsize = (107))    createPlot(inTree)#    dpi, 控制每英寸长度上的分辨率;bbox_inches, 能删除figure周围的空白部分    plt.savefig(pngname, dpi = 400, bbox_inches = 'tight')f = open('watermelon3.txt')watermelon3_df = pd.read_table(f)Xo = watermelon3_df[['色泽',	'根蒂''敲声''纹理''脐部''触感''密度''含糖率']]m = list(watermelon3_df.columns)h = 0.001for i in m:    if i != '密度' and i != '含糖率' and i != '好瓜':        size_mapping = {}        m0 = watermelon3_df[i].unique()        j = 1        for i0 in m0:            size_mapping[i0] = j            j += 1#        print(size_mapping)        watermelon3_df[i] = watermelon3_df[i].map(size_mapping)X = watermelon3_df[['色泽',	'根蒂''敲声''纹理''脐部''触感''密度''含糖率']]Y = watermelon3_dfm = list(X.columns)n0 = gettree(X, Xo, Y, m)pngname = os.path.basename(os.path.realpath(__file__)).replace('py''png')dealanddraw(n0, pngname)
  • 决策树绘制程序

参考自决策树的绘制_TaoTaoFu的博客-CSDN博客_绘制决策树,并做部分修改后代码如下:

import matplotlib.pyplot as plt#用来正常显示中文plt.rcParams['font.sans-serif'] = ['SimHei']#用来正常显示负号plt.rcParams['axes.unicode_minus'] = False#设置画节点用的盒子的样式decisionNode = dict(boxstyle = "sawtooth", color = '#3366FF')leafNode = dict(boxstyle = "round4", color = '#FF6633')#设置画箭头的样式arrow_args = dict(arrowstyle="<-", color='g')def getNumLeafs(myTree):    #初始化树的叶子节点个数    numLeafs = 0    #myTree.keys()获取树的非叶子节点'no surfacing'和'flippers'    #list(myTree.keys())[0]获取第一个键名'no surfacing'    firstStr = list(myTree.keys())[0]    #通过键名获取与之对应的值,即{0: 'no', 1: {'flippers': {0: 'no', 1: 'yes'}}}    secondDict = myTree[firstStr]    #遍历树,secondDict.keys()获取所有的键    for key in secondDict.keys():        #判断键是否为字典,键名1和其值就组成了一个字典,如果是字典则通过递归继续遍历,寻找叶子节点        if type(secondDict[key]).__name__=='dict':            numLeafs += getNumLeafs(secondDict[key])        #如果不是字典,则叶子结点的数目就加1        else:            numLeafs += 1    #返回叶子节点的数目    return numLeafsdef getTreeDepth(myTree):    #初始化树的深度    maxDepth = 0    #获取树的第一个键名    firstStr = list(myTree.keys())[0]    #获取键名所对应的值    secondDict = myTree[firstStr]    #遍历树    for key in secondDict.keys():        #如果获取的键是字典,树的深度加1        if type(secondDict[key]).__name__ == 'dict':            thisDepth = 1 + getTreeDepth(secondDict[key])        else:            thisDepth = 1        #去深度的最大值        if thisDepth > maxDepth : maxDepth = thisDepth    #返回树的深度    return maxDepth#绘图相关参数的设置def plotNode(nodeTxt,centerPt,parentPt,nodeType):    '''    annotate函数是为绘制图上指定的数据点xy添加一个nodeTxt注释    nodeTxt是给数据点xy添加一个注释,xy为数据点的开始绘制的坐标,位于节点的中间位置    xycoords设置指定点xy的坐标类型,xytext为注释的中间点坐标,textcoords设置注释点坐标样式    bbox设置装注释盒子的样式,arrowprops设置箭头的样式    '''    '''    figure points:表示坐标原点在图的左下角的数据点    figure pixels:表示坐标原点在图的左下角的像素点    figure fraction:此时取值是小数,范围是([0,1],[0,1]),在图的左下角时xy是(0,0),最右上角是(1,1)    其他位置是按相对图的宽高的比例取最小值    axes points : 表示坐标原点在图中坐标的左下角的数据点    axes pixels : 表示坐标原点在图中坐标的左下角的像素点    axes fraction : 与figure fraction类似,只不过相对于图的位置改成是相对于坐标轴的位置    '''    createPlot.ax1.annotate(nodeTxt, xy = parentPt, xycoords = 'axes fraction'                            xytext = centerPt, textcoords = 'axes fraction',                            va = "center", ha = "center", bbox = nodeType, arrowprops = arrow_args)#绘制线中间的文字(0和1)的绘制def plotMidText(cntrPt, parentPt, txtString):    xMid = (parentPt[0] - cntrPt[0])/2.0 + cntrPt[0]   #计算文字的x坐标    yMid = (parentPt[1] - cntrPt[1])/2.0 + cntrPt[1]   #计算文字的y坐标    createPlot.ax1.text(xMid, yMid, txtString, va = "center", ha = "center", rotation = 20)#绘制树def plotTree(myTree, parentPt, nodeTxt):    #获取树的叶子节点    numLeafs = getNumLeafs(myTree)    #获取树的深度    depth = getTreeDepth(myTree)    #firstStr = myTree.keys()[0]    #获取第一个键名    firstStr = list(myTree.keys())[0]    #计算子节点的坐标    cntrPt = (plotTree.xoff + (1.0 + float(numLeafs))/2.0/plotTree.totalW, plotTree.yoff)    #绘制线上的文字    plotMidText(cntrPt, parentPt, nodeTxt)    #绘制节点    plotNode(firstStr, cntrPt, parentPt, decisionNode)    #获取第一个键值    secondDict = myTree[firstStr]    #计算节点y方向上的偏移量,根据树的深度    plotTree.yoff = plotTree.yoff - 1.0/plotTree.totalD    for key in secondDict.keys():        if type(secondDict[key]).__name__ == 'dict':            #递归绘制树            plotTree(secondDict[key], cntrPt, str(key))        else:            #更新x的偏移量,每个叶子结点x轴方向上的距离为 1/plotTree.totalW            plotTree.xoff = plotTree.xoff + 1.0 / plotTree.totalW            #绘制非叶子节点            plotNode(secondDict[key], (plotTree.xoff, plotTree.yoff), cntrPt, leafNode)            #绘制箭头上的标志            plotMidText((plotTree.xoff, plotTree.yoff), cntrPt, str(key))    plotTree.yoff = plotTree.yoff + 1.0 / plotTree.totalD#绘制决策树def createPlot(inTree):    #清除figure    plt.clf()    axprops = dict(xticks = [], yticks = [])    #创建一个1行1列1个figure,并把网格里面的第一个figure的Axes实例返回给ax1作为函数createPlot()    #的属性,这个属性ax1相当于一个全局变量,可以给plotNode函数使用    createPlot.ax1 = plt.subplot(frameon = False, **axprops)    #获取树的叶子节点    plotTree.totalW = float(getNumLeafs(inTree))    #获取树的深度    plotTree.totalD = float(getTreeDepth(inTree))    #节点的x轴的偏移量为-1/plotTree.totlaW/2,1为x轴的长度,除以2保证每一个节点的x轴之间的距离为1/plotTree.totlaW*2    plotTree.xoff = -0.5/plotTree.totalW    plotTree.yoff = 1.0    plotTree(inTree, (0.51.0), '')    plt.show()#inTree = {'色泽': {'青绿': {'敲声': {'浊响': '好瓜', '清脆': '坏瓜', '沉闷': '坏瓜'}},\#  '乌黑': {'根蒂': {'蜷缩': '好瓜', '稍蜷': {'纹理': {'稍糊': '好瓜', '清晰': '坏瓜'}}}},\#  '浅白': '坏瓜'}}#createPlot(inTree)
  • 西瓜数据集3.0
色泽	根蒂	敲声	纹理	脐部	触感	密度	含糖率	好瓜青绿	蜷缩	浊响	清晰	凹陷	硬滑	0.697	0.46	是乌黑	蜷缩	沉闷	清晰	凹陷	硬滑	0.774	0.376	是乌黑	蜷缩	浊响	清晰	凹陷	硬滑	0.634	0.264	是青绿	蜷缩	沉闷	清晰	凹陷	硬滑	0.608	0.318	是浅白	蜷缩	浊响	清晰	凹陷	硬滑	0.556	0.215	是青绿	稍蜷	浊响	清晰	稍凹	软粘	0.403	0.237	是乌黑	稍蜷	浊响	稍糊	稍凹	软粘	0.481	0.149	是乌黑	稍蜷	浊响	清晰	稍凹	硬滑	0.437	0.211	是乌黑	稍蜷	沉闷	稍糊	稍凹	硬滑	0.666	0.091	否青绿	硬挺	清脆	清晰	平坦	软粘	0.243	0.267	否浅白	硬挺	清脆	模糊	平坦	硬滑	0.245	0.057	否浅白	蜷缩	浊响	模糊	平坦	软粘	0.343	0.099	否青绿	稍蜷	浊响	稍糊	凹陷	硬滑	0.639	0.161	否浅白	稍蜷	沉闷	稍糊	凹陷	硬滑	0.657	0.198	否乌黑	稍蜷	浊响	清晰	稍凹	软粘	0.36	0.37	否浅白	蜷缩	浊响	模糊	平坦	硬滑	0.593	0.042	否青绿	蜷缩	沉闷	稍糊	稍凹	硬滑	0.719	0.103	否

结果

对率回归决策树

不足

对于正确率相同的节点,选取优先遍历的属性作为根节点,与基于信息增益进行划分选择的方法相比,通过下图,可知两种方法绘制的决策树正确率均为100%,但对率回归方法容易忽略在同一正确率下划分较佳的节点,从而使决策树层数增多,变得更加复杂。

信息增益决策树

数据集来源

《机器学习》周志华

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 12:01:45 HTTP/2.0 GET : https://f.mffb.com.cn/a/494681.html
  2. 运行时间 : 0.304881s [ 吞吐率:3.28req/s ] 内存消耗:4,629.40kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=6782b4334ef3dc6864645a2ef3d058c5
  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.000551s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000671s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.003069s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.003586s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000894s ]
  6. SELECT * FROM `set` [ RunTime:0.007523s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001279s ]
  8. SELECT * FROM `article` WHERE `id` = 494681 LIMIT 1 [ RunTime:0.021023s ]
  9. UPDATE `article` SET `lasttime` = 1783051305 WHERE `id` = 494681 [ RunTime:0.007526s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.017872s ]
  11. SELECT * FROM `article` WHERE `id` < 494681 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.054125s ]
  12. SELECT * FROM `article` WHERE `id` > 494681 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.020984s ]
  13. SELECT * FROM `article` WHERE `id` < 494681 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.041760s ]
  14. SELECT * FROM `article` WHERE `id` < 494681 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.020941s ]
  15. SELECT * FROM `article` WHERE `id` < 494681 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.012262s ]
0.306508s