AIで株価予測って、正直どうなの?
最近よく聞かれるんだよね、AIで株価とか経済のトレンドを予測できるかって。プログラマーなら、なんか魔法みたいなツール作って未来が読めるんじゃないか、みたいな。うん、まあ、気持ちはわかる。でもね、先に結論を言っちゃうと、これは「未来を当てる水晶玉」を作る話じゃない。どっちかっていうと、「めちゃくちゃ優秀な分析アシスタント」を自分で育てる、っていう感覚に近いかな。
正直、金融とか全然詳しくないコード書いてる人でも、今って結構面白いことができる時代。逆に、金融は好きだけどITは…って人にも、その「面白さ」の雰囲気が伝わればいいなと思って、僕が頭の中で整理してるメモをそのまま書き出してみる感じ。だから、専門用語とかはあんまり使わないつもり。たぶん。
予測モデルって、結局どっちがいいの?
AIで予測するって言っても、実は大きく分けて2種類のアプローチがある。どっちが良い悪いじゃなくて、目的によって使い分ける感じかな。僕も最初、ごっちゃになってた。
具体的に言うと、「明日の株価はいくら?」っていう具体的な数値を当てにいくのか、「明日は上がるか、下がるか?」っていう方向性を知りたいのか、ってこと。これを表にすると、たぶんこんな感じ。
| 比較項目 | 数値予測(回帰モデル) | カテゴリ予測(分類モデル) |
|---|---|---|
| 目的 | 「明日の終値は15,050円くらいかな?」みたいに、具体的な数字を出すこと。車の価格査定みたいな感じ。 | 「明日は『上がる』か『下がる』か、どっち?」みたいに、2択(あるいは3択)の結果を出すこと。スポーツの勝ち負け予想に近いかも。 |
| 良いところ | 具体的な数字で出てくるから、目標設定とか、なんとなくイメージがしやすい。分かりやすいよね、すごく。 | 「上がるか・下がるか」っていうシンプルな答えだから、実はこっちのほうが実用的だったりする。「当たる/外れる」がハッキリしてるし。 |
| 難しいところ | 1円でも違えば「外れ」は「外れ」。ちょっとした誤差でも、なんかすごい大外れした気分になる。精神的にくる。 | 方向性はわかっても、「じゃあ、どれくらい上がるの?」までは教えてくれない。そこがもどかしい。 |
個人的には、初心者が最初に「お、動いた!」って感動を味わうなら、「分類モデル」から入るのがおすすめかな。当たる確率が50%よりちょっとでも高くなれば、それだけで結構すごいことだし。
実際にどうやってやるの?ざっくりした流れ
じゃあ、プログラマーがどういう手順でこういうのを作ってるのか。ここではApple(AAPL)の株価を例にして、本当にざっくりとした流れだけ。コードとかは一切なしで。
ステップ1:まず、ひたすらデータを集める
何はともあれ、データがないと始まらない。AIの「ごはん」になるものだからね。Appleの過去数年分の株価データとか。これは、例えばYahoo Financeみたいなサイトに行けば、誰でも無料でダウンロードできる。CSVファイルっていう、まあ、エクセルで開ける表みたいな形式で手に入る。これを「学習データ」って呼んだりする。
ステップ2:どのツール(道具箱)を使うか決める
プログラマーはここでPythonっていうプログラミング言語を選ぶことが多いかな。で、その中に「scikit-learn」とか「TensorFlow」みたいな、機械学習用の便利な「道具箱(ライブラリ)」がたくさんある。最初は簡単な計算機みたいなシンプルなものから試すのが普通。
ステップ3:AIにデータを食わせて学習させる
ここがコーディングのメインパート。書いたプログラムで、ステップ1で集めたデータをAIに読み込ませる。「過去5日間の株価がこう動いたら、次の日はこうなったよ」っていうパターンを、ひたすら、本当にひたすら覚えさせる。小さい子に犬と猫の写真を大量に見せて、「こっちが犬だよ」「こっちが猫だよ」って教え込む作業に似てる。
ステップ4:テストして、予測させてみる
学習が終わったら、AIに「じゃあ、この最新の5日間のデータだと、明日はどうなると思う?」って聞いてみる。そうすると、AIが「たぶん150ドルくらいになるんじゃないかな…」みたいな答えを返してくる。これが「予測」だね。
ステップ5:改善を繰り返す
最初から完璧な予測なんて絶対できない。だから、ここからが本番。例えば、株価だけじゃなくて「出来高」のデータも追加してみたり、あるいは金利みたいな経済ニュースのデータも加えてみたり。AIに与える「ごはん」の種類を増やすことで、AIはもっと賢くなっていく。この試行錯誤が、正直一番面白いところでもある。
もっと精度を上げるには?(沼へようこそ)
最初の予測モデルが動いたら、もう半分成功したようなもの。でも、ここからが奥深い。もっと「使える」ツールにするために、みんな色々工夫するんだ。
- 追加するデータを増やす:株価だけじゃなく、企業の決算情報とか、失業率みたいな経済指標とか。もっと言えば、SNSでの評判を分析した「センチメント分析」の結果とか。…あ、これはちょっと上級者向けか。でも、インプット情報が多いほど、AIが考慮できる要素が増えるのは確か。
- ツールの使い分け:アメリカのデータなら米国経済分析局(Bureau of Economic Analysis)のデータが有名だけど、日本のデータを使うなら総務省の「e-Stat(政府統計の総合窓口)」とか、日本銀行が出してるデータもすごく参考になる。こういう情報源をどう組み合わせるかで、モデルの性格が全然変わってくるのが面白い。
- 過去の予測と現実を比較させる:AIが出した予測と、実際の市場の結果をプログラムで自動的に比較させて、「今回はちょっと強気すぎたね」「ここは弱気すぎた」みたいに、AI自身に「反省」させる(バックテストってやつ)。これを繰り返すと、どんどん賢くなる。…はず。
ここ、マジで大事な話。AI予測の限界とリスク
ここまで良いことばっかり言ってきたけど、一番大事な注意点を言っておかないと。AIの予測は、絶対に万能じゃない。これを忘れると、マジで痛い目にあう。
理由はシンプルで、AIは「過去のデータからパターンを学習している」だけだから。つまり、過去に一度も起きたことがないこと、例えばリーマンショックみたいな巨大な金融危機とか、パンデミックみたいな予測不可能な出来事(いわゆるブラックスワン)は、原理的に予測できない。
あと、よくある失敗が「過学習(か学習、Overfitting)」っていう状態。これは、AIが学習データを「覚えすぎちゃった」状態のこと。練習問題は100点取れるけど、本番のテストになると全然ダメ、みたいな。過去の特定のデータに過剰に最適化しすぎて、未来の未知のデータに対応できなくなるんだ。これを見抜いて調整するのが、プログラマーの腕の見せ所でもある。
だから、AIが出した答えは、あくまで「参考意見」の一つ。それを鵜呑みにするんじゃなくて、最終的には自分の頭で考えて判断する。このスタンスは絶対に忘れちゃいけない。失ってもいいと思える金額以上のお金を、AIの予測だけを信じて突っ込むなんて、絶対やめたほうがいい。
よくある間違いと対策
最後に、この世界に足を踏み入れた人がやりがちなミスをいくつか。
- 間違い:いきなり完璧なモデルを目指す。
対策:やめとけ。まずは、とにかく動く簡単なものを作る。株価の上下を当てるだけでもいい。小さな成功体験が大事。 - 間違い:データの「質」を無視する。
対策:ゴミを入れたらゴミが出てくる(Garbage In, Garbage Out)。データが欠けてたり、明らかに間違ってたりすると、AIは混乱するだけ。データをきれいにするところ(前処理)に、実は一番時間がかかる。 - 間違い:コミュニティから孤立する。
対策:Redditのr/algotradingとか、日本のQiitaとかZennとか。同じようなことをやってる人は世界中にいる。詰まったら聞いたり、人のアイデアを見たりするのはすごく勉強になる。
結局のところ、AIで金融予測に挑戦するのって、お金儲けの特効薬を探すというよりは、知的な探求に近いのかもしれない。自分の書いたコードが、複雑な市場の動きを少しでも捉えられた瞬間の興奮は、なかなか他では味わえないものがあるからね。
もしあなたがこれから何かモデルを作ってみるとしたら、まずは具体的な価格を当てる「数値予測」と、単純に上がり下がりを当てる「カテゴリ予測」、どっちから試してみたい?もしよかったら、あなたの考えを聞かせてほしいな。
