跳到内容

更新日志

0.10.0 - 2025-02-11

新特性

  • 公开 model.save(..., pure_serving=True) 用于保存不含调试信息的模型。
  • 允许用户向学习器提供训练 proto 配置。
  • 添加向量序列特征支持。
  • 为 Isolation Forest 模型添加变量重要性。
  • 添加 ydf.help.loading_data() 以打印关于支持的数据集格式类型的信息。
  • 添加实验性 Tabular Transformer 实现。
  • 添加 gzipped blob sequence 作为新的模型格式(仍为可选)。
  • 启用 Poisson 损失用于模型分析和快速推理。

修复

  • 修复对 object 类型 Numpy 数组的多维特征识别。
  • 修复 Isolation Forest 对于少量训练样本的子样本计数问题。
  • 修复斜向分割的 NUM_NODES 变量重要性问题。

其他

  • 更新了 protobuf、grpc 和 abseil 的 OSS 依赖项。

发布音乐

  1. 降 E 大调交响曲《英雄交响曲》,作品 55。路德维希·凡·贝多芬

0.9.0 - 2024-12-02

新特性

破坏性变更

  • 分类标签类别现在始终按字母顺序(对于字符串标签)或递增顺序(对于整数标签)排列。
  • 将 model.analyze() 中的 typo partial_depepence_plot 更改为 partial_dependence_plot。

新特性

  • 添加支持 Avro 文件路径/分布式训练,使用 "avro:" 前缀。
  • 为内存数据集添加支持离散化数值特征。
  • 公开排序模型的 MRR。
  • 添加 model.predict_class 以生成分类模型最可能预测的类别。
  • 通过 feature_selector 学习器构造函数参数添加支持自动特征选择。更多详情请参见特征选择教程
  • 添加独立预测评估 ydf.evaluate_predictions()
  • 添加新的超参数 sparse_oblique_max_num_projections
  • 为稀疏斜向权重添加选项 "POWER_OF_TWO" 和 "INTEGER"。
  • 当使用列表作为多维特征时,发出适当的错误。

修复

  • 回归和排序 CEP 缩放已纠正。

发布音乐

约翰·B·塞勒斯。传统歌曲

0.8.0 - 2024-09-23

破坏性变更

  • 不允许学习器使用位置参数,标签和任务除外。
  • 从 Isolation Forest 学习器中移除不受支持/无效的超参数。
  • 从不支持分布式训练和恢复训练的学习器中移除相关参数。
  • 默认情况下,model.analyze 最长分析 20 秒(即 maximum_duration 默认为 20)。
  • 将分类集合中的布尔值转换为小写,使其与分类特征的处理方式一致。

新特性

  • 在 VerticalDataset 上进行训练时发出警告,并在训练期间尝试修改 VerticalDataset 中的列时失败。
  • 用户可以在评估期间覆盖模型的任务、标签或组。
  • 为 Isolation Forest 模型添加 num_examples_per_tree() 方法。
  • 公开慢速引擎,用于使用 use_slow_engine=True 调试预测和评估。
  • 将 GBT 模型训练速度提高约 10%。
  • 支持 Isolation Forests 中的分类和布尔特征。
  • 添加 ydf.util.read_tf_recordydf.util.write_tf_record 以方便 TF Record 数据集的使用。
  • 将 LAMBDA_MART_NDCG5 重命名为 LAMBDA_MART_NDCG。旧名称已弃用,但仍可使用。
  • 允许配置 NDCG 损失的截断。
  • 使用 model.predictmodel.evaluate 时启用多线程。
  • model.analyze 的默认线程数等于核心数。
  • model.benchmark 中添加多线程结果。
  • 添加参数以控制 model.analyze 的最大持续时间。
  • 添加对 Unicode 字符串的支持,以与分类值相同的方式规范化分类集值,并验证其类型。
  • 添加对排序梯度提升树模型的分布式训练支持。

修复

  • 修复回归评估图表的标签。
  • 改进了 Isolation Forest 训练失败时的错误提示。

发布音乐

永动机《音乐玩笑曲》,作品 257。约翰·施特劳斯(子)

0.7.0 - 2024-08-21

新特性

  • 在学习器上公开 validate_hyperparameters()
  • 澄清学习器中哪些参数是可选的。
  • 在 JAX FeatureEncoder 中添加对非字符串分类特征值的支持。
  • 提高 Isolation Forests 的性能。
  • 模型可以使用 model.serialize()ydf.deserialize_model 进行序列化/反序列化为字节。
  • 模型可以安全地进行 Pickle。
  • 原生支持 Xarray 作为所有操作(例如训练、评估、预测)的数据集格式。
  • model.to_jax_function 的输出可以转换为 TensorFlow Lite 模型。
  • 更改文件训练时扫描的默认样本数,以确定列的语义和字典,从 1 万更改为 10 万。
  • 各种错误消息的改进。
  • 异常检测模型的评估。
  • 异常检测模型的斜向分割。
  • 显著减少使用离散化数值进行分布式训练的内存使用。

