常见问题解答

H2O Driverless AI 是一个用于自动机器学习的人工智能 (AI) 平台。Driverless AI 将一些最难解的数据科学和机器学习工作流(例如特征工程、模型验证、模型调优、模型选择和模型部署)实现了自动化。其旨在实现最高的预测准确度,可与专业数据科学家相媲美,但是由于端到端的自动化,Driverless AI 能在更短的时间内实现这一点。Driverless AI 还提供自动可视化和机器学习可解释性 (MLI)。特别是在受监管的行业中,模型的透明度和解释和其预测性能一样重要。建模管道(特征工程和模型)可作为 Python 模块和 Java 独立评分工件导出(完全保真,不采用近似法)。

本节提供常见问题的解答。如果您对于使用 Driverless AI 还有其他问题,请在 http://stackoverflow.com/questions/tagged/driverless-ai 上使用 driverless-ai 标签将问题发布至 Stack Overflow 版块。您还可在 #driverlessai 频道的 H2O.ai Community Slack 工作区 上发布问题。如果您尚未注册 H2O.ai Community Slack 工作区,则可以点击此处进行注册: https://www.h2o.ai/community/

  • Driverless AI 和任何其他黑盒机器学习算法有何区别?

  • 多久推出一次新版本?

  • 安装/升级/身份验证

  • 如何更改用户名和密码?

  • 能否在仅使用 CPU 的计算机上运行 Driverless AI?

  • 如何升级至 Driverless AI 的更新版本?

  • Driverless AI 支持何种类型的身份验证?

  • 每次 GPU 系统重启时,如何自动开启持久模式?

  • 如何在除 12345 端口以外的其他端口上启动 Driverless AI?

  • 能否在 Driverless AI 上设置 TLS/SSL?

  • 能否在 AWS 中的 Driverless AI 上设置 TLS/SSL?

  • 为什么在安装过程中会出现 “package dai-<version>.x86_64 does not verify: no digest” 的错误提示?

  • 我收到了一条 “Must have exactly one OpenCL platform ‘NVIDIA CUDA’” 的错误提示。该如何解决此问题?

  • 是否有可能让多个用户共享一个 Driverless AI 实例?

  • 多个 Driverless AI 用户能否共享一个 GPU 服务器?

  • 如何获取 Driverless AI 用户列表?

  • Driverless AI 启动失败,并在 Ubuntu 18/RHEL 7.6 上显示以下消息:”Segmentation fault (core dumped)”。我该如何解决此问题?

  • Driverless AI 支持哪些 Linux 系统?

  • 数据集是否有文件大小限制?

  • 如何将使用 UTF-8 编码的 CSV 文件导入至 Excel?

  • 在写入带有数据表的 CSV 文件时能否使用字节顺序标记?

  • Driverless AI 支持哪个版本的 Longhorn?

  • 是否可能在 Driverless AI 中下载转换测试数据集?

  • 为什么在 Windows 上使用数据连接器时不能将文件夹导入为文件?

  • 当我尝试选择 JDBC 连接时,收到了 ClassNotFoundException 的错误提示。我该如何解决此问题?

  • 当我尝试连接至 hive 时,收到了 org.datanucleus.exceptions.NucleusUserException: Please check your CLASSPATH and plugin specification 的错误提示。我该如何解决此问题?

  • `在 Hive 导入期间,我收到 "Permission Denied"(权限被拒绝)的错误提示。我该如何解决此问题?<#hive-connection-error2>`__

  • 可从何处获取 H2O 的自定义插件?

  • 如何创建自己的自定义插件?

  • 使用自定义插件的实验是否支持 MOJO 模型?

  • 如何在隔离安装环境中使用 BYOR?

  • Driverless AI 需要多少内存才能运行实验?

  • Driverless AI 可以处理多少列?

  • 如果我有大数据,应该如何使用 Driverless AI?

  • Driverless AI 如何检测 ID 列?

  • Driverless AI 能否处理有缺失值/空值的数据?

  • Driverless AI 如何处理分类变量?如果确实应将整数列作为分类列,那么应如何处理?

  • 如何处理异常值?

  • 如果我从训练数据集中删除了几列,Driverless AI 是否会理解它需从测试数据集中删除相同的列?

  • Driverless AI 是否会将数值变量作为分类变量?

  • Driverless AI 中使用哪些算法?

  • 为什么我选择的算法未显示在实验预览中?

  • 如何开启 TensorFlow 神经网络以对其进行评估?

  • Driverless AI 是否对数据进行标准化处理?

  • XGBoost 中使用何种目标函数?

  • Driverless AI 是执行内部验证还是外部验证?

  • Driverless AI 如何防止过度拟合?

  • Driverless AI 如何避免多重假设 (MH) 问题?

  • Driverless AI 如何对实验设置提出建议?

  • 当我将可解释性和准确度设置为相同数值时,会发生什么?

  • 我能否指定在运行 Driverless AI 时需使用的 GPU 的数量?

  • 如何在 Driverless AI 中构建最简单的模型?

  • 为什么实验突然变慢了?

  • 当我使用不同种子运行多个实验时,为什么会在实验列表页面上看到不同的评分、运行时和磁盘空间?

  • 为什么最终模型的性能看起来比之前迭代中的性能差?

  • 如何在 Driverless AI 模型中找到可能会导致数据泄露的特征?

  • 如何查看测试数据的性能指标?

  • 如何查看实验中所有可能用到的性能指标?

  • 如果训练/验证和测试数据集来自不同的分布,应如何处理?

  • Driverless AI 是否能处理加权数据?

  • Driverless AI 如何处理加权数据的折叠分配?

  • 为什么我觉得将新特征添加至数据集中会降低模型性能?

  • Driverless AI 如何处理二元分类实验的不平衡数据?

  • `Driverless AI 中是如何计算特征重要性的?<#feature-importance>`__

  • `我想要最终管道中只有一个 LightGBM 模型。我怎样才能做到?<#ensemble-level>`__

  • `我只想要一个 LightGBM 模型,不要 FE。我怎样才能做到?<#lightgbm-no-fe>`__

  • 在 Driverless AI 中,快速近似是什么?

  • 何时应关闭快速近似?

  • 可从何处获得实验中执行的各种转换的详细信息?

  • 如何将预测结果下载到运行 Driverless AI 的计算机?

  • 当我运行没有使用集成模型的实验时,为什么无法使用预测的概率?

  • MOJO 的大小由什么决定?

  • MOJO 是不是线程安全的?

  • 运行 MOJO 评分管道需要消耗数个小时。如何能加快运行速度?

  • 为什么会遇到 “Best Score is not finite” 的错误提示?

  • 如果数据具有时间依赖性,应如何处理?

  • 什么是滞后,以及它为什么会有用?

  • 为什么不能为时间序列问题指定验证数据集?为什么要查看用于时间序列问题的测试集

  • 为什么训练数据和测试数据之间的间隔很重要?是不是因为在测试集上创建了滞后特征?

  • 关于将目标滞后应用于时间组列的不同子集,是否是指 Driverless AI 在各种时间序列 “级别” 执行自相关?例如,对于沃尔玛数据集,其中包含门店和部门的数据(我的目标是周销量)。是否是指 Driverless AI 仅根据门店、仅根据部门以及根据门店和部门来检查周销售量的自相关性?

  • Driveless AI 如何检测时间周期?

  • 预测期长度的可选数值背后的逻辑是什么?

  • 假设在我的沃尔玛数据集中,所有门店均按周提供数据,但是有一家门店按天提供数据。Driverless AI 会如何处理?

  • 假设在我的沃尔玛数据集中,所有门店和部门均按周提供数据,但是特定门店的某个部门两周提供一次周销量数据。Driverless AI 会如何处理?

  • 为什么要进行预测的周数很重要?

  • 时间序列的评分组件是否对新数据的先后顺序较为敏感?即,评分时每行是否会单独评分,或评分时是否有实时窗口效应?

  • 如果用户在预测时为某一行赋予过小或过大的时间值,将会发生什么?

  • 时间序列插件的最小数据大小为多少?

  • 必须对训练数据和测试数据进行多长时间的比较?

  • 时间序列插件如何处理缺失值?

  • 能否将时间信息分布到输入数据的多个列中(例如 [年、日、月])?

  • Driverless AI 为时间序列实验使用何种类型的建模方法?

  • 指数加权移动平均的概念是什么?

  • 如何缩减审核日志记录器的大小?

  • Driverless AI 和任何其他黑盒机器学习算法有何区别?

    Driverless AI 使用多种技术(旧技术和最新技术)来解释黑盒模型,包括为系统进行的每项预测创建原因码。我们还创建了大量开放源代码示例和免费出版物来介绍这些技术。请参阅下方列表,获取这些资源的链接和可解释性技术的参考资料。

  • 开源可解释性示例:

  • https://github.com/jphall663/interpretable_machine_learning_with_python

  • https://content.oreilly.com/oriole/Interpretable-machine-learning-with-Python-XGBoost-and-H2O

  • https://github.com/h2oai/mli-resources

  • 免费的机器学习可解释性出版物:

  • http://www.oreilly.com/data/free/an-introduction-to-machine-learning-interpretability.csp

  • http://docs.h2o.ai/driverless-ai/latest-stable/docs/booklets/MLIBooklet.pdf

  • Driverless AI 中 采用的机器学习技术:

  • 基于树的变量重要性: https://web.stanford.edu/~hastie/ElemStatLearn/printings/ESLII_print12.pdf

  • 部分依赖性: https://web.stanford.edu/~hastie/ElemStatLearn/printings/ESLII_print12.pdf

  • LIME: http://www.kdd.org/kdd2016/papers/files/rfp0573-ribeiroA.pdf

  • LOCO: http://www.stat.cmu.edu/~ryantibs/papers/conformal.pdf

  • ICE: https://arxiv.org/pdf/1309.6392.pdf

  • https://papers.nips.cc/paper/1152-extracting-tree-structured-representations-of-trained-networks.pdf

  • https://arxiv.org/pdf/1705.08504.pdf

  • Shapley 值解释: http://papers.nips.cc/paper/7062-a-unified-approach-to-interpreting-model-predictions

  • 多久推出一次新版本?

    Driverless AI 的重要新版本大约为每两个月发布一次。

    安装/升级/身份验证

    如何更改用户名和密码?

    用户名和密码将与您创建的实验绑定。例如,如果我使用用户名/密码:megan/megan 登录并启动实验,那么我以后将需要使用相同的用户名和密码重新登录,方可查看这些实验。但是,用户名和密码并不会限制您对 Driverless AI 的访问。如果您想要使用新的用户名和密码,则可使用新的用户名和密码重新登录,但是请注意,您将不能查看之前的实验。

    能否在仅使用 CPU 的计算机上运行 Driverless AI?

    能,尽管建议使用 GPU,但是 Driverless AI 能在仅使用 CPU 的计算机上运行。对 GPU 和 CPU 系统均提供了安装说明。更多信息,请参阅 开始前 .

    如何升级至 Driverless AI 的更新版本?

    升级说明将因环境而异。请参阅适用于您的环境的安装部分内容。其中包含升级说明。

    Driverless AI 支持何种类型的身份验证?

    Driverless AI 支持“客户端证书”、LDAP、“本地”、mTLS、OpenID、PAM、“无”以及“不验证”(默认)等身份验证选项。以上身份验证方式可通过在 config.toml 文件中指定适当的环境变量或在启动 Driverless AI 时指定环境变量来进行配置。更多信息,请参阅 身份验证方式 .

    每次 GPU 系统重启时,如何自动开启持久模式?

    对于使用 GPU 的计算机,可在每次重启后运行 sudo nvidia-persistenced --user dai 命令以启用持久模式。对于具有 systemd 的系统,通过从 nvidia-persistenced.service 中移除 --no-persistence-mode 标记,即可在每次重启后自动启用持久模式。在执行以下步骤前,请务必查看以下内容,了解更多信息:

  • https://docs.nvidia.com/deploy/driver-persistence/index.html#persistence-daemon

  • https://docs.nvidia.com/deploy/driver-persistence/index.html#installation

  • 运行以下命令以终止 nvidia-persistenced.service:

  • sudo systemctl stop nvidia-persistenced.service
    
  • 打开文件 /lib/systemd/system/nvidia-persistenced.service。此文件包括一行 “ExecStart=/usr/bin/nvidia-persistenced –user nvidia-persistenced –no-persistence-mode –verbose”。

  • 从此行中移除标记“–no-persistence-mode”,从而更改为:

  • ExecStart=/usr/bin/nvidia-persistenced --user nvidia-persistenced --verbose
    

    当在 Docker 中启动 Driverless AI 时, -p 选项指定了将运行 Driverless AI 的端口。如果您需要在 12345 端口以外的端口上运行,可在启动脚本中更改此选项。以下示例展示了如何在 22345 端口上运行。(如果需要,可将 nvidia-docker run 更改为 docker-run . )请注意, 特权端口将需要根访问权限

     nvidia-docker run \
     --pid=host \
     --init \
     --rm \
     --shm-size=256m \
     -u `id -u`:`id -g` \
     -p 22345:12345 \
     -v `pwd`/data:/data \
     -v `pwd`/log:/log \
     -v `pwd`/license:/license \
     -v `pwd`/tmp:/tmp \
     h2oai/dai-centos7-x86_64:1.10.1-cuda11.2.2.xx