データサイエンティスト養成読本
データサイエンティスト養成読本
データサイエンティスト養成読本 [ビッグデータ時代のビジネスを支えるデータ分析力が身につく! ] (Software Design plus)
- 作者: 佐藤洋行,原田博植,下田倫大,大成弘子,奥野晃裕,中川帝人,橋本武彦,里洋平,和田計也,早川敦士,倉橋一成
- 出版社/メーカー: 技術評論社
- 発売日: 2013/08/08
- メディア: 大型本
- この商品を含むブログ (11件) を見る
p.94 まで
第4章 Python による機械学習
- データを分析するときに必ず機械学習が必要とは限らない
- 機械学習によってある入力値(説明変数)に対して、結果の値(目的変数)を得ることができ また入力値がどれくらい結果に影響を及ぼすかを知ることができる
- Numpy
- 効率的に数値計算するためのライブラリ
- Scipy
- 数学、科学、工学のための数値解析
- Matplotlib
- データを可視化し理解を助けるグラフ描画ライブラリ
- scikit-learn
- 機械学習をするときに利用するライブラリ
- pandas
- データ構造やデータ解析ツールを利用するときに便利でハイパフォーマンスなライブラリ
- rpy2
- R言語を呼び出すライブラリ
- AGPL v3.0 商用利用に注意
- IPython
- 対話的に実行出来るシェル
rpy2 のインストールができなかった
第5章 データマイニングに必要な10のアルゴリズム
- C4.5
- 決定木を構築する計算アルゴリズムの一種
- k-means アルゴリズム
- サポートベクターマシン(SVM)
- アプリオリアルゴリズム
- EM アルゴリズム
- 期待値最大化法(Expectation-maximization algorithm)とも呼ばれる
- 様々な確率モデルでパラメータを推定する際に使われるアルゴリズム
- 計算方法
- パラメタ-の初期値を決める
- Expectation ステップ:未観測データの期待値を求める
- Maximization ステップ:未観測データを動かして、目的関数を最大にするパラメータを求める
- 収束するまで Expectation ステップ、Maximization ステップを繰り返す
- ページランク
- Web ページの検索順位を付けるアルゴリズム
- アダブースト
- k - 近傍分類
- すべての訓練データを記憶してクラスタリングを行う「まる暗記」型の分類器
- 精度を落とさないまま訓練データを減らす方法(condensing)
- 訓練データは減らすが精度が高くなる方法(editing)
- 近接グラフへの応用
- ファジーアプローチ
- ナイーブベイズ
- クラスを予測するための手法
- 構築が簡単で、パラメータを推測するための複雑な繰り返し計算が必要無い
- 大きなデータに対しても適用できる
- CART
- Classification and Regression Trees
- 2分岐び決定木によってクラス、連続値、生存時間などを予測できる手法
特集2 マーケティング分析本格入門
第1章 R によるマーケティング分析
- ポジショニングを決める
- 市場はどのような人で構成されていて : セグメンテーション
- その中の誰をターゲットにし : ターゲッティング
- どんなサービスや商品を提供するのか : ポジショニング
- セグメンテーション
- 基本的な属性データによる区分ではビジネスにおいて意味のあるグループ分けができない
- 趣味や行動パターンを利用してクラスタリングすることが必要
- 基本的な属性データによる区分ではビジネスにおいて意味のあるグループ分けができない
# 主成分分析の実行 sp.user.data <- read.csv("sp_user_research_data.csv", header = T) sp.user.pca <- prcomp(sp.user.data[, -1], scale = T) biplot(sp.user.pca) # k-means によるクラスリングの実行 sp.user.km <- kmeans(sp.user.data[, -1], 4) sp.user.pca.df <- data.frame(sp.user.pca$x) sp.user.pca.df$id <- sp.user.data$if sp.user.pca.df$cluster <- as.factor(sp.user.km$cluster) ggplot(sp.user.pca.df, aes(x = PC1, y = PC2, label = id, col = cluster)) + geom_text() + theme_bw(16) # レーダーチャートの作成 library(fmsb) df <- data.frame(scale(sp.user.km$centers)) dfmax <- apply(df, 2, max) + 1 dfmin <- apply(df, 2, min) - 1 df <- rbind(dfmax, dfmin, df) radarchart(df, seg = 5, plty = 1, pcol = rainbow(4)) legend("topright", legend = 1:4, col = rainbow(4), lty = 1)
- ポジショニング
- MDS で知的マップを作成
- 近くマップに選考ベクトルを描画
# MDS による近くマップの作成 install.packages(MASS) library(MASS) target.data <- read.csv("target_preference_data.csv", header = T) service.dist <- dist(t(target.data[, -1])) service.map <- isoMDS(service.dist) service.map.df <- data.frame(scale(service.map$points)) service.map.df$service_name <- names(target.data[, -1]) ggplot(service.map.df, aes(x = X1, y = X2, label = service_name)) + geom_text() + theme_bw(16) # 選考ベクトルの推定 library(ggplot2) user.preference.data <- do.call(rbind, lapply(1:nrow(target.data), function(i) { preference.data <- data.frame( p = as.numeric(target.data[i, -1]), X1 = service.map.df$X1, X2 = service.map.df$X2 ) fit <- lm(p ~ ., data = preference.data) b <- 2 / sqrt(fit$coef["X1"] ^ 2 + fit$coef["X2"] ^ 2) data.frame( X1 = b * fit$coef["X1"], X2 = b * fit$coef["X2"], service_name = i ) } ) ) ggplot(service.map.df, aes(x = X1, y = X2, label = service_name)) + geom_text() + theme_bw(16) + xlim(-2, 2) + ylim(-2, 2) + geom_point(data = user.preference.data, aes(x = X1, y = X2))