はじめに
機械学習を行う際などは、対象データの平均、中央値、最大値/最小値、標準偏差等を確認して、データを俯瞰する必要があります。Vertica 9.0より、SUMMARIZE_NUMCOL関数を使用することで、これら統計サマリー情報をテーブル毎に一括で確認することが可能になりました。
SUMMARIZE_NUMCOL関数で取得できる情報は、件数、平均、標準偏差、最小値/最大値、パーセンタイルです。
SUMMARIZE_NUMCOL
コマンド構文
1 2 3 |
dbadmin=> SUMMARIZE_NUMCOL (列名1,列名2,列名3,...,列名n -> [USING PARAMETERS [exclude_columns = '列名1,列名2,...,列名n ']]) -> OVER() FROM テーブル名; |
パラメータ | 内容 |
---|---|
列名1,列名2,列名3,...,列名n | 統計サマリーの取得対象列 |
exclude_columns | (オプション) 対象列を*(全列)と指定した場合に、対象列から除外する列 ※9.0.1以降 |
利用例
社員データが格納されているemployeeテーブルを例にします。
1 2 3 4 5 6 7 8 9 |
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列の統計サマリー情報を確認します。
1 2 3 4 5 6 |
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_NUMCOLhttps://my.vertica.com/docs/9.0.x/HTML/index.htm#Authoring/SQLReferenceManual/Functions/MachineLearning/SUMMARIZE_NUMCOL.htm
検証バージョンについて
この記事の内容はVertica 9.0.1で確認しています。- 投稿タグ
- 機械学習, Machine Learning