跳到内容

YDF 是一个用于训练、评估、解释和部署随机森林、
梯度提升决策树和 CART 决策森林模型的库。

入门 🧭

简洁现代的 API
YDF 支持快速原型开发和应用开发,同时最大限度地减少建模错误的风险。
深度学习集成
与 Jax、TensorFlow 和 Keras 集成。
前沿算法
包含最新的决策森林研究成果,以确保最佳性能。
快速推理
在几微秒内计算预测结果。在 Google 每秒执行数千万次。

安装

要从 PyPI 安装 YDF,请运行

pip install ydf -U

YDF 支持 Python 3.8、3.9、3.10、3.11 和 3.12,支持 Windows x86-64、Linux x86-64 和 macOS ARM64。

使用示例

Open in Colab

import ydf
import pandas as pd

# Load dataset with Pandas
ds_path = "https://raw.githubusercontent.com/google/yggdrasil-decision-forests/main/yggdrasil_decision_forests/test_data/dataset/"
train_ds = pd.read_csv(ds_path + "adult_train.csv")
test_ds = pd.read_csv(ds_path + "adult_test.csv")

# Train a Gradient Boosted Trees model
model = ydf.GradientBoostedTreesLearner(label="income").train(train_ds)

# Look at a model (input features, training logs, structure, etc.)
model.describe()

# Evaluate a model (e.g. roc, accuracy, confusion matrix, confidence intervals)
model.evaluate(test_ds)

# Generate predictions
model.predict(test_ds)

# Analyse a model (e.g. partial dependence plot, variable importance)
model.analyze(test_ds)

# Benchmark the inference speed of a model
model.benchmark(test_ds)

# Save the model
model.save("/tmp/my_model")

主要特性

建模

部署

高级建模

  • TensorFlow、KerasJAX 中将 YDF 模型与神经网络模型组合。
  • 在数十亿示例和数百台机器上进行分布式训练
  • 使用前沿学习算法,例如斜切分、诚实树、Hessian 分数、全局树优化、最优类别切分、类别集输入、dart、极端随机树。
  • 应用单调性约束
  • 支持多维特征输入。
  • 模型和学习器自 2018 年以来保持向后兼容性。
  • 在 Python 中编辑树
  • 在 Python 中定义自定义损失函数

下一步

阅读 🧭 入门教程。您将学习如何训练模型、解释模型、评估模型、生成预测结果、基准测试其速度以及导出模型进行部署。

Github 上提问。Googler 可以加入 内部 YDF 聊天群

阅读 TF-DF 到 YDF 迁移指南,了解如何将 TensorFlow Decision Forests 流水线转换为 YDF 流水线。