テキスト情報による日本株のクラスタリング
業種やタグを含むテキスト情報のみを使い、教師なし学習で分析してみる。
なお、note内の記事で株価時系列を使った分析が公開されている。
今回のメモは読者による再現を目指しておらず、詳細を端折っている点はご了承ください。(そこまで書くのが非常に面倒)
目的
株価時系列や株価指標と異なるアプローチで銘柄間の関係を分析するにあたり、教師あり学習(分類)に取り組む前の事前調査およびデータ整備を行う。
方法
対象は2024年10月末時点で東証に上場している銘柄とする。元データはサクッとぶっこ抜けるものを使用し、REITとETFを除き3,788銘柄を準備した。
同様のことを試すならテキストソースも色々比較するとよいだろう。手法としては以下の記事が参考になるのではなかろうか。
結果
特徴量をある程度まで整備し、早速クラスタリングしてみる。エルボー法によりK-Meansのクラスター個数を決定する。k=150あれば足りているようだ。
シルエットスコア。クラスター数が多くわかりにくいが、スコアはマイナスとなっており要改善に見え、エルボー法の結果と合わせるとクラスター数を減らす方がよさそうだ。こちらは別に最適化を検討する。
実際にクラスタリングしてみると、当然ながらある程度までは業種で分かれるが謎のクラスターもある。例えばクラスター#8は以下の通り。製薬、損保が含まれているが、日経平均構成銘柄が雑にクラスター化されているだけにも見える。
次元削減と可視化のためPCAでチェックする。次元数が少ないと説明力が厳しいのは予想通り。第四主成分までのみでも3割は説明できる。
第一主成分と第二主成分でプロットした結果。
同じ座標に銘柄が重なっているものの全銘柄がプロットされており、クラスター数に合わせ150色に分かれている。
2次元にプロットすると左・中央・右それぞれに対して上下の6クラスターに分かれているように見える。分類に使えるかは不明だが、とっかかりとしては悪くないようだ。近くにプロットできているのは業種だけでなくそれらしい銘柄同士となっている。
中央のクラスターは他の4つと比べると数が少なく、むしろ孤立している。これらの銘柄は特徴量の追加や不足している紐付けを行うことが必要かもしれないし、本当に他とまったく異なる特性を持った銘柄なのかもしれない。
おわり