ネチネチと「戦略的データマイニング」のあら探しをする

著者の方から「戦略的データマイニング」という本をいただきました!ありがとうございます!
という記事を先日書きました。
2014-08-22 - 盆栽日記
せっかくなのでネチネチあら探しをします。慈悲はない。
なお、あくまで初版についてのあら探しであることにご注意ください。

plyrパッケージが前提である記述がある

mapvalues関数、revalue関数、round_any関数はいずれもplyrパッケージの関数です。
また、reshape2パッケージのくだりで使われている.関数(ドット関数)もplyrパッケージの関数です。
P17の掲載コードでは突然plyrパッケージが読み込まれていてなんで???みたいな気持ちになりますがそういうことです。
plyrパッケージを読み込んでないと関数 "."がないとか怒られます。

n-distinct関数など無い

4章で多用されているdplyrのn_distinct関数の表記は、ハイフンではなく、アンダーバーです。
つまり、n_distinct関数が正しい表記です。
ただしコードは通っているようなのでおそらく印刷時の誤植でしょう。
なお、length(unique(user_id))とn_distinct(user_id)ではやろうとしていることは同じです。

説明が少ない

たとえばデモグラ、つまりデモグラフィック属性のことですが、P77では突然その言葉が出てきます。
今回はねちねちなのでこういう細かいことも指摘しておきます。
また、read.csv関数を使ってファイルを読み込む時も、説明無くfileEncoding="utf-8"とかあって、よく知っている人であればなんてことないのですが、初心者だとなんで???と思うかもしれません。とかく説明が無い。
P139もepicalcパッケージを読み込んでいるのですが、これはその次の行のlogistic.display関数を使いたいからだと思います。
やはり説明が無い。

誤植

P166以降、ガウジアンカーネルとなっていますがガウシアンカーネルの誤植でしょう。

chain脳

P167以降、それまでのコードであれば以下のように書いていたところを

head(arrange(fit.svm1$result, RMSE))

下記のように書くようになっています。

fit.svm1$result %>% arrange(RMSE) %>% head()

これは著者が稿を進めるうちにchain脳になってきたものと考えられ大変喜ばしい傾向といえます。
版を重ねた際には最初の方の章のコードも全てこのように書き換えてほしいものです。

さいごに

色々書きましたがまあどれも枝葉末節であり、本書の価値を損なうものではありません。
dplyrが多用されていて混沌とした新しいRの文法を垣間見ることができ個人的には大好きな本です。