見出し画像

だれでもできる主成分分析でデータ傾向をつかむ

こんにちは、ヒューマノーム研究所のしゅんです。

暑い日が続いていますね。こんな時に、極寒の地に生息するペンギンを見ると、なんだか涼むし癒されます。ペンギンは、漢字で書くと「人鳥」と書くようです。二本足で歩いているからでしょうか?

さて、データサイエンティストや機械学習を扱う皆様には馴染みのある有名なデータで”palmerpenguins”というペンギンに関するデータがあります(今回の記事用に改変した表データは以下のリンクからダウンロードできます)。本データの中身は表1のようになっています。

表1. palmerpenguinsの各変数の概要
本記事では、表データの各変数名をオリジナルの英語から日本語に翻訳した。

このペンギンデータから、機械学習を使ってペンギンの種名を予測するAIモデルを構築しようとした時、まずはデータの傾向をつかむことが重要になります。

弊社が提供するHumanome CatData(以下CatData)は、表データを用いた予測AI構築をプログラミングなしで実現できるツールなのですが、様々なグラフでデータを可視化するツールとしても活用できます。

本記事では、このペンギンのデータを用いて、可視化方法の一つである主成分分析について紹介しつつ、ペンギンデータの傾向を分析したいと思います。内容としては中級者向けとなりますが、主成分分析の基礎を押さえることで、データ理解度のスキルをさらに高められますので、ぜひ皆様にチャレンジしていただけたらと思っています。


1. 主成分分析(PCA: Principal Component Analysis)

主成分分析(PCA: Principal Component Analysis)は、多変数のデータをより少ない変数に「圧縮」する手法(次元削減法)です。結果として得られる新しいデータは、元のデータ全体の特徴をよく表現しつつ、変数の数が少なくなります。これにより、データの解釈や可視化が容易になります。

ペンギンのデータは合計8つの変数があり、これらを2つずつペアにして2次元のグラフを作ると、その組み合わせは28個になります。28個ものグラフを作成して、それぞれの変数の関係性を確認するのは大変ですよね。

しかし、PCAを使用することで、これらの8つの変数が2つの新しい「主成分」にまとまり、結果として1つの2次元グラフでデータを視覚化することができます。言葉にすると難しいので、まずは実際にCatDataを使ってPCAのグラフを作成する流れについてご紹介します。

2. CatDataによるPCAのグラフ表示

2-1. 新規テーブル作成と可視化

CatDataを使ってPCAグラフを表示させるまでに必要な操作となる、表データの読み込み方や可視化画面までの流れについては以下の記事を参照ください。

2-2. PCAグラフの表示方法

可視化の画面まで進むと、グラフが表示されています(図1A)。この画面の左にある”PCA/次元削減”と表示されたタブをクリックすることで、PCAグラフを表示させることができます(図1B)。

”PCA/次元削減”タブで、PCAグラフの表示に関する細かな設定を入力していきます。図1Cで示すように、手法は”PCA”、色は”種名”、そして”色に使った列を除外する”にチェックを入れてください。これにより、種名以外の変数でPCAが実施され、色分けされた種名のデータがどのように分布しているかをグラフで確認することができます。

図1. PCAグラフの表示

3. PCAグラフの見方と解釈

 PCAグラフ表示の設定が終わると、右側にグラフが現れ、スクロールバーで下に向けると計4つのグラフを見ることができます(図1B)。上から順番に見ていきましょう。

3-1. 第一主成分と第二主成分による2次元散布図

主成分(PC)は、解析対象のデータを統合して得られた新しい変数で、最初に求められた主成分から順に、第一主成分(PC1)、第二主成分(PC2)、第三主成分(PC3)...となります。図2は、主成分のうち第一主成分(PC1)と第二主成分(PC2)を用いた2次元散布図になります。

このグラフは、ペンギンの種名でプロットが色分けされています。グラフを見ると、まず横軸で大きくジェンツーペンギンとそれ以外の2種にわかれているようです。またそれぞれのペンギン種のプロットが、縦軸で大きく2分割されています。またアデリーペンギンとヒゲペンギンは近い集団ではあるものの、それぞれ分かれているように見えます。

図2. 第一主成分と第二主成分による2次元散布図
各プロットは、それぞれ緑:Adelie(アデリーペンギン)、橙色:Gentoo(ジェンツーペンギン)、紫色:Chinstrap(ヒゲペンギン)を示す。

このグラフから、この表データを用いるとペンギンの種類を分類できそうというざっくりとした傾向をつかめました。しかし各主成分の特徴について、もう少し情報が欲しいところです。「各主成分が、どれだけ本データの情報を持っているのか?」や「各主成分に、元データの各変数がどれだけ反映されているのか?」など、順番に詳しく見ていきましょう。

3-2. 各主成分の寄与率と累積寄与率

PCAにおける寄与率とは、各主成分が分析対象のデータ全体に、どれだけ影響を与えているかを示すものです。具体的には、ある主成分の重要度(固有値)を全ての主成分の重要度の合計で割ったものがその主成分の寄与率となります。寄与率は0から1の間の値を取り、1に近いほどその主成分がデータを多く説明していることを意味します。

そして累積寄与率とは、選択した主成分までの寄与率の合計です。この累積寄与率を示したのが図3になります。図2の2次元散布図で用いた第一主成分から第二主成分までの累積寄与率は0.52となり、第一主成分と第二主成分を合わせると元のデータの約50%を反映していると言えます(図3の赤線)。

図3. 主成分の累積累積寄与率

3-3. 各主成分の重要度

つぎに「各主成分に、元データの各変数がどれだけ反映されているのか?」を確認します。この疑問に答えてくれるのが、図4に示す棒グラフです。これらの図は第一主成分(PC1)と第二主成分(PC2)それぞれにおける、変数の固有ベクトルを示します。簡潔にいうと、各主成分における、元のデータの変数の重要度と方向を示していると言えます。

図4Aは、第一主成分(PC1)における元のデータの変数の重要度です。重要度が高い変数は、”体重”や”水かきの長さ”となっています。これらの重要度の値は正の値を持っていることから、体重や水かきの長さの値が大きければ、PC1の値は大きくなることを示します。一方で、負の値を持っている変数”くちばしの高さ”の値が大きいと、PC1の値は小さくなります。

 続いて第二主成分(PC2)を見ていきましょう(図4B)。もっとも重要度が高いのは”性別_female”と”性別_male”となっています。femaleは負の方向、maleは正の方向なので、図2の2次元散布図でPC2軸(縦軸)でそれぞれの種名が縦方向で分かれているのは、性別の違いが大きな要因であると考察できます。

図4. 主成分の固有ベクトル

4. おわりに

本記事では、可視化機能の一つである主成分分析(PCA)を紹介しました。多くの変数で構成されたデータにおいて、その全体の傾向をつかめるのがPCAのメリットです。少しとっつきにくい内容だったと思いますが、慣れてくるとデータの傾向把握だけではなく、その後の予測AI構築がスムーズに進められますので、ぜひ活用してみてください。

データ解析・AI構築の初学者向け自習テキスト

表データを利用したAI学習テキスト(Humanome CatData

画像・動画を利用したAI学習テキスト(Humanome Eyes


AI・DX・データサイエンスについてのご質問・共同研究等についてはお気軽にお問い合わせ下さい!

この記事が気に入ったらサポートをしてみませんか?