FURYU Tech Blog - フリュー株式会社

フリュー株式会社の開発者が技術情報を発信するブログです。

良く使うデータマイニング手法の説明

こんにちは。コンテンツ・メディア第1事業部の開発課のログチームのラヒルです。

本日は、前回のブログで紹介したデータマイニング用のデータを用いてよく行われているデータマイニング手法を紹介します。

 

前回紹介した準備したデータの5種類は、以下の通りです。

①ユーザーのイベントデータ

②ユーザーのステータスデータ

③ユーザーイベントの定期要約データ

④ユーザーのステータスの時系列変化

⑤システム要約データ

上記の5種類のデータを使って、どのようなデータマイニング手法を用いてユーザー分析をしているかを説明します。

ユーザーイベントデータ

ユーザーイベントをそのまま使える分析手法としては、アソシエーション分析があります。

①アソシエーション分析

ユーザーが同時に、あるいは一定の期間内に行うアクションを抽出するマイニング手法です。Aアクションを行うユーザーはBアクションも行うような関連性のあるアクションを洗い出します。例えば、サービス内では、Bアクションを増やしたいという施策を考えています。その場合、ユーザーが同時にしている他のアクションを分かっていれば、Bアクションの動機が何かを把握できたり、Aアクションを促進することによって、Bアクションを増やしたりすることが可能になります。アソシエーション分析によく出る例としては、スーパーマーケットの買い物で、ビールを買うユーザーは同時に子供用のおむつも購入するという有名な例があります。同時に何を購入する把握することで、スーパーの品物の並べ方を効率的に計画できます。アソシエーション分析は、R言語のarulesパッケージを使って実施できます。

ユーザーイベントはそのままアソシエーション分析以外のデータマイニングに使うのは中々難しいです。データマイニングは、基本的に説明変数を基に色々分析を行う。ユーザーイベントは用いて、ユーザーの特性を定義できるように変数化する必要があります。

ユーザーのステータスデータとユーザーイベントの定期要約データ

ユーザーのステータスデータとユーザーイベントの定期要約データには、大きく以下のような種類の分析手法に使います。

①予測分析

予測分析とは、ユーザーの現在のステータスや直近の行動状況によって、将来どのような行動をするかを予測する分析手法です。ユーザーの現在のステータスや直近の行動状況をは、変数で表します。この変数は、説明変数と呼びます。予測する値は、目的変数と呼びます。目的変数が連続型変数の場合は回帰分析と呼び、不連続型変数の場合は分類と呼びます。予測分析の応用例としては、サービスの利用を離脱しそうなユーザーを把握して離脱対策を計画したり、課金する可能性の高いユーザーを優先的に有料コンテンツへと誘導したりして、動的にオンラインサービスをユーザーの特性に合わせた最適なサービス設計が可能となります。予測分析に利用できるアルゴリズムには、様々なアルゴリズムがあります。例として、線形回帰分析、logistic回帰分析、ニューラルネットワークSVMなどがあります。私達のチームでは、オンラインサービスのデータに最も使いやすい「ランダムフォレスト」をよく使って分析を行います。別ブログ記事で、「ランダムフォレスト」を用いた予測分析方法の詳細を記述するので、ここでは詳細を省略します。

 

クラスター分析

クラスター分析は、似たような特性、あるいは似たような行動をしているユーザーのグループを把握するための分析手法です。ユーザーのグループを把握することによって、ある特定のグループのユーザーだけをターゲットにして施策を計画することができます。きちんとユーザーの特性に合わせたサービス設計することによって、ユーザー満足度を上げることができます。このクラスター分析は、マーケティングではセグメンテーションとも呼ばれます。クラスター分析にも色々なアルゴリズムが存在します。よく使われるものとしては、kmeans等があります。

 

③相関分析

相関分析は、ユーザーの行動に相関が高いものを抽出します。オンラインサービスを例に挙げると、ソーシャルゲームでよく課金するユーザーは、どのようなプレイしているか、サイト滞在時間でよく見ているコンテンツはどういうものが多いか等が挙げられます。

R言語のcor()関数などを使って、相関分析を行っています。相関分析で気を付けないといけないことは、相関関係は高いけれども、因果関係があるとは限らないということです。因果関係に関しては、サービスの詳細も考えて、判断しないといけないです。

 

ユーザーのステータスの時系列変化

ユーザーのステータスの時系列データを扱う分析は、縦断データ分析と呼びます。ユーザーの行動の変化には、どのような変数が影響しているかが分析可能です。

オンラインサービスを例でいうと、

  • 毎月サービスの滞在時間が伸びているユーザーの特性は何か
  • 継続して使うユーザーと飛び飛びに使うユーザーの違いは何か

この要因を把握することで、ユーザーの満足度を高めるために重要な要因が把握できたりします。

 

システム要約データ

このデータは、各ユーザーごとの特性は表してないため、ユーザーレベルでの詳細分析に使うことはできないです。しかし、サービス全体として予測やトレンドを把握する、施策の効果測定などには非常に重要です。システム要約データは、時系列の一次元のデータとなっています。そのため、その他のデータと違い時系列データの分析手法を用いて分析します。

①時系列データ分析

長期トレンドを把握

時系列データは、長期トレンド、季節要因とその他の部分とを分解することができます。そのために、R言語のdecomposeなどの関数を用いています。時系列データから長期トレンド分をだけを観測することによって、サービスが長期的にどんな変化が起きているかなどが分かります。この長期トレンドは、特に外部要因による変化が多いです。そのため、早めに市場の長期トレンドを把握することによって、サービスの長期的なビジネスチャンスを把握できたり、危機的な状況が見つかったりして、早期対応が可能ともなります。

 

季節要因を把握

時系列データは、季節部分を把握することにより、特にサービスの需要が高くなる時期などを把握し、それに合わせた施策を計画したり、新しいビジネスチャンスを見つけることができます。たとえば、クリスマス時期に需要が高くなるとわかった場合、クリスマスを対象にした特別商品やサービスを計画することが可能となります。

 

施策の効果測定

時系列データから長期トレンドと季節要因部分を除外することにより、その他の要因によるサービスの利用状況の変化が分かりやすくなります。特にサービスの改善や変更施策を実施した場合、それによってどれ位サービスの利用状況の変化があったか等を調べたい時にはかなり有効です。

 

将来予測

サービスの時系列データはかなり複雑で、以前説明した長期トレンド、季節要因とその他の部分によって形成されています。サービスの将来予測をしたい場合は、その部分の要因を参考に計算した方が精度の高い予測が可能です。R言語のHoltwinters関数などを使って、時系列データの予測計算が可能です。

 

終わりに

本日は、データマイニング用に準備したデータを基に、どのような分析をしているかを軽く説明しました。今後、一個一個のデータマイニング手法を、R言語を用いた実施方法に関して詳細に説明する予定です。