LWのサイゼリヤ

ミラノ風ドリア300円

23/7/5 データサイエンスエキスパート合格 チートシートと攻略ガイド

データサイエンスエキスパート ゲームクリア

日本統計学会が主催するデータサイエンスエキスパート試験に合格した。

www.toukei-kentei.jp

データサイエンスエキスパートは、統計検定より実践寄りであるデータサイエンスシリーズの最上位資格という位置付け。下位資格には「データサイエンス基礎」や「データサイエンス発展」があるが簡単そうだったので取得していない。

データサイエンスエキスパートの試験スケジュールは延期を繰り返しており、2021年に出題表が公開されてから2年越しでようやくの配信開始となった。俺にとっては新作ゲームみたいなものでリリースをずっと楽しみにしていて、早速6月に勉強を開始して7月頭に取得した。

2年待った(公式サイトより)

全体的な味わいとしては、統計検定の運営元が実施するだけあってエキスパートの名に恥じない良資格だった。

統計検定を遥かに超える膨大な試験範囲が最大の特徴。クラシカルな統計学の知識として確率分布や検定論はもちろん、多変数解析や因果推論のような発展的な分野に加え、ニューラルネットワークやモデル評価を含む機械学習理論、更にはAIの歴史的な発展やビジネス活用についてまで出題範囲表に入っている。数学的な難易度も低くはなく、スカラーではなく行列を用いた議論ができるレベルが期待されている。

しかし試験範囲が広い割には、歴史の長い統計検定に比べて圧倒的に攻略情報が不足している。対応教科書が存在しておらず、リリースから日数が浅いためにネット上での情報も少ない。この記事では出題範囲表を網羅するチートシートを作成して参考文献も挙げておいたので、これから遊ぶ人の参考になれば嬉しい。

 

攻略チートシート配布

出題範囲表(→)に記載されているキーワード全てについて簡単な説明を付したチートシートを配布する。キーワードが336項目にも及び説明も3万字近くあり、ベタ貼りしても見づらいのでスプレッドシートのリンクを載せた。

docs.google.com

俺は分野の専門家ではないが(無職だし)、統計検定1級、データベーススペシャリスト応用情報技術者、G検定、データサイエンティスト検定、Python3エンジニア認定データ分析試験、データサイエンス数学ストラテジスト上級を所持しているのでそこまで大外れなことは書いていないと思う。

数式的な定義だけを丸暗記しても実用上ではあまり意味がないので、「もし口頭で聞かれたらこんな風に答えるだろう」という説明重視の気持ちで作っている。よって口頭で喋ったときに文脈でわかるだろう点についてはラフな表現になっていたり、補足的な情報についてはやや主観が混じっていたりもする。疑わしい表現などの微妙なラインも含めて誤った点や怪しい点があれば指摘してもらえるとありがたい。

ただ初見の分野についてはチートシートを軽く読んだり軽くググったりするだけではなく、必ずちゃんとした本を読んで理論として理解することを推奨する。サンプル問題を見れば明らかなように、データサイエンスエキスパートは一問一答タイプの資格試験ではなく理論の理解まで要求しているからだ。ベイズ統計を知らない人がベイズ因子の定義だけ覚えたところで何の役にも立たないが、ベイズ統計の趣旨を理解した人がベイズ因子という用語をド忘れしたときにそのワードだけ調べて思い出すのは良い。

 

攻略指針

図書館を巡ってアイテム収集

データサイエンスエキスパートは出題範囲表が公開されているので、攻略指針としては全てのキーワードを説明できるようになるまで各分野の本を読めばよいだけではある(その成果が上記のチートシート)。とはいえちょっとググって出てきた情報でキーワードの穴埋めをしても意味がないというのは既に書いた通りで、各分野に対応する本をきちんと探して読むことが望ましい。

専門書は高額なので手元にない本は全て図書館で確保したいが、一つの図書館が所蔵している書籍の量などタカが知れているため大量の図書館を回る必要がある。俺のメイン移動手段である自転車はだいたい半径7km圏内が気軽に往復できる距離で、ざっくり新宿区・中野区・千代田区・文京区・渋谷区あたりをメインにして数十軒の図書館にアクセスできる。

