快速开始
我们以波士顿房价数据集为例,演示如何在笔记本电脑上的 Jupyter Notebook 中使用 SQLFlow 训练模型,并用训练好的模型进行预测,最后分析每个特征对模型的贡献。
使用 Docker 启动 SQLFlow
- 在笔记本上安装 Docker
- 启动 SQLFlow:
docker run -it -p 8888:8888 sqlflow/sqlflow
- 在浏览器中打开页面
http://localhost:8888
, 随后即可看到 Jupyter Notebook 的页面了。
在 Notebook 中创建 Python3 Kernel
训练模型
在 Notebook 中输入以下扩展 SQL 语句并运行:
%%sqlflow
SELECT * FROM boston.train
TO TRAIN xgboost.gbtree
WITH
objective="reg:squarederror",
train.num_boost_round = 30
LABEL medv
INTO sqlflow_models.my_xgb_regression_model;
看到如下日志表示训练任务执行完毕:
使用训练好的模型进行预测
完成训练后,输入以下扩展 SQL 语句并运行即可使用训练好的模型进行预测:
%%sqlflow
SELECT * FROM boston.test
TO PREDICT boston.predict.medv
USING sqlflow_models.my_xgb_regression_model;
看到如下日志即表示预测任务运行完毕:
我们可以输入一条标准 SELECT
语句检查以下预测结果表中的数据,从而确认预测结果已经写入到 medv
列中。
%%sqlflow
SELECT * FROM boston.predict LIMIT 10;
分析每个特征对模型的贡献
%%sqlflow
SELECT *
FROM boston.train
TO EXPLAIN sqlflow_models.my_xgb_regression_model
WITH
summary.plot_type="dot",
summary.alpha=1,
summary.sort=True
USING TreeExplainer;
运行成功后可以在日志框中显示如下直方图,可以看到波士顿房价这个数据集中 “低收入人群占比(LSTAT)” 这个特征对最终房价的影响是最大的: