ランダムフォレストで勝率UP!Claude Codeで作る「明日上がる銘柄」の特徴量分析

  • URLをコピーしました!

株価が明日上がるかどうか、勘や雰囲気だけで判断して後悔したことはありませんか。

投資の世界では、膨大なデータから「値上がりの法則」を見つけ出す機械学習が広く活用されています。

これまでは専門的なプログラミング知識が必要でしたが、今はAnthropicの最新AIエージェント「Claude Code」があります。ターミナル上でAIと対話しながら進めることで、高度な「ランダムフォレスト」という手法を使った銘柄分析も、驚くほどスムーズに実現できます。この記事では、AIを味方につけてデータに基づいた投資判断を行うための具体的な手順を解説します。

目次

なぜ株価予測にランダムフォレストが向いている?

この章では、数ある機械学習の手法の中でなぜ「ランダムフォレスト」が選ばれるのかを整理します。その仕組みと、投資において欠かせない「根拠」をどう導き出すのか、そして最新ツールを使うメリットを理解しましょう。

複数の判断をまとめて精度を高める仕組み

ランダムフォレストは、簡単に言うと「たくさんの決定木(イエス・ノーで答える判断の樹)」を作って、その多数決で結論を出すアルゴリズムです。

株価は、単純な一つの法則で動くほど甘くありません。RSIが低いからといって必ずしも反発するわけではないからです。ランダムフォレストは、「RSIが低い」「かつ移動平均線より上」「かつ出来高が増えている」といった複雑な組み合わせを、複数の樹がそれぞれの視点で分析します。

例えば、100本の樹を育てて、そのうち80本が「上がる」と答えたなら、その予測には強い根拠があると考えられます。このように一つの見方に偏らず、多角的に判断を行うため、一部の極端なデータに惑わされる「過学習」を防ぎやすいのが最大の強みです。

多くの投資家が悩む「だまし」を、複数の判断材料を組み合わせることでフィルタリングしてくれるイメージを持つと分かりやすいでしょう。

予測の根拠がわかる「特徴量重要度」

機械学習の多くは「なぜその結論になったのか」が見えにくい「ブラックボックス」になりがちですが、ランダムフォレストは違います。

「特徴量重要度」という機能を使えば、どの指標が予測に最も貢献したかを数値で示してくれます。例えば、移動平均乖離率が重要だったのか、あるいは前日の騰落率が効いたのかが、一目でランキング形式で分かります。

投資家にとって、理由が分からないままAIに従うのは不安なものです。重要度が可視化されることで、「今は価格の変化よりも、出来高の増減がトレンドを左右しているんだな」といった納得感を持ってトレードに臨めます。

確かにAIの予測を100%信じるのは危険ですが、自分のチャート分析が正しいかどうかを確認するための「セカンドオピニオン」として、これほど心強いものはありません。

Claude Codeで試行錯誤を高速化する

これまでの開発では、コードを書いて、エラーが出たら検索して、修正して……という孤独な作業に時間がかかっていました。

Claude Codeを使えば、ターミナル上で「ランダムフォレストで株価予測をするコードを書いて」と伝えるだけで、ベースとなるプログラムが数秒で完成します。さらに、そのまま「実行してエラーを直して」と頼めば、AIが自分の書いたコードを自分でテストし、修正まで完結してくれます。

以下の表に、従来の開発とClaude Codeを使った開発の違いをまとめました。

項目従来の開発Claude Codeを使った開発
コード作成検索しながら手入力AIが要件を汲み取って一括生成
エラー対応ログを読み解き自力で修正AIが原因を特定し、その場で修正
環境構築依存関係の解消に苦労AIが最適な設定を自動で提案
分析の深掘り数値を読み解く知識が必要AIが結果を解説し、改善案を出す

このように、開発のハードルが下がったことで、投資家は「コードを書くこと」ではなく「どんな指標を組み合わせるか」という戦略の部分に集中できるようになります。

開発に必要な環境を準備しよう

分析を始めるための「土台」を整えましょう。難しい設定に聞こえるかもしれませんが、Claude Codeの力を借りれば、初心者が最も挫折しやすい環境構築もスムーズに突破できます。

Claude Codeのインストールと起動

まずは、あなたのPCのターミナル(コマンドプロンプトなど)でClaude Codeを動かせるようにします。Node.jsがインストールされている環境であれば、コマンド一つで導入が可能です。

具体的には、以下の手順で進めてください。

  • ターミナルで npm install -g @anthropic-ai/claude-code を実行
  • 完了後、 claude と入力して起動
  • 案内に従ってAnthropicのアカウントでログイン

