![見出し画像](https://assets.st-note.com/production/uploads/images/32520400/rectangle_large_type_2_22536355015b958e0bbbd0fb46e0d386.png?width=1200)
データサイエンティスト生活でお世話になった本
みなさんこんにちは。くにです。
データ分析の世界に足を踏み入れてから9年が過ぎました。
分析実務未経験でキャリアチェンジできたのは幸運としか言えませんが、ある意味無知だったからこそ無謀な挑戦ができたのかもしれません。この挑戦の泥臭い記録は、この記事に書きました。
ポジションは変われど、データを扱う仕事をまだ続けています。
私は実務で手を動かしつつ、不格好に失敗しながら学んできました。わからないことにぶつかるたびに本を買い、その本でわからないことがあればまた本屋に行き、自分が少しでも理解できそうな本を探して買いました。そして、気になる参考文献があれば、それも買って読んでみる…。
こんな生活を続けているうちに、部屋が本だらけになってしまいました。
正直に言って読み切ったという実感のある本はありません。しかし、実務で何かしらお世話になった本は数多くあり、そういう本は手放さずに手元に置いています。
この記事では、私が泥臭く不格好なデータサイエンティスト生活でコツコツ集め、お世話になった本を紹介します。
私は、数式だけではイメージできず、概念や用途がわからないとなかなかな理解が進まないという、ポンコツな側面を持っています。これはデータサイエンティストとしてはかなり不利だと思っています。これを物量と経験でギリギリな感じでカバーしてきました。その足跡と捉えていただければと思います。
以下、いくつかのカテゴリに分けて紹介します。
データサイエンスの全体像を掴む
実務・工学寄りの私は、概念の全体像や用途を掴まないと理解できないという厄介な特性があります。データサイエンスでも同様で、数式の積み上げでは実務に持ち込むことができませんでした。そこで、なるべく「実務やビジネスでどう使うのか?」「何ができるものなのか?」ということの理解を優先しました。これにはかなり時間がかかったのですが、参考になった本を紹介します。
戦略的データサイエンス入門,オライリー
タイトルの通りに、「データをビジネスに活かすにはどうすべきか」ということを技術よりの視点で整理した良書です。特に、企業の中で日々データと向き合っている方におすすめです。
初めて読んだときの感想は「もっと早く読んでおけばよかった!」というものでした。データサイエンスのことを全くわからない状態でこの世界に入ってしまったので、技術的な基礎からそのビジネス応用に至るまで、すべてにおいて困惑し続けていたのですが、この本は優しく導いてくれました。
第1章と第2章に、データを使ってできることやビジネス上の応用イメージがコンパクトに整理されています。その上で、モデル構築方法から評価・応用例まで網羅されていて、ビジネス上のデータサイエンスの全体像を把握する上で、よいガイドになるでしょう。
数式よりも多めの文章で説明されているところも私には助かりました。逆に、数式でスッキリ理解したい方には向かないかもしれません。
ビジネス活用事例で学ぶ データサイエンス入門,SBクリエイティブ
Webサービスやスマホゲームのデータ分析を例にとったデータサイエンスの活用事例集です。本書が発売されていた頃はAIブーム前で、ビジネス上のデータ分析はWebサービス企業内での利用が先行していました。
私は非Web企業に在籍しながらデータ分析をやり始めたところだったので、大いに参考になりました。薄く広くという感じでさらっと読むことができます。事例ベースにイメージを固める方に向いていると思います。
仕事ではじめる機械学習,オライリー
機械学習をシステムにどのように組み込むのか、ということに焦点を当てた本です。レコメンドや予測モデルを最終的にデリバリーするためには、何らかの形で「システム」に落とし込む必要があります。本書が優れているのは、この最終的な利用をゴールとして説明が進んでいくことです。
受託型のSE業務からデータサイエンスの世界に入った方や、機械学習を使ったソリューションを考える方にもおすすめです。
効果検証入門,技術評論社
ビジネスの意思決定支援にデータを活用することを考えたとき、本書に書かれていることはすべからく理解しておく必要があると思います。逆に言えば、本書を読むことで、データを利用した意思決定支援の実際的なイメージを掴むことができるという効用があります。その意味で、先ほど紹介した「仕事ではじめる機械学習」がオペレーション支援よりであるのに対して、本書は意思決定支援に焦点を当てていて対照的かもしれません。
ここ数年、私の業務は、機械学習のシステム組み込み案件ばかりでした。ところが、最近になって統計モデルを活用した意思決定支援のプロジェクトが増えていています。そうした事情もあって本書を購入しました。素晴らしい本だと思います。
ひとくちにデータサイエンスのビジネス応用と言っても、用途によって使う道具も観点も変わってきます。その見極めには経験が必要ですが、こちらの記事に私の考えを整理しました。
なお、本書は因果推論の入門書としても有用です。因果推論は難易度の高いタスクで、観察研究的なアプローチは更に難しくなります。因果推論の入門本としては、本書の他に「岩波データサイエンス Vol.3」がおすすめです。
統計学
データサイエンスを実践する上では、統計学に対する理解が必要になります。アカデミックな研究者のようにすべてを数式レベルで理解するのは難しいとしても、その本質や仮定を押さえておかないと大きなミスを犯してしまう危険性があるからです。また、後々になって基本を知っておけば回り道をせずに済んだのに…と思うこともあるかもしれません。恥ずかしながら、私はそういうことがよくありました。
統計学入門 (基礎統計学Ⅰ) ,東京大学出版会
統計学の入門書として人気のある本です。数式だけでなく文章による解説も豊富でとっつきやすいです。また、身近な事例をところどころ挟んであるのが素晴らしく、飽きずに学ぶことができます。
本書の使い方として、通読するやり方もあると思いますが、他の本や実践中にわからないことがあったら本書に立ち返って読む、というやり方も良いかと思います。
新版 統計学のセンス,朝倉書店
文字通り統計学の感覚が掴めず悩んでいたときに手にした本です。私が購入したのは初版ですが、最近新版が出ました。内容は、データの集約や統計的検定などの基本的な統計解析手法を利用する場合の注意点を整理したものです。教訓集と言ってもよいかと思います。
医学事例なのでビジネスからイメージしにくい面があったり、レイアウトが独特だったりしますが、迷ったときには手に取ります。
数理統計学,共立出版
本書は最近購入しました。数理統計学の教科書なので数式が多めですが、各章の導入部分で文章でのわかりやすいガイドがあり、読みたくなるような工夫がされています。
データサイエンスを深く学んでいくと、どこかで数理統計学の教科書にたどり着きます。しかし、アカデミック向けの教科書は敷居が高い本が多く、手が出しにくいかもしれません。私は「ホーエルの入門数理統計学」に助けてもらいましたが、今後はこちらの本がスタンダードになるのではないかと思います。
現代数理統計学,創文社→学術図書出版社
竹村先生の現代数理統計学です。名著と言われていますが、私には難易度が高く一度手放しました。しかし、やはり読みたいと思って再度購入し、機会を見つけてコツコツ読んでいます。厳密な定義を知りたいときや、他の本で理解が曖昧になっているとき、本書の目次や索引を頼りに探します。やはり私にはオーバースペックなのですが、語り口が心地よく、講義を聞いているような感覚になることもあります。
出版元が変わって改訂されるということで、3度目の購入に踏み切りそうです。
統計解析・統計モデリング
統計学の数理を応用し、データ解析を行う一連の手法や行為を統計解析と言います。このように書くに何だか機械学習やデータマイニングと似たような感じになりますね。実務で応用するときには、その境界線はやや曖昧なところがあります。ここでは、確率分布に基づく統計モデルを活用した統計解析手法に焦点を当てます。
統計学:Rを用いた入門書 改訂第2版,共立出版
Rを使って統計モデリングの基礎を学ぶことができる本です。この後に紹介する久保先生の緑本の参考文献を辿って買いました。線形回帰、分散分析、一般化線形モデルなどを取り上げ、そのパラメータを最尤推定で推定する基本的なアプローチを丁寧に解説しています。無味乾燥な手法の紹介でなく、勘所や注意点を丁寧に解説していて、統計モデリングに初めて取り組む方にもとっつきやすいのではないかと思います。
重回帰などのモデルを構築する場合に、古典的なアプローチとして、(1)まず可視化して目的変数と説明変数の関係を考えながら仮説を立て、(2)変数を吟味しながらモデルを構築・評価していく、というやり方があります。本書ではこの過程を丁寧に教えてくれます。また、線形モデルを作る前に、決定木や一般化加法モデルで洞察を得る、といったテクニックも自然に説明されています。経験者には当たり前の話だと思いますが、初学者だった私には目から鱗でした。
全般的にごく基本的な統計モデルの構築について取り上げていますので、変数(特徴量)が数百を超えるようなデータを扱うためには、別のテクニックを学ぶ必要があります。それでもなお、ここで書かれているような古典的な手法を学ぶ意義は十分にあると思っています。また、私にとって本書が良かったのは、手を動かしながら"統計的な考え方"を学べたことでした。そういった意味で、本書は私にとって守破離の守と言えます。
一方で、数学的な素養がある方は、「一般化線形モデル入門 原著第2版」のように、定義や理論を体系的に積み上げていくタイプの本があっているかもしれません。
データ解析のための統計モデリング入門,岩波書店
久保先生の通称"緑本"。統計モデルの構築方法を段階的に指南してくれる本です。分野は生態学ですが、一般的に応用ができる内容となっていて、じっくり学ぶことができました。
本書のポイントは、"何も考えないで統計手法を適用する"ことの問題点を丁寧に説明し、その解決策まで導いてくれることです。取り扱っている範囲は一般化線形モデルから階層モデルまで多岐に渡ります。モデル評価の重要性についても丁寧な解説があります。重回帰をやってみたけどこれでよいのかな?という疑問を持っている方にもおすすめです。
なお、生態学の統計モデリング本は参考になるものが多いです。例えば、「BUGSで学ぶ階層モデリング入門: 個体群のベイズ解析」や「Mixed Effects Models and Extensions in Ecology with R」など。
一般化線形モデル (統計解析スタンダード),朝倉書店
一般化線形モデルは基本的なモデルですが、応用範囲が広く、今も至るところで使われています。このため、参考書も多く出版されています。上で紹介した「一般化線形モデル入門 原著第2版」は定番です。
本書は比較的新しい本で、実例とRのコードが多いことが特徴です。ゼロ過剰ポアソンモデルと言った複雑なモデルの紹介もあり、手軽にいろいろな様々なモデルを学ぶことができます。
RとStanではじめる ベイズ統計モデリングによるデータ分析入門,講談社
StanとRでベイズ統計モデリング,共立出版
階層モデルや空間統計モデルなど、複雑なモデルのパラメータを推定する場合、ベイズ推定に頼る場面が出てきます。ベイズ推定の方法はいろいろとありますが、複雑なモデルになると解析的に解くのが難しくなり、マルコフ連鎖モンテカルロ法(MCMC法)を利用することになります。
MCMC法によってベイズ推定を行うライブラリはいくつか種類があります。現在広く使われているライブラリのひとつがStanです。ここで紹介する2冊はStanを扱った本で、日本語で書かれた本の中では抜群にわかりやすく、リファレンスとして長く手元に置いています。事例を通して階層モデルの用途を丁寧に教えてくれる点も素晴らしいです。
なお、私が初めてベイズモデリングに挑戦したときは、BUGSを使いました。そのときにお世話になったのは丹後先生の「ベイジアン統計解析の実際」や「統計モデル入門」でした。
ベイズモデリングの世界,岩波書店
岩波データサイエンス Vol.1,岩波書店
MCMC法を使ったベイズモデリングの基礎、応用例を学ぶには岩波書店のこちらの2冊もおすすめです。どちらも薄くコンパクトですが、その外観に似合わず中身が濃いです。
ベイズモデリングと言えば「計算統計II マルコフ連鎖モンテカルロ法とその周辺」が定評があります。現在ではオンデマンドでしか手に入りません。何となく次の版が準備されつつのかなと予想していますが、出版されたら読みたいです。
RとS-PLUSによる多変量解析,丸善出版
ここからは多変量解析に関連する様々な手法を取り上げた本を紹介します。
まず、こちらの本は多変量データに対する可視化、重回帰、因子分析、主成分分析、線形混合効果モデルといったアプローチを取り上げています。過去の研究対象となったデータをもとに、多変量データとどのように向き合っていけばよいか、実践的に指南してくれます。全般的に、探索的データ分析(EDA)寄りの本です。
扱うデータはデータサイズや変数の数はどれも小さ目ですが、それ故に、じっくり考えることができます。計算機と機械学習を用いて予測精度をガリガリにチューニングするのとは全く異なるアプローチです。データの特徴を捉えて考察していく上で、大変よいトレーニングになるかと思います。
データ分析やモデリング経験が豊富な方からすると物足りないかもしれません。しかし、"統計的に考えるとはどういったことだろうか"という疑問を持っている方にはよい題材になるでしょう。
なお、同著者の「Rによる統計解析ハンドブック」は更にボリュームがあり、事例や手法も幅広くなっています。
S-PLUSによる統計解析 第2版,丸善出版
本書の主たるターゲットはS-PLUSで、Rの解説も含まれています。取り扱っている統計解析手法の幅が広いのが特徴です。可視化、一般化線形モデル、非線形モデル、Tree、変量効果モデル、主成分分析や因子分析、分類、生存時間解析、時系列分析、空間統計学など。
サポートベクターマシンの記述も少しありますが、全般的に機械学習以前の伝統的な統計解析手法を網羅しています。このため、他の参考書や事例で自分が知らない統計解析手法や用語に出会ったときに、本書の索引から調べることが多いです。
邦訳はだいぶ古くなっていますので、Rのリファレンスとして使うような用途には向いていないかもしれません。
本書を含め、ここで紹介した多変量解析の本は、やや古典的な手法を中心に取り上げたものです。より現代的な本としては「多変量解析入門―線形から非線形へ」がありますが、こちらは後ほど紹介します。
赤池情報量規準AIC,共立出版
統計モデルを利用するためには、モデル評価の考え方を理解し、適切に評価することが大変重要になってきます。統計モデルの評価は赤池先生が情報量基準の考え方を導入して以来、未知データへの当てはめ精度、つまり汎化性能を軸に議論されるようになりました。実際に、多くの統計解析の本でAICは取り上げられています。しかしながら、その重要性や適切な適用方法を丁寧に解説しない本もあります。また、必ずしも予測精度は重要でないと書く本も稀にあります。一方、機械学習のモデリングにおいては、クロスバリデーションなどを駆使して汎化性能を測ることが一般的です。
こうした様々な情報に飲み込まれそうになったときに、改めてAICについて学ぼうと考えて本書を購入しました。結論としては購入して大変良かったと考えています。特に、様々な情報量基準が乱立する中で、その歴史を踏まえながら、議論の集約を見ることができたのは有益でした。
情報量基準の参考書としては、本書の他に「情報量統計学 (情報科学講座 A・5・4)」もわかりやすいと思います。また、階層モデルのような複雑なモデルの評価にはAICでなく別の基準が必要になりますが、それについては「ベイズ統計の理論と方法」をご覧ください。
機械学習・予測モデリング
機械学習は、データからパターンを抽出したり、予測モデルを構築するための一連の手法です。機械学習の領域は広く、統計学に基礎を置く手法と、情報工学分野から提案された手法が混在しています。このため、伝統的な統計解析と機械学習を明確に区別するのは難しいと考えています。
この節では、ここまでに紹介した本よりは機械学習の色が強めの本を紹介していきますが、統計学・統計解析と区別しているわけではありません。(正則化を明確に説明しているような本はこちらになります。)
統計的学習の基礎,共立出版
本書はデータから統計的に学習することの全般を扱う本です。線形回帰から出発し、データから学習する(=パラメータを推定する)ための様々な手法を取り上げていきます。アンサンブル学習や教師なし学習まで広く深い議論が展開されます。また、単に手法を紹介するのでなく、その背景、応用、チューニングポイントまで網羅されており、実務家にとって有益な情報が詰まっています。機械学習の参考書としては、「パターン認識と機械学習(ビショップ本)」が有名ですが、私は本書の方が読みやすくて実務でも参考になりました。
買うのに勇気がいる値段と厚み。私がこれを買ったのは、データサイエンティストに転身して3年が経過したときでした。当時、ガチンコ企業研究者に囲まれていた私は、データ分析の世界にやってきて3年経ったというのに、自信も実力もなく悶々とした日々を送っていました。上司や同僚と議論してもついていけず、様々な手法の波に飲み込まれ、コーディングスピードも上がらず四苦八苦。分析をやればやるほどわからないことが増え、本を読めば読むほど疑問が増えるという負のスパイラルでした。
そんなとき、文字通りバンジージャンプをする覚悟で買ったのが本書です。本屋で見つけて手に取り、これは自分の疑問に答えてくれそうだと直感的に思いました。しかし、値段と分厚さに慄き、1ヶ月ほど本屋に通って迷っていた記憶があります。ポンコツな自分がこんな高級な本を買って学べるのかと不安でしたが、覚悟を決めて買いました。
本書を購入してからは、人目を気にせず会社、電車、家でページをめくりました。わからないところがあってもめげずに。そうしているうちに、正則化という概念を通して、統計解析と機械学習の繋がりが見えたような気がしました。うまく説明できませんがいろんな疑問が解消し、業務も少しずつうまく回せるようになっていきました。
このような個人的な経験があるため、「データ分析、データサイエンスのおすすめ本は?」と尋ねられたときには本書をおすすめしています。しかし、なかなかハードルが高いので、本気な方だけに紹介しています。
機械学習 ─データを読み解くアルゴリズムの技法─,朝倉書店
機械学習の代表的なアルゴリズムを取り上げて、その背景と応用をコンパクトに整理した本です。本書の特徴は、情報工学におけるデータからの学習理論を体系的に示している点で、統計解析色の強い本とは違った趣きがあります。概念学習、ルールベースも含めて記述があるので、人工知能分野との関連を調べる時や、用途として自動化や予測に軸足を置きたい場合に参考になると思います。
また、値段の割に厚みは普通に見えますが、字は細かく、想像以上のボリュームがあります。
Applied Predictive Modeling, Springer
機械学習を使って予測モデルを構築することに焦点を当てた本です。教師あり学習の応用を念頭に、前処理からモデル構築、評価に至るプロセスと手法が解説されています。Rの機械学習フレームワークcaretを開発した方が著者のため、コーディングスタイルが一貫していてわかりやすいです。
私は、本書の価値はコーディング指南ではなく、予測モデリングに関するプロセスを示した点にあると考えています。本書が登場する前は、特にRの技術本においては、手法の動かし方を中心に示したものがほとんどでした。今では当たり前のノウハウですが、主成分分析などの教師なし学習手法の説明を前処理の文脈で解説されていたのが新鮮でした。
また、付録Aに主要なアルゴリズムと使用上の注意点が整理されています。そのボリュームはたった1枚の表です。しかし、この表が私には衝撃で、これまで自分がいかに無駄な実験をやってきたかを思い知らされたのでした。以来、私にとってはチートシートになりました。
今では、機械学習や予測モデリングの主要なツールはpythonおよびscikit-learnに移りつつあります。そして、scikit-learnの洗練されたパイプラインによって、一貫したプロセスで予測モデルを構築できるようになってきました。参考書も数多く出ています。一方、Rにおいては統計モデリングの本が中心ですが、例えば「入門 Rによる予測モデリング」のような本も登場しています。
Python機械学習プログラミング,インプレス
機械学習を利用して予測モデルを作るというタスクは、随分一般的になってきました。本書は、pythonで機械学習を使いたいという初心者向けの本ですが、予測モデリングのプロセスを詳しく平坦に伝えている点で有用です。評判もよく、もうすぐ第3版が出版されるようですね。
注意深く読み込めば、実務で活用できるテクニックが散りばめられていることに気づくでしょう。例えば、初歩的なミスの例として、学習データと評価データを分割する前のデータセット全体で次元圧縮やOne-hotエンコーディングをしてしまうということがあります。本書には、このような初歩的なミスが防ぐための知見が随所に埋め込まれています。
また、scikit-learnのパイプラインを中核に、一貫的かつシンプルなコードが展開されるのも魅力的です。説明のための統計モデリングを中心に経験してきた方で、これからpythonで予測モデリングを学ぼうという方にもおすすめです。
pythonの機械学習関連本は大量に出版されていますので、本屋で自分の肌に合うものを選ぶというのもよいかと思います。例えば、「Pythonではじめる機械学習」「Python機械学習クックブック」など。
Machine Learning In Python, WILEY
本書はpythonの機械学習本が乱立する前に出版された本で、文字通りpythonで機械学習モデリングすることをターゲットにしています。初学者の方には積極的におすすめしていません。Amazon.comのレビューでも書かれているように、pandasやnumpyを使わないコーディングが示されているからです。
それでもなお紹介するのは、私にとっては示唆のある内容で、大変想い出深い本だからです。
これを購入した当時、機械学習のアルゴリズムの多様さに圧倒されていました。調べれば調べるほど多くのアルゴリズムが出てくる上に、チームレビューで「あのXXXは試したの?」と指摘されるたびに自分の無知と向き合うことになっていたからです。今思えば、同僚や上司がすべてのアルゴリズムに精通していたわけではないのですが、技術の目利きに優れていました。
本書を購入した動機はpythonでのモデリングを学ぶためでした。しかし、有益だったのはコーディングや手法でなく、モデル選択の勘所でした。代表的な手法として罰則項付きの線形モデルとアンサンブルTreeが取り上げられていて、まずこれらの適用を試みよう…のようなことが書かれていました。これを見たとき、霧が晴れるような気がしたものです。この基本的な戦術は多くの場合でワークしました。必ずしもこれら2つのアプローチで事足りたわけではありません。しかし、実問題における複雑で雑多なデータと相対するとき、その問題の難しさを短時間で把握するには有効なアプローチでした。
というわけで、個人的に有益な示唆を与えてくれたという意味で、本書は大変思い出深いのです。職場にも本書に感銘を受けた同僚がいました。
追記:最近邦訳が出版されているようですね(Pythonによる機械学習: 予測解析の必須テクニック)。こちらも読んでみたいです。
多変量解析入門―線形から非線形へ ,岩波書店
データをいかにモデリングしていくか、ということを現代的な視点で広く濃く深堀りしている本です。線形回帰、非線形回帰、主成分分析、クラスタリング、サポートベクターマシンなど、教師あり・教師なしの機械学習手法を取り上げています。しかし、カタログ的に手法を並べた本ではなく、小さなデータセットを事例にしつつ、しっかりとした数式展開で手法の本質を説明していく本です。
また、本書は回帰分析や主成分分析といった伝統的な統計解析手法から、サポートベクターマシンのような情報工学的な手法を区別なく、かつ滑らかなストーリーに沿って取り上げています。更に、正則化やモデル評価の考え方にも触れられており、応用を意識したものとなっています。
現代的なデータ解析手法を学ぶ上で、本書は硬派かつ誠実な入門書になるでしょう。
テーマ別:自然言語処理・テキストデータ解析
ここからはテーマ別に本を紹介していきます。まずは、テキストデータを対象とした解析に特化した本から。文字から成るテキストデータは、そのままの形で解析することはできず、何らかの処理で数値化して計量した上で分析していく必要があります。人が使う言語を自然言語、それを計算機で処理する一連の方法を自然言語処理と言います。
私がデータサイエンティストになって初めて取り組んだタスクが自然言語処理の応用でした。
言語処理のための機械学習入門,コロナ社
タイトルの通り、自然言語処理分野における機械学習活用を論じた本です。長らくテキストデータ解析を行うための入門書として親しまれてきた本で、各種手法から実験の方法まで広く扱っています。計量的にテキストデータを扱うための基本が集約されています。2010年の出版ですので、近年の応用事例はありませんが、それでもなお価値のある本だと思います。
一方、形態素解析や係り受け解析といった、自然言語処理の基本処理については扱っていないため、別の本で学ぶ必要があるかと思います。私は「自然言語処理 (IT Text)」と「自然言語処理の基礎」で学びました。他に「自然言語処理の基礎」もわかりやすいです。
岩波データサイエンス Vol.2(特集:統計的自然言語処理),岩波書店
統計的自然言語処理を扱った薄い本です。岩波データサイエンスは薄いのに濃いという特徴がありますが、本書も同じです。
Word2Vecのような分散表現からトピックモデルなどの現代的な手法が取り上げられていて、読み応え抜群です。このような手法をいち早くサーベイしてくれたおかげで、私のチームは大変助かりました。
本書で興味を持った分野があれば、専門書で深く掘り下げるのがよいと思います。例えば、トピックモデルであれば「トピックモデル (機械学習プロフェッショナルシリーズ)」や「トピックモデルによる統計的潜在意味解析 (自然言語処理シリーズ)」がおすすめです。
質問応答システム,コロナ社
対話システム,コロナ社
2016年頃から国内で始まったAIブームはそろそろ終息しつつありますが、AIに対するビジネスサイドからの期待(と誤解)は、概ね次の2つに分かれていたように思います。一つは、ディープラーニングを活用した高度なパターン認識の活用。もう一つは、コールセンターの質問応答システムやチャットボットなどの自然言語処理の活用です。特に後者は米国の著名な企業が派手な宣伝を展開したことにより、「人間的なことができそうだ」という妙な期待が集まりました。私はその頃、研究所からプリセールス部隊に異動していたので、このような対応に忙殺されていました。
私が疑問だったのは、いつの間に計算機はそんなに賢くなったのだろう、ということでした。そこで、きちんと調べるためにこれらの本を手にしたのでした。専門外だったので読むのは大変で、とても完全に理解したとは言えません。しかし、質問応答システムやチャットボット(対話システム)の技術の勘所や実用レベルを把握することはできました。
特に、質問応答システムが情報検索分野の延長上にあることがわかったのは有益でした。そこから図書館に籠もり、「情報検索の基礎」「情報検索と言語処理」「情報検索アルゴリズム」といった本を調べることで、情報検索の古典的な概念や位置づけを理解することができました。
現在は、検索タスクを行うチームが別にできたのでこうした分野のプロジェクトは行っていません。しかし、要件定義やプリセールスの場面で検索に関する知見は活きていて、有益だったと思っています。
テーマ別:異常検知・外れ値検出
機械の故障など、通常の動作から逸脱した現象をデータから捉えるタスクを異常検知と言います。また、観察データがある確率分布から生成されたと仮定したときに、その仮定した分布から著しく逸脱しているデータを見つける処理を外れ値検出と言います。
データサイエンティストになって2番目に取り組んだタスクが異常検知でした。異常検知は稀に起こる現象をデータから捉えようということなので、タスクの性質上、難易度が高くなります。なぜなら、興味の対象が稀にしか起こらないため、そのデータが少なくなってしまうからです。
したがって、異常検知手法の多くは、正常(異常でない)データしか手元にない状態で、どうやって未知の異常を捉えるのかということがテーマになります。自ずと教師なし型のアプローチが多くなりますが、モデル構築のみならず評価も難しいという問題があります。
Outlier Analysis, Springer
私が異常検知のタスクに取り組み始めたのは2012年のことで、当時は日本語で読める包括的な参考書がほとんどない状況でした。同僚に聞いたり、山西先生の「データマイニングによる異常検知」を読んだりしつつ、少しずつ実験を進めていました。しかし、伝統的なメーカーの企業研究所は特許によるIP化がノルマになっているので、既存手法の適用だけではGOサインがでません。特許を出すためには、自分がやっていることの新規性と進歩性を評価する必要があります。この活動は、異常検知の全体が見えない中で困難な仕事になりました。もちろん、私が特許を出すのが初めてで、実力不足だったことも大きかったです。
より包括的に異常検知分野を調べるために、サーベイ論文を探したり、データマイニングの分厚い本「Data Mining: Concepts and Techniques」を調べていました。そうこうしているうちに本書の初版が出版され、すぐさま購入しました。内容は盛りだくさんで、世の中にどういった手法があるか調査することができました。
本書は広く薄くというイメージで、網羅性を重視した本だと思います。膨大な参考文献リストがついているので、異常検知分野を俯瞰するには良い本でしょう。一方、実データに対する応用を考えるには、以下で紹介する井出先生の本がより有益だと考えています。
入門 機械学習による異常検知,コロナ社
データを利用した異常検知に取り組む場合、本書は外せない存在です。いろいろな方に薦めてきましたし、自分自身でも利用してきました。もし、私が異常検知タスクに取り組み始めた2012年頃に存在していたら、この本をずっと持ち歩いていたことでしょう。
入門とありますが、数式もしっかり入ってる本です。そのため読み応えもボリュームもあります。Rのコード例があり、動かしながら学ぶことも可能です。もしコードは不要だということであれば、同著者の「異常検知と変化検知」が有益ですが、セットで読むことをおすすめします。本書は読者の素朴な疑問に答えてくれるような記述が多いからです。
テーマ別:時系列・点過程・空間統計
経時的に情報を記録した時系列データは、実に様々な場面で登場します。機器に取り付けられたセンサーの値や株価、気温などの気象データ、店舗の売上の推移など多岐に渡ります。こうした時系列データの解析は古くから存在していますが、実務的な分析では固有のノウハウが求められます。そのため、古典的な手法を押さえておくことは重要だと考えています。一度経験してしまえば勘所や注意点が見えてきます。
一方、点過程データは、イベントの発生時刻を記録したデータのことです。一見時系列データのように見えますが、イベントが発生していない間は記録されません。その発生間隔がランダムの場合、通常の時系列データとは異なった処理やモデル化が必要になってきます。例えば、Twitterでの発言時刻、交通事故の発生、降雨や地震の発生、企業従業員の離職のような事象です。私は時系列データと点過程データを区別せずにモデリングをしていた時期があり、いろいろな失敗を経験しました。
また、位置を示す情報を伴う空間データも取り扱う上で固有のノウハウが必要になります。
経済・ファイナンスデータの計量時系列分析,朝倉書店
上の節で異常検知の話を取り上げましたが、私が初めての異常検知で取り扱ったのが時系列データでした。データ分析チームにやってきて間もないビギナーが時系列・異常検知という分野に挑むのは無謀で、七転八倒していた記憶があります。後々になって、自分が見ていたデータは時系列データというより点過程データだったのだということがわかったのですが、初期のサーベイで長らく時系列データの分析と格闘することになりました。本書は、そのときにお世話になった本です。
本書は沖本本と呼ばれることもあり、時系列データ分析の包括的な参考書として定評のあるものです。計量経済学の色が濃い本です。計量経済学の用語や観点を学ぶには「計量経済学 ミクロデータ分析へのいざない」が良いかと思います。
本書で取り扱っているのは、ARIMAモデルなどの古典的な時系列モデルで、近年応用が進んでいる状態空間モデルは出てきません。
時系列解析入門,岩波書店
上で紹介した沖本本と並んで時系列データ分析の定評のある本です。こちらも数式がしっかり入った本で、理論面の説明が手厚いです。取り扱っている範囲はARのような古典的モデルから状態空間モデルまでと広いです。AICをフル活用したモデル選択の議論が展開されているのが、沖本本と異なる点かもしれません。
基礎からわかる時系列分析,技術評論社
本書は時系列データ分析に関する本としては、比較的新しい本です。その特徴は、ARのような古典的なモデルは手短に解説し、最終的には汎用性の高い状態空間モデルに導くように誘導していることです。時系列モデルには様々なモデルが存在しますが、予測精度を高めようとすると状態空間モデルに行き着くことが多々あります。そういった意味で、本書はビジネスでの実践を重視した本と言えるでしょう。
時系列データの解析を初めてやろうという方におすすめできる本です。
点過程の時系列解析 (統計学One Point),共立出版
イベントの発生を記録した点過程データのモデリング方法を学べる本です。基本的なポアソン過程から出発し、一般化を経てHawkes過程も範囲に含んでいます。
本書を読むことで、上で紹介した3冊にはない視点で経時的なデータを眺めることができるようになると思います。
Rによる空間データの統計分析,朝倉書店
ここまでで紹介してきたのは時間によって変化するデータでした。本書では、地理情報、すなわち空間に着目したデータ分析の方法を取り扱います。
時系列データをモデリングする上での基本的なポイントは、系列データが自己相関を持つために、データ(正確には誤差)の独立性を仮定する単純な重回帰を適用できないことにあります。空間データについても類似の問題があり、地理的な自己相関を持つようなデータをどのように扱うのか、ということが論点になります。これは、必ずしも緯度経度情報を持つデータに限った話ではなく、例えば都道府県ごとに記録されたデータも考慮が必要になってきます。
また、緯度経度情報を持つデータは、測地系などの情報を押さえた上で処理を行う必要がありますが、そういった固有のノウハウについてもコンパクトにまとめられています。
ここまでで紹介してきた時間や空間の情報を持つデータは、データ同士の独立性が担保されない場合もあり、モデリングには注意が必要です。それぞれデータの形態から論じた本を紹介してきましたが、計測方法に着目して「繰り返し計測データ」として対応してくアプローチも存在しています。そういったノウハウは「マルチレベルモデル入門」「Rで学ぶ マルチレベルモデル[入門編]」のような階層モデルに関する参考書に解説があります。また、各統計解析の本にも散らばっています。
テーマ別:レコメンド・関係データ解析
ECサイトやWebサービスで商品をおすすめするレコメンド機能は、今日では当たり前に実装されています。このため、Web企業におけるレコメンド機能の実装は日常的なものだと言って良いでしょう。
一方、私は非Webかつ法人向けにシステムを提供するITベンダーに在籍していて、直接的にレコメンド機能の実装する機会はありません。しかしながら、利用者の潜在的なニーズに従って不確実性のある情報を提供するような場面は様々なプロジェクトで見られます。情報検索もこの一種ですが、より利用者の意図、背景、文脈(状況)を考慮した情報提示が求められています。
以下で紹介する本は、ECサイトのレコメンド機能を実装するためでなく、そのアイデアを横展開するために学んだ参考書になりますので、ご注意ください。
推薦システム: 統計的機械学習の理論と実践,共立出版
情報推薦システム入門 -理論と実践,共立出版
レコメンド機能の個人的研究にあたり、まず読んだのがこの2冊です。レコメンドと言えば行列分解による方法が広く紹介されていますが、それ以外の方法や、より基本的なアイデア、歴史的経緯を知りたいと思っていました。そいういった意味で、これらの本は満足できるものでした。
どちらも教科書的な本で、動かして学ぶという類の本ではありません。その分、レコメンドが対象とする課題の本質や手法の適用場面を手厚く説明しています。
レコメンドの考え方自体は、ECサイトに限らずいろいろな場面での応用が考えられます。例えば、検索システムに何らかのスコアリングと順位付けを行いたい場合や、本来は分類タスクなのにカチッとした教師データが存在しない場合などです。ただし、いずれの場合も評価が難しいことと、業務課題の本質を捉えないと意味のないものになることは十分注意すべきだと考えています。
関係データ学習,講談社
この本を手にしたのは会社都合によるものでした。プロジェクトが手法に縛られることはあってはならないことで、目的や課題に沿って手段たる手法を選択するのが常に正しいと私は考えています。しかし、組織人は理想だけで動けないことも多いのです。本書を買ったときに取り組んでいたのはテンソル分解的な領域でした。ここで書いた事情はさておき、情報工学またはデータ分析分野においてテンソルを扱った本はあまり見かけたことがなく、本書は貴重な存在です。
本書は隣接行列で表される関係データを解析するための手法が取り上げられています。典型的な応用例はレコメンドですが、より一般的には多対多の関係を対象として議論が展開されています。
考えてみると、回帰分析にしてもアンサンブルTreeを用いた予測モデル構築にしても、表形式の横持ちデータで目的変数が単一の場合を想定するのが一般的です。それでは、多対多の関係を示すデータがあった場合にどのようにモデリングしていくのでしょうか。本書はこの問題に焦点を当てています。
テーマ別:可視化
データから洞察を得るときに、基本的かつ重要な道具が可視化です。基本的なテクニックですが、データサイエンティストに転身した直後に、まったくやり方がわかりませんでした。社会人になって8年近く、棒グラフすら描く機会がなかったので…。
単純な可視化にも分析者の意図と仮説が重要です。また、データの種類によって適切な可視化の方法を選べるスキルが必要になります。
Rグラフィックスクックブック 第2版,オライリー
Rのエレガントなグラフィックライブラリggplot2を使い倒すための本です。単に使い方が羅列されているだけでなく、逆引きできそうな程充実した目次があるため、困ったときには大抵解決策が載っています。
また、特徴は美しいグラフが大量に掲載されているのも特徴で、可視化のアイデアを学ぶ上でも有益だと思います。これはGoogleで検索しているだけでは得られない利点で、本ならでは価値と言えるかもしれません。
統計学:Rを用いた入門書 改訂第2版,共立出版
RとS-PLUSによる多変量解析,丸善出版
これらは統計モデリングの参考書としてすでに紹介した本ですが、データ可視化の指南書としても非常に有益です。ただし、美しいグラフを描くためでなく、データから洞察をえるためにどういった可視化が有効であるか、ということを学ぶために適した本です。
現在私は複数名のデータサイエンティストをメンバーとしたチームを率いていますが、可視化の実践経験がないメンバーもいました。そこで、参考になりそうな本を探していたのですが、python関係では適当なものがなく、自分の本棚からこれらの本を引っ張り出してきました。
これらの本のポイントは、規模の小さなデータを使っていることだと思います。大きなデータセットかつ予測モデル構築が目的のタスクの場合、人によっては可視化を行わないで機械学習処理に投入しまくる場合もあるでしょう。しかし、小さなデータセットと格闘する統計解析中心の領域ではそういったアプローチを取ることはできません。
大きなデータセットを使う場合でも、何らかの可視化を行って探索的なデータ分析を行うことは、重要なプロセスだと私は考えています。
最後に
最後まで読んでいただきありがとうございました。
気がつけば長文になっていました。個人的な経験に基づく本の紹介ですので、多分にバイアスがあるかと思いますが、少しでも参考になるところがあれば嬉しいです。
この記事が気に入ったらサポートをしてみませんか?