ユニット 12 / 12

Python によるマイニング データ分析と AI のフロンティア

利益:

  • AI サポートを使用して、Python を使用して掘削、生産、監視データをクリーンアップして視覚化するスクリプトを作成する機能
  • 単純な予測および異常モデルを構築する際に、データ品質、過学習、および外挿のリスクを認識する機能
  • AI が生成したコードと結果をユニット制御、独立した計算、エンジニアリングの妥当性によって検証する機能

このモジュールの各単元では、AI がコーディングにおいて強力であることを確認しました: ボーリング孔の清掃、質量バランス、クリギング スケルトン、フリートの概要、振動分析、環境スキャン。この最後の単元では、コードの具体的なツールである Python と、AI を使用してコードを生成する適切な規律に焦点を当てます。 Python は、無料であり、強力なライブラリ (pandas: 表形式のデータ操作、numpy: 数値計算、matplotlib: プロット、scikit-learn: 機械学習) を備え、反復的なタスクを自動化できるため、マイニング データ分析の事実上の標準となっています。 AI はコードを書く速度を倍増します。ただし、生成されるコードは常に正しいとは限りません。このユニットの中心原則: AI が作成したコードは、最初にコードを読み取ってユニットを検証し、少量の既知のデータでテストすることなく決して実行しないでください。コードは誤った結果を暗黙のうちに生成する可能性があり、それがマイニングにおけるエンジニアリング上の誤った決定につながる可能性があります。

AIによるコード生成の基本的な流れ

AI からコードを取得することは、会話ではなくエンジニアリング サイクルです。

  1. タスクを明確に説明します。入力 (列、単位、サンプル行)、目的の出力、および制約。あいまいなリクエストはあいまいなコードを生成します。
  2. 小さくて読みやすいものにしてください。 1 つの巨大な関数ではなく、段階的にコメントされたコードを要求してください。
  3. 読んで理解してください。各行が何を行うのかを理解してください。理解できないコードを実行しないでください。
  4. 小さなデータでテストします。結果がわかっている 5 ~ 10 行を手動で実行し、予想される出力を確認します。
  5. 特殊なケースについて質問します。空のセル、負の値、単位のシャッフル、繰り返しレコード コードはどのように動作しますか?
  6. ロジックをスケールしてチェックします。すべてのデータに対して実行します。結果は工学的に合理的ですか?
ヒント: AI コードに入力される最も一般的なエラーは、サイレントです。列名が間違っている、単位の混合 (m と ft、g/t と ppm)、サイレントに行が削除される (dropna など)、平均が間​​違っている (重み付けする必要がある場合の単純な平均)。これらはエラーの原因にはなりません。間違った数値が生成されるだけです。したがって、「エラーが発生しなかった」ということは決して「正しい」という意味ではありません。

マイニングにおける典型的な Python タスク

  • データ クレンジング: 掘削/実稼働/監視テーブルのマージ、不整合のフラグ付け、ユニットの正規化。
  • 概要と視覚化: ヒストグラム、時系列、等級トン数曲線、OEE グラフ。
  • 統計と地球統計: 要約統計、相関、バリオグラム/クリギング (特別なライブラリを使用)。
  • 異常検出: しきい値ベースまたは単純なモデルベースのドリフト キャプチャ。
  • 単純な予測モデル: たとえば、回帰を使用した粉砕サイズと歩留まりの関係。

これらのタスクのほとんどについて、AI は優れた開始コードを提供します。しかし、データ品質とモデルの制限という 2 つの落とし穴があります。 AI コードを安全に使用するには、両方を理解することが重要です。

モデルの限界: 過学習と外挿

AI が簡単に構築できる単純な予測モデルは、2 つの大きなリスクに対して脆弱です。過学習: モデルはトレーニング データを記憶しますが、新しいデータではパフォーマンスが低下します。少ないデータで複雑なモデルを構築すると、これが起こります。外挿: トレーニング データの範囲外の予測を強制されると、モデルの信頼性が低くなります。たとえば、0.3 ~ 0.8 g/t の範囲で学習されたモデルは、5 g/t では無意味な結果を与える可能性があります。 AI はこれらのリスクを「自発的に」管理しません。モデルを批判的に読み取り、トレーニングとテストを区別し、信頼区間を調べ、予測が物理的に妥当かどうかを確認するのはあなた次第です。モデル番号がどれほど正確であっても、データ範囲外ではそれを技術上の決定の基礎にすることはできません。