これで準備は完了です。起動すると、チャット形式でAIに指示を出せるようになります。まずは「ハロー」と打ち込んで、反応があるか確かめてみてください。

これだけで、あなたのPCの中のファイルを読み書きしたり、コマンドを実行したりできる「AIエンジニア」が隣に座ったことになります。

分析に使うライブラリをセットアップする

次に、Pythonで株価分析を行うための道具箱を揃えます。自分ですべて調べる必要はありません。Claude Codeに「株価予測に必要なライブラリをインストールして」と伝えれば、適切なコマンドを提案してくれます。

今回必要になる主なライブラリは以下の通りです。

  1. yfinance:株価データをダウンロードする
  2. pandas:データを加工して分析しやすくする
  3. scikit-learn:ランダムフォレストを実行する
  4. matplotlib:グラフを描画して可視化する

これらは pip install yfinance pandas scikit-learn matplotlib というコマンドで一括導入できます。

もしインストールの途中でエラーが出たとしても、Claude Codeがそのログを読み取って「このコマンドを試してください」と導いてくれます。専門用語だらけのサイトを何往復もする必要はありません。

整理されたプロジェクト構成を自動で作る

分析を進めていくと、コードやデータが散らかり、後で何をしたか分からなくなってしまうことがあります。

あらかじめ、Claude Codeに「株価予測プロジェクトのためのフォルダ構成を提案して、実際に作成して」と依頼しましょう。

  • src/:プログラム本体を置く
  • data/:取得した株価データを保存する
  • models/:学習させたAIモデルを保存する

このように整理された環境をAIに作らせることで、作業効率が劇的に向上します。

「とりあえず一つのファイルに全部書く」というやり方でも動きますが、将来的に複数の銘柄や戦略を試すなら、最初から整理整頓しておくのが成功の秘訣です。

分析の材料になる「特徴量」を用意する

AIが学習するための「エサ」となるデータを作ります。株価そのものだけでなく、そこから計算されるテクニカル指標を組み込むことで、AIはより賢い判断ができるようになります。

yfinanceで過去の価格データを取得する

まずは過去の銘柄データを手に入れます。yfinanceというライブラリを使えば、ティッカーシンボル(例:7203.Tはトヨタ自動車)を指定するだけで、数年分のデータを一瞬で取得できます。

Claude Codeに「トヨタの過去5年分の日足データを取得して、CSVで保存して」と頼んでみましょう。

import yfinance as yf

ticker = "7203.T"
data = yf.download(ticker, start="2019-01-01")
data.to_csv("data/toyota_stock.csv")

取得したデータには、始値、高値、安値、終値、出来高が含まれています。これがすべての分析の出発点になります。

もちろん、日本株だけでなく米国株のデータも同様に取得できます。まずは自分が日頃チェックしている身近な銘柄から始めてみるのがおすすめです。

テクニカル指標をプログラムで計算する

生の価格データだけでは、AIは相場の勢いや過熱感をうまく捉えられません。そこで、人間がチャート分析で使う「テクニカル指標」を計算して、データに付け加えます。

よく使われる指標には以下のようなものがあります。

  • 移動平均線(5日、25日):トレンドの方向性を見る
  • RSI(相対力指数):買われすぎ、売られすぎを判断する
  • ボリンジャーバンド:価格の収束と拡散を確認する
  • 騰落率:前日から何%変化したか

これらはpandasというライブラリを使えば、数行のコードで計算できます。

例えば、5日移動平均線なら data['Close'].rolling(window=5).mean() と書くだけです。これらを「特徴量(分析のヒント)」として10個、20個と増やしていくことで、AIはより多角的な視点を持つようになります。

「明日の騰落」を予測の正解として定義する

機械学習には「正解」が必要です。今回は「明日の終値が、今日の終値より高ければ1(上がる)、低ければ0(下がる)」という二値分類を目指します。

コード上では、終値のデータを1日分上にずらして比較する処理を行います。

data['Target'] = (data['Close'].shift(-1) > data['Close']).astype(int)

この「Target」が、ランダムフォレストが当てるべき答えになります。

確かに、いくら上がるか(金額)を予測したいという気持ちも分かりますが、まずは「上がるか下がるか」というシンプルな予測から始めたほうが、学習の精度が安定しやすく、実戦での勝率向上に繋がりやすいのです。

Claude Codeでランダムフォレストを動かす

