python - 如何修改决策树分类器以排除不可接受的(特征、决策)对?
问题描述
我正在 scikit-learn 中制作一个决策树分类器,以根据临床输入向患者推荐一组医疗方法中的一种。一种称为 no_epi 的治疗对任何因受伤风险而患有癫痫症的患者都是禁忌的,因此不能向癫痫患者建议这些治疗,即使这样的患者会被推荐。
我担心依靠训练集不足以保证场景 epilepsy=True 和 decision=no_epi 永远不会发生,因此我怀疑有必要在训练后将其硬编码到树中。我的第一个猜测是通过一种“反向修剪”来进行硬编码,在这种情况下,我将从最深的 no_epi 叶子开始,然后用一个子树替换它们,如下面的 草图所示。
我的问题有两个:
- 有没有人知道比我草拟的反向修剪方法更好的方法?
- 在对除癫痫以外的特征进行树训练之后,如何在 scikit-learn 中实际实现这种反向修剪?我想过手动修改类的属性和
children_left
属性,但我得到了异常children_right
Tree
AttributeError: attribute 'children_left' of 'sklearn.tree._tree.Tree' objects is not writable
非常感谢您的帮助,祝所有庆祝节日快乐!
解决方案
推荐阅读
- python - 如何获取字符串中每个字符的ord(unicode)?
- jhipster - 更新 Jhipster 用户实体
- android - 如何在运行时使用基于 android sdk 版本的库的可变版本?
- tfs - 如何在部署组注册脚本中显示“用户身份验证令牌”复选框
- image - 在 Azure 中创建自定义 Linux 32 位映像
- pm2 - 未找到 npm 命令 pm2:未找到命令
- php - 如何在不被阻止的情况下将免费的谷歌翻译 api 与 codeigniter 集成?
- c# - 如何在 Blazor.Net 中从 UI 中分离代码
- apache-kafka - Confluent Schema Registry - 转发注册模式请求时出错
- schema.org - 具有非链接级别的面包屑