跳过内容

GenericLearner

GenericLearner

GenericLearner(
    learner_name: str,
    task: Task,
    label: Optional[str],
    weights: Optional[str],
    ranking_group: Optional[str],
    uplift_treatment: Optional[str],
    data_spec_args: DataSpecInferenceArgs,
    data_spec: Optional[DataSpecification],
    hyper_parameters: HyperParameters,
    explicit_learner_arguments: Optional[Set[str]],
    deployment_config: DeploymentConfig,
    tuner: Optional[AbstractTuner],
    feature_selector: Optional[AbstractFeatureSelector],
    extra_training_config: Optional[TrainingConfig],
)

基类:ABC

一个通用的 YDF 学习器。

超参数 property

hyperparameters: HyperParameters

此学习器超参数的一个(可变)字典。

此对象可用于创建学习器后检查或修改超参数。在构造学习器后修改超参数适用于一些高级用例。由于此方法绕过了对给定超参数集的某些可行性检查,因此通常最好为每个模型重新创建学习器。当前超参数集可以使用 validate_hyperparameters() 手动验证。

learner_name property

learner_name: str

capabilities classmethod

capabilities() -> LearnerCapabilities

cross_validation abstractmethod

cross_validation(
    ds: InputDataset,
    folds: int = 10,
    bootstrapping: Union[bool, int] = False,
    parallel_evaluations: int = 1,
) -> Evaluation

交叉验证学习器并返回评估结果。

使用示例

import pandas as pd
import ydf

dataset = pd.read_csv("my_dataset.csv")
learner = ydf.RandomForestLearner(label="label")
evaluation = learner.cross_validation(dataset)

# In a notebook, display an interractive evaluation
evaluation

# Print the evaluation
print(evaluation)

# Look at specific metrics
print(evaluation.accuracy)

参数

名称 类型 描述 默认值
ds InputDataset

用于交叉验证的数据集。

必需
folds int

交叉验证折叠的数量。

10
bootstrapping Union[bool, int]

控制是否使用自举法 (bootstrapping) 来评估置信区间和统计检验(即所有以 “[B]” 结尾的指标)。如果设置为 false,则禁用自举法。如果设置为 true,则启用自举法并使用 2000 个自举样本。如果设置为整数,则指定要使用的自举样本数量。在此情况下,如果数量小于 100,将引发错误,因为自举法不会产生有用的结果。

False
parallel_evaluations int

使用多线程并行训练和评估的模型数量。请注意,每个模型可能已经使用多线程进行训练(参见学习器构造函数的 `num_threads` 参数)。

1

返回值

类型 描述
Evaluation

交叉验证评估结果。

extract_input_feature_names abstractmethod

extract_input_feature_names(ds: InputDataset) -> List[str]

提取数据集中可用的输入特征。

post_init abstractmethod

post_init()

在 **init** 后调用。

train

train(
    ds: InputDataset,
    valid: Optional[InputDataset] = None,
    verbose: Optional[Union[int, bool]] = None,
) -> ModelType

在给定数据集上训练模型。

数据集读取选项在学习器上给出。有关 YDF 中数据集读取的更多信息,请查阅学习器文档或 ydf.create_vertical_dataset()。

使用示例

import ydf
import pandas as pd

train_ds = pd.read_csv(...)
test_ds = pd.read_csv(...)

learner = ydf.GradientBoostedTreesLearner(label="label")
model = learner.train(train_ds)
evaluation = model.evaluate(test_ds)

使用验证数据集的示例

import ydf
import pandas as pd

train_ds = pd.read_csv(...)
valid_ds = pd.read_csv(...)
test_ds = pd.read_csv(...)

learner = ydf.GradientBoostedTreesLearner(label="label")
model = learner.train(train_ds, valid=valid_ds)
evaluation = model.evaluate(test_ds)

如果训练中断(例如,在 Colab 中中断单元格执行),模型将恢复到中断时的状态。

参数

名称 类型 描述 默认值
ds InputDataset

训练数据集。

必需
valid Optional[InputDataset]

可选的验证数据集。一些学习器,例如随机森林,不需要验证数据集。一些学习器,例如梯度提升树,如果在未提供验证数据集的情况下,会自动从训练数据集中提取验证数据集。

None
verbose Optional[Union[int, bool]]

训练期间的详细程度级别。如果为 None,则使用 ydf.verbose 的全局详细程度级别。级别为:0 或 False:无日志,1 或 True:在 Notebook 中打印少量日志;在终端中打印所有日志。2:在所有界面上打印所有日志。

