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
¶
此学习器超参数的一个(可变)字典。
此对象可用于创建学习器后检查或修改超参数。在构造学习器后修改超参数适用于一些高级用例。由于此方法绕过了对给定超参数集的某些可行性检查,因此通常最好为每个模型重新创建学习器。当前超参数集可以使用 validate_hyperparameters()
手动验证。
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
¶
提取数据集中可用的输入特征。
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,则使用 |
None
|
返回值
类型 | 描述 |
---|---|
ModelType
|
一个训练好的模型。 |
train_imp abstractmethod
¶
train_imp(
ds: InputDataset,
valid: Optional[InputDataset],
verbose: Optional[Union[int, bool]],
) -> ModelType
训练模型。
validate_hyperparameters abstractmethod
¶
如果超参数无效,则抛出异常。
此方法在训练前自动调用,但用户可以调用它以尽早失败。在手动更改学习器的超参数时调用此方法很有意义。这是一种相对高级的方法,不推荐使用(大多数情况下最好重新创建学习器)。
使用示例
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],
)
一个使用 YDF C++ 进行训练的通用 YDF 学习器。
超参数 property
¶
此学习器超参数的一个(可变)字典。
此对象可用于创建学习器后检查或修改超参数。在构造学习器后修改超参数适用于一些高级用例。由于此方法绕过了对给定超参数集的某些可行性检查,因此通常最好为每个模型重新创建学习器。当前超参数集可以使用 validate_hyperparameters()
手动验证。
cross_validation ¶
cross_validation(
ds: InputDataset,
folds: int = 10,
bootstrapping: Union[bool, int] = False,
parallel_evaluations: int = 1,
) -> Evaluation
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,则使用 |
None
|
返回值
类型 | 描述 |
---|---|
ModelType
|
一个训练好的模型。 |