ミニケース3個

ケース 1 — サイレントボリュームエラー。エンジニアは、AI にアッセイデータから平均成績を計算させるコードを必要としています。コードは機能し、結果は 2.1 g/t になりました。エンジニアはコードを読みます。平均は間隔の長さによって重み付けされず、直線平均として取得されることに注意してください。短いインターバルで成績上位者が不当に体重を増やしていた。加重平均に移行すると、値は 1.7 g/t に減少します。コードにはエラーはありませんでした。読み取り中にエラーが発生しました。

ケース 2 — サイレント回線ドロップ。本番サマリーコードでは、AI が Dropna を使用して欠損値のある行をクリーンアップしました。コードはスムーズに実行されますが、単一の空の列により一部の有効な行がすべて削除されたため、合計トン数は過小評価されています。エンジニアは入力と出力の行数を比較すると、その違いがわかり、クリーニング ロジックを修正します。教訓: 入力行と出力行の数を常に比較してください。

ケース 3 — 外挿トラップ。チームは低学年の範囲で学習した回帰モデルを高学年の領域に適用します。このモデルは、異常に高い収量推定値を示します。幸いなことに、エンジニアは「この領域はモデルで見られる範囲をはるかに超えている」と結果を拒否し、冶金試験を要求しました。教訓: モデルが有効なデータの範囲を知りましょう。州外の推定値を使用しないでください。

コピー可能なプロンプトテンプレート

安全なデータ クリーニング コード 「役割: あなたは Python データ アナリスト アシスタントです。次のテーブルをクリーンアップするコードを pandas で作成します。列と単位: [リスト]。ルール: (1) 行を削除する前と後の行数を出力します。(2) どの行が削除されたか、その理由をレポートします。(3) コメント単位の変換。(4) プレーンではなく、必要に応じて加重平均を使用します。各ステップをコメント行で説明します。」

コード レビュー リクエスト「次の Python コードを 1 行ずつ説明し、次のリスク ポイントを指摘してください: 間違った列名の仮定、単位の混乱、サイレント行ドロップ、フラット/加重平均エラー、エッジ ケース (null/負) の動作。コードを修正しないでください。リスクを列挙するだけです。コード: [貼り付け]。」

小さなデータでのテスト設定 「この関数では、結果と期待される出力がわかっている小さなテスト データ (5 ~ 6 行) を手動で作成します。このデータに対して関数が正しく動作するかどうかをチェックするテスト ブロックを作成します。極端なケース (空のセル、負の値、単位の極値) もテストします。関数: [貼り付け]。」

単純モデル + 境界警告「次のデータを使用して [x -> y] の単純回帰を設定します。トレーニング/テストを区別し、エラー メトリックを報告し、モデルが有効である x の範囲を明確に示します。この範囲外で予測が行われた場合は警告します。オーバートレーニングとデータの疎性のリスクについてコメントします。データ: [貼り付け]。」

弱いプロンプト / 強いプロンプト

弱いプロンプト: 「このデータから平均成績を計算します。」

強力なプロンプト:「役割: あなたは Python アシスタントです。列: HoleID、From(m)、To(m)、Au(g/t)。間隔の長さを使用して重み付き平均成績を計算します。コード: (1) 入力/出力行数を出力します。(2) 削除する前に null/負の値を報告します。(3) 単位の仮定を確認します。結果を手動で検証できるように、小計も表示します。データ: [貼り付け]。」

比較表:リスクと注意事項

リスク

症状

予防措置

ユニット干渉

妥当だが間違った数字

コード内のユニットをコメントアウトして確認してください

サイレントラインドロップ

合計がありません

入出力線数の比較

単純な平均と加重平均

間違った平均

重み付けを検証する