準備が整ったら、いよいよAIモデルを構築します。Claude Codeと対話しながら、学習のプロセスを進めていきましょう。

モデル学習のコードをAIと一緒に作る

ここが一番の山場ですが、Claude Codeを使えば「ランダムフォレストの学習コードを書いて」と一言添えるだけで、複雑な設定を網羅したプログラムを提案してくれます。

プログラム内では、まず学習に使う項目(RSIや移動平均など)を選び出し、それをAIに読み込ませます。

from sklearn.ensemble import RandomForestClassifier

model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)

AIは裏側で、あなたが用意した特徴量と正解データの関係性を必死に探し出します。

最初は「100本の樹」から始めて、精度を見ながら本数を増やしたり、樹の深さを調整したりしていきます。これらのパラメータ調整も、Claude Codeに「もっと精度を上げたいんだけど、どの設定を変えればいい?」と聞けば、論理的なアドバイスが返ってきます。

データを学習用とテスト用に分割する

AIが過去のデータだけを完璧に覚えてしまう「カンニング」を防ぐために、データを二つに分けます。

  • 学習用データ:AIが練習に使うデータ(全体の8割など)
  • テスト用データ:練習成果を試すための「本番用」データ(残り2割)

例えば、2019年から2023年までのデータで学習させ、2024年の未知のデータで予測が当たるかどうかを試す、といった具合です。

これを怠ると、過去には100%当たるのに、未来の予測には全く使えない「使えないAI」になってしまいます。Claude Codeはこのデータ分割の重要性を熟知しているため、最初から適切な分割コードを書いてくれるはずです。

未来のデータを混ぜないための「ラグ処理」

株価予測で最もやってはいけないミスが、予測したい日の情報を、予測する瞬間のデータに含めてしまう「データリーク(情報の漏洩)」です。

例えば、「明日の終値」を使って「今日の予測」をしてしまうと、驚くほど高い勝率が出ますが、それは現実にはあり得ない結果です。

これを防ぐためには、すべての特徴量を「1日分過去にずらす(ラグ)」処理が必須になります。

  1. 今日のRSIや移動平均を確認する
  2. それらの値を「明日を予測するための材料」として1行下に配置する
  3. 明日の結果(Target)と結びつける

この手順を正しく踏むことで、初めて「今日の手元のデータだけで、明日を予測する」という現実的なモデルが完成します。Claude Codeに「データリークがないかチェックして」と頼むことで、この致命的なミスを未然に防げます。

どの指標が効いた?特徴量の重要度を分析する

モデルの学習が終わったら、中身を詳しく見てみましょう。どの指標が予測に役立ったのかを分析することで、相場の本質が見えてきます。

特徴量の重要度をランキング形式で見る

ランダムフォレストには feature_importances_ という便利な属性があります。これを使うと、各指標がどれくらい予測に寄与したかを0から1の範囲で数値化できます。

Claude Codeに「特徴量の重要度を棒グラフで表示して」と依頼しましょう。

  • RSI:0.25
  • 5日移動平均乖離率:0.18
  • 出来高変化率:0.12
  • ……

このようにランキング形式で可視化されます。

もし、特定の指標が突出して高い場合は、それが相場を動かす鍵になっている可能性があります。逆に重要度が極めて低い指標は、予測の邪魔(ノイズ)になっている可能性があるため、思い切って削除することでモデルをスリムに、かつ高精度に保てます。

価格と出来高のどちらが重要だったか

分析を進めると、面白い発見があるはずです。価格の変動幅(ボラティリティ)が予測に効いている時期もあれば、出来高が先行指標として機能している時期もあります。

例えば、以下の表のように重要度を整理して比較してみましょう。

指標カテゴリー代表的な項目期待される役割
トレンド系移動平均、MACD相場の方向性を捉える
オシレーター系RSI、ストキャスティクス売られすぎ等の過熱感を見る
出来高系出来高変化率、OBVエネルギーの蓄積を確認する
変動率系前日比、ボラティリティ勢いの強さを数値化する

「この銘柄はトレンド系よりもオシレーター系が効きやすいんだな」といった個性が分かれば、AIだけでなくあなた自身の裁量トレードのヒントにもなります。

複数の銘柄でこの分析を行い、銘柄ごとの「効く指標」の違いをリスト化してみるのも非常に有益な作業です。

分析結果から「買いの根拠」を探る

重要度を把握したら、それを実際の投資判断にどう繋げるかを考えます。

