SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
「ビジネス活用事例で学ぶ
データサイエンス入門」輪読会
#6
第8章 どんな顧客群をターゲットとすべきか?
2016/4/15
自己紹介
しまじろう よう
SIer で SE(金融・情報系)
個人事業主
ソーシャルゲームベンチャーでデータ解析者・PM を担当
3月末まで不動産仲介プラットフォーム企業で解析基盤周り
のお仕事をしていました
C#/Ruby/R/Rails/DB
数学/統計・機械学習/経営/マーケティング
※中小企業診断士を取得したい
Twitter: you_s1025
2
問題意識
新規流入が頭打ち
既存顧客に対する理解の必要性
ターゲット層の明確化!
3
全体の流れ
1.既存顧客への注力の必要性
☓: デモグラフィックによる分類
◎: 行動履歴による分類
2.ランキング上位ユーザの抽出
1.ポイントによるユーザの3分割
※上位2セグメントを対象
3.クラスタリングの実施
1.情報量がゼロに近い項目の除去
2.相関の高い変数の片方を除去
3.主成分分析を用いた新座標系の導入
4.k-means によるクラスタリング
5.レーダーチャートによる可視化
4
前処理
# 課金データの結合
dau2 <- merge(dau, dpu[, c("log_date", "user_id", "payment"), ], by = c("log_date", "user_id"), all.x = T)
# 課金フラグの付加 ※1円以上の課金があれば 1
dau2$is_payment <- ifelse(is.na(dau2$payment), 0, 1)
# 課金額のクレンジング(NA 0) ※NA を 0 に変換
dau2$payment <- ifelse(is.na(dau2$payment), 0, dau2$payment)
# yyyy-mm カラムの付加 ※日付項目の 1∼7 文字目を切り出し
dau2$log_month <- substr(dau2$log_date, 1, 7)
# 月次集計 ※年月xユーザID の単位で課金額の合計とアクセス回数を算出
mau <- ddply(dau2, .(log_month, user_id), summarize, payment=sum(payment), access_days=length(log_date))
mau
log_month user_id payment access_days
2013-05 65 0 1
2013-05 115 0 1
⋮ ⋮ ⋮ ⋮
2013-05 5332 2666 31
5
ランキング上位ユーザの抽出
# kmeans を用いたランキングによるクラスタリングの実行
user.action2 <- ykmeans(user.action, "A47", "A47", 3)
# 描画
ggplot(arrange(user.action2, desc(A47)),
aes(x = 1:length(user_id), y = A47, col = as.factor(cluster), shape = as.factor(cluster))) +
geom_line() +
xlab("user") +
ylab("Ranking point") +
scale_y_continuous(label = comma) +
ggtitle("Ranking Point") +
theme(legend.position = "none")
# ランキング上∼中位者を抽出
user.action.h <- user.action2[user.action2$cluster >= 2, names(user.action)]
6
> table(user.action2$cluster)
1 2 3
2096 479 78
上位
中位
下位
クラスタ毎のユーザ数を表示
データクレンジング
# 必要なカラムに絞る
user.action.f <- user.action.h[, -c(1:4)]
row.names(user.action.f) <- user.action.h$user_id
# 情報量がゼロに近い変数の除去
nzv <- nearZeroVar(user.action.f)
user.action.f.filtered <- user.action.f[, -nzv]
# 相関の高い変数の除去 ※相関が 0.7 以上の変数を対象
user.action.cor <- cor(user.action.f.filtered)
highly.cor.f <- findCorrelation(user.action.cor, cutoff=.7)
user.action.f.filtered <- user.action.f.filtered[, -highly.cor.f]
7
user.action.f.filtered
A2 A5 A6 A8 A11 A12 A13 A14 …
425530
77
0 10 1 58 19 2 19 13 …
776120 0 9 0 0 38 8 19 10 …
276197 0 7 0 7.25 15 3 11 5 …
主成分分析の実行
# 主成分分析の実行
user.action.pca.base <- prcomp(user.action.f.filtered, scale=T)
user.action.pca <- data.frame(user.action.pca.base$x)
# 結果の概要を表示 ※下記の表を参照
summary(user.action.pca.base)
8
PC1 PC2 PC3 PC4 PC5 ・・・ PC19
Standard deviation 2.280 1.511 1.287 1.167 1.075 ・・・ 0.361
Proportion of Variance 0.274 0.120 0.087 0.072 0.061 ・・・ 0.007
Cumulative Proportion 0.274 0.394 0.481 0.552 0.613 ・・・ 1.000
第1・2主成分
累積寄与率(第2行の積み上げ)
特定の主成分までを用いて元の情報量をどの程度説明できているのかを提示
※第1・2主成分だと約40%
※第19主成分までを用いると100% (当たり前)
クラスタリングの実施
# k-means の実施
keys <- names(user.action.pca)
user.action.km <- ykmeans(user.action.pca, keys, "PC1", 3:6)
# 描画
ggplot(user.action.km, aes(x=PC1,y=PC2,col=as.factor(cluster), shape=as.factor(cluster))) +
geom_point()
9
第1・2主成分でデータ全体をプロット
※累積寄与率が40%程度だがそれなりに分類されている
レーダーチャートの描画(1)
# クラスタ別に項目ごとの平均値を算出
user.action.f.filtered$cluster <- user.action.km$cluster
clusters <- sort(unique(user.action.f.filtered$cluster))
user.action.f.center <- ldply(lapply(clusters, function(i) {
x <- user.action.f.filtered[user.action.f.filtered$cluster == i, -ncol(user.action.f.filtered)]
apply(x, 2, mean)
}))
# 相関の高い変数を除外 ※理由は不明
df <- user.action.f.center[, -(ncol(user.action.f.center)-1)]
df.cor <- cor(df)
# テキストと異なる結果になったので手動で無理やり合わせる
#df.highly.cor <- findCorrelation(df.cor, cutoff=0.91)
#df.filtered <- df[, -df.highly.cor]
df.highly.cor <- c("A2", "A11", "A13", "A43", "A44", "A51")
df.filtered <- df[, df.highly.cor]
# チャート作成
df.filtered <- createRadarChartDataFrame(scale(df.filtered))
names(df.filtered) <- c("レベル", "救援回数", "被救援回数", "ボス討伐数", "バトル回数", "プレイ回数")
par(family= Ricty") # フォントの指定
radarchart(df.filtered, seg=5, plty=1:5, plwd=4, pcol=rainbow(5))
legend("topright", legend=1:5, col=rainbow(5), lty=1:5)
10
レーダーチャートの描画(2)
11
5セグメント毎にだいたい行動特性がばらけている
第5セグメントのユーザにおいて KPI の数値(ARPU/アクセス回数)
が高い事が判明
まとめ
12
1.クラスタリングへの道筋
1.ランキング結果により上位ユーザを抽出
2.データクレンジングにより不要な項目を除去
3.ユーザクラスタリングの実施
4.クラスタリング結果の可視化(レーダーチャート)
5.クラスタ毎の KPI を確認
2.単純な属性ではなく行動履歴によるクラスタリング
1.アクセス頻度
2.課金額/回数
3.ゲーム内アクション
3.データクレンジングは大事

Weitere ähnliche Inhalte

Was ist angesagt?

みどりぼん3章前半
みどりぼん3章前半みどりぼん3章前半
みどりぼん3章前半Akifumi Eguchi
 
データ解析のための統計モデリング入門4章
データ解析のための統計モデリング入門4章データ解析のための統計モデリング入門4章
データ解析のための統計モデリング入門4章Hirofumi Tsuruta
 
[DSO]勉強会_データサイエンス講義_Chapter5
[DSO]勉強会_データサイエンス講義_Chapter5[DSO]勉強会_データサイエンス講義_Chapter5
[DSO]勉強会_データサイエンス講義_Chapter5tatsuyasakaeeda
 
ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33horihorio
 
みどりぼん読書会 第4章
みどりぼん読書会 第4章みどりぼん読書会 第4章
みどりぼん読書会 第4章Masanori Takano
 
データ解析入門
データ解析入門データ解析入門
データ解析入門Takeo Noda
 
データ解析のための統計モデリング入門 6.5章 後半
データ解析のための統計モデリング入門 6.5章 後半データ解析のための統計モデリング入門 6.5章 後半
データ解析のための統計モデリング入門 6.5章 後半Yurie Oka
 
統計学における相関分析と仮説検定の基本的な考え方とその実践
統計学における相関分析と仮説検定の基本的な考え方とその実践統計学における相関分析と仮説検定の基本的な考え方とその実践
統計学における相関分析と仮説検定の基本的な考え方とその実践id774
 

Was ist angesagt? (8)

みどりぼん3章前半
みどりぼん3章前半みどりぼん3章前半
みどりぼん3章前半
 
データ解析のための統計モデリング入門4章
データ解析のための統計モデリング入門4章データ解析のための統計モデリング入門4章
データ解析のための統計モデリング入門4章
 
[DSO]勉強会_データサイエンス講義_Chapter5
[DSO]勉強会_データサイエンス講義_Chapter5[DSO]勉強会_データサイエンス講義_Chapter5
[DSO]勉強会_データサイエンス講義_Chapter5
 
ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33
 
みどりぼん読書会 第4章
みどりぼん読書会 第4章みどりぼん読書会 第4章
みどりぼん読書会 第4章
 
データ解析入門
データ解析入門データ解析入門
データ解析入門
 
データ解析のための統計モデリング入門 6.5章 後半
データ解析のための統計モデリング入門 6.5章 後半データ解析のための統計モデリング入門 6.5章 後半
データ解析のための統計モデリング入門 6.5章 後半
 
統計学における相関分析と仮説検定の基本的な考え方とその実践
統計学における相関分析と仮説検定の基本的な考え方とその実践統計学における相関分析と仮説検定の基本的な考え方とその実践
統計学における相関分析と仮説検定の基本的な考え方とその実践
 

Ähnlich wie ビジネス活用事例で学ぶデータサイエンス入門 #6

20171118 jjug snappydata
20171118 jjug snappydata20171118 jjug snappydata
20171118 jjug snappydataMasaki Yamakawa
 
デジタルマーケティング戦略策定
デジタルマーケティング戦略策定デジタルマーケティング戦略策定
デジタルマーケティング戦略策定Flyke1
 
20171125 springfest snappydata
20171125 springfest snappydata20171125 springfest snappydata
20171125 springfest snappydataMasaki Yamakawa
 
Cuto紹介資料
Cuto紹介資料Cuto紹介資料
Cuto紹介資料UNIRITA
 
A15 事例で語る、社会インフラを支えるNonStop SQL ~見えないところで凄いんです~ byTetsuya Shinohara
A15 事例で語る、社会インフラを支えるNonStop SQL ~見えないところで凄いんです~ byTetsuya ShinoharaA15 事例で語る、社会インフラを支えるNonStop SQL ~見えないところで凄いんです~ byTetsuya Shinohara
A15 事例で語る、社会インフラを支えるNonStop SQL ~見えないところで凄いんです~ byTetsuya ShinoharaInsight Technology, Inc.
 
Webマーケティングを通じたデータサイエンティストの価値発揮方法
Webマーケティングを通じたデータサイエンティストの価値発揮方法Webマーケティングを通じたデータサイエンティストの価値発揮方法
Webマーケティングを通じたデータサイエンティストの価値発揮方法E2D3.org
 
ITIL準拠のツールでアジャイルな変革を実現
ITIL準拠のツールでアジャイルな変革を実現ITIL準拠のツールでアジャイルな変革を実現
ITIL準拠のツールでアジャイルな変革を実現UNIRITA Incorporated
 
Big data解析ビジネス
Big data解析ビジネスBig data解析ビジネス
Big data解析ビジネスMie Mori
 
07232012需要予測モデル0.3 5
07232012需要予測モデル0.3 507232012需要予測モデル0.3 5
07232012需要予測モデル0.3 5Izumi Akiyama
 
Salesforce Einstein - SaaS企業のAI戦略とテクノロジ -
Salesforce Einstein - SaaS企業のAI戦略とテクノロジ - Salesforce Einstein - SaaS企業のAI戦略とテクノロジ -
Salesforce Einstein - SaaS企業のAI戦略とテクノロジ - Mitch Okamoto
 
情報システム部門のタスク管理~ITS応答性能の調査結果と対策 編~ #RxTstudy #6 #Redmine
情報システム部門のタスク管理~ITS応答性能の調査結果と対策 編~ #RxTstudy #6 #Redmine情報システム部門のタスク管理~ITS応答性能の調査結果と対策 編~ #RxTstudy #6 #Redmine
情報システム部門のタスク管理~ITS応答性能の調査結果と対策 編~ #RxTstudy #6 #RedmineKuniharu(州晴) AKAHANE(赤羽根)
 
基幹システムの可視化技法
基幹システムの可視化技法基幹システムの可視化技法
基幹システムの可視化技法Zenji Kanzaki
 
Mktg06 市場調査(1次データ)
Mktg06 市場調査(1次データ)Mktg06 市場調査(1次データ)
Mktg06 市場調査(1次データ)Takeshi Matsui
 
楽天のRPAプラットフォーム構築事例
楽天のRPAプラットフォーム構築事例楽天のRPAプラットフォーム構築事例
楽天のRPAプラットフォーム構築事例Rakuten Group, Inc.
 

Ähnlich wie ビジネス活用事例で学ぶデータサイエンス入門 #6 (20)

20171118 jjug snappydata
20171118 jjug snappydata20171118 jjug snappydata
20171118 jjug snappydata
 
デジタルマーケティング戦略策定
デジタルマーケティング戦略策定デジタルマーケティング戦略策定
デジタルマーケティング戦略策定
 
20171125 springfest snappydata
20171125 springfest snappydata20171125 springfest snappydata
20171125 springfest snappydata
 
Cuto紹介資料
Cuto紹介資料Cuto紹介資料
Cuto紹介資料
 
A15 事例で語る、社会インフラを支えるNonStop SQL ~見えないところで凄いんです~ byTetsuya Shinohara
A15 事例で語る、社会インフラを支えるNonStop SQL ~見えないところで凄いんです~ byTetsuya ShinoharaA15 事例で語る、社会インフラを支えるNonStop SQL ~見えないところで凄いんです~ byTetsuya Shinohara
A15 事例で語る、社会インフラを支えるNonStop SQL ~見えないところで凄いんです~ byTetsuya Shinohara
 
A15 篠原さん 事例
A15 篠原さん 事例A15 篠原さん 事例
A15 篠原さん 事例
 
Webマーケティングを通じたデータサイエンティストの価値発揮方法
Webマーケティングを通じたデータサイエンティストの価値発揮方法Webマーケティングを通じたデータサイエンティストの価値発揮方法
Webマーケティングを通じたデータサイエンティストの価値発揮方法
 
Redmine + MySQL 応答性能の調査結果と対策
Redmine + MySQL 応答性能の調査結果と対策Redmine + MySQL 応答性能の調査結果と対策
Redmine + MySQL 応答性能の調査結果と対策
 
It実行力強化のためのスキル調査と活用方法
It実行力強化のためのスキル調査と活用方法It実行力強化のためのスキル調査と活用方法
It実行力強化のためのスキル調査と活用方法
 
ITIL準拠のツールでアジャイルな変革を実現
ITIL準拠のツールでアジャイルな変革を実現ITIL準拠のツールでアジャイルな変革を実現
ITIL準拠のツールでアジャイルな変革を実現
 
Freee kintone 200205
Freee kintone 200205Freee kintone 200205
Freee kintone 200205
 
Big data解析ビジネス
Big data解析ビジネスBig data解析ビジネス
Big data解析ビジネス
 
07232012需要予測モデル0.3 5
07232012需要予測モデル0.3 507232012需要予測モデル0.3 5
07232012需要予測モデル0.3 5
 
Salesforce Einstein - SaaS企業のAI戦略とテクノロジ -
Salesforce Einstein - SaaS企業のAI戦略とテクノロジ - Salesforce Einstein - SaaS企業のAI戦略とテクノロジ -
Salesforce Einstein - SaaS企業のAI戦略とテクノロジ -
 
情報システム部門のタスク管理~ITS応答性能の調査結果と対策 編~ #RxTstudy #6 #Redmine
情報システム部門のタスク管理~ITS応答性能の調査結果と対策 編~ #RxTstudy #6 #Redmine情報システム部門のタスク管理~ITS応答性能の調査結果と対策 編~ #RxTstudy #6 #Redmine
情報システム部門のタスク管理~ITS応答性能の調査結果と対策 編~ #RxTstudy #6 #Redmine
 
基幹システムの可視化技法
基幹システムの可視化技法基幹システムの可視化技法
基幹システムの可視化技法
 
M5 sinchir0
M5 sinchir0M5 sinchir0
M5 sinchir0
 
Hadoopカンファレンス2013
Hadoopカンファレンス2013Hadoopカンファレンス2013
Hadoopカンファレンス2013
 
Mktg06 市場調査(1次データ)
Mktg06 市場調査(1次データ)Mktg06 市場調査(1次データ)
Mktg06 市場調査(1次データ)
 
楽天のRPAプラットフォーム構築事例
楽天のRPAプラットフォーム構築事例楽天のRPAプラットフォーム構築事例
楽天のRPAプラットフォーム構築事例
 

ビジネス活用事例で学ぶデータサイエンス入門 #6