解析手法 / 機械学習チュートリアル

機械学習の最初の一歩

Random Forest と SHAP で説明可能なAIを実装する

Pythonバイブコーディング講座を終えて自分のPCでコードを動かせるようになった方が、次のステップとして実際に機械学習を実装してみるためのガイドです。本ページでは、農学研究で使われるバイオ炭データを題材に、Random ForestSHAPを組み合わせた解析サンプルを紹介し、ローカル環境での実行手順を解説します。

! 最初に読んでおきたい2冊(必読)

機械学習を学ぶときに最も大切なのは、「使い方を覚える前に、考え方を理解する」ことです。コードはLLMと相談すれば書けますが、結果を読み解く力は本を読まないと身につきません。

以下の2冊は、いずれも世界的に評価されている無料のオンライン書籍で、本サンプルコードに直接関係します。サンプルを動かす前に、ぜひ目を通してください。

本サンプルコードは「動かすだけ」なら数分で結果が出ますが、それでは 「機械学習を使った気になる」だけで終わってしまいます。研究で使うのであれば、必ず上の2冊で考え方を押さえてから先に進んでください。

01 サンプルコードの概要

本サンプルは、農学研究で利用されるバイオ炭(biochar)の特性データを題材としています。バイオ炭は土壌改良材として注目されており、原料・温度・処理時間などの製造条件によって性質が大きく変わります。このコードでは、製造条件から性能指標を予測する Random Forest モデルを学習し、SHAP 値で「どの条件が、どのくらい、どの方向に効いているか」を可視化します。

コードがやっていること(概要)

1. CSV データの読み込み(バイオ炭の特性データ)
2. 特徴量と目的変数の整理
3. Random Forest 回帰モデルの学習
4. SHAP 値の計算
5. 結果の可視化(Summary plot、Dependence plot など)

コードはすべて Jupyter Notebook(.ipynb)形式で、上から順にセルを実行していくだけで結果が得られます。

GitHub でリポジトリを見る ↗
02 ローカル環境で動かす手順

Pythonバイブコーディング講座の Part 2(環境構築) をすでに済ませている前提で進めます。VSCode と Python 本体のインストール、仮想環境の概念がまだの方は、先にそちらを参照してください。

A. リポジトリをダウンロード

GitHub のリポジトリページを開き、緑色の「Code」ボタンから「Download ZIP」を選びます。ダウンロードした ZIP を解凍し、適当な場所(例:C:\dev\RandomForestSHAP)に置きます。

OneDrive 配下や深い階層にフォルダを置くと、Windowsの「path too long」エラーが出ることがあります。詳しくは補足記事 Windowsのロングパス問題 を参照してください。

B. VSCodeでフォルダを開く・仮想環境を作る

VSCode を起動し、「ファイル → フォルダーを開く」で先ほどのフォルダを選びます。続いてターミナルを開いて(上部メニュー「ターミナル → 新しいターミナル」)、仮想環境を作成・有効化します。

ターミナル
# 仮想環境の作成 python -m venv .venv # 有効化(Windows / PowerShell) .venv\Scripts\Activate.ps1 # 有効化(Mac / Linux) source .venv/bin/activate

C. ライブラリをインストール

プロンプトの先頭に (.venv) が付いた状態で、必要なライブラリをまとめてインストールします。

ターミナル(仮想環境の中で)
pip install pandas numpy scikit-learn shap matplotlib seaborn jupyter openpyxl

インストールが完了したら、念のためバージョンを書き出しておきます。

ターミナル
pip freeze > requirements.txt

D. ノートブックを開いて実行

VSCode の左サイドバーから BiocharRandomForestSHAP.ipynb をダブルクリックで開きます。右上の「Select Kernel(カーネルの選択)」から、先ほど作った .venv を選択し、上から順にセルを実行します(各セルの左側にある ▶ を押すか、Shift + Enter)。

カーネルの選択方法は Pythonバイブコーディング講座 Part 2 の Step 7 と同じです。仮想環境を選び忘れると、ライブラリが「見つからない」エラーになります。

03 SHAP の結果の読み方(最低限)

SHAP 値はざっくり言えば「ある特徴量が、その予測値を平均からどれだけ押し上げ/押し下げたか」を表します。代表的な可視化を3種類だけ覚えておけば、最初は十分です。

詳細な意味の解釈や、「重要度が高い ≠ 因果関係がある」といった注意点については、必読書 Interpretable Machine Learning(日本語版) の SHAP の章を参照してください。

04 自分の研究データに置き換えるには

サンプルコードが動いたら、次は自分のデータで試したくなるはずです。基本的にはデータの読み込み部分と、特徴量・目的変数の指定だけを差し替えれば動きます。具体的には以下の3か所を見直します。

  1. pd.read_csv(...) の引数(CSVファイル名・パス)を自分のデータに変更
  2. 特徴量となる列名のリスト(X = df[[...]])を自分のデータの列名に書き換える
  3. 目的変数の列名(y = df[...])を自分のデータの予測したい列に変える
LLMにお願いするときのプロンプト例

「BiocharRandomForestSHAP.ipynb のコードを、私の手元の my_data.csv に合わせて修正してください。私のデータの列構成は以下のとおりです:[列名のリスト]。予測したい目的変数は [列名] です。」

サンプルサイズが小さいデータ(数十〜数百行)に Random Forest を使う場合、過学習に注意が必要です。交差検証(cross-validation)の導入や、ハイパーパラメータのチューニングについては、必読書 Supervised Machine Learning for Science の関連章を参考にしてください。


このページでできるようになったこと

質問・改善提案は Contact(tomoakiyamaguchirice@gmail.com) または GitHub の Issues からお寄せください。

! 最後の念押し — 原理を理解せずに使う意味はありません

コードを動かしてカラフルな図が出ると、何かを理解した気分になります。しかし図の意味を自分の言葉で説明できないなら、それは研究ではなく装飾です。機械学習やその解釈手法は、理論的な背景を理解しないまま使うと、誤った結論にそのまま直結します

研究で本格的に使うのであれば、このページの冒頭で紹介した2冊のテキストブックを、繰り返し熟読してください。1度読んで終わりにせず、コードを書きながら、結果を眺めながら、何度も戻って読み直すのが理想です。LLM がコードを書ける時代だからこそ、研究者の仕事は「結果を正しく読み解くこと」に移っています。その力を支えるのは、地道なテキストブックの読解だけです。

「とりあえず動かす」と「研究で使う」の間には、思っている以上に深い溝があります。道具に使われる側にならないためにも、原理の学習を後回しにしないでください。