单位 12 / 12

使用 Python 进行挖掘数据分析和人工智能前沿

收益:

  • 能够在 AI 支持下使用 Python 生成清理和可视化钻井、生产和监测数据的脚本
  • 在构建简单的预测和异常模型时能够识别数据质量、过度学习和外推风险
  • 能够通过单元控制、独立计算和工程合理性来验证人工智能生成的代码和结果

在本模块的每个单元中,您都看到人工智能在编码方面的强大功能:钻孔清洁、质量平衡、克里格骨架、车队摘要、振动分析、环境扫描。最后一个单元重点介绍 Python、该代码的具体工具以及使用人工智能生成代码的正确规则。 Python 已经成为挖掘数据分析领域事实上的标准,因为它是免费的,拥有强大的库(pandas:表格数据操作;numpy:数值微积分;matplotlib:绘图;scikit-learn:机器学习),并且可以自动执行重复性任务。人工智能会成倍提高你编写代码的速度;但它生成的代码并不总是正确的。该单元的中心原则:在没有首先读取、验证其单元并使用少量已知数据对其进行测试的情况下,切勿运行人工智能编写的代码。该代码可能会默默地产生错误的结果,这可能会导致采矿中的错误工程决策。

AI生成代码的基本流程

从人工智能获取代码是一个工程周期,而不是对话:

  1. 清楚地描述任务。输入(列、单位、样本行)、所需输出和约束。不明确的请求会产生不明确的代码。
  2. 要求它小且可读。要求一步步的、带注释的代码,而不是一个巨大的函数。
  3. 阅读并理解。了解每一行的作用;不要运行您不理解的代码。
  4. 用小数据进行测试。使用您知道其结果的 5-10 行手动运行它并验证预期的输出。
  5. 质疑边缘情况。空单元格、负值、单位改组、重复记录 代码的行为如何?
  6. 缩放并检查逻辑。在所有数据上运行;结果在工程上合理吗?
提示:输入 AI 代码时最常见的错误是无提示的:错误的列名称、单位混合(m 与 ft、g/t 与 ppm)、无提示地删除行(如 dropna)、错误的平均值(应加权时为普通平均值)。这些不会导致错误;它只是产生错误的数字。所以“没有出错”绝不意味着“正确”。

采矿中的典型 Python 任务

  • 数据清理:合并钻井/生产/监控表、不一致标记、单元标准化。
  • 摘要和可视化:直方图、时间序列、品位吨位曲线、OEE 图。
  • 统计和地质统计学:汇总统计、相关性、变异函数/克里金法(带有特殊库)。
  • 异常检测:基于阈值或基于简单模型的漂移捕获。
  • 简单的预测模型:例如,磨削尺寸与产量之间的回归关系。

对于大多数此类任务,人工智能提供了出色的起始代码。但存在两个陷阱:数据质量和模型限制。了解这两点是安全使用人工智能代码的关键。

模型限制:过度学习和外推

人工智能轻松构建的简单预测模型容易受到两大风险的影响。过拟合:模型记住了训练数据,但在新数据上表现不佳;用很少的数据构建复杂的模型会导致这种情况。外推法:当模型被迫在训练数据之外的范围内进行预测时,模型就会变得不可靠;例如,在 0.3-0.8 g/t 范围内学习的模型可能会给出 5 g/t 的毫无意义的结果。人工智能不会“自发地”为你管理这些风险;您需要批判性地阅读模型,区分训练/测试,查看置信区间,并检查预测在物理上是否合理。无论型号看起来多么准确,它都不能成为数据范围之外的工程决策的基础。

三个迷你箱子

情况 1 — 无声音量错误。工程师想要让人工智能根据化验数据计算平均成绩的代码。代码有效,结果为 2.1 g/t。工程师阅读代码;请注意,平均值不是按间隔长度加权的,而是作为直接平均值。短时间内的高分导致体重增加,这是不公平的。当转向加权平均值时,该值下降至 1.7 克/吨。代码没有给出错误;阅读发现了错误。

