跳到内容

Tree dataclass

Tree(root: AbstractNode)

root instance-attribute

plot

plot(
    dataspec: DataSpecification,
    max_depth: Optional[int],
    label_classes: Optional[Sequence[str]],
    options: Optional[PlotOptions] = None,
    d3js_url: str = "https://d3js.cn/d3.v6.min.js",
) -> TreePlot

绘制决策树。

参数

名称 类型 描述 默认值
dataspec DataSpecification

树的 dataspec。

必需
max_depth Optional[int]

绘制的最大树深度。设置为 None 表示完整深度。

必需
label_classes Optional[Sequence[str]]

对于分类,数据集的标签类别。

必需
options Optional[PlotOptions]

绘制的高级选项。设置为 None 表示默认样式。

None
d3js_url str

用于加载 d3.js 库的 URL。

'https://d3js.cn/d3.v6.min.js'

返回值

类型 描述
TreePlot

显示树的 HTML 内容。

pretty

pretty(
    dataspec: DataSpecification,
    max_depth: Optional[int] = 6,
) -> str

返回决策树的可打印表示。

使用示例

model = ydf.load_model("my_model")
tree = model.get_tree(0)
print(tree.pretty(model.data_spec()))

参数

名称 类型 描述 默认值
dataspec DataSpecification

树的 dataspec。

必需
max_depth Optional[int]

最大打印深度。

6

条件

AbstractCondition dataclass

AbstractCondition(missing: bool, score: float)

通用条件。

属性

missing:如果输入特征缺失,条件评估的结果。 score:条件的得分。其语义取决于学习算法。

missing instance-attribute

missing: bool

score instance-attribute

score: float

pretty abstractmethod

pretty(dataspec: DataSpecification) -> str

NumericalHigherThanCondition dataclass

NumericalHigherThanCondition(
    missing: bool,
    score: float,
    attribute: int,
    threshold: float,
)

Bases: AbstractCondition

形式为 "attribute >= threshold" 的条件。

属性

attribute:条件测试的属性。 threshold:阈值。

attribute instance-attribute

attribute: int

missing instance-attribute

missing: bool

score instance-attribute

score: float

threshold instance-attribute

threshold: float

pretty

pretty(dataspec: DataSpecification) -> str

CategoricalIsInCondition dataclass

CategoricalIsInCondition(
    missing: bool,
    score: float,
    attribute: int,
    mask: Sequence[int],
)

Bases: AbstractCondition

形式为 "attribute in mask" 的条件。

属性

attribute:条件测试的属性。 mask:排序的掩码值。

attribute instance-attribute

attribute: int

mask instance-attribute

mask: Sequence[int]

missing instance-attribute

missing: bool

score instance-attribute

score: float

pretty

pretty(dataspec: DataSpecification) -> str

CategoricalSetContainsCondition dataclass

CategoricalSetContainsCondition(
    missing: bool,
    score: float,
    attribute: int,
    mask: Sequence[int],
)

Bases: AbstractCondition

形式为 "attribute intersect mask != empty" 的条件。

属性

attribute:条件测试的属性。 mask:排序的掩码值。

attribute instance-attribute

attribute: int

mask instance-attribute

mask: Sequence[int]

missing instance-attribute

missing: bool

score instance-attribute

score: float

pretty

pretty(dataspec: DataSpecification) -> str

DiscretizedNumericalHigherThanCondition dataclass

DiscretizedNumericalHigherThanCondition(
    missing: bool,
    score: float,
    attribute: int,
    threshold_idx: int,
)

Bases: AbstractCondition

形式为 "attribute >= bounds[threshold]" 的条件。

属性

attribute:条件测试的属性。 threshold_idx:dataspec 中阈值的索引。

attribute instance-attribute

attribute: int

missing instance-attribute

missing: bool

score instance-attribute

score: float

threshold_idx instance-attribute

threshold_idx: int

pretty

pretty(dataspec: DataSpecification) -> str

IsMissingInCondition dataclass

IsMissingInCondition(
    missing: bool, score: float, attribute: int
)

Bases: AbstractCondition

形式为 "attribute is missing" 的条件。

属性

attribute:条件测试的属性(或其中一个属性)。

attribute instance-attribute

attribute: int

missing instance-attribute

missing: bool

score instance-attribute

score: float

pretty

pretty(dataspec: DataSpecification) -> str

