はじめに
この記事では、Magic ETLでデータサイエンスタイルを使用する方法について説明します。 DataFlowでタイルを使用する方法については、「 Magic ETL DataFlowを作成する 」を参照してください。
注記: これらのタイルは、Domoコンサンプション契約を締結している組織はデフォルトで使用できます。コンサンプション契約を締結していないユーザーの場合、これらのタイルは オンデマンド で 有料 で使用することができます。データサイエンスタイルを有効にするには、Domoアカウントチームにお問い合わせください。タイルを使用する前に、トレーニングが必要となる場合があります。
[AutoML推論]タイル


[分類]タイル

ナイーブベイズ分類子
ナイーブベイズ分類は、その他の分類アルゴリズムよりも高速かつシンプルですが、一般に精度が劣ります。この分類はサイズの大きなDataSetに使用することを推奨します。ランダムフォレスト分類子
ランダムフォレスト分類は、複数の決定木を作成し、その結果を組み合わせて全体的な分類を得るアンサンブル学習方法です。直線性の前提は必要ありません。このアルゴリズムは、データ内の極値に対してより堅牢です。例
以下の例は、DomoのMagic ETLで分類アルゴリズムを実装して使用する方法を示しています。DataSetの Catastrophic_Train.xlsx (800行)と Catastrophic_Test.xlsx (200行)は、人為的に生成されたDataSetです。これらのDataSetには保険金請求に関するデータが含まれており、その目的は新しい請求が高額かどうかを正確に分類できる分類アルゴリズムをトレーニングすることです。 「Catastrophic Train」DataSetのスナップショットを以下に示します。

-
[分類]タイルを追加し、入力DataSetに接続します。

-
まず、アルゴリズムのトレーニングに使用するDataSetと予測の対象になるDataSetを選択する必要があります。これは同じDataSetであっても構いませんが、トレーニング用とテスト/検証用のDataSetが異なる場合は別のものを使用できます。

-
次に、分類する列を選択します。続いて、最初に数値列を選択してから(これは空白にしておいても構いません)、分類に役立つと考えられる列を選択する必要があります。

-
カテゴリー分類子列を選択する必要があります(前のステップで少なくとも1つの列を数値分類子として選択した場合は、空白のままにしておいても構いません)。分類列にも名前を付ける必要があります。この例では、デフォルト名の「classification」が使用されています。

-
最後に、
ナイーブベイズ または ランダムフォレスト のいずれかを[分類]タイルの基盤アルゴリズムとして選択します。

-
出力DataSetを接続し、名前を付けます。生成されるDataSetには、「classification」列が付加された元のDataSetが含まれます。

[クラスタリング]タイル

K平均法クラスタリング
K平均法では、DataSetからk行をランダムに選択し、それらをクラスターの中心として扱うことでクラスターを形成します。次に、各行のクラスターの中心までの距離にもとづいてkクラスターが形成されます。続いて、各クラスターの平均が計算され、新しいクラスターの中心として扱われます。このプロセスは、クラスターのメンバーシップが安定するまで繰り返されます。K-mediansクラスタリング
K-mediansでは、DataSetからk行をランダムに選択し、それらをクラスターの中心として扱うことでクラスターを形成します。次に、各行のクラスターの中心までの距離にもとづいてkクラスターが形成されます。続いて、各クラスターの中央値が計算され、新しいクラスターの中心として扱われます。このプロセスは、クラスターのメンバーシップが安定するまで繰り返されます。例
以下の例は、DomoのMagic ETLでクラスタリングアルゴリズムを実装して使用する方法を示しています。サンプルDataSetの Wholesale_Distributor_Sales.xlsx (440行)は、人為的に生成されたDataSetです。
-
[クラスタリング]タイルをMagic ETLに追加し、入力DataSetに接続します。

-
クラスターを特定するために使用する列を選択します。少なくとも1つの数値列を選択する必要があります。また、選択できるのは数値列だけです。

- 次に、クラスターメンバーシップを含む列、およびDataSetに存在すると考えられるクラスターの数(k)を指定します。最初の段階では通常、2~5つのクラスターが適切です。ただし、それ以上の数のクラスターを使用することもできます。様々なkの値を調べることを推奨します。
注記: 多すぎる数のクラスターを使用しても、通常はメリットはありません。生成されるクラスター間の解釈が難しくなるからです。
-
次に、この[クラスタリング]タイルの基盤アルゴリズムとして
[K平均法] または [K-medians] のいずれかを選択します。