東京23区を自転車で走り回り図書館で専門書を回収していく作業はハイラルをエポナで走り回り祠で祝福の光を回収していく作業とだいたい同じで、これ実質ティアキンじゃんと思いながら楽しく攻略していた。

ティアーズオブキングダム裏エリア東京23区

こういう攻略スタイルなので、読んだ本は吟味を重ねた上で最良のものを選んだわけではないし、参考文献が厳選された参考書のガイドとして読まれるのはやや実態とズレる。たまたま立ち寄った図書館の蔵書にあってたまたま誰も借りていなかった本をピックしただけだ。図書館にある本は全体的に古い傾向があるし、データサイエンスブームの昨今は他にもっと良い本が出ているかもしれない。

俺が読んだ本の感想を参考程度に提供するので、自分のレベル感や不明点や好みに合う本は自分で図書館や本屋を巡って検討した方がいい。もっと良い本があれば教えてくれるとありがたい。

 

図書館の初見殺しトラップ攻略

「読む本は自分で探した方がいい」と書いた手前、その際の注意点を書いておく。

データサイエンス系の文献は、厄介な歴史的経緯によって図書館内でバラバラの棚に置かれるのが標準だ。その理由と原理を把握していなければ欲しい本にアクセスできない初見殺しの罠が仕掛けられている。是非ここで攻略方法を覚えて、実戦でトラップを踏まないように立ち回ってほしい。

諸悪の根源は日本であらゆる図書を分類する基準になっている「日本十進分類法(NDC)」の歪みだ。その混乱模様をwikipediaから引用する(→)。

近年世界的に発達の著しい情報関連分野であるが、いわゆる情報理論に代表される純粋数理から、現実の現代的コンピュータやその通信には欠かせない電子工学まで、という科学と技術と工学(science, technology, engineering)の広い範囲にまたがり、さらにはそれが扱うのが現実社会のデータであるため社会科学まで、幅広い分野を結ぶ、いわゆる「学際」的な面がある。また、次々と新たなサブジャンルが生まれては消滅するという変化の激しい分野でもある。このため、NDCのような大分類から小分類に細分化するタイプの分類法と相性が悪い、という特徴がある。

そのため以前からのNDCでは、0「総記」(図書館情報学などが含まれる)の下の007「情報科学」と、5「技術・工学」→54「電気工学」の下の547「電気通信」の全く離れた2箇所に、似たような文献が分かれて分類されてしまう、という問題が起きており、さらに新訂8版の548「情報工学」が加わり複雑なことになっていた。

要するに、情報周辺分野の書籍を既存の分類へと割り付けることに失敗しており、色々な分野に跨って分類されることになってしまっている(wikipediaには過去形で書いてあるが、現在も特に解決していない)。

本屋はビジネスなので配置を工夫している一方、NDCに杓子定規に従う公営図書館は失敗した分類をそのまま物理的な棚の配置にしていることがよくある。よって、NDCにおいてどの区分にデータサイエンス系の文献が散逸しているかを先に把握しておく必要がある。

データサイエンス系の文献を探す際はざっくりこの3つを探索するとよい(優先順位の高い順)。

  • 417:確率論 数理統計学
    統計学の理論書を格納している。410番代が数学絡みなので、線形代数微積の本もすぐ近所で見つかる。
  • 007:情報科学
    プログラミング関連のエンジニア向け書籍を格納している。特に機械学習ニューラルネットの本はここに置かれる。ちなみに000番代は「総記」という大分類であり、百科辞典や哲学に隣接するエリアに所在していて自然科学系の棚からはかなり遠いことに注意。
  • 547:通信工学、548:情報工学、549:電子工学
    制御理論や信号処理のような古色蒼然とした応用物理系の理論書が格納されている。これらも大雑把に言えばデータを処理するタイプの分野なので、いわゆるデータサイエンスと同じ話を扱っていることが割とよくある。

実質的にはほぼ同じ理論を扱っていても、割と表面的な本の雰囲気によってこれら三つの棚へ別々に振り分けられることが少なくない。例えば時系列解析を扱った本でも、統計理論が主である場合は「417:確率論 数理統計学」だが、コーディングや実装が主である場合は「007:情報科学」となり、更に信号処理寄りのテーマになると「547:通信工学、548:情報工学、549:電子工学」らへんに置かれてくる。