IsTrueCondition dataclass

IsTrueCondition(
    missing: bool, score: float, attribute: int
)

Bases: AbstractCondition

形式为 "attribute is true" 的条件。

属性

attribute:条件测试的属性。

attribute instance-attribute

attribute: int

missing instance-attribute

missing: bool

score instance-attribute

score: float

pretty

pretty(dataspec: DataSpecification) -> str

NumericalSparseObliqueCondition dataclass

NumericalSparseObliqueCondition(
    missing: bool,
    score: float,
    attributes: Sequence[int],
    weights: Sequence[float],
    threshold: float,
)

Bases: AbstractCondition

形式为 "attributes * weights >= threshold" 的条件。

属性

attributes:条件测试的属性。 weights:每个属性的权重。 threshold:条件的阈值。

attributes instance-attribute

attributes: Sequence[int]

missing instance-attribute

missing: bool

score instance-attribute

score: float

threshold instance-attribute

threshold: float

weights instance-attribute

weights: Sequence[float]

pretty

pretty(dataspec: DataSpecification) -> str

节点

AbstractNode

is_leaf abstractmethod property

is_leaf: bool

指示节点是否是叶子节点。

pretty abstractmethod

pretty(
    dataspec: DataSpecification,
    prefix: str,
    is_pos: Optional[bool],
    depth: int,
    max_depth: Optional[int],
) -> str

Leaf dataclass

Leaf(value: AbstractValue)

Bases: AbstractNode

is_leaf property

is_leaf: bool

value instance-attribute

pretty

pretty(
    dataspec: DataSpecification,
    prefix: str,
    is_pos: Optional[bool],
    depth: int,
    max_depth: Optional[int],
) -> str

NonLeaf dataclass

NonLeaf(
    value: Optional[AbstractValue] = None,
    condition: Optional[AbstractCondition] = None,
    pos_child: Optional[AbstractNode] = None,
    neg_child: Optional[AbstractNode] = None,
)

Bases: AbstractNode

condition class-attribute instance-attribute

condition: Optional[AbstractCondition] = None

is_leaf property

is_leaf: bool

neg_child class-attribute instance-attribute

neg_child: Optional[AbstractNode] = None

pos_child class-attribute instance-attribute

pos_child: Optional[AbstractNode] = None

value class-attribute instance-attribute

value: Optional[AbstractValue] = None

pretty

pretty(
    dataspec: DataSpecification,
    prefix: str,
    is_pos: Optional[bool],
    depth: int,
    max_depth: Optional[int],
) -> str

AbstractValue dataclass

AbstractValue(num_examples: float)

通用值/预测/输出。

属性

num_examples:带权重的节点中的示例数量。

num_examples instance-attribute

num_examples: float

pretty abstractmethod

pretty() -> str

RegressionValue dataclass

RegressionValue(
    num_examples: float,
    value: float,
    standard_deviation: Optional[float] = None,
)

Bases: AbstractValue

回归树的回归值。

也可用于分类和排序的梯度提升树。

属性

value:树的值。其语义取决于树:对于回归随机森林和回归 GBDT,此值是与标签单位相同的回归值。对于分类和排序 GBDT,此值是 logit。 standard_deviation:附加到值的可选标准差。

num_examples instance-attribute

num_examples: float

standard_deviation class-attribute instance-attribute

standard_deviation: Optional[float] = None

value instance-attribute

value: float

pretty

pretty() -> str

ProbabilityValue dataclass

ProbabilityValue(
    num_examples: float, probability: Sequence[float]
)

Bases: AbstractValue

概率分布值。

用于随机森林 / CART 分类树。

属性

probability:标签类别概率的数组,即第 i 个值是 "label_value_idx_to_value(..., i)" 类别的概率。请注意,第一个值保留给词汇表外

num_examples instance-attribute

num_examples: float

probability instance-attribute

probability: Sequence[float]

pretty

pretty() -> str

UpliftValue dataclass

UpliftValue(
    num_examples: float, treatment_effect: Sequence[float]
)

Bases: AbstractValue

分类或回归提升树的提升值。

属性

treatment_effect:治疗组效应的数组。此数组的第 i 个元素是第 "i+1" 个治疗与对照组相比的效应。

num_examples instance-attribute

num_examples: float

treatment_effect instance-attribute

treatment_effect: Sequence[float]

pretty

pretty() -> str