3.3.2 データの探索
データを調査して、その構造を理解し、その品質を評価します。 この段階で、データ型を特定し、存在するノイズを検出します。 欠落している値および数値の外れ値を確認します。
ノート:
データベース内の各レコードはケースと呼ばれ、各ケースはcase_idで識別されます。 この場合、ケースIDはTIME_IDで、独立変数として機能します。 間隔が均等な時間間隔で売上を予測しています。
次のステップでは、探索的データ分析について説明します。
-
ライブラリをインポートします
ノートブックのRインタプリタ段落で(%rを使用して)次のコマンドを実行して、Oracle Machine Learning for Rライブラリをインポートし、行の順序に関する警告を抑制します。 これにより、OML4Rで使用するデータベースへのデフォルト接続が確立されます。ノート:
OML4R関数には、元の製品名「Oracle R Enterprise」を参照する接頭辞「ore」が付きます。library(ORE) options(ore.warn.order=FALSE) -
SH.SALES表へのDataFrameプロキシ・オブジェクトの作成
このスクリプトでは、ore.sync関数を使用して、オブジェクトESM_SALESの表SH.SALESに対するdata.frameプロキシ・オブジェクトを作成します。 次に、ore.syncファンクションを使用して、SH.SALESデータベース表のプロキシ・オブジェクトESM_SALESを作成します。ore.sync関数は、OML4Rの表を表すore.frameオブジェクトを返します。ore.attach()を使用して同期されたオブジェクトをR環境にアタッチし、ローカル・データ・フレームであるかのようにESM_SALESに直接アクセスできるようにします。 最後に、OREのフォーマット済出力関数z.show()と組み合せたhead()を使用して、このデータの最初の数行を表示します。ore.sync(query = c(ESM_SALES = "select * from SH.SALES")) ore.attach() z.show(head(ESM_SALES))出力が次のように表示されます。

この出力には、使用可能なすべての列を含む、
SH.SALESデータベース表の最初の6行が表示されます。 これにより、OML4Rセッションから直接、Oracleデータベースに格納されている販売データのサンプルを迅速に検査できます。 -
販売データセット行および列数
ore.frameオブジェクトSALESの行と列の数を確認するには、関数dim(SALES)を使用します。このスクリプトは、ノートブック内でRコマンドを実行して、
ESM_SALESデータ・フレームまたは表の行数および列数を返します。%r dim(ESM_SALES)
出力には、OML4Rで作業しているデータの形状およびスケールを理解するための、
ESM_SALESデータセット内の行および列の数が表示されます。 -
売上データセット列タイプ
各列のデータ型を表示するには、次のコードを使用します。
このスクリプトは、OML4Rの
ESM_SALESオブジェクトのメタデータを取得および表示し、リンクされたOracleデータベース表の構造および列の詳細を提供します。
出力が次のように表示されます。%r ESM_SALES@desc
ESM_SALES@descの出力は、ESM_SALESオブジェクトの構造です。 これには、列名およびデータ型が含まれます。 -
列別の欠落値の数
データに欠落値があるかどうかを確認するには、次のコードを実行します。 データの完全性を評価するために、
ESM_SALESプロキシ・オブジェクトの欠落値の合計数を返します。%r sum(is.na(ESM_SALES))出力は0と表示されます。これは、
ESM_SALESプロキシ・オブジェクトに欠落値がないことを示します。 -
売上予測のデータを準備します。まず、
SH.SALES表から必要な列を選択します。ore.sync()ファンクションでは、TIME_ID列およびAMOUNT_SOLD列を含むSALES_TIME_AMOUNTという名前のプロキシ・オブジェクトを作成します。SALES_TIME_AMOUNTというRの新しいore.data.frameオブジェクトを、OracleデータベースのSH.SALES表からTIME_ID列およびAMOUNT_SOLD列を選択する問合せにリンクすることで定義します。 Rにデータを完全にロードすることなく、データベース内の分析を支援します。%r ore.sync(query = c(SALES_TIME_AMOUNT = "select TIME_ID, AMOUNT_SOLD from SH.SALES")) z.show(head(SALES_TIME_AMOUNT)))
出力には、SALES_TIME_AMOUNTデータセットの最初の6行を含む書式設定された表が表示されます。 これには、次の2つの列が含まれます。- TIME_ID - 時間識別子(日付)。
- AMOUNT_SOLD - 各トランザクションの販売金額を示す数値。
-
dim()ファンクションでは、SALES_TIME_AMOUNTプロキシ・オブジェクトのディメンション(行数および列数)を表示します。 これは、SH.SALES表から取得したデータセットのサイズを確認するのに役立ちます。SALES_TIME_AMOUNTデータセット内の行および列の数を戻し、データベースから問い合せたデータの形状を示します。%r dim(SALES_TIME_AMOUNT)
dim(SALES_TIME_AMOUNT)の出力は、データセットに918843行と2列が含まれていることを示しています。 これにより、データセットのサイズと構造をすばやく理解できます。
これにより、データセットのサイズと構造をすばやく理解できます。
親トピック: 時系列ユース・ケース