修复

  • 修复多维不规则输入的解析问题。
  • 修复 isolation forest 超参数默认值问题。
  • 修复包含空分片的分布式训练失败问题。
  • 处理训练中的无序分类集。
  • 修复 dataspec 忽略未展开列(例如多维分类整数)定义的问题。
  • 修复为非不规则多维输入定义分类集时的错误。
  • MacOS: 修复与其他使用 protobuf 的库(例如 Tensorflow)的兼容性问题。
  • 修复 Xarray 数据集中的 NAs 解析问题。

发布音乐

Ingharese 风格回旋曲 Quasi un capriccio “对失去的 Groschen 的愤怒”,作品 129。路德维希·凡·贝多芬

0.6.0 - 2024-07-04

新特性

  • model.to_jax_function 现在总是输出一个 FeatureEncoder 来帮助将数据馈送到 JAX 模型。
  • CART 学习器中 num_candidate_attributes 的默认值从 0(随机森林风格抽样)更改为 -1(不抽样)。这是 CART 普遍接受的逻辑。
  • model.to_tensorflow_saved_model 支持与 YDF 模型签名不同的预处理函数。
  • 改进了馈送错误大小 Numpy 数组时的错误消息。
  • model.evaluate 中添加加权评估选项。

修复

  • 修复使用浮点权重时混淆矩阵的显示问题。

已知问题

  • MacOS 构建已损坏。

0.5.0 - 2024-06-17

新特性

  • 添加 Isolation Forests 模型支持。
  • model.print_tree 添加 max_depth 参数。
  • train 方法添加 verbose 参数,该参数等效于 ydf.verbose 但有时更方便。
  • 添加 SKLearn 到 YDF 模型转换器:ydf.from_sklearn
  • 改进调用模型时使用不受支持数据时的错误消息。
  • 添加对 numpy 2.0 的支持。

教程

  • 添加异常检测教程。
  • 添加 YDF 和 JAX 模型组合教程。

修复

  • 修复在 colab 中绘制斜向树 (model.plot_tree) 时的错误。

0.4.3- 2024-05-07

新特性

  • 添加 model.to_jax_function() 函数,用于将 YDF 模型转换为可与其他 JAX 操作结合使用的 JAX 函数。
  • 当分类特征看起来像数字时打印警告。
  • 添加对 Python 3.12 的支持。

修复

  • 修复非分类学习器的交叉验证问题。
  • 修复缺失 ydf/model/tree/plotter.js 文件。
  • 解决 PYDF 和 TF-DF 之间的 YDF Proto 依赖冲突。

0.4.2- 2024-04-22

新特性

  • 当 TF-DF 和 YDF 共享的 proto 依赖冲突时显示错误消息。
  • 添加选项为 CartLearner 指定验证数据集。
  • DecisionForestsLearnerCartLearner 的别名。

0.4.1- 2024-04-18

修复

  • 解决 PYDF 和 TF-DF 之间 YDF 依赖冲突问题。如果在 PYDF 之后安装 TF-DF,导入 YDF 将因 has no attribute 'DType' 错误而失败。
  • 允许在缓存的 TensorFlow 数据集上进行训练。

0.4.0 - 2024-04-10

新特性

  • 可以使用 features= 训练参数选择/配置多维特征。
  • 程序化访问部分依赖图和变量重要性。
  • 添加 model.to_tensorflow_function() 函数,用于将 YDF 模型转换为可与其他 TensorFlow 操作结合使用的 TensorFlow 函数。此函数与 Keras 2 和 Keras 3 兼容。
  • model.to_tensorflow_function(mode="tf") 添加参数 servo_api=Falsefeed_example_proto=False,分别用于导出遵循 Servo API 和消耗序列化 TensorFlow Example proto 的 TensorFlow SavedModel。
  • model.to_tensorflow_function 函数添加 pre_processingpost_processing 参数,以便将预处理/后处理操作打包到 TensorFlow SavedModel 中。

教程

0.3.0 - 2024-03-15

破坏性变更

  • 自定义损失现在要求提供梯度,而不是梯度的负值。
  • 澄清了 YDF 可能会修改自定义损失函数返回的 numpy 数组。

新特性

  • 允许使用 Jax 定义自定义损失。
  • 允许在自定义损失上设置 may_trigger_gc
  • 添加对 MHLD 斜向决策树的支持。
  • 公开超参数 sparse_oblique_max_num_projections
  • 使用 model.plot_tree() 生成树的 HTML 图表。
  • 修复 protobuf 版本为 4.24.3,以解决使用 conda 时的一些不兼容问题。
  • 允许使用 model.list_compatible_engines() 列出兼容的引擎。
  • 允许使用 model.force_engine(...) 选择快速引擎。

修复

  • 修复某些斜向分割组合导致慢速引擎创建的问题。
  • 改进馈送多维标签时的错误消息。

文档

  • 澄清了斜向分割的超参数文档。
  • 修复图表、拼写错误。

发布音乐

《儿童乐园》中的 Gradus ad Parnassum (L. 113)。克劳德·德彪西