情况 2 — 无声掉线。在生产摘要代码中,AI 使用 dropna 清理了缺失值的行。代码运行顺利,但总吨位被低估,因为一些有效行由于单个空列而被完全删除。当工程师比较输入和输出之间的行数时,他看到了差异并纠正了清理逻辑。教训:总是比较输入和输出线的数量。

情况 3 — 外推陷阱。团队将在低等级范围内学习的回归模型应用到高等级区域;该模型给出了高得离谱的产量估计。幸运的是,工程师拒绝了这个结果,称“这个区域远远超出了模型所看到的范围”,并要求进行冶金测试。教训:了解模型有效的数据范围;不要使用州外的估计值。

可复制的提示模板

安全数据清理代码“角色:你是一名 Python 数据分析师助理。用 pandas 编写代码来清理下表。列和单位:[列表]。规则:(1) 打印删除行之前和之后的行数;(2) 报告删除了哪些行及其原因;(3) 注释单位转换;(4) 在必要时使用加权平均值而不是普通数据。用注释行解释每个步骤。”

代码审查请求“逐行解释以下 Python 代码,并指出以下风险点:不正确的列名假设、单位混淆、静默行丢弃、平坦/加权平均错误、边缘情况(空/负)行为。不要修复代码;只需列出风险。代码:[粘贴]。”

使用小数据进行测试设置“对于此函数,手动生成一个小测试数据(5-6 行),我知道其中的结果和预期输出;编写一个测试块来检查该函数是否在此数据上正常工作。还要测试极端情况(空单元格、负数、单位极值)。功能:[粘贴]。”

简单模型 + 边界警告“使用以下数据为 [x -> y] 设置一个简单回归。区分训练/测试,报告误差指标,并明确说明模型有效的 x 范围。如果预测超出此范围,则发出警告。评论过度训练和数据稀疏的风险。数据:[粘贴]。”

弱提示/强提示

弱提示:“根据该数据计算平均成绩。”

强烈提示:“角色:你是一名 Python 助手。列:HoleID、From(m)、To(m)、Au(g/t)。使用间隔长度计算加权平均成绩。代码:(1) 打印输入/输出行数;(2) 在删除它们之前报告空/负值;(3) 确认单位假设。还显示小计,以便我可以手动验证结果。数据:[粘贴]。”

对照表:风险与预防措施

风险

症状

预防措施

单位干扰

合理但错误的数字

注释掉代码中的单元,检查一下

静音掉线

总计缺失

比较输入/输出线数

普通平均值与加权平均值

错误的平均值

验证权重

过度学习

测试数据不好

训练/测试分离,保持简单

外推法

胡言乱语猜测超出范围

限制有效范围

常见错误

  • 运行代码而不阅读它。 “没有出现任何错误”并不意味着这是真的。
  • 不使用小数据进行测试。没有可验证的例子的信任是错误的。
  • 不比较输入/输出线的数量。这就是无声损失的逃脱方式。
  • 忽略型号范围。外推估计不可靠。
  • 相信图表的美丽。时尚的图表可能会隐藏错误的数字。
注意:如果AI代码进入工程帐户,则该代码与帐户一样负责。无论结果成为挖掘决策,都通过独立的逻辑检查运行代码及其输出,并在可能的情况下与第二种方法进行比较。

综上所述

Python 是挖掘数据分析的事实上的工具,人工智能极大地提高了编写它的速度。但人工智能代码可能隐藏着无声错误(单位混乱、行丢弃、错误平均)和模型陷阱(过度学习、外推)。安全流程:描述清晰,想要小而可读,阅读和理解,用已知的小数据进行测试,查询边缘情况,规模和逻辑检查。模型输出不能作为数据范围之外决策的基础;如果每个代码变成了挖矿决策,那么它就承担着与帐户一样多的责任。

应用任务

使用“安全数据清理代码”模板和成绩平均或生产汇总任务从人工智能获取代码;使用“代码审查请求”模板消除代码风险。然后,使用“小数据测试设置”模板,手动创建一个您知道其结果的数据集并验证代码。最后,对于一个简单的关系,用“简单模型+极限警告”模板建立一个模型,并测试它在超出有效范围时是否给出警告。