- 最後に、出力DataSetを接続して名前を付ける必要があります。

DataSetを使ってカードを作成する
散布図は、このDataSetのデータを可視化するための優れた方法です。
[フォーキャスト]タイル

ARIMA
ARIMA(自己回帰和分移動平均)では、モデルへの適合性に応じて、予測パラメーターが自動的に選ばれます。これにより、データ内の動向や季節性などが考慮されます。予測は、最終的なモデルのパラメーターにもとづいて行われます。例
以下の例は、DomoのMagic ETLでARIMA予測アルゴリズムを実装して使用する方法を示しています。サンプルDataSetの Daily_Web_Sales.xlsx (171行)は人為的に生成されたDataSetで、1日当たりの収益合計を含んでいます。
-
[フォーキャスト]タイルをMagic ETLに追加し、入力DataSetに接続します。

-
次に、日時を含む列を選択してから、予測する列を選択します。この例では、「Revenue」が予測されます。

-
次に、予測帯の幅(デフォルトは95%)を選択します。選択した値が大きいほど、帯の幅は小さくなります。次に、予測する日数を選択できます。予測アルゴリズムは、過去のデータを調べ、データ点間の平均距離(時間単位)を取ります。将来の予測点はこの値にもとづいて決まります。この例では、データは日単位であるため、将来の予測時点も日単位になります。

-
将来の予測の基礎として使用する過去の行の数を選択する必要があります。デフォルトでは、すべての列が使用されます。 予測 列にも名前を付ける必要があります。この例では、デフォルト名の「prediction」が使用されています。

-
次に、予測の下限と上限に名前を付ける必要があります。ここでは、デフォルトの「prediction lower」と「prediction upper」が使用されています。

-
期間ごとに各行を監視する回数を指定します。
この例では、7回です。

-
最後に、出力DataSetを接続して名前を付けます。


DataSetを使ってカードを作成する
予測カードは、このDataSetのデータを可視化するための優れた方法です。
[多変量外れ値]タイル

例
以下の例は、DomoのMagic ETLで外れ値検出アルゴリズムを実装して使用する方法を示しています。サンプルDataSet Wolesale_Distribtor_sell.xlsx (440行)は人為的に生成されたDataSetです。
-
[多変量外れ値]タイルをMagic ETLに追加し、入力DataSetに接続します。

-
[多変量外れ値]タイル内で、6つの製品カテゴリーのうちの1つ以上を、外れ値検出の対象にする列として選択する必要があります。この例では、すべての製品カテゴリーが選択されています。

- 以前に指定した1つ以上の数値列のセットに にもとづいて外れ値と確定した値を格納する列の名前を入力します。 列のデフォルト名は 「 外れ値」です。 この列に格納される値は、0(観測値/行が外れ値ではないことを示す)または1(観測値/行が外れ値であることを示す)のいずれかです。
-
カットオフ値として使用されるカイ二乗分布の分位点(0~1の値)を選択します。 最初の段階では通常、.95~.99の分位点が適切です。値が大きいほどカットオフが厳格になります。様々な値を検討することを推奨します。
注記: 使用するカットオフ値が低すぎると、ほとんどの観察値が外れ値に分類されます。

-
出力DataSetを接続し、名前を付けます。
出力DataSetには、外れ値と確定した値を含む列(下の画像でハイライトされている部分)が付加された元のDataSetが含まれます。


DataSetを使ってカードを作成する
散布図は、このDataSetのデータを可視化するための優れた方法です。
[外れ値検出]タイル

平均絶対偏差
平均絶対偏差外れ値検出は、DataSet内の数値列の外れ値または異常観測値を検出することを目的とする異常検出アルゴリズムです。標準偏差検出とは異なり、平均絶対偏差外れ値検出では、列の値が正規分布(釣鐘形分布)しているとは想定されません。そのため、非正規の、または歪みのある(大きい、または小さい観測値が不釣り合いなほど多くある)列に最適です。列の観測値は、事前に指定された数の、中央値からのいずれかの方向における中央値絶対偏差(MAD)より大きい場合には、外れ値として分類されます。標準偏差
標準偏差外れ値検出は、DataSet内の数値列の外れ値または異常観測値の検出を試みる異常検出アルゴリズムです。標準偏差外れ値検出では、列の値が大まかに正規分布(釣鐘型分布)していると想定されます。列の観測値は、事前に指定された数の、平均値からのいずれかの方向における標準偏差より大きい場合には、外れ値として分類されます。例
以下の例は、DomoのMagic ETLで外れ値検出アルゴリズムを実装して使用する方法を示しています。サンプルDataSet Wolesale_Distribtor_sell.xlsx (440行)は人為的に生成されたDataSetです。
-
[外れ値検出]タイルをMagic ETLに追加し、入力DataSetに接続します。

