更新日志¶
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 依赖项。
发布音乐¶
- 降 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_record
和ydf.util.write_tf_record
以方便 TF Record 数据集的使用。 - 将 LAMBDA_MART_NDCG5 重命名为 LAMBDA_MART_NDCG。旧名称已弃用,但仍可使用。
- 允许配置 NDCG 损失的截断。
- 使用
model.predict
和model.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 指定验证数据集。
DecisionForestsLearner
是CartLearner
的别名。
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=False
和feed_example_proto=False
,分别用于导出遵循 Servo API 和消耗序列化 TensorFlow Example proto 的 TensorFlow SavedModel。 - 为
model.to_tensorflow_function
函数添加pre_processing
和post_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)。约翰·施特劳斯(子)