ネチネチと「戦略的データマイニング」のあら探しをする
著者の方から「戦略的データマイニング」という本をいただきました!ありがとうございます!
という記事を先日書きました。
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関数を使いたいからだと思います。
やはり説明が無い。
chain脳
P167以降、それまでのコードであれば以下のように書いていたところを
head(arrange(fit.svm1$result, RMSE))
下記のように書くようになっています。
fit.svm1$result %>% arrange(RMSE) %>% head()
これは著者が稿を進めるうちにchain脳になってきたものと考えられ大変喜ばしい傾向といえます。
版を重ねた際には最初の方の章のコードも全てこのように書き換えてほしいものです。
さいごに
色々書きましたがまあどれも枝葉末節であり、本書の価値を損なうものではありません。
dplyrが多用されていて混沌とした新しいRの文法を垣間見ることができ個人的には大好きな本です。