-
[外れ値検出]タイル内で、6つの製品カテゴリーのうちのいずれか1つを、外れ値検出の対象にする列として選択する必要があります。この例では、「Fresh」列が選択されています。

-
次に、カットオフ値として使用される、中央値より大きい、または小さい中央値絶対偏差の数を選択し、TRUE(観測値が外れ値)またはFALSE(観測値が外れ値でない)のいずれかの値を含む列に名前を付ける必要があります(デフォルトは「outlier」)。最初の段階では通常、2~3個の中央値絶対偏差が適切です。ただし、より大きい(より厳格な)値を使用することもできます。様々な値を調べることを推奨します。使用するカットオフ値が小さすぎると、ほとんどの観測値が外れ値に分類されます。

-
次に、
[標準偏差] または [平均絶対偏差] のいずれかのアルゴリズムを選択します。この例では、[標準偏差]を選択します。

- 最後に、出力DataSetを接続して名前を付ける必要があります。


DataSetを使ってカードを作成する
散布図は、このDataSetのデータを可視化するための優れた方法です。
[予測]タイル

注記: [予測]タイルで予測できる固有のカテゴリーは最大53個です。もっとカテゴリーが必要な場合は、カスタムR/Pythonスクリプトタイルを使って作成することを推奨します。
線形回帰
線形回帰予測では、線形回帰モデルを使用してデータ内の数値列を予測します。この予測では、予測したい列、および予測プロセスに役立つと考えられるその他の列(「予測子」とも呼ばれます)を含むトレーニング用DataSetが必要です。このアルゴリズムは、トレーニング用DataSetを使用して予測アルゴリズムを「トレーニング」します。トレーニングされた予測アルゴリズムは、「テスト用」DataSet(テスト用DataSetとトレーニング用DataSetは同じでも構いません)に適用可能になり、そこで同じ「予測子」列を使用して各行を分類します。ランダムフォレスト
ランダムフォレスト回帰は非常に強力です。多数の弱い決定木の集合体を使用して、個々の木それぞれの平均を予測する1つの強い回帰アルゴリズムを作成するためです。このアルゴリズムは、データの複雑な下部構造を適切に識別できるため、様々なデータタイプに対して有効に機能します。例
以下の例は、DomoのMagic ETLで回帰予測アルゴリズムを実装して使用する方法を示しています。サンプルDataSetの Catastrophic_Train.xlsx (800行)と Catastrophic_Test.xlsx (200行)は、人為的に生成されたDataSetです。これらのDataSetには、保険金請求に関するデータが含まれており、その目的は、DataSet内の各行の請求数をほかの列のデータにもとづいて正確に予測できる予測アルゴリズムをトレーニングすることです。 「Catastrophic Train」DataSetのスナップショットを以下に示します。

-
[予測]タイルをMagic ETLに追加し、入力DataSetに接続します。

-
まず、トレーニング用DataSetとテスト用DataSetを選択する必要があります。これらは同じDataSetにできます。

-
次に、予測する列を選択します。続いて、最初に数値列を選択してから(これは空白にしておいても構いません)、予測に役立つと考えられる列を選択する必要があります。

-
カテゴリー予測子列を選択する必要があります(前の手順で少なくとも1つの列を数値予測子として選択した場合は、空白のままにしておいても構いません)。次に、予測列の名前を設定する必要があります。この例では、デフォルトの名前をそのまま使用します。

-
最後に、
[線形回帰] または [ランダムフォレスト] のいずれかのアルゴリズムを選択します。以下の例では、線形回帰を使用しています。

-
出力DataSetを接続し、名前を付けます。
生成される出力DataSetには、予測列が付加された元のトレーニング用DataSetが含まれます。その後、予測列と「num.claims」列を比較できます。


に関する記事を参照してください。