過剰学習

テストデータが悪い

トレーニングとテストを分離し、シンプルにする

外挿

ナンセンスな推測は範囲外です

有効範囲を制限する

よくある間違い

  • コードを読まずに実行します。 「エラーは発生しませんでした」ということは、それが真実であるという意味ではありません。
  • 小さなデータでテストしていない。検証可能な例のない信頼は誤りです。
  • 入出力行数を比較しません。これが沈黙の損失から逃れる方法です。
  • モデル範囲は無視します。外挿推定は信頼できません。
  • チャートの美しさを信頼します。スタイリッシュなグラフは間違った数字を隠すことができます。
注意: AI コードがエンジニアリング アカウントに入ると、そのコードはアカウントと同様に責任を負います。結果がマイニングの決定となる場合は常に、可能であれば独立したロジック チェックと 2 番目のメソッドとの比較を通じてコードとその出力を実行します。

要約すると

Python はマイニング データ分析のための事実上のツールであり、AI によってその作成速度が大幅に向上します。しかし、AI コードには、隠れたバグ (単位の混乱、行の脱落、間違った平均化) やモデルの罠 (過剰学習、外挿) が潜んでいる可能性があります。安全なフロー: 明確に説明し、小さくて読みやすいものを求め、読んで理解し、少量の既知のデータを使用してテストし、エッジ ケースをクエリし、スケールとロジックをチェックします。モデルの出力は、データ範囲外の決定の基礎となることはできません。そして、それがマイニングの決定となった場合、各コードにはアカウントと同じくらいの責任が伴います。

アプリケーションタスク

AI からコードを取得するには、「安全なデータ サニタイズ コード」テンプレートを成績平均タスクまたは生産サマリー タスクとともに使用します。 「コードレビューリクエスト」テンプレートを使用してコードのリスクを回避してもらいます。次に、「小規模データによるテスト設定」テンプレートを使用して、結果がわかっているデータセットを手動で作成し、コードを検証します。最後に、単純な関係の場合、「単純なモデル + 制限警告」テンプレートを使用してモデルを設定し、有効範囲を超えた場合に警告が発生することをテストします。

チェックリスト

  • [ ] AI コードを読んですべての行を理解し、やみくもに実行しませんでした。
  • [ ] 手動で検証可能な小規模なデータを使用してテストしました。
  • [ ] 入力行数と出力行数を比較してみました。
  • [ ] 単位の一貫性と重み付けを検証しました。
  • [ ] モデルの有効なデータ範囲を制限し、外挿を避けました。
  • [ ] 判定となった結果を独立ロジック・秒方式で確認してみました。

モジュール試験

1. インターンは AI チャット ツールに鉱体の平均品位について質問し、結果として得られた値「1.8 g/t 金」を埋蔵量レポートに直接書き込みます。このアプローチの根本的な間違いは何でしょうか?

  • A) グレード値は、プロジェクト独自の掘削/分析データと検証済みの予測に基づいている必要があります。 AI によって生成された番号は出典のない捏造である可能性があります ✔
  • B) AI をグラムではなくオンスで尋ねるべきだった
  • C) 値は正しいです。カンマの代わりにピリオドのみを使用する必要があります。
  • D) AI に同じ質問を 3 回質問し、平均を取るだけで十分です

説明: 言語モデルはプロジェクトのドリルデータを認識しません。最も可能性が高いと思われる数値が生成されます (幻覚)。このグレードは、プロジェクト独自の複合掘削データと地球統計学的推定にのみ基づいています。 AI の出力は、有能な者の承認なしにレポートに含めることはできません。

2. 鉱山工学における AI の使用において、「リスクベースの分類」により何が可能になりますか?

  • A) AIツールの価格を下げる
  • B) タスクのリスクレベルに応じて、AI の役割と必須の検証の深さを決定する ✔
  • C) プロンプトは短く書くべきです
  • D) すべての決定を AI に自動的に委任する

説明: すべてのミッションが同じリスクレベルにあるわけではありません。タスクを低/中/高/重要に分類することで、どの出力を自由に使用できるか、またどの出力に標準および現場での検証と有能なエンジニアの承認が必要かが決まります。

