You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

决策树预测结果可读性优化、标签替换及多特征预测方案问询

问题1:提升预测数组可读性、显示对应特征名

你训练完成的GridSearchCV对象如果是用pandas DataFrame作为训练特征集输入的,会自带feature_names_in_属性存储所有特征的排列顺序,直接将特征名和新输入值配对输出即可:

# 从训练好的模型中提取特征名列表
feature_names = clf_dt_grid.feature_names_in_
# 配对特征名与输入值,输出为字典格式更易读
named_input = dict(zip(feature_names, new_input[0]))
print("输入特征明细:", named_input)

如果训练时用的是numpy数组没有自动记录特征名,你可以提前手动维护一个和训练时特征顺序一致的特征名列表,再按上述方法配对即可。

问题2:将数值预测结果替换为对应标签

有两种常用实现方案:

  • 如果你训练前对标签做过编码(比如使用LabelEncoder),直接调用编码器的逆转换方法即可:
# 沿用训练时使用的标签编码器对象
new_output_label = label_encoder.inverse_transform(new_output)
print(new_output_label) # 输出结果为['yes']
  • 标签类别较少的情况下,可以直接写映射字典实现转换,代码更轻量化:
label_map = {0: "no", 1: "yes"}
new_output_label = [label_map[val] for val in new_output]
print(new_output_label)

问题3:多特征场景下的预测方式合理性

你当前的写法功能上可以运行,但不是最优方案,存在特征顺序写错的风险:多特征场景下直接传入嵌套列表,一旦特征的排列顺序和训练时不一致,会直接导致预测结果错误。
更稳妥的写法是用pandas DataFrame传入新样本,会自动对齐特征顺序,不需要手动核对列序:

import pandas as pd
# 按特征名填写输入值,无需关注排列顺序
new_input = pd.DataFrame([{
    "time_ms": 0.28945,
    # 剩余特征按名填写即可
    ...
}])
new_output = clf_dt_grid.predict(new_input)

如果需要批量预测大量样本,提前把输入整理成和训练集特征顺序一致的数组/ DataFrame即可,性能不会有差异。

内容的提问来源于stack exchange,提问作者ilymp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 18:45:04