3.8 ケース表の準備
機械学習のデータの準備における最初のステップは、ケース表の作成です。
関連トピック
3.8.2 日時列値の抽出
EXTRACT
関数を使用して、日時または期間の値から値を抽出できます。
EXTRACT
関数は、日時または間隔の値の式から、指定された日時フィールドの値を抽出して返します。抽出できる値は、YEAR
、MONTH
、DAY
、HOUR
、MINUTE
、SECOND
、TIMEZONE_HOUR
、TIMEZONE_MINUTE
、TIMEZONE_REGION
および TIMEZONE_ABBR
です。
sales_ts
ビューから抽出されます。sales_ts
ビューには、CUST_ID
およびTIME_STAMP
列が含まれています。 select cust_id, time_stamp,
extract(year from time_stamp) year,
extract(month from time_stamp) month,
extract(day from time_stamp) day_of_month,
to_char(time_stamp,'ww') week_of_year,
to_char(time_stamp,'D') day_of_week,
extract(hour from time_stamp) hour,
extract(minute from time_stamp) minute,
extract(second from time_stamp) second
from sales_ts
3.8.3 テキスト変換
Oracle Machine Learning for SQLを使用したテキスト処理について説明します。
OML4SQLを使用してテキストを処理できます。ケース表内のテキスト列は、適切に変換すると処理できるようになります。
テキスト列は、ビューではなく、表内に存在している必要があります。変換プロセスでは、いくつかのOracle Textの機能が使用され、表の各行のテキストがそれぞれ別個のドキュメントとして処理されます。各ドキュメントは、数値およびテキスト・ラベルを持つ用語と呼ばれるテキスト・トークンのセットに変換されます。テキスト列は、DM_NESTED_NUMERICALS
のネストした列に変換されます。
3.8.4 ビジネスおよび分野に依存した変換について
ビジネス上の問題に従い、データを変換する必要がある理由を理解します。
一部の変換は、ビジネス上の問題の定義によって決まります。たとえば、高い利益を生む顧客を予測するモデルを作成する場合を考えます。現在の顧客の利益データはドルなどの通貨で表されているため、どの程度が「高い利益」なのかを定義する必要があります。この場合、モデルを作成する前に、これまでの経験から導かれたいくつかの式を使用して、利益属性を「低」、「中」および「高」の範囲に再コード化できます。
その他の一般的なビジネス上の変換には、データ情報の経過時間への変換があります。たとえば、出生日は年齢に変換できます。
専門知識は、データをどのように準備するのかを決める上で非常に重要になることがあります。たとえば、一部のアルゴリズムでは、通常の範囲から遠く外れた値がデータに含まれていると、信頼できない結果が生成されます。場合によっては、これらの値は誤差または異常値を表します。別の場合では、これらの値が意味のある情報を提供することもあります。
関連トピック
3.8.5 ネストした列の作成
トランザクショナル・データでは、各ケースの情報が複数の行に含まれています。データソースにトランザクショナル・データが含まれる場合(複数レコード・ケース)、ネストした列でトランザクションをケース・レベルに集計する必要があります。
例として、本番レベルでの機械学習時のスター・スキーマにおける売上データがあります。売上は、その製品が多数の店舗で多数の顧客に対してある期間にわたって販売されるため、単一の製品(ケース)の多数の行に格納されます。
関連項目:
トランザクショナル・データのネストした列への変換の詳細は、「ネストしたデータの使用」を参照してください。