3. 地球統計学における「バリオグラム」モデルとは何ですか?

  • A) 機器の燃料消費量
  • B) 金属価格の時間の経過に伴う変化
  • C) 距離に応じた空間の連続性。 ✔ 点が遠ざかるにつれて類似性がどのように減少するか
  • D) 発破によって生じる振動周波数

説明: バリオグラムは、2 点間の距離が増加するにつれて、サンプル間の類似性 (空間的連続性) がどのように減少するかを記述します。クリギングは、このモデルを使用して、不確実性のマージンを持って未測定点を推定します。

4. AI にドリルコア写真から岩質を事前に分類させる場合の最良のアプローチは何ですか?

  • A) AI によって与えられた岩石の種類を掘削ログに直接処理する
  • B) 写真をまったく調べずに、AI のテキストをレポートにコピーする
  • C) 地質学者の観察を打ち切り、AIだけに頼る
  • D) 出力を予備的な予測/仮説とみなして、地質学者の観察と実験室分析で検証します ✔

説明: AI は画像から予測と注目リストを生成できます。ただし、最終的な岩相/変質の決定は、地質学者の観察と実験室分析によって行われます。 AI の出力はスタートであり、仮説は検証されるものです。

5. 露天掘り計画における「剥離率」とは何を意味しますか?

  • A) 1単位の鉱石を得るために除去しなければならない錆(廃岩)の量 ✔
  • B) 鉱石中の金属の割合
  • C) トラックの 1 日あたりの運行数
  • D) 発破に使用される火薬の量

説明: ストリップ率は、1 単位の鉱石を得るために除去する必要がある廃棄物の量 (ストリップ/廃棄物) です。最終的なピット限界と経済性はこの比率に大きく依存します。 AI がシナリオを生成しても、境界の決定は有能なエンジニアに任されています。

6. AI が振動と温度のデータの「異常」を検出することは、予知保全において何を意味しますか?

  • A) 機器が確実に故障していることの証明
  • B) データが正常から逸脱しているという警告。故障の確定診断ではありませんが、健康診断で確認する必要がある兆候です✔
  • C) 装置の自動停止命令
  • D) データが誤って記録されたことを保証する

説明: 異常とは、データが通常の動作から逸脱したものであり、誤動作を示している可能性があります。しかし、それは確定診断ではありません。機器の停止または部品の交換の決定は、保守チームの身体検査と運用管理者の承認によって行われます。

7. ドリルブラスト設計に AI を活用する場合、安全のために不可欠なものはどれですか?

  • A) AI レコメンデーションを現場に直接実装
  • B) 飛び振動測定
  • C) AI の提案された設計を現場での測定、規制値、および認可された発破専門家の承認とともに検証する ✔
  • D) 爆発物の量を AI によって与えられた最大値に固定する

説明: ブラスト処理。振動、空気衝撃、飛び石など、安全性や規制上の重大なリスクが伴います。 AI は設計スケッチとパラメータの推奨を作成できます。ただし、最終設計は現場測定、規制制限、および認可された発破専門家 (起爆装置/責任者) の承認に合格する必要があります。

8. 鉱物加工における「回収率」と「濃縮グレード」の一般的な関係は何ですか? これを解釈する際に AI が覚えておくべきことは何ですか?

  • A) 2 つは常に一緒に増加します
  • B) それらの間には何の関係もありません
  • C) 関係は一定であり、すべての施設で同じです
  • D) 通常は逆バランスになります (等級が上がると収量が減少します)。実際の値は冶金試験と質量バランスによって検証する必要があります ✔

説明: 一般に、より高濃度のグレードを取得しようとすると、収量は減少します (グレードと収量のバランス)。 AI はこの傾向を説明できますが、実際の動作値は冶金試験と物質収支によって確認する必要があります。一般的な傾向は、サイト固有の現実に代わるものではありません。