単に「AIが上がるって言ってるから買う」のではなく、「今は重要度の高いRSIが30以下になり、かつ5日線が上向いているから、AIも買いと判断したんだな」と、ロジックを読み取ることが大切です。

AIが出した答えの背景を理解することで、予期せぬニュースで相場が急変したときにも「これはAIの判断材料には入っていない事象だから、今は静観しよう」といった冷静な判断ができるようになります。

Claude Codeに「この結果をどう解釈すればいい?」と聞いてみると、統計的な観点から興味深い考察をくれるかもしれません。分析結果を自分の言葉で説明できるようになることが、脱・初心者への近道です。

バックテストで本当の勝率を確かめる

モデルの性能は、未知のデータでどれだけ勝てたかで決まります。シミュレーションを行い、現実的な利益が出るかどうかを検証しましょう。

過去データでの運用シミュレーション

学習に使わなかった「テスト用データ」を使って、実際にトレードを行った場合の勝率を計算します。

  1. テストデータの1日目から順に予測を出す
  2. 「上がる」と予測した日に買ったと仮定する
  3. 翌日の終値で、予測が当たっていたかを確認する

この積み重ねによって、「勝率60%」や「年間利益率15%」といった具体的な数字が見えてきます。

ここで大切なのは、手数料や税金を考慮した「現実的な数字」を見ることです。Claude Codeに「売買手数料を0.1%含めて利益計算して」と頼めば、より厳しい、しかし実戦に近い結果を算出してくれます。

資産推移をグラフにして視覚化する

数字だけでなく、資産がどのように増減したかを示す「資産曲線」をグラフに描かせましょう。

順調に右肩上がりのグラフなら良いのですが、実際には大きく減り続ける時期(ドローダウン)があったり、横ばいが続いたりすることがほとんどです。

グラフを見ることで、「このモデルは連敗すると脆いな」とか「大きなトレンドが出たときは一気に稼げるんだな」といったモデルの性格が分かります。Claude Codeなら plt.plot(cumulative_returns) といったコードを一瞬で書き、その場で画像として出力してくれます。

視覚的に確認することで、自分がそのドローダウンに耐えられるメンタルを持っているか、事前にシミュレーションしておくことができます。

勝率だけで判断しない評価指標の見方

投資において「勝率」はあくまで一つの指標に過ぎません。勝率が高くても、1回の負けが大きければトータルではマイナスになるからです。

以下の指標も併せて確認するようにClaude Codeに依頼しましょう。

  • プロフィットファクター:総利益 ÷ 総損失(1.5以上なら優秀)
  • シャープレシオ:リスクに対するリターンの効率(高いほど良い)
  • 最大ドローダウン:資産が最も減った時の下落率

「勝率は55%だけど、プロフィットファクターが1.8あるから、期待値はプラスだ」というように、多角的なデータで判断を下せるようになれば、立派なシステムトレーダーの仲間入りです。

確実な利益を追求するために、Claude Codeに「このバックテスト結果から、最も大きな負けの原因を分析して」と深掘りさせるのも良いでしょう。

予測精度を高めるための応用テクニック

基本のモデルができたら、さらに精度を磨き上げていきましょう。プロの視点を取り入れた、一歩先のアプローチを紹介します。

市場全体の地合いをデータに加える

銘柄単体の動きだけでなく、市場全体の空気感(地合い)をAIに教えましょう。

例えば、日経平均株価の動きや、米国のVIX指数(恐怖指数)、あるいはドル円の為替レートなどを特徴量に加えます。

「トヨタの株価そのものよりも、実は為替の影響のほうが大きかった」というような事実が、特徴量分析から判明することもあります。Claude Codeに「日経平均のデータも取得して、今の特徴量と結合して」と頼めば、複数のデータを紐付ける複雑な処理も正確にこなしてくれます。

個別銘柄のテクニカル指標に「外部環境」を組み合わせることで、モデルの視野が広がり、急な相場の崩れにも対応しやすくなります。

ハイパーパラメータを最適化する

ランダムフォレストには、「樹の本数」や「樹の深さ」など、人間が事前に決める設定値(ハイパーパラメータ)があります。これらを最適な値に変えるだけで、精度が数%向上することがあります。

「グリッドサーチ」という手法を使えば、さまざまな設定の組み合わせを自動で試し、最も成績が良かったものを探し出せます。

from sklearn.model_selection import GridSearchCV

param_grid = {'n_estimators': [50, 100, 200], 'max_depth': [10, 20, None]}
grid_search = GridSearchCV(model, param_grid, cv=5)
grid_search.fit(X_train, y_train)