清单

  • [ ] 我读了AI代码并理解了每一行,我没有盲目运行它。
  • [ ] 我用小的、可手动验证的数据对其进行了测试。
  • [ ] 我比较了输入和输出线的数量。
  • [ ] 我验证了单位一致性和权重。
  • [ ] 我限制了模型的有效数据范围,避免外推。
  • [ ] 我用独立逻辑/第二种方法检查了结果,结果变成了决定。

模块考试

1. 实习生向AI聊天工具询问矿体的平均品位,并将结果值“1.8克/吨金”直接写入储量报告中。这种方法的根本错误是什么?

  • A) 品位值必须来自项目自身的钻探/分析数据和经过验证的预测; AI 生成的数字可能是无源捏造的 ✔
  • B) 应该要求 AI 以盎司而不是克为单位
  • C) 该值是正确的,只应使用句点而不是逗号
  • D)向人工智能询问同样的问题三次并取平均值就足够了

说明:语言模型不知道你的项目的钻井数据;产生一个看起来最有可能的数字(幻觉)。该等级仅来自项目自身的综合钻井数据和地质统计估计;未经主管人员批准,人工智能输出不得包含在报告中。

2.“基于风险的分类”在采矿工程中使用人工智能可以带来什么?

  • A)降低AI工具的价格
  • B) 根据任务的风险级别确定AI的作用和强制验证深度✔
  • C) 提示应写得短一些
  • D)自动将所有决策委托给人工智能

说明:并非每个任务都处于相同的风险级别。将任务分类为低/中/高/关键决定了哪些输出可以自由使用,哪些输出需要标准和现场验证以及主管工程师的批准。

3. 地质统计学中的“变异函数”模型是什么?

  • A) 设备燃油消耗
  • B) 金属价格随时间的变化
  • C) 空间连续性取决于距离; ✔ 相似度如何随着点远离而降低
  • D) 爆破产生的振动频率

描述:变差图描述了随着两点之间距离的增加,样本之间的相似度如何降低(空间连续性)。克里金法使用该模型来估计具有不确定性余量的未测量点。

4. 当人工智能对岩心摄影中的岩性进行预分类时,最好的方法是什么?

  • A) 将AI给出的岩石类型直接处理到钻井日志中
  • B) 将 AI 的文本复制到报告中,而根本不检查照片
  • C) 取消地质学家的观察,仅依靠人工智能
  • D) 将输出视为初步预测/假设,并通过地质学家观察和实验室分析进行验证 ✔

描述:AI可以根据图像生成预测和关注列表;然而,最终的岩性/蚀变决定是由地质学家的观察和实验室分析决定的。 AI输出是一个开始,一个有待验证的假设。

5. 露天开采规划中的“剥离比”是什么意思?

  • A) 达到一单位矿石必须去除的铁锈(废石)量✔
  • B) 矿石中金属的百分比
  • C) 卡车每日行驶次数
  • D) 爆破用炸药用量

描述:剥采率是指为获得一单位矿石而必须去除的废料(带材/废料)量。最终的坑极限和经济性很大程度上取决于这个比例;尽管人工智能会生成场景,但边界决定取决于有能力的工程师。

6. 当人工智能发现振动和温度数据“异常”时,这对预测性维护意味着什么?

  • A) 设备肯定发生故障的证明
  • B) 数据偏离正常的警告;并非故障的明确诊断,而是需要体检确认的征兆✔
  • C) 命令设备自动停止
  • D) 保证数据记录不正确

说明:异常是数据与正常行为的偏差,可能表明存在故障;但这并不是明确的诊断。停止设备或更换零部件的决定由维修组体检并经运营经理批准后作出。

7. 在钻爆设计中使用人工智能时,哪一项对安全至关重要?

  • A) 直接在现场实施人工智能建议
  • B) 跳过振动测量
  • C) 通过现场测量、监管限制和授权爆破专家的批准来验证人工智能提出的设计✔
  • D) 将炸药数量固定为AI给出的最大数量

描述:爆破;它具有严重的安全和监管风险,例如振动、空气冲击和飞石。 AI可生成设计草图和参数推荐;然而,最终设计必须通过现场测量、监管限制和授权爆破专家(雷管/负责人)的批准。

