データサイエンティスト養成読本
データサイエンティスト養成読本
データサイエンティスト養成読本 [ビッグデータ時代のビジネスを支えるデータ分析力が身につく! ] (Software Design plus)
- 作者: 佐藤洋行,原田博植,下田倫大,大成弘子,奥野晃裕,中川帝人,橋本武彦,里洋平,和田計也,早川敦士,倉橋一成
- 出版社/メーカー: 技術評論社
- 発売日: 2013/08/08
- メディア: 大型本
- この商品を含むブログ (11件) を見る
読了
特集2 マーケティング分析本格入門
p.94 続き
- 広告戦略を立てる
# 利用する仮想データの読み込み library(ggplot2) library(scales) grp.data <- read.csv("grp.csv", header = T) head(grp.data) ggplot(grp.data, aes(x = grp, y = amount)) + geom_point() + scale_y_continuous(label = comma, limits = c(0, 360000)) + ylab("売上") + xlab("GRP") + theme_bw(16) # 線形型モデルの構築 ggplot(grp.data, aes(x = grp, y = amount)) + geom_point() + scale_y_continuous(label = comma, limits = c(0, 360000)) + ylab("売上") + xlab("GRP") + geom_smooth(method = "lm") theme_bw(16) fit <- lm(amount ~ grp, data = grp.data) summary(fit) # 逓減型モデルの構築 fit <- lm(log(amount) ~ log(grp), data = grp.data) summary(fit) fit.data <- data.frame(grp = grp.data$grp, amount = exp(fit$fitted.values)) ggplot(grp.data, aes(x = grp, y = amount)) + geom_point() + geom_line(data = fit.data, aes(x = grp, y = amount)) + scale_y_continuous(label = comma, limits = c(0, 360000)) + ylab("売上") + xlab("GRP") + theme_bw(16)
- Web サイトを改善して売上を伸ばす
- A/B テストと誤差
- 2つ、もしくは複数のバージョンのWebページを出し分け、一番成績が良いページを決定するためのテスト
- ランダム化比較実験
- 検定
- A と B の差が意味のある差かどうかを判定する検定という解析手法を使って判断
- コンバージョン率を判定するような場合にはカイ二乗検定を使う
- A と B のパターンの違いとコンバージョンするかしないかとの間に関連性があるかを調べる
- p-value が重要
- p-value は実際には何の違いが無くても得られたデータくらいの差が発生する確率を表す
- 5% 以下の場合は意味のある差として見なす
- 件数が少ないと誤差が大きくなり、件数が多くなると誤差が小さくなる
- 多変量テスト
- A/B テストと誤差
# 直交表の作成 install.packages("conjoint") library(conjoint) experiment <- expand.grid( imgA = c("ImageA1", "ImageA2"), imgB = c("ImageB1", "ImageB2"), txtA = c("TextA1", "TextA2"), txtB = c("TextB1", "TextB2") ) design.ort <- caFactorialDesign(data = experiment, type = "orthogonal") design.ort # 仮想のテスト結果データの読み込み web.test.data <- read.csv("web_test_sample.csv", header = T) head(web.test.data) # ロジスティック回帰モデルの構築 fit <- step(glm(cv ~ ., data = web.test.data[, -1], family = binomial)) summary(fit) # logistic.display の実行 install.packages("epicalc") library(epicalc) logistic.display(fit, simplified = T)
紙面と同じ結果にはならなかった。仮想データの読み込み結果以降が全部違う。最後はエラーが出る。
> logistic.display(fit, simplified = T) 以下にエラー coeff[, 1] : 次元数が正しくありません
第2章 mixi における大規模データマイニング事例
- インタレストターゲティング
- mixi 内の情報からユーザの興味・関心(インタレスト)情報を取得し、その興味にあった広告をユーザに表示する
- 旧インタレストターゲティング
- TokyoCabinet
- ベーシックな階層クラスタリング
- 問題点
- 想定インプレッション数の算出に時間がかかる
- 最低1週間
- 機会損失
- クラスタの更新が困難
- 想定インプレッション数の算出に時間がかかる
- 新インタレストターゲティング
- ツールやライブラリに任せられることは任せ、より本質的な部分に注力する
第3章 ソーシャルメディアネットワーク分析
- ノード(人)とエッジ(人と人との繋がり)
- ネットワークの方向
- エッジリスト
- R パッケージ
- ネットワーク分析用 igraph
- ソーシャルネットワーク分析特化 sna
- ホモフィリー
- 似たもの同士が集まり易い、類は友を呼ぶ傾向のこと
- AUC
- 分析結果のあてはまりの良さを調べる方法
- the area under the receiver operating characteristic curve : ROC 曲線下面積
特別記事 Fluentd 入門
- 以下の問題を解決
- 回収に長い時間が必要
- データが解析可能になるまでに長い時間が必要
- ネットワークの帯域の消費
- 処理の不安定さ
- 利点
- アーキテクチャ
- 使い方
- gem 版
- 最新の機能を利用できる
- td-agent
- 導入が簡単
- gem 版
- fluent-agent-lite
- 他のプロセスが書き出したログファイルを順次読み込んで別の Fluetnd に送信するという処理に特化したツール
- 活用方法
- ログ収集
- 統計 + 可視化
- 検知/通知
- システム構成
- fowarder
- aggregator
- worker
- serializer
- watcher
特別企画 データ分析のためにこれだけは覚えておきたい基礎知識
第1章 SQL入門
- スタースキーマ
- 売上や在庫データを指すトランザクションが格納されたファクトテーブル
- 商品名や顧客データのような個別の要素を指すマスタデータを格納するディメンションテーブル
- R から SQL を実行する
- RODBC
第2章 Webスクレイピング入門
- RODBC
- python
- urllib2
- BeautifulSoup
感想
本格的にやるなら、統計の勉強、R の勉強しないといけないなと感じた。 どのような世界なのか、感じるには充分な書籍だった。