これを自分一人でやろうとすると時間がかかりますが、Claude Codeに「グリッドサーチでパラメータを最適化するスクリプトを書いて実行して」と頼めば、最適な設定を見つけ出すまでを自動化できます。

ただし、やりすぎると過去のデータに合わせすぎる「過学習」に陥るため、AIと相談しながらバランスを見極めるのがコツです。

複数の銘柄を学習させて頑健性を高める

一つの銘柄だけで学習させると、その銘柄特有の癖に依存しすぎてしまうことがあります。

同業種(例えば、自動車セクターの複数社)のデータをまとめて学習させることで、「自動車株が上がるときの共通パターン」をAIが覚え、より汎用性の高いモデルになります。

Claude Codeに「自動車セクターの主要5社のデータを取得して、一括で学習させてみて」と指示してみましょう。

一つの銘柄では勝率が安定しなかったモデルが、複数のデータを読み込ませることで「どんな銘柄にもある程度通用する、タフなモデル」に進化することがあります。

実戦投入前に知っておくべきリスクと注意点

最後に、最も重要な「守り」の話をします。機械学習を過信して全財産を投じる前に、必ず以下の制約を頭に叩き込んでおいてください。

見せかけの勝率を生む「データリーク」

先ほども触れましたが、データリーク(情報の漏洩)は初心者が最も陥りやすい罠です。

「テストデータでの勝率が90%を超えた!」と喜んで実戦に投入したら、全く勝てずに資金が溶けた……という話は珍しくありません。これは、未来の情報を知っている状態でテストを行っていたことが原因です。

Claude Codeを使っていても、「自分が気づかないうちに、未来の値を参照するようなコードを指示していないか」は常に疑う必要があります。

「このモデル、上手くいきすぎじゃないかな?」と少しでも感じたら、一度コードをClaudeに渡し、「データリークがないか、特に時系列の扱いに間違いがないか徹底的にチェックして」と再確認させてください。

相場の急変に対応できない限界を知る

ランダムフォレストは「過去のパターンの再来」を予測するツールです。

そのため、パンデミックや戦争、金融危機、突然の政策変更といった「過去に類を見ない出来事」が起きたとき、AIは無力になります。過去に一度も学習したことがないパターンには、正しい答えを出せないからです。

以下の表に、AIが得意な場面と苦手な場面をまとめました。

場面AIの得意・不得意対策
安定したトレンド得意。過去のパターン通りに動く積極的に活用する
経済指標発表時苦手。ボラティリティが異常に高まる指標前後では稼働を止める
〇〇ショック時非常に苦手。過去の法則が崩壊する損切りラインを徹底する

「AIが上がると言ったから放置」ではなく、常に大きなニュースには耳を傾け、地合いが明らかに変わったときはシステムを止める勇気を持つことが、長期的に生き残る秘訣です。

AIを「意思決定の補助」として使う姿勢

究極的には、投資の責任を取るのはあなた自身です。AIは膨大なデータを整理し、確率が高い方向を教えてくれる「超優秀な参謀」ですが、決断を下す「将軍」ではありません。

「AIの予測」に加えて「自分の裁量判断」や「厳格な資金管理」を組み合わせる。この3つの柱が揃って初めて、ランダムフォレストは真の力を発揮します。

具体的には、AIが「買い」と判断しても、自分の資金の5%以上は一度に投じない、といった「退場しないためのルール」をプログラムの外側に設けておきましょう。

Claude Codeに「予測だけでなく、リスクを考慮した推奨売買数量も計算させて」と依頼し、常に安全マージンを確保した運用を心がけてください。

まとめ:Claude Codeで投資の武器を作ろう

ランダムフォレストは、複雑な株価の動きを多角的に捉え、根拠のある予測を導き出してくれる強力なツールです。そしてClaude Codeは、その難しい構築プロセスをあなたの隣で支えてくれる心強いパートナーとなります。

今回のポイントを整理すると以下の通りです。

  1. 根拠の可視化:特徴量重要度で、なぜ上がるのかを納得してトレードする。
  2. AIとの共創:Claude Codeを使って、環境構築からバックテストまでを高速化する。
  3. リスクの管理:データリークや相場急変の罠を知り、過信せずに運用する。

投資は、武器を持たずに戦うにはあまりに厳しい場所です。まずは今日、Claude Codeをインストールし、好きな銘柄のデータを1年分取得してみることから始めてみてください。データに基づいた新しい投資の世界が、そこから広がっていくはずです。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次