8. 选矿中“回收率”和“精矿品位”之间的典型关系是什么?人工智能在解释这一关系时应记住什么?

  • A)两者总是一起增加
  • B) 它们之间没有关系
  • C)这种关系在所有设施中都是恒定且相同的
  • D)通常存在反向平衡(产量随着品位的提高而降低);实际值必须通过冶金测试和质量平衡来验证 ✔

解释:一般来说,当我们试图获得更高的浓缩品位时,产量就会下降(品位-产量平衡)。 AI可以解释这一趋势,但实际操作值必须通过冶金测试和质量平衡来确认;总体趋势并不能替代特定地点的现实。

9. 在职业安全中使用人工智能分析未遂事故/事故数据最合适的用途是什么?

  • A) 对自由文本记录进行分类并提取重复出现的风险模式;将决定权留给 OHS 专家 ✔
  • B) 自动判断事故罪魁祸首
  • C) 将停工令委托给人工智能
  • D) 将未遂事件的记录存档而不进行审查

描述:人工智能可以对大量自由文本记录进行分类,并快速提取重复模式和风险情况。然而,停止工作、疏散某个地区或根本原因的决定是在职业健康与安全专家和立法的框架内做出的;人工智能的输出是输入,而不是决策。

10. 为什么“变形率加速”是边坡监测中雷达/棱镜数据的关键标志?

  • A) 明确表明测量装置损坏。
  • B)它可能预示着逐步的失败;预警和疏散决定属于岩土工程师✔
  • C) 表明该斜坡是完全安全的
  • D) 仅在有降水时才显着,可忽略

解释:在边坡破坏之前,通常会观察到变形率(加速度)逐渐增加;这可能是渐进失败的迹象。人工智能可以突出趋势,但疏散/预警决策是由岩土工程师的分析和协议做出的。

11. 在环境监测中,人工智能在水质时间序列中发现“超标”迹象时最准确的响应是什么?

  • A)直接向政府机构报告人工智能输出
  • B) 忽略警告并继续观看
  • C) 用认可的实验室结果、监管限值和环境工程师评估进行验证 ✔
  • D)仅依靠人工智能,取消实验室分析

描述:人工智能可能会提前发出可能的违规信号;然而,官方的合格决定是通过认可的实验室分析、立法中的限值以及环境工程师的评估来做出的。 AI输出的是筛选警报,而不是法律/技术决定。

12. 当您向 AI 询问 JORC 或 NI 43-101 等标准的条款号时,避免获得虚构(幻觉)参考的最可靠方法是什么?

  • A) 依赖AI给出的物品编号
  • B)用不同的词再次问同一问题
  • C) 查看博客文章而不是标准
  • D) 打开并确认当前标准正式文本中的每条文章引用并获得主管人员的批准 ✔

解释:虽然语言模型正确地知道标准的名称,但它可能会产生幻觉的文章编号和文本。每个物质参考必须从标准的当前官方文本中打开和确认,并且最终的符合性必须由合格人员 (CP/QP) 确认。

13.运行AI编写的Python分析脚本之前最关键的检查是什么?

  • A) 读取代码并验证单元/列匹配,使用少量已知数据进行测试并检查结果的合理性 ✔
  • B) 直接在整个数据集上运行代码而不读取它
  • C) 只要看到没有错误并接受结果
  • D) 依靠输出的图形来美观。

描述:AI 代码可能会混合单位、错误地假定列名称或默默地删除行。阅读代码、验证体积和列匹配、使用少量已知数据进行测试并检查结果是否工程合理是至关重要的。

14. 将挖掘数据提供给基于云的人工智能工具时,在隐私方面最好的行为是什么?

  • A)按原样粘贴所有原始数据
  • B) 匿名化上下文并清理敏感的储备/协调/生产数据,并使用符合政策的公司工具 ✔
  • C) 假设提供实际坐标对于结果质量至关重要
  • D)完全忽视隐私政策

解释:储量数据、许可证/坐标信息和生产数据在商业秘密和立法方面属于敏感数据。需要对上下文进行匿名化,明确真实的坐标和名称,选择公司/隐私保障工具并遵守公司政策。