ちなみに350番代が「統計」という中分類名だが、これは「各種統計情報」という意味合いなので注意。各国の人口統計が載ってる本とかが置いてある場所なのでデータサイエンスの勉強をする上ではあまり用事がないエリア。

 

参考書籍

出題範囲表に緩く従って分野別に読んだ書籍を30冊くらいまとめた。難易度や用途のような基本情報に加えて、その分野を図書館で調べるときのコツや他の資格試験との関係など、後で遊ぶ人が有用そうな情報を意識して書いている。

まともな本は巻末に索引が付いているので出題範囲表と照らし合わせることで求めている情報が載っていそうかどうかを判断できる(「ナイーブベイズ」と「単純ベイズ」などの表記ブレに注意)。なお必ずしも通読はしておらず、必要な理論が載っている章だけを拾って辞書的に利用した本も多い。

【難易度目安】

★☆☆:高校数学くらいの知識があれば読める
★★☆:学部前期くらいの知識があれば読める
★★★:学部後期くらいの知識があれば読める

統計基礎

出題範囲表では大項目「統計基礎」に含まれているあたり。

統計検定と内容が被る部分で、難易度としては2級よりは明確に上だが、準1級よりはやや易しい程度。暇だったらデータサイエンスエキスパートより先にとりあえず統計検定準1級を取っておいてもいいと思う。また、サンプリングや数値積分のような実践的な部分は統計検定でカバーされていないので別個に勉強しておく必要がある。

ちなみに最近はデータサイエンスブームに便乗して職業学者ではないビジネスライターが書いた「文系でもわかる」「数式を使わずに理解」のような非常に魅力的な文句を付した統計関連書籍も本屋に溢れているが、単純に内容のレベルが低すぎるのでちょっとオススメはできない(そういう対象層の資格試験ではない)。もちろん最初の入口として読むのはいいが、その場合はまず統計検定3級あたりを取るところから始めた方がいい。

 

統計学(初歩)

【難易度:★☆☆】

評判の高い入門書。何も知らないところから検定論の基礎的な流れを数式ベースで全てさらう用途ではベストだと思う。行列の使用を避けているレベルで易しいので、とりあえず数学的な末節に惑わされずに全体像を把握できるのが嬉しいところ。やや味気ない紙面がたまに傷ではある(未だにLotus 1-2-3の話をしている情報の古さも欠点ではあるが、それは笑えるのでOK)。

 

【難易度:★☆☆】

統計学入門』と同レベルの入門書。ところどころで行列計算を用いていて少しだけ数学が難しいが、概ね誤差の範囲。紙面がカラフルで囲み枠も多用していてビジュアル面で優れる。最終盤では分散分析にまで踏み込んでいるのも美味しい。

 

統計学(高度)

【難易度:★★★】

統計検定一級対策でよく使われている本。初歩の本に比べて証明や論理展開が遥かに厳密になり、数学的にも高度な行列演算は出来て当然という難易度になる。ノンパラメトリック検定やブートストラップ法のような応用的な手法にも踏み込んでおり、初歩の本に書いていないことはだいたいこちらに書いてある。

 

【難易度:★★★】

『現代数理統計学』と同じようなポジションの本。内容や用途はだいたい同じなのでどちらを選んでもいい。個人的には『現代数理統計学』の方が装丁が好みなので基本的にはそちらを開いている。

 

【難易度:★★★】

統計検定一級のオフィシャル対策本。一級の範囲を全てフォローしているという触れ込みだが、その分だけ駆け足気味で論理展開が飛びがちなことから評判はあまり良くない。とはいえトピックの量は確かに多いため、範囲が広いデータサイエンスエキスパート攻略で辞書的に使う分にはそこそこ役に立つ。

 

【難易度:★★★】

タイトルを見ると機械学習の本のようだが、実際には分厚い上下巻で統計学全般について幅広いトピックを扱っており、他の本にあまり載っていない内容が細かく解説されていることも多い。特にサンプリングやモンテカルロ積分のような実践的・計算機的な理論についてはこの本を参照した。もちろんニューラルネットワークを含めた機械学習パートも充実しているため、そちらの勉強にも使える。

 

ベイズ統計

【難易度:★☆☆】

