<< 目次へ
最終更新日: 2016.2.20
5.データ加工
ここではデータ加工のテクニックではなく、データ加工の「考え方」を説明します。データ加工といっても、単純化して考えるとトランザクション形式にデータに対してのみ「トランザクション集計」をするだけでよいのです。また、トランザクション集計をするうえで連続型かカテゴリカル型かによって処理が異なるだけで、高度なことをしようとしなければ基本は単純なものです。ただし、この基本を理解し実施できることが最重要です(基本なくして応用なし)。
5-1 連続型データの場合
統計手法のページで学んだように予測したい単位(もしくは分類したい単位)に応じたトランザクション集計をする必要があります。ここでは「顧客」がそれにあたるとして、顧客IDについての「グループ集計」を行います。例えば「顧客ごとの購買点数」を集計してみましょう。
顧客ID 購買日 商品名 点数 レジNo 0001
0001
0001
0001
0001
0001
0172
0172
01992012/3/4
2012/3/4
2013/5/10
2016/1/23
2016/1/23
2016/1/23
2015/10/10
2016/2/9
2015/2/9元気パン
天然りんごジュース
元気パン
元気パン
天然りんごジュース
モリモリ弁当
レッドホットサンド
天然りんごジュース
元気パン1
1
2
1
1
1
2
5
20012
0012
0002
0125
0125
0226
0009
0221
0222
顧客「0001」について点数をみてみると「1, 1, 2, 1, 1, 1」となっています。この顧客「0001」は「1+1+2+1+1+1=7(点)」の商品を購買しているということがわかります。顧客「0172」と「0199」についてはどうでしょうか?考えてみてください。
顧客ID | 購買点数 |
0001 | 7 |
まずは購買点数として「合計値」を求めましたが、平均購買点数という変数を作りたければ「平均値」を適用すればよいことになります。つまり連続型の変数については、何かしらの算術計算を施せばよいということがいえます。
顧客ID | 平均購買点数 |
0001 | 1.16 |
5-2 カテゴリカル型データの場合
続いては「商品名」についての集計をしてみましょう。こちらはカテゴリカル型のデータであるため、連続型のデータと同じように算術的な処理ができません(元気パンと天然りんごジュースを足したり引いたりできません)。このような場合は「横展開」という操作を施します。例えば、顧客「0001」がどの商品を購買したかを「購買有無」すなわち「0-1データ」として表現してみることができます。商品は「モリモリ弁当」、「レッドホットサンド」、「元気パン」、「天然りんごジュース」があります。このうち顧客「0001」が購買しているのはモリモリ弁当、元気パン、天然りんごジュースの3種です。これを以下の表のようにまとめることができます。
顧客ID | モリモリ弁当 | レッドホットサンド | 元気パン | 天然りんごジュース |
0001 | 1 | 0 | 1 | 1 |
まずは「商品ごとの購買有無」を0-1データで表現しましたが、「商品ごとの購買点数」として0-1ではなく点数の合計を集計することもできるでしょう。
顧客ID | モリモリ弁当 | レッドホットサンド | 元気パン | 天然りんごジュース |
0001 | 1 | 0 | 4 | 2 |
5-3 データの紐付け
データの紐付けとは「他のテーブルにある値を参照する」ということだと考えればよいでしょう。元々あった顧客マスタ(下記、上側の表)に、先ほど集計した結果(下記、下側の表)を紐付けてみましょう。
顧客ID 性別 年齢 購買ランク マイページ登録 登録ID 0001
0012
0172
0199男性
男性
女性
男性25
38
20
20ゴールド
ノーマル
ノーマル
シルバー有
有
無
有19928901
22309980
30003119
顧客ID 購買点数 モリモリ弁当 レッドホットサンド 元気パン 天然りんごジュース 0001 7 1 0 1 1 0172 7 0 1 0 1 0199 2 0 0 1 0
↓ 2つのテーブルを紐付ける
顧客ID 性別 年齢 購買ランク マイページ登録 登録ID 購買点数 モリモリ弁当 レッドホットサンド 元気パン 天然りんごジュース 0001 男性 25 ゴールド 有 19928901 7 1 0 1 1 0012 男性 38 ノーマル 有 22309980 0172 女性 20 ノーマル 無 7 0 1 0 1 0199 男性 20 シルバー 有 30003119 2 0 0 1 0