None

返回值

类型 描述
ModelType

一个训练好的模型。

train_imp abstractmethod

train_imp(
    ds: InputDataset,
    valid: Optional[InputDataset],
    verbose: Optional[Union[int, bool]],
) -> ModelType

训练模型。

validate_hyperparameters abstractmethod

validate_hyperparameters() -> None

如果超参数无效,则抛出异常。

此方法在训练前自动调用,但用户可以调用它以尽早失败。在手动更改学习器的超参数时调用此方法很有意义。这是一种相对高级的方法,不推荐使用(大多数情况下最好重新创建学习器)。

使用示例

import ydf
import pandas as pd

train_ds = pd.read_csv(...)

learner = ydf.GradientBoostedTreesLearner(label="label")
learner.hyperparameters["max_depth"] = 20
learner.validate_hyperparameters()
model = learner.train(train_ds)
evaluation = model.evaluate(test_ds)

GenericCCLearner

GenericCCLearner(
    learner_name: str,
    task: Task,
    label: Optional[str],
    weights: Optional[str],
    ranking_group: Optional[str],
    uplift_treatment: Optional[str],
    data_spec_args: DataSpecInferenceArgs,
    data_spec: Optional[DataSpecification],
    hyper_parameters: HyperParameters,
    explicit_learner_arguments: Optional[Set[str]],
    deployment_config: DeploymentConfig,
    tuner: Optional[AbstractTuner],
    feature_selector: Optional[AbstractFeatureSelector],
    extra_training_config: Optional[TrainingConfig],
)

基类:GenericLearner

一个使用 YDF C++ 进行训练的通用 YDF 学习器。

超参数 property

hyperparameters: HyperParameters

此学习器超参数的一个(可变)字典。

此对象可用于创建学习器后检查或修改超参数。在构造学习器后修改超参数适用于一些高级用例。由于此方法绕过了对给定超参数集的某些可行性检查,因此通常最好为每个模型重新创建学习器。当前超参数集可以使用 validate_hyperparameters() 手动验证。

learner_name property

learner_name: str

capabilities classmethod

capabilities() -> LearnerCapabilities

cross_validation

cross_validation(
    ds: InputDataset,
    folds: int = 10,
    bootstrapping: Union[bool, int] = False,
    parallel_evaluations: int = 1,
) -> Evaluation

extract_input_feature_names

extract_input_feature_names(ds: InputDataset) -> List[str]

post_init

post_init()

train

train(
    ds: InputDataset,
    valid: Optional[InputDataset] = None,
    verbose: Optional[Union[int, bool]] = None,
) -> ModelType

在给定数据集上训练模型。

数据集读取选项在学习器上给出。有关 YDF 中数据集读取的更多信息,请查阅学习器文档或 ydf.create_vertical_dataset()。

使用示例

import ydf
import pandas as pd

train_ds = pd.read_csv(...)
test_ds = pd.read_csv(...)

learner = ydf.GradientBoostedTreesLearner(label="label")
model = learner.train(train_ds)
evaluation = model.evaluate(test_ds)

使用验证数据集的示例

import ydf
import pandas as pd

train_ds = pd.read_csv(...)
valid_ds = pd.read_csv(...)
test_ds = pd.read_csv(...)

learner = ydf.GradientBoostedTreesLearner(label="label")
model = learner.train(train_ds, valid=valid_ds)
evaluation = model.evaluate(test_ds)

如果训练中断(例如,在 Colab 中中断单元格执行),模型将恢复到中断时的状态。

参数

名称 类型 描述 默认值
ds InputDataset

训练数据集。

必需
valid Optional[InputDataset]

可选的验证数据集。一些学习器,例如随机森林,不需要验证数据集。一些学习器,例如梯度提升树,如果在未提供验证数据集的情况下,会自动从训练数据集中提取验证数据集。

None
verbose Optional[Union[int, bool]]

训练期间的详细程度级别。如果为 None,则使用 ydf.verbose 的全局详细程度级别。级别为:0 或 False:无日志,1 或 True:在 Notebook 中打印少量日志;在终端中打印所有日志。2:在所有界面上打印所有日志。

None

返回值

类型 描述
ModelType

一个训练好的模型。

train_imp

train_imp(
    ds: InputDataset,
    valid: Optional[InputDataset],
    verbose: Optional[Union[int, bool]],
) -> ModelType

validate_hyperparameters

validate_hyperparameters() -> None