だいぶ一般書寄りでオススメはしないが、まあベイズ統計の入門としてはこれでも良さそうな本。ベイズ統計はビジネスを含む日常的な状況に適用しやすいためか少し算数を齧りたい人へのポップ統計学として人気が高く、玉石混交な本が大量に出ているようなイメージがある。

 

【難易度:★★☆】

もう少しだけ高度なベイズ統計の本。初歩レベルの本では階層ベイズのような発展的な内容は書いていなかったので追加で借りた。このレベル帯のベイズ統計の本も大量にあって、割と何でもいい自由枠ではある。

 

【難易度:★★★】

データサイエンスエキスパートと直接は関連しないが、ベイズ統計の本を読んだのであれば一度は読んでおいた方がいい気がする本。ベイズ統計は一般書レベルでは「信念に基づいて全く主観的に事前分布を定める理論である」という嘘が割と罷り通っており、正直嘘ベースでもそんなに困らないので別にいいっちゃいいのだが、そうは言っても真実の一端を垣間見る機会はあってもいい。著者自身の紹介ページにも軽い解説がありとても参考になる。

http://watanabe-www.math.dis.titech.ac.jp/users/swatanab/bayes-theory-method.html

 

分散分析

【難易度:★★★】

前半部で分散分析について詳しく解説している。直交表の理論と絡めて一般的な線形回帰式でスッキリ理論的な見通しを与えているのが読みやすい。

ちなみに分散分析の理論は「実験計画法」や「多変量解析」に包括されていることも多く、図書館で本が上手く見つからない場合はそのあたりのワードでも検索してみると見つかったりする。

 

数学基礎

出題範囲表では大項目「数学基礎」に含まれているあたり。

概ね学部前期レベルの簡単な内容ではあり、大学一年生が読むような標準的な数学書の内容が頭に入っていれば問題はない。逆に言えば高校数学では歯が立たないということでもあって、統計検定で言えば準1級クラスの数学的な技能が要求される。

数学における一般論に加えて統計学における文脈が意識できていた方がよく、その期待は出題範囲表にもうっすらと漂っているのが見て取れる。例えばキーワード集で「射影行列」と「回帰分析における予測値ベクトルと残差ベクトル」がわざわざ隣接して記載されているのは、単に「射影行列は冪等行列の別名」という定義を知っているだけではなく、「回帰分析において二乗誤差最小化によって回帰係数行列を決定するために正規方程式を解く操作は、目的変数ベクトルを説明変数ベクトル群が張る空間に射影して予測値ベクトルを得る操作と等価である」みたいなことを抑えておいてほしいからだろう。

 

線形代数

【難易度:★☆☆】

線形代数の講義は全国の理系学部で一年生全員が受けているので教科書や演習書は無限に存在していて本当に何でもいいのだが、大学一年生の頃に買ったやつが本棚の奥に転がっていたので一応読んだ。可もなく不可もない。

 

【難易度:★☆☆】

一年生向けの教科書を読み直すのは気が進まなければ、統計学に特化した線形代数の書籍を読む手もある。個人的にこの本はかなり良かった。

大学どころか高校生レベルのベクトルと行列から解説していく内容ではあるが、逐一データ分析における扱いと対応させて可視化してくれるため学ぶところが多い。特にデータ集合を表す行列は列方向にも行方向にも可視化できていずれのイメージも有用であることや、主成分分析が分散共分散行列の固有値問題に帰着される理由などはこの本で初めて腑に落ちた。

 

【難易度:★★★★】

タイトル通りの内容。統計のために読む線形代数数学書としては恐らく最強だが、あまりにも最強すぎて取り回しが難しい玄人向けの武器。

あらゆる定義と証明を厳密に行うちゃんとした数学書であり、データサイエンスエキスパートや統計検定一級を取る程度なら相当なオーバーキル。語り口は優しいので頑張れば通読も不可能ではないと思うが、そもそも研究者以外がこのレベルの理解を必要とするかはだいぶ怪しい。分厚い上下巻でだいたい何でも載っていて章ごとの独立性も高いので辞書として使うのが良いかも。

 

微積

【難易度:★☆☆】