0.2.0 - 2024-02-22

新特性

  • 添加对 GBTs(分类和回归)自定义损失的支持。

修复

  • 在调优器中,并行运行 parallel_trials 次试验,而不是并行运行 num_threads 次试验。
  • 如果训练数据集是路径,则强制将验证数据集设置为路径。
  • 修复基准测试。
  • 澄清使用不兼容数据集进行排序时的错误提示。
  • 提高测试覆盖率。
  • 修复手动构建树时条件的问题。

文档

  • 添加 TF-DF ==> YDF 迁移指南。
  • 澄清 max_depth 参数文档。
  • 澄清 early stopping 文档。

发布音乐

《地狱中的奥菲欧》地狱加洛普。雅克·奥芬巴赫

0.1.0 - 2024-01-25

新特性

  • 添加模型验证评估(针对 GBTs)和 OOB 评估(针对 RFs)。
  • 公开 Random Forests 的 winner-takes-all。
  • 添加模型自评估。
  • 添加 ydf.from_tensorflow_decision_forests() 用于导入 TF-DF 模型。
  • 允许将数据集作为字符串序列输入。

修复

  • 修复没有验证损失的 GBTs 的绘图问题。

发布音乐

1772 和 1793 年的 Flötenuhren - Vivace (Hob XIX:13)。约瑟夫·海顿

0.0.8 - 2023-12-19

新特性

  • 改进 Jupyter notebook 中的训练中断。
  • 训练和推理与 python 线程兼容。
  • 添加模型检查器,允许程序化检查树的结构。
  • 添加模型编辑器,允许程序化修改树的结构。

文档

  • ydf.readthedocs.io 上新增了许多教程。

Bug

  • 修复模型分析中图表的显示问题。

发布音乐

Les Anges dans nos campagnes。传统歌曲

0.0.7 - 2023-11-28

新特性

  • 支持具有 N/A 条件的模型的预测/评估。
  • 支持从不包含标签列的数据集进行预测。
  • 模型检查器
  • 分类集列的自动推理。

发布音乐

Knecht Ruprecht 选自《少年钢琴曲集》(作品 86)。罗伯特·舒曼

0.0.6 - 2023-11-28

新特性

  • 添加支持分类集特征。
  • 添加支持预测分析。
  • 公开 max_num_scanned_rows_to_infer_semantic 和 max_num_scanned_rows_to_compute_statistics。
  • 在模型上公开元数据。
  • 在模型上公开初始预测。
  • 添加严格模式以获得更多警告。
  • 添加 GBT 示例距离支持。
  • 支持带步进的数值特征。

文档

  • ydf.readthedocs.io 上新增了许多教程。

修复

  • 修复 GBT 预测中的一个 bug(详情请参阅 YDF 更新日志)。
  • 各种小修复。

发布音乐

Die Holzauktion。弗朗茨·迈斯纳

0.0.5 - 2023-11-10

新特性

  • 添加对分布式训练的支持。
  • 允许设置节点格式。
  • 允许程序化访问变量重要性。
  • 支持多维数值特征。
  • 支持使用超参数模板。

文档

  • ydf.readthedocs.io 上新增了许多教程。
  • 更新了常见问题。

修复

  • 修复多类别分类的预测数组问题。
  • 避免暴露 proto Task 类型。
  • 不再暴露 train_from_path 和 train_from_dataset -- 只需使用 train
  • 如果检测到 32 个核心,正确选择线程数。
  • 在某些配置下日志挂起。

发布音乐

Auld Lang Syne。传统歌曲

0.0.4 - 2023-11-01

新特性

  • 新文档发布!
  • 添加排序任务支持。
  • 添加从路径读取的支持,支持多种数据类型(csv 等)。
  • 改进了模型描述。
  • 添加支持恢复训练。
  • 添加导出到 Tensorflow。
  • 控制日志输出详细程度。
  • 添加 model.distance(...) 计算样本之间的成对距离。
  • 在模型上公开数据规范。
  • 支持单调约束。
  • 简单的训练基准测试。

修复

  • 移除 pybind11_abseil 以避免与其他库(如 Tensorflow)冲突。

发布音乐

蓝色狂想曲。乔治·格什温

0.0.3 - 2023-10-20

新特性

  • 超参数调优。
  • 导出到 C++。
  • 基准测试推理速度。
  • 树叶检索。
  • C++ 基础更新到 1.7.0。

发布音乐

施威格特·斯蒂勒,普劳德特·尼希特 (BWV 211)。约翰·塞巴斯蒂安·巴赫

0.0.2 - 2023-10-05

新特性

  • 模型分析。

发布音乐

当你微笑时。拉里·沙伊,马克·费舍尔和乔·古德温

0.0.1 - 2023-10-03

初始 Alpha 版本

新特性

  • 训练、预测、评估、从 Pandas 导入。
  • 学习器:梯度提升树(及其派生)、随机森林(及其派生)、Cart。

发布音乐

弗里希·赫兰 (Opus 386)。约翰·施特劳斯(子)