9. 労働安全における AI によるヒヤリハット/事故データの分析の最も適切な用途は何ですか?

  • A) フリーテキスト記録を分類し、再発するリスクパターンを抽出します。決定はOHSの専門家に任せてください ✔
  • B) 事故の犯人を自動的に判断する
  • C) 業務停止命令をAIに委任
  • D) ヒヤリハット記録をレビューせずにアーカイブする

説明: AI は、大量の自由テキスト記録を分類し、繰り返しのパターンや危険な状態を迅速に抽出できます。ただし、作業の停止、地域または根本原因の避難の決定は、OHS の専門家と法律の枠組みの中で行われます。 AI の出力は決定ではなく入力です。

10. 斜面監視におけるレーダー/プリズム データにおいて「変形率の加速」が重要な兆候であるのはなぜですか?

  • A) それは間違いなく測定器が壊れていることを示しています。
  • B) それは漸進的な敗北を告げるかもしれない。早期警戒と避難の決定は地盤工学技術者に属します ✔
  • C) 斜面が完全に安全であることを示しています
  • D) 降水量がある場合にのみ重要であり、無視できます。

説明: 斜面崩壊の前には、一般に変形速度 (加速) の緩やかな増加が観察されます。これは進行性の障害の兆候である可能性があります。 AI は傾向を強調できますが、避難/早期警戒の決定は地盤工学エンジニアの分析とプロトコルによって行われます。

11. 環境モニタリングにおいて、AI が水質時系列で見つけた「超過」の兆候に対する最も正確な応答は何ですか?

  • A) AI の出力を政府機関に直接報告する
  • B) 警告を無視して視聴を続ける
  • C) 認定試験所の結果、規制値、および環境技術者の評価による検証 ✔
  • D) AIのみに依存し、臨床検査を中止する

説明: AI は早期に侵害の可能性を示唆する可能性があります。ただし、正式な適合性の決定は、認定された研究所の分析、法律の制限値、および環境技術者の評価によって行われます。 AI の出力はスクリーニング警告であり、法的/技術的な決定ではありません。

12. AI に JORC や NI 43-101 などの規格の条項番号を尋ねるときに、でっち上げ(幻覚)参照を取得しないようにする最も信頼できる方法は何ですか?

  • A) AIが与えた商品番号に依存する
  • B) 言葉を変えて同じ質問をもう一度する
  • C) 標準ではなくブログ投稿を見る
  • D) 規格の現在の公式テキストから各参照文献を開いて確認し、権限のある人の承認を得る ✔

説明: 言語モデルは標準の名前を正しく認識していますが、記事番号とテキストを幻覚する可能性があります。各物質参照は、規格の現在の公式テキストを開いて確認する必要があり、最終的な適合性は担当者 (CP/QP) によって確認されなければなりません。

13. AI が作成した Python 分析スクリプトを実行する前の最も重要なチェックは何ですか?

  • A) コードを読み取り、単位/列の一致を確認し、既知の小規模なデータを使用してテストし、結果の妥当性を確認する ✔
  • B) データセット全体を読み取らずにコードを直接実行する
  • C) 間違いがないことを確認し、結果を受け入れるだけ
  • D) 見栄えを良くするために出力のグラフィックスに依存する。

説明: AI コードは、単位を混合したり、列名を誤って仮定したり、警告なしに行を削除したりする可能性があります。コードを読み、ボリュームと列の一致を確認し、少量の既知のデータを使用してテストし、結果が工学的に妥当であるかどうかを確認することが重要です。

14. マイニング データをクラウドベースの AI ツールに提供する場合、プライバシーの観点から最適な動作は何ですか?

  • A) すべての生データをそのまま貼り付ける
  • B) コンテキストを匿名化し、機密の予備/調整/生産データをクリーンアップし、企業のポリシーに準拠したツールを使用する ✔
  • C) 実際の座標を提供することが結果の品質にとって不可欠であると仮定する
  • D) プライバシーポリシーをまったく無視する

説明: 埋蔵量、ライセンス/座標情報、生産データは企業秘密と法律の観点から機密です。コンテキストを匿名化し、実際の座標と名前をクリアし、企業/プライバシーを保証するツールを選択し、企業ポリシーに準拠する必要があります。