【问题标题】:Plot decision tree doesn't give the expected outcome绘制决策树未给出预期结果
【发布时间】:2021-05-04 00:58:01
【问题描述】:

我有一个 (4917, 50, 136) 作为 (batch, step, feature) 的时间序列数据

一共有8个类。

我想在使用 LSTM 模型训练它们之前运行树决策以了解类之间的相似性。

在我为 8 类数据集拟合树之后。

X_train.shape = (245850, 136)

y_train.shape = (245850,)

我试图绘制一棵树,但只有文本出现,Jupyter 显示代码仍在运行。

plt.figure(figsize= (15,15))
tree.plot_tree(clf,filled=True,rounded=True)

部分输出如下所示,实际输出要长得多。

[Text(386.62505751196755, 807.7075471698113, 'X[9] <= 0.214\ngini = 0.825\nsamples = 245850\nvalue = [70000, 44200, 41400, 28350, 23100, 22850, 8750, 7200]'),
 Text(194.71922553590255, 792.322641509434, 'X[8] <= 0.053\ngini = 0.828\nsamples = 202360\nvalue = [54382, 38286, 36102, 22575, 17882, 19248, 7775, 6110]'),
 Text(100.44763452614337, 776.9377358490566, 'X[71] <= -0.421\ngini = 0.824\nsamples = 169238\nvalue = [48221, 31129, 30271, 18167, 14775, 14749, 6717, 5209]'),
 Text(49.35201252001606, 761.5528301886792, 'X[4] <= -0.512\ngini = 0.831\nsamples = 12607\nvalue = [3305, 2125, 1762, 1453, 2254, 898, 423, 387]'),
 Text(18.629607720355484, 746.1679245283019, 'X[69] <= -0.73\ngini = 0.84\nsamples = 5647\nvalue = [1138, 1163, 921, 547, 1014, 459, 179, 226]'),
 Text(4.619141935578377, 730.7830188679245, 'X[0] <= 1.155\ngini = 0.805\nsamples = 1114\nvalue = [320, 193, 134, 75, 271, 62, 38, 21]'), 

更新

我让代码运行了足够长的时间,我得到了一个图形输出,但它不正确。这让我很困惑,因为我的目标是对类之间的关系进行初步检查,但这个决策树显然没有输出正确的信息。

【问题讨论】:

    标签: scikit-learn decision-tree


    【解决方案1】:

    您的绘图输出是正确的。这是你得到的决策树模型。

    如果您想要一个更“小”和“简单”的决策树来可视化初步解释,您应该调整模型的一些超参数。

    具体来说,我建议将您的 max_depth 调整为 5,甚至更少(使用此超参数,您的树将无法拥有大于该值的深度)。结果,您将获得一个简单的模型,但您将能够获得您正在寻找的基本信息:

    dt=DecisionTreeClassifier(max_depth=5, random_state=42)
    

    之后,制作与您相同的情节。

    【讨论】:

      猜你喜欢
      • 2020-12-11
      • 2023-04-04
      • 2012-10-22
      • 1970-01-01
      • 2019-05-27
      • 2016-09-20
      • 1970-01-01
      • 2015-12-18
      • 2020-04-26
      相关资源
      最近更新 更多