微積分も線形代数と並んで大学一年生が最初に習う基本の基の一画目なので本当に何でもいい。この本もたまたま当時買って本棚に残っていたものに目を通しただけで深い理由はない。

ただ微積分はこのレベルでもちゃんとした数学書を読むのは統計学で使う分にはややオーバーに感じるというか、「ボルツァーノワイエルシュトラスの定理とか交換可能性とか細かいことは別によくね」という気持ちが胸を掠めないと言えば嘘になる。正直けっこう読み飛ばしたし、データサイエンスエキスパートを受ける分には基本的な計算方法やテイラー展開を抑える程度で十分な気はする。

 

【難易度:★☆☆】

微積分についても一応データ絡みに特化した書籍はあった。ただ文系向けの講義を製本したという触れ込みではあるが、他の教科書とあまり変わらないちゃんとした進み方をしていてデータ科学向けという嬉しさはあまり感じなかった。一応、証明をすっ飛ばしてMATLABで確認できればOKというスタイルなのでそんなに証明に興味のない身としてはやや読みやすい。

 

計算基礎

出題範囲表では大項目「計算基礎」に含まれているあたり。

計算基礎といっても四則演算のことではなく、情報分野における計算技術という文脈。すなわち実世界における事象をコンピュータ上で計算可能な形に落とし込むにあたってのモデリングや技法の基礎ということ。このあたりからいよいよ統計検定の範囲からは逸脱した知識が必要になってきて、統計学のスキルツリーしか埋まっていない人は気合を入れ直さないといけなくなりそうだ。

 

情報全般

【難易度:★★☆】

ざっくり情報科学全般について、通信技術やプログラミングの常識的な範囲の知識を抑えることが要求されている。俺の手元にはたまたま応用情報技術者を取ったときの教本があったのでこれを読み返したが、それは明らかにオーバーキルなのでITパスポートくらいのレベルで十分な気もする。

 

データベース

【難易度:★★★】

データベーススペシャリストを取ったときの教本が手元にあったので読み返したが、データサイエンスエキスパートで要求されるデータベースの知識はデータベーススペシャリストで要求される知識の5%くらいしかないのでオーバーキル。もっと簡単なデータベースとSQLの入門書を読めば十分な気はする。

 

アルゴリズム

【難易度:★★☆】

プログラミング界隈には「アルゴリズムとデータ構造」というジャンルが存在し、そんなタイトルの本が色々な言語でたくさん出ているのでどれかを一つ読めばよい。統計用途でよく使われる言語はPythonとRなのでそのどちらかを選んだ方がいいが、たまたま足を運んだ図書館にJavaとCしかなかったのでやむを得ずJavaのやつを読んだ。

 

モデリング・AIと評価

出題範囲表では大項目「モデリング・AIと評価」に含まれているあたり。

この大項目は実質的には「その他諸々」が押し込められている印象も受ける。中分類間での重複もぼちぼちあり、分類がMECEではなさそうで若干気持ち悪い(表面的には同じ話でも分野によって文脈が違ってくるという気持ちはわかるが)。せめて歴史とかAIみたいな定性的な話と、多変量解析みたいな定量的な話は大分類を分けてほしかった。

この領域の半分くらいは統計検定準一級以上の出題範囲でカバーされているが、ニューラルネットワークやテキストモデリングのような広範な応用や、AIや歴史絡みなどのカバーされていない部分は新たに学ぶ必要がある

 

歴史・応用分野・AIなど

【難易度:★☆☆】

小項目「AIの歴史と応用分野」「AIの構築・運用」あたりのAI絡みでフワフワしたキーワードはだいたいG検定が元ネタなので公式テキストを通読しておくとよい。タイトルに「ディープラーニング」とあるようにニューラルネットワークについてもそこそこ詳しく触れられており、その点でも役に立つ。

 

【難易度:★☆☆】

小項目「モデル作成とデータ分析の進め方」あたりの実作業ベースのフワフワしたキーワードはだいたいデータサイエンティスト検定が元ネタなので公式リファレンスブックを通読しておくとよい。この書籍は数学的な事柄にはほとんど踏み込んでいないが、逆に定性的な事柄については情報科学的な知識も含めてそこそこ記述が充実しており、その点でも役に立つ。

 

多変量解析

【難易度:★★☆】

