サポートベクターマシン(SVM)とは?株式投資に活かすための実践ガイド

サポートベクターマシン(SVM)は、少ない特徴量や限られた学習データでも堅実に汎化性能を発揮する機械学習アルゴリズムとして広く認知されています。
株式投資の現場では、値動き方向を判定する分類や将来リターンを見積もる回帰に活用され、テクニカル指標・ニュース・ファンダメンタルズなど多様な情報を統合して扱える点が大きな強みです。
本記事では、SVMの基本から株に適用する際の設計手順、検証方法、リスクと改善の勘所まで、実務目線でわかりやすく整理します。
株価はノイズが多く、相場環境も常に移ろいます。
万能な「正解」は存在しませんが、SVMは明確な決定境界(マージン)を構築し、外れ値や高次元特徴量に比較的頑健です。
一方で、データ前処理や検証設計を誤ると見かけ倒しの高成績に陥りがちです。
過度な期待や属人的な微調整に頼らず、再現性のあるプロセスを築くことが重要です。
SVMの基本と仕組みの直感
SVMの発想はシンプルです。多数の候補となる境界(線や面)の中からクラス間マージンが最も広くなるものを選び、誤分類を抑えつつ境界の安定性を最大化します。
境界近傍で判断を左右するデータ点は「サポートベクタ」と呼ばれ、SVMはそれらの影響を強く受けます。
余計な点まで追いかけて過学習するのではなく、本質的なポイントに集中するため、ノイズが多い金融データでも粘り強さを発揮します。
線形と非線形の違い
値動きが直線で分けられるなら線形SVMで十分ですが、相場には非線形な関係が数多く潜みます。
その場合は「カーネル」により特徴量空間を高次元へ写像し、線形分離可能にします。
代表的なカーネルは、汎用性の高いRBF(ガウス)、相互作用を表現しやすい多項式、解釈が明快な線形です。
カーネル選択は表現力と計算量のバランスを左右し、時系列で並ぶ株式データでは、過度に複雑な変換が過学習の温床になりやすい点に注意が必要です。
分類と回帰の2つの使い方
SVMは大きく「分類(SVC)」と「回帰(SVR)」で利用します。
分類では「翌日の終値が上がるか下がるか」「市場平均をアウトパフォームするか」など二値(または多値)判定を行います。
回帰では「次の5営業日のリターン」「ニュース後の価格インパクト」など連続値を推定します。
株式では、まず売買判断に直結させやすい分類から着手し、モデルの確信度に応じてポジションサイズを調整すると運用設計がシンプルです。回帰はポートフォリオ最適化や期待値の順位付けと相性が良く、手数料を含む最適化とも併用しやすいのが利点です。
株での具体的なイメージ
たとえば、移動平均線の傾き、出来高の急増、ボラティリティの圧縮・拡大といった特徴量から「翌日上昇の確率が60%以上なら買い」といったルールを構築します。
SVMは境界付近の微妙な状況を丁寧に扱えるため、閾値設計やポジション調整と組み合わせると取引回数と勝率のバランスを取りやすく、無駄な売買を抑えやすいという実務的メリットがあります。
株式データへの適用:特徴量設計・目的変数・前処理
SVMを株に適用する際の全体像は、データ収集→前処理→特徴量設計→目的変数(ラベル)設計→学習→検証→運用という流れです。
成果の大半は前処理と特徴量設計で決まります。
ここを丁寧に積み上げることが、過学習を抑え、汎用性を高める最短ルートです。
特徴量の設計
特徴量は「相場の状態を数値で明快に表したもの」です。
短期〜中期のタイムフレームでは、トレンド、モメンタム、需給、ボラティリティ、季節性、外部市場の連動などをバランスよく取り入れると安定します。
数をむやみに増やせば良いわけではなく、重複やリーケージ(未来情報の混入)を避け、スケールを整えるのがコツです。
- テクニカル指標: 移動平均・MACD・RSI・ボリンジャーバンド・ATR・一目など、期間を複数組み合わせて相場のリズムを捉える
- 価格アクション: ギャップ、ヒゲの長さ、レンジ幅、カレンダー効果(曜日・月初月末)、出来高の急増率
- ファンダメンタルズ: EPS成長、売上・利益レシオ、配当、バリュエーション(PBR/PER/EV/EBITDA)のトレンド
- ニュース・センチメント: 見出しの好悪判定、アナリストレーティング変更、決算サプライズ後の反応持続
- 市場構造: 板厚と乖離、スプレッド、先物・オプションのポジショニング、為替や金利との連動度
目的変数(ラベル)の設計
分類では「翌日終値が前日比で上昇か」「週次リターンが0より大きいか」「TOPIX超過か」などを定義します。
しきい値を0ではなく、手数料・スリッページを含めた実質損益に合わせると現実的なシグナルになります。
回帰では「将来t日後のリターン」「将来のリスク調整後リターン(例えばボラで割る)」などを予測します。
いずれも、ラベル計算時に未来情報が混入しないよう、発生時刻と利用可能時刻を厳密に整合させることが重要です。
前処理とスケーリング
SVMは特徴量のスケールに敏感です。
標準化やロバストスケーリングで外れ値の影響を緩和しつつ分布を整えましょう。
株式横断の学習では、銘柄ごとの水準差(価格帯や出来高規模)を相対化する工夫が効きます。
欠損値は除外や補完のルールを統一し、将来情報を覗かない範囲で扱います。
極端値はウインザー化やランク変換で安定させ、情報量を保ちながらモデルの暴走を防ぎます。
データ分割の基本
時系列データは必ず時間順に分割します。
学習期間を徐々に広げながら直近を検証する「ウォークフォワード」を使うと、運用時の更新手順に近い検証が可能です。
同期間内のデータを重ねて使うとリーケージが生じるため、学習と検証の境目をしっかり空ける工夫が有効です。
複数銘柄を束ねる場合は、指数の入替や上場廃止の影響(サバイバーシップ・バイアス)に注意し、当時の実態に沿ったユニバースで評価しましょう。
検証と評価:時系列クロスバリデーションとバックテスト
検証は「モデルの賢さ」を測るだけでなく、「運用で再現できるか」を確かめる工程です。
時系列クロスバリデーションで複数期間にまたがる安定性を確認し、最後にバックテストで取引ルールへ落とし込みます。
売買コスト、スリッページ、約定制約(出来高・スプレッド)を現実的に見積もり、執行遅延(シグナル発生から発注までのタイムラグ)も反映させます。
SVMの出力は確信度として解釈し、しきい値やポジションサイズに結びつければ、無駄な売買を抑えつつ期待値を引き上げられます。
評価指標の選び方
学術的な誤差の小ささだけでなく、実運用に直結する指標を採用します。
クラス不均衡が強い株式分類では単純な正解率は当てにならないことがあるため、しきい値に依存しにくい指標や損益ベースの評価を併用しましょう。
期間別・銘柄群別・相場局面別のばらつきも点検し、偶然当たっただけの可能性を下げます。
- 分類:AUC、F1、適合率・再現率、PR-AUCに加え、しきい値最適化後の損益・勝率・損益比
- 回帰:MAE・RMSEと併せて、累積損益、シャープレシオ、最大ドローダウン、ヒット率、ターンオーバー
- 安定性:期間分割ごとの成績、横断銘柄の広がり、相場局面(上昇・下落・レンジ)ごとの再現性
- 実行可能性:出来高に対する発注比率、スプレッド悪化、手数料・税の影響、保有制約との整合
しきい値とキャリブレーション
SVMの生出力はマージン距離に相当し、そのままでは確率とは限りません。
確率的な解釈が必要な場合は、学習データに過度に依存しないよう慎重にキャリブレーションを行い、しきい値やサイズ決定に活用します。
特に取引コストを超える確信度だけを採用する運用では、校正の質がパフォーマンスを大きく左右します。
リーケージ対策とテストの厳格化
将来の価格、当日引け後にしか確定しない指標、アナリスト予想改定の公開時刻など、境界線が曖昧な情報は要注意です。
利用可能時刻ベースでデータを揃え、学習・検証・テストの分離を徹底します。
モデル選択や特徴量追加の意思決定には、最後に一度だけ触る完全ホールドアウト期間を確保し、過適合を防ぎましょう。
モデル改善のコツと落とし穴
SVMの実力は、ハイパーパラメータとデータ設計で大きく変わります。
複雑なカーネルで表現力を上げるほど、時系列の揺らぎに敏感になりやすいため、まずは線形やRBFで堅実なベースラインを築き、必要に応じて段階的に拡張するのが得策です。
評価は必ず時系列に沿って行い、同一の指標で比較します。
ハイパーパラメータの考え方(C・γ・ε)
誤分類をどこまで許すかを決めるCは、過学習と汎化のトレードオフを司る最重要パラメータです。
RBFカーネルのγは決定境界の細かさを調整し、過大だと境界が極端に曲がります。
回帰(SVR)のεは無視できる誤差幅で、実運用の手数料感覚と整合すると扱いやすくなります。
探索はグリッドやベイズ最適化で構いませんが、時間順の検証とコスト込みの評価を必ず守ってください。
不均衡データとサンプル設計
「上昇より下落が少ない」「勝ちトレードは少ないが利益が大きい」といった非対称性は株では普通です。
これを無視すると、見かけの正解率は高いのに儲からないモデルが生まれます。
クラス重み付け、しきい値の最適化、損益ベースの学習・評価(期待値の最大化など)を組み合わせ、不均衡を前提に設計します。
連続データの近接サンプルを無闇に増やすと情報がダブってリーケージの温床になるため、間引きや集約で独立性を高めるのも有効です。
特徴量の安定性と選択
相関が高い指標を大量に入れると、学習は容易でも汎化は弱くなりがちです。
似た特徴量は統合し、情報源の多様性を意識します。
ランキング正規化や分位スケーリングで極端値の影響を抑え、期間ごとの係数(線形の場合)や重要度(RBFでも摂動テストなど)を点検し、過去にだけ効いた指標を排除します。
PCAなどの次元圧縮は解釈を犠牲にしますが、横断データでは安定性が増すケースもあります。
相場の変化(レジーム)への対応
トレンド相場とレンジ相場、低金利と高金利、ボラティリティの急変など、環境が変わると最適なハイパーパラメータも変化します。
定期的な再学習、最近データの重み付け、検証期間のローテーション、ドリフト検知に基づく更新などで追随し、過去の最良設定に固執しない運用フローを作ります。
複数モデルを併用し、重みを市場環境に応じてなだらかに調整するのも実務的です。
運用面の注意(コスト・流動性・リスク)
どれほど検証が美しくても、スプレッドや板の薄さで実現利益は容易に削られます。
出来高に対する発注比率を抑え、ターンオーバーを管理し、指値・成行・VWAPなど執行手法も含めて最適化を図ります。
損切り・利確ルール、上限ポジション、セクター分散、銘柄集中リスクの制御を組み合わせ、モデルの誤りを前提に耐える仕組みを用意しましょう。
コンプライアンスや運用制約(信用・空売り可否、貸借、税制)も最初に織り込むのが安全です。
まとめ:SVMを株で使うときの要点
SVMは、少ない手がかりからでも境界をはっきり引くのが得意な道具です。
株では、上がるか下がるかの判断や、どのくらい動きそうかの見積もりに向いています。
うまく使うには、データを時間どおりに並べ、未来情報を混ぜないこと、数値スケールをそろえること、売買コストまで含めて確かめることが大切です。
指標は数を増やせば良いわけではなく、重ならないものを選び、効きやすさを定期的に見直しましょう。
最初はシンプルな設定から始め、線形やRBFで土台を作り、合わないところだけ段階的に直します。
結果は期間を分けて何度も確かめ、たまたま上手くいっただけではないかを検証します。
売買数をむやみに増やさず、確信があるときだけ動く工夫をすると、ムダな損を減らせます。
相場は変わるものなので、定期的に作り直し、少額で試し、無理のない範囲で続ける姿勢がいちばんの近道です。
SVMはその土台を支える、扱いやすく頼れる選択肢になります。
-







