はじめに
機械学習を行う際などは、対象データの平均、中央値、最大値/最小値、標準偏差等を確認して、データを俯瞰する必要があります。
Vertica 9.0より、SUMMARIZE_NUMCOL関数を使用することで、これら統計サマリー情報をテーブル毎に一括で確認することが可能になりました。
SUMMARIZE_NUMCOL関数で取得できる情報は、件数、平均、標準偏差、最小値/最大値、パーセンタイルです。
SUMMARIZE_NUMCOL
コマンド構文
dbadmin=> SUMMARIZE_NUMCOL (列名1,列名2,列名3,...,列名n
-> [USING PARAMETERS [exclude_columns = '列名1,列名2,...,列名n ']])
-> OVER() FROM テーブル名;パラメータ | 内容 |
|---|---|
列名1,列名2,列名3,...,列名n | 統計サマリーの取得対象列 |
exclude_columns | (オプション) 対象列を*(全列)と指定した場合に、対象列から除外する列 |
利用例
社員データが格納されているemployeeテーブルを例にします。
dbadmin=> SELECT * FROM employee ;
id | name | age | gender | title | salary
----+--------------------------+-----+--------+-----------+------------
1 | Leonardo da Vinci | 44 | M | Artist | 1234.5600
2 | Albert Einstein | 45 | M | Scientist | 2345.6700
3 | Myrddin Wyltt | 67 | M | Wizard | 34567.7800
4 | George Walker Bush | 71 | M | President | 4567.8900
6 | Elizabeth Alexandra Mary | 90 | F | Queen | 5678.9000
(5 rows)age列、salary列の統計サマリー情報を確認します。
dbadmin=> SELECT SUMMARIZE_NUMCOL(age,salary) OVER() FROM employee;
COLUMN | COUNT | MEAN | STDDEV | MIN | PERC25 | MEDIAN | PERC75 | MAX
--------+-------+---------+------------------+---------+---------+---------+--------+----------
age | 5 | 63.4 | 19.3209730603818 | 44 | 45 | 67 | 71 | 90
salary | 5 | 9678.96 | 14023.7469237451 | 1234.56 | 2345.67 | 4567.89 | 5678.9 | 34567.78
(2 rows)このように、SUMMARIZE_NUMCOL関数を使用することで、主要な統計サマリーデータを一括で確認することができます。
参考情報
SUMMARIZE_NUMCOL
https://my.vertica.com/docs/9.0.x/HTML/index.htm#Authoring/SQLReferenceManual/Functions/MachineLearning/SUMMARIZE_NUMCOL.htm
検証バージョンについて
この記事の内容はVertica 9.0.1で確認しています。