出題範囲表には明記されていないが、教師あり学習教師なし学習あたりの雑多なトピックは概ね「多変量解析」というジャンルに総括されている。よって主成分分析とか判別分析とかサポートベクターマシンあたりを扱った本を読みたい場合はとりあえずタイトルに「多変量解析」と書いてある本を探すと章のどこかで扱っている可能性が高い。

この書籍もその中の一つで、その辺りのキーワードを広くカバーしている。別にこの本でなくてもよいがこの本でもよい。

 

時系列解析

【難易度:★★★】

分散分析の項でも挙げた書籍。後半部では時系列解析も扱っている。数学ベースで堅めの内容。

 

【難易度:★☆☆】

語り口がとても優しい時系列分析の本。明らかに学者の言葉遣いではないのでちょっと大丈夫かなとも思ったが、とはいえ学者には絶対にできない厳密さを差っ引いた説明はかなりわかりやすい。とりわけカルマンフィルタの説明あたりはこれ以上優しくできないくらい優しい気持ちメインで書いてあってありがたかった。

 

【難易度:★★☆】

実装に寄せたややかっちりした書籍。ちゃんと数式を用いて議論する時系列解析の本のうちでは、グラフを多用していて割と視覚的に読みやすい方のような気がした。

 

グラフィカルモデル

【難易度:★☆☆】

因果推論の本だが、グラフィカルモデルを用いて因果性の議論を行うPearl流なので、出題範囲表的にはグラフィカルモデル周辺のキーワードに対応している。ただデータサイエンスエキスパートでは因果推論はPearl流ではなくRubin流がメインなので必ずしも読まなくてもいいかもしれない(感想記事→)。

 

【難易度:★★★】

体系的に話を進めるというよりは、複数の著者が確率的グラフィカルモデルについて章ごとに割と独立した話題を書いているオムニバスという印象の本。特に第3章「グラフィカルモデルを用いた因果的効果の識別可能性問題」が有用で、『入門 統計的因果推論』を読んで疑問に思っていた点が全て氷解したのがありがたかった。

内容的には少し高度過ぎる気もしており、出題範囲表的な意味ではグラフィカルモデリングに関してはもっと芯を食った本がたぶん他に存在していると思う。

 

テキスト分析

【難易度:★☆☆】

割とよくある感じのテキスト分析の本。可もなく不可もなくという感じで、これでもいいしこれでなくてもよさそう。

ちなみに出題範囲表には「テキスト分析」とあるが、プログラミングを行う文脈では「テキストマイニング」と呼ばれていることも多い。また、出題範囲表には日本語に特有の「カナ漢字変換」が含まれているので、本当は日本語について深く扱っている書籍も見つかれば読んだ方がいいかもしれない。

 

因果推論

【難易度:★☆☆】

因果推論のうちでもグラフィカルモデリングではなく潜在的結果変数を用いるRubin流という流派。出題範囲表の小項目「因果モデル」の内容を全てカバーしている。序盤はやたら丁寧なのに途中から駆け足気味になるが、概ね説明はわかりやすく理論の骨子はこれで十分理解できる。

 

機械学習・モデル評価・ニューラルネットワーク

【難易度:★☆☆】

機械学習全般を扱う本はいまどき非常に需要が高いので大量に出ている。まずは機械学習の種類を説明して、まずは線形回帰とロジスティック回帰分類から入って、分類と回帰の評価手法の解説をして、最後にニューラルネットワークにも触れていく……みたいなテンプレの流れに沿った本が無限冊刊行されているので好きなものを読めばよいと思う。

これもそういう機械学習本の一つで、中野中央図書館に置いてあったから適当にピックしたが平易に書いてあって問題なく読めた。「適合率とか再現率とか特異度とか感度とかどれがどれなのか忘れがちだから覚え方書いとくよ」みたいなけっこう地に足の付いたことを書いてくるのが面白くて好印象。

 

【難易度:★★★】

分散分析と時系列解析でも挙げた本……のように見えて、実は同じ表紙デザインの別の本である。せめて模様くらいは変えても良くないでしょうか?

機械学習についてコーディングベースではなく数式ベースでかっちり理論的に書いてあるタイプの本。数学的に若干高度だが読んでもいい。なおニューラルネットワークについては記載されていない。