Alteryxの主成分分析ツールを読み解く

Alteryx

Alteryx Predictive Master資格取得を目指すシリーズです。

今回はPCA(主成分分析=Principal Components Analytics)についてです。

主成分分析ツールは、予測グルーピングツールの中に入っています。

主成分分析は特徴量の次元削減のために行う処理で、複数の特徴量を合成して次元削減を行います。数学的だったり統計的な意味はここでは取り扱いません(詳細な解説は他のサイトに譲ります)。

まず、サンプルワークフローが準備されているので、こちらを見ていきましょう。「ヘルプ」-「サンプルワークフロー」-「Predictive tool samples」-「Predictive Analytics」にある「Principal Components」がサンプルワークフローです。

インプットデータを見てみると、それぞれの項目は1以下の値に収まっており、すでになんらかのスケーリング(標準化等)が行われているようです。

基本的に、PCAを行う前に特徴量は標準化を行っておく必要があります。これは、PCA自体が分散を最大化するように処理されるからですが、そもそも分散自体が値の大きさに影響を受けるため、各特徴量の値のスケールはなるべくあわせておく必要があります。

主成分分析ツールの設定方法

さて、主成分分析ツールの設定を見ていきましょう。

「フィールド」で主成分分析を行うフィールドを指定します。

「各フィールドの単位分散を調整しますか?」は、チェックを入れることでデータを標準化してくれるようになります。元から標準化されていれば不要なオプションです。

「バイプロットに含める主成分分析の最高数」は、主成分分析後の主成分をいくつグラフ化するか、ということです。

「主成分分析をデータストリームに追加します。」は、元のデータに主成分の結果を追加します。このオプションを選択しなければ、データとしては何も出てこなくなります(すなわち、O出力の内容が空っぽになります)。

※グラフィックオプションタブは、出力されるレポートのサイズや解像度、フォントを調整するのみですので、省略します

結果の読み取り

レポートは、以下の内容で構成されます。

  • サマリー
  • コンポーネントの読み込み
  • コンポーネントのようやく
  • プロット

サマリー

サマリーは、主成分分析ツール内のRツールが呼び出している関数が記載されています。

コンポーネントの読み込み

ここでは、作成された主成分(コンポーネント)が記載されています。

PC1、PC2、PC3・・・というのが主成分の番号を示しています。PC1(第一成分)が総合指標となるかと思いますが、縦軸の数値は、各成分の重みです。

また、この表を見ていくと、PC1であれば、WinとViolatの影響が大きい(重みの絶対値が大きいため)、ということになります。PC2は、GradとFinanの影響が大きいということになります。

なお、Pythonなどで利用できるPCAでは、新たなデータに対して同じ重み付けで計算を行うアルゴリズムがありますが(いわゆる学習させることが可能)、Alteryxはそのようなツール仕様になっていないため、新たなデータに対して同じ重みで計算したい場合は、ここに記載されている重みを使って計算する必要があります(2023/11/23追記)。

コンポーネントの要約

一番見るべきはここでしょうか。コンポーネントの要約は、主成分分析で得られる指標について記載されています。

寄与率は、その主成分の固有値が表す情報が、データのすべての情報の中でどのくらいの割合を占めるか、ということを示しています。

さらに、累積比率を見て採用する主成分の数を決定します。統計的な根拠などもないようですが、60%~80%程度の累積比率が得られるまで主成分を採用するのが一般的なようです。ここではPC2で63%、PC3で83%なので、主成分の数としては2か3を採用することになります(逆の言い方をすると、情報としてはPC2では37%、PC3まで採用しても17%の情報が失われる、ということです)。

プロット

コンポーネント分散のスクリープロット

スクリープロット(scree plot)とは、各主成分の固有値を棒グラフにしたものです。いくつの主成分を選択するか、という際にこれを見て決定します。ガクッと下がったところまでを取る、ということなので、2もしくは3、と考えてよいかと思います。

主成分分析1と2のバイプロット

各主成分のプロットしたものがここからいくつか続きますが、今回は最初のプロットのみ掲載しました。

矢印が同じ方向を向いている場合は似たような傾向である、ということになります。バイプロットのグラフの中身を説明するにはあまりわかりやすいデータではないですね・・・(IrisデータのPCAによる解釈などが非常にわかりやすいです)。

バイプロットで可視化してデータの中身を解釈していく、という形になります。

感想

個人的な感想としては、処理の中に組み込むというより、可視化を行い特徴量の理解を行っていく、という際に利用することが多いように思います。Predictive Masterの試験でどのように出てくるのか気になるところです。

PCAを行ってから機械学習にかけ、汎化性能をアップさせる、ということもできるようですが、PCAを行う分だけ計算量が増え、PCAによる次元削減による計算量減、ということになるので、どれだけ次元削減できるか、というところがポイントになるのでしょうか(このあたりやったことはないのでまた確かめていきたいと思います)。

その他リソース

その他、「Alteryx Predictive Master Exam Prep Guide」で触れられているリソースです。

インタラクティブレッスンにもPCAの項目があります。

Principal Component Analysis

PCAによる利益「マルチコの減少」「データセットのノイズの減少」「最も重要な変数の決定」とのことです。

その他、PCAに関するブログです。

Tidying up with PCA: An Introduction to Principal Components Analysis

コメント

タイトルとURLをコピーしました