書籍

機械学習おすすめ書籍 | 必読の1冊 『Rによる統計的学習入門(ISL)』

はじめに

本サイトでは統計学や機械学習をこれから学ぼうとされる方(初学者の方)にオススメの書籍を紹介しています。本記事では機械学習を学習する方のバイブル候補として『Rによる統計的学習入門(ISL)』(原著:An Introduction to Statistical Learning with Applications in R)という書籍をご紹介します。

『Rによる統計的学習入門(ISL)』

『Rによる統計的学習入門(ISL)』は原著An Introduction to Statistical Learning with Applications in Rの日本語訳版です。日本語訳版には訳者まえがきの記載があり、そこで以下のように原著のことが紹介されています。

引用

原著An Introduction to Statistical Learning with Applications in Rは、必ずしも統計科学を専門分野としていない理工系および社会科学系の学生、研究者、そして実務家を含む幅広い読者層を対象とした統計的学習の入門書である。大学初年度で学ぶような微分、積分学、線形代数学の知識を想定しつつも、必ずしもそのすべてを要求せずに統計的学習の理解が進められるような工夫がなされている。(引用元:『Rによる統計的学習入門』訳者まえがき)

上記の通り『Rによる統計的学習入門(ISL)』は統計的学習の入門書です。統計的学習という言葉を用いていますが、内容はいわゆる機械学習と言ってよいでしょう。市場には機械学習の入門書が多くあふれていますが、そのなかでも『Rによる統計的学習入門(ISL)』の読みやすさは群を抜いています。もちろんある程度の数学的な知識を必要とはしますが、数式に基づく本質的かつ非常に丁寧な説明がなされており、初学者でも「ふむふむ」とうなずきながら読み進めていくことができるでしょう。

機械学習の入門書としてよく紹介される書籍に『はじめてのパターン認識』という書籍があります。こちらも人気の書籍で「はじぱた」という略称でも知られています。ですが、「はじめての~」というタイトルと人気の高さに惹かれて初学者がこの「はじぱた」を手に取ってしまったら、ほとんどの学習者は機械学習と距離を置いてしまうでしょう。というのも「はじぱた」は具体的な言葉での説明よりも数式の展開や数学的記号を用いた説明が多く、極めて理系的な書籍だ(と個人的に感じる)からです。

『Rによる統計的学習入門(ISL)』も機械学習の書籍である以上は数式も出てきます。しかし読者側の数学的知識に頼りっきりではなく、具体的な言葉でしっかりと数式の持つ意味や本質を説明してくれています。ここが「はじぱた」をはじめとした他の機械学習の入門書とは一線を画すポイントです。実際に訳者まえがきには以下のようにも書かれています。

引用

主要となる数式がもつ意味については可能な限り直感的かつ丁寧な説明が加えられている。これらの配慮は、原著者自身の長年にわたる教育経験から、数式から本質を把握することもさることながら、応用を重視し、具体的な言葉で説明することも同様に重要であるとの考えに基づいているように思われる。(引用元:『Rによる統計的学習入門』訳者まえがき)

「具体的な言葉で説明することも同様に重要」という考え方が口先だけではないことは『Rによる統計的学習入門(ISL)』のページ数が目次を除いて396ページもあることが裏付けているでしょう。しかも多くのページが文字あるいは図で埋め尽くされていて数式の展開に無駄にページを割くようなことはありません。理系的な「はじぱた」とは異なり、『Rによる統計的学習入門(ISL)』はとにかく文章、文章、文章で極めて文系的な書籍だと言えます。アカデミックな研究を志すような方には「はじぱた」もおすすめしたいと思いますが、多くの方々(とくに数式ではなく言葉でわかりやすく相手に説明することが求められるビジネスパーソン)には圧倒的に『Rによる統計的学習入門(ISL)』をおすすめしたいです。

ちなみに『Rによる統計的学習入門(ISL)』と原著者のひとりを同じくする『統計的学習の基礎 ―データマイニング・推論・予測』(原著題:The Elements of Statistical Learning: Data Mining, Inference, and Prediction)も非常に有名な書籍です。

こちらはその分厚さから「カステラ本」という別名もついています。実際に実物を見ると分かりますが、確かに開くと中にカステラが入っているのではないだろうかと思うくらいの分厚さです。価格も高額です。この「カステラ本」を完全に理解できればそれだけでデータサイエンティストを名乗っても良いくらいの本だと思います。ただ多くのビジネスパーソンにはそこまでの知識は必要なくもっと本質的な部分に絞って理解できていれば十分だと思います。そして『Rによる統計的学習入門(ISL)』こそ、機械学習の本質的な部分をぎゅっと詰めこんだ書籍だと言えます。なお、訳者まえがきには以下のような記載が続きます。

引用

(『Rによる統計的学習入門(ISL)』は)The Elements of Statistical Learning: Data Mining, Inference, and Predictionの想定する数学のバックグラウンドをもたない読者や統計科学が専門でない読者にとっても馴染みやすい書籍であると考える。原著者が統計的学習を応用する立場を重視していることは、各章で実際のデータ例を交えた動機付けを与えたり、それぞれの統計的学習法のメリット、デメリットについても詳しく言及していることからもわかる。(引用元:『Rによる統計的学習入門』訳者まえがき)

まさに初学者にもやさしい書籍でありながら、機械学習の本質が詰まったバイブルとなり得る書籍だと言えます。この書籍を「幹」としながら必要に応じて他の書籍で「枝葉」の知識を付け加えていくというのが、ビジネスパーソンにとっての機械学習の勉強の王道ではないかと思います。

書籍の紹介

『Rによる統計的学習入門(ISL)』は書店で手に入れることは難しく、無料で公開されている原著をダウンロードするか、Amazonなどで日本語訳版を購入して読む必要があります。いずれにしても実物をパラパラと手に取って内容を見定めるといったことが難しい書籍です。それも踏まえここでは『Rによる統計的学習入門(ISL)』の目次とともにその内容について簡単にご紹介していきます。かなりの長文ですがお付き合いいただけると幸いです。

第1章:導入、第2章:統計的学習

まず第1章と第2章の目次がこちらです。全体で第10章までありますが、かなり章立てが多いので分けて記載していきます。

1. 導入
2. 統計的学習
2.1 統計的学習とは
2.1.1 なぜfを推定するのか
2.1.2 どのようにfを推定するか
2.1.3 予測精度とモデルの解釈のしやすさのトレードオフ
2.1.4 教師あり学習と教師なし学習
2.1.5 回帰問題と分類問題
2.2 モデルの精度の評価
2.2.1 当てはめの質を測定する
2.2.2 バイアスと分散のトレードオフ
2.2.3 分類における精度の評価
2.3 実習:R入門
2.3.1 基本的なコマンド
2.3.2 グラフィックス
2.3.3 データに番号をふる
2.3.4 データの読み込み
2.3.5 グラフィックス及び数値によるデータの要約
2.4 演習問題

第1章の導入のあとの第2章では統計的学習(機械学習)を概観しています。まずf(関数)とは何かという話にはじまり、その流れで誤差という概念について削減可能誤差と削減不能誤差の2つに分けて丁寧に説明してくれています。加えて第2章では機械学習の極めて本質的な論点である機械学習モデルのトレードオフ問題についてもしっかりと説明してくれています。トレードオフ問題というのは本サイトの機械学習ブログでも紹介していますが、「モデルの柔軟性 vs. 非柔軟性」あるいは「モデルの分散 vs. バイアス」「モデルの制約 vs. 自由度」、より端的には「モデルの過学習 vs. 未学習」というトレードオフ問題のことです。

このトレードオフ問題はあらゆる機械学習モデルに必ず影響を与える本質的な論点です。この論点を第2章でしっかりと説明してもらえるおかげで、その後の各章をものすごく理解しやすくなります。機械学習におけるこの「トレードオフ問題」は言わば学習の「幹」となる論点です。これを理解しているのとしていないのとでは、その後の学習の定着度合いが大きく変わってきます。「急がば回れ」の精神で、まずは本質的な論点を理解することで中長期的な学習の効率性を確保することを強くおすすめします。

機械学習とは?いったい何が行われているの? [Day1]この記事では機械学習は一体何をしているのかについて、抽象的な表現をなるべく避け、具体例とともに考えていきます。...
分散とバイアスのトレードオフとは? [Day2]この記事では機械学習における最重要論点である「分散とバイアスのトレードオフ」について、受験勉強における過去問学習を例にあげながら平易な言葉で説明します。...
機械学習の関数式とは? [Day3]この記事では機械学習における「関数式」について考えていきます。読み終えると機械学習の「中身」をイメージできるようになります。...

第3章:線形回帰

続いて第3章の目次を紹介します。

3.1 線形単回帰
3.1.1 係数の推定
3.1.2 回帰係数の推定値における精度評価
3.1.3 モデルの精度評価
3.2 線形重回帰
3.2.1 回帰係数の推定
3.2.2 重要な問題
3.3 回帰モデルにおける他の考察
3.3.1 質的予測変数
3.3.2 線形モデルの拡張
3.3.3 起こりうる問題
3.4 マーケティングプラン
3.5 線形回帰とK最近傍法の比較
3.6 実習:線形回帰
3.6.1 ライブラリ
3.6.2 線形単回帰
3.6.3 線形重回帰
3.6.4 交互作用項
3.6.5 予測変数の非線形変換
3.6.6 質的な予測変数
3.6.7 関数の定義
3.7 演習問題

第2章で統計的学習(機械学習)を概観した後に続く第3章は「線形回帰」です。まさに王道の学習ステップといった感じです。線形回帰はExcelでも分析ツールから利用できる広く知られた分析手法ですが、その反面、目新しさがなく古くさい印象もあります。それでもなお線形回帰はデータ分析や機械学習に不可欠な分析手法として君臨しています。『Rによる統計的学習入門(ISL)』の第3章の冒頭では以下のように説明されています。

引用

新しい統計的学習法に比べると少し面白みに欠けるかもしれないが、線形回帰は便利で今もなお広く使われる統計的学習法である。さらに、線形回帰を学ぶことでより新しいアプローチを学ぶ土台ができる。本書の後半の各章でわかることになるが、最新の統計的学習法の多くは線形回帰を一般化または拡張したものである。(引用元:『Rによる統計的学習入門』p.54)

上記の目次にもあるように第3章は線形単回帰の説明からはじまります。そのなかでモデルの精度評価という論点にも触れつつ、次に線形重回帰へと議論が拡張されていきます。その際、回帰係数の推定のところで統計学の知識が必要になってきます。なので『Rによる統計的学習入門(ISL)』を読む前、あるいは並行して、統計学の入門書も読んでおくことをおすすめします。機械学習は統計学とリンクする部分が多いので統計学について一切学ばずに機械学習を学ぶことはどうしても難しいです。統計学のおすすめ書籍の記事でもご紹介した入門・基礎レベルの書籍でよいので、機械学習の勉強を本格的に始める前に統計学の書籍を1冊読んでおいた方が良いかと思います。

統計学おすすめ書籍12冊 | はじめて統計学を学ぶ人向けこの記事では統計学の基本を学ぶのにおすすめの本を紹介していきます! 統計学の本って多すぎ…。どれを選べばいいの? そ...

また、第3章では線形回帰が前提としている線形性や加法性についても詳しく説明されています(これについては本サイトの機械学習ブログでもご紹介しているのでよろしければ参考にしてみてください)。この線形性や加法性を理解した上で交互作用(シナジー効果)や共線性の論点などにも踏み込んで説明がなされていきます。また、誤差項の取り扱い非線形性への対応(ここでは対数や指数を用いた簡単な非線形変換まで。スプライン系のモデルや一般化モデルへの拡張は第7章の「線形を超えて」という章でたっぷり扱われています)についても分かりやすく説明されています。

ちなみに各章には実習と演習問題がついています。実習はRという統計向けのプログラミング言語のコード付きで実際のサンプルデータを使って分析手法を試行することができます。ただプログラミング言語としてのRの使い方についての説明は少なく、分析の内容についての説明が多くなっています。なので『Rによる統計的学習入門(ISL)』だけでRを使いこなせるようになるかというとそれは難しいです。一方でRによって分析した結果の読み取り方や考察については非常にわかりやすいものとなっています。また、演習問題の方は問題のみで解答がついていません。なので演習問題には深入りしなくてもよいかもしれません…。ただ演習問題の問題で投げかけられる問い自体は非常に良質な問いばかりですので、問題文を読んでおくだけでも分析の勘所をつかむのに役立つと思います。

線形回帰分析とは? [Day6]はじめに この記事では機械学習における「線形回帰分析」について考えていきます。 「線形回帰ってなんで線形というの?」 「線...
重回帰分析とは? [Day7]はじめに この記事では機械学習における「重回帰分析」について考えていきます。 「重回帰分析ってどういうもの?」 「重回帰分...
線形回帰分析(応用その1) [Day8]はじめに こちらの記事は「線形回帰分析」に関する応用的な内容となっております。 「線形回帰分析の加法性や線形性って何?」 ...
線形回帰分析(応用その2) [Day9]はじめに こちらの記事は「線形回帰分析」に関する応用的な内容「その2」です。 「線形回帰分析の「誤差」ってどうして大切なの?」 ...

第4章:分類

続いて第4章の目次を紹介します。

4.1 分類問題の概要
4.2 なぜ線形回帰を用いないのか
4.3 ロジスティック回帰
4.3.1 ロジスティックモデル
4.3.2 回帰係数の推定
4.3.3 ロジスティック回帰における予測
4.3.4 多重ロジスティック回帰
4.3.5 多項ロジスティック回帰
4.4 線形判別分析
4.4.1 分類におけるベイズの定理の応用
4.4.2 1変数の場合の線形判別分析
4.4.3 多変数の場合の線形判別分析
4.4.4 2次判別分析
4.5 分類法の比較
4.6 実習:ロジスティック回帰、線形判別分析、2次判別分析、K最近傍法
4.6.1 株価データ
4.6.2 ロジスティック回帰
4.6.3 線形判別分析
4.6.4 2次判別分析
4.6.5 K最近傍法
4.6.6 Caravan保険データへの適用
4.7 演習問題

第4章は分類問題についてです。分類問題は質的な被説明変数を予測するものです。なお『Rによる統計的学習入門(ISL)』では被説明変数(あるいは目的変数)のことを「応答変数」、説明変数(あるいは特徴量)のことを「予測変数」と呼んでいます。第4章の冒頭では以下のような説明があります。

ここにボックスタイトルを入力

本章では、質的な応答変数を予測する方法を扱う。この方法は分類と呼ばれる。観測データについて質的な応答変数を予測することを、その観測データを分類すると言う。なぜなら、観測データをカテゴリーあるいはクラスに割り当てるからである。一方で、分類する際にはまず質的変数がそれぞれのカテゴリーに属する確率を予測する。(引用元:『Rによる統計的学習入門』p.119)

最後の一文が重要です。機械学習により分類を行うというと「コンピューターがいろいろと学習してエイヤで分類する」という抽象的な話だと思われがちです。しかし実際には「決められた学習プロセスを構築し、その学習プロセスに基づき確率を計算し、その確率に基づき分類する」というとても具体的な話です。重要な点は分類問題とは確率的な話であるということであり、上記引用文の「分類する際にはまず質的変数がそれぞれのカテゴリーに属する確率を予測する」という最後の一文が初学者にはとてもありがたいです。

また、第3章の線形回帰からの流れも意識して第4章2節ではなぜ線形回帰では分類問題を解けないのかという点について説明されています。被説明変数のカテゴリーが3つ以上となると線形性を前提とする線形回帰モデルでは対処のしようがないという話や、カテゴリーが2つであったとしても導かれる確率が0~1の間に収まらないことがあるという点がここで丁寧に説明されています。この辺の読者への配慮も初学者にとってありがたい点です。

第4章4節では線形判別分析(LDA: linear discriminant analysis)の説明がなされます。この節は非常に重要です。というのも『Rによる統計的学習入門(ISL)』のなかでベイズの定理に触れられる唯一の節だからです。秀逸なのはベイズとしての章を設けるのでなく、あくまで分類問題を解くために線形判別分析という手法があり、その手法ではベイズの定理が用いられているという説明の流れです。ベイズの定理の勉強ありきではなく、分類問題を解くという目的に対して必要なものの1つとしてベイズの定理を位置づけています。そのため(良い意味で)必要以上にベイズの定理を深掘りすることがなく、学習の効率が高まるような章立て設計となっているなと感じさせられます。

ちなみにベイズの定理については以下の記事で『図解・ベイズ統計「超」入門 あいまいなデータから未来を予測する技術』という書籍をご紹介しました。

統計学おすすめ書籍12冊 | はじめて統計学を学ぶ人向けこの記事では統計学の基本を学ぶのにおすすめの本を紹介していきます! 統計学の本って多すぎ…。どれを選べばいいの? そ...

ベイズの定理をサクッと学ぶのに最適な書籍ですので興味がありましたらぜひ読んでみてください。『心理統計学の基礎』や『図解・ベイズ統計「超」入門』で理解した統計やベイズの知識が『Rによる統計的学習入門(ISL)』で結びつく感覚をぜひ楽しんでみてください。

ロジスティック回帰とは? [Day10]はじめに こちらの記事では「ロジスティック回帰」について考えていきます。 「ロジスティック回帰ってそもそも何?線形回帰とどう違う...
線形判別分析とは? [Day11]はじめに こちらの記事では「線形判別分析」について考えていきます。 確率密度関数やベイズの定理など専門的な話も関係してきますが、...

第5章:リサンプリング

続いて第5章の目次を紹介します。

5.1 交差検証
5.1.1 ホールドアウト検証
5.1.2 1つ抜き交差検証
5.1.3 k分割交差検証
5.1.4 k分割交差検証におけるバイアスと分散のトレードオフ
5.1.5 分類における交差検証
5.2 ブートストラップ
5.3 実習:交差検証とブートストラップ
5.3.1 ホールドアウト検証
5.3.2 1つ抜き交差検証
5.3.3 k分割交差検証
5.3.4 ブートストラップ
5.4 演習問題

第5章は機械学習の重要論点であるリサンプリングをテーマとした章です。第3章で線形回帰をテーマに回帰問題に触れ、第4章で分類問題にも触れたその後のタイミングでリサンプリングを取り扱うという流れが非常にスムーズです。

リサンプリングというと交差検証(クロスバリデーション)を通じたモデル評価のイメージが強いですが、モデル評価に加えてモデル選択にも用いられるのがリサンプリングです。『Rによる統計的学習入門(ISL)』第5章の冒頭には次のように説明されています。

引用

交差検証はある統計的学習法を評価する際、その方法に関するテスト誤差を推定するため、または適切な柔軟さを設定するために使われる。モデルの性能を比較する過程はモデル評価、また適切な柔軟さを設定する過程はモデル選択と呼ばれる。(引用元:『Rによる統計的学習入門』p.164)

『Rによる統計的学習入門(ISL)』ではモデルの性能を表現するのに「柔軟性」「バイアス」「分散」という用語がこれでもかというくらい何度も使われます。これらの用語には次のような関係性があります。

  • 過柔軟=制約小=自由度大=バイアス小=分散大=過学習
  • 非柔軟=制約大=自由度小=バイアス大=分散小=未学習

実際にはイコールの関係性ではないのですがイメージとしては上記の理解でよいかと思います。この考え方は機械学習の本質といってもよいくらい重要な論点です。『Rによる統計的学習入門(ISL)』はこの最重要論点を常に押えながら説明を進めてくれる点が素晴らしいです。本当にバイブルに相応しい書籍だと思います。

第5章も例外ではなく上記の論点を外さずに説明が進められていきます。この章を読み終わると「1つ抜き交差検証」は極めて柔軟でバイアスが小さく分散が大きい手法であり、逆に「ホールドアウト法」は極めて非柔軟でバイアスが大きく分散が小さい手法であり、そして両者の中間に位置するものとして「k分割交差検証」があるということを理解できるでしょう。

交差検証とは? [Day13]はじめに こちらの記事では「交差検証(クロスバリデーション)」について考えていきます。 「交差検証ってなんのために必要なの?」 ...

第6章:線形モデル選択と正則

続いて第6章の目次を紹介します。

6.1 部分集合選択
6.1.1 最良部分集合選択
6.1.2 ステップワイズ法
6.1.3 最適モデルの選択
6.2 縮小推定
6.2.1 リッジ回帰
6.2.2 Lasso
6.2.3 チューニングパラメータの選択
6.3 次元削減
6.3.1 主成分回帰
6.3.2 部分最小2乗法
6.4 高次元の場合に考慮すべき事項
6.4.1 高次元データ
6.4.2 高次元の場合における問題点
6.4.3 高次元の場合における回帰分析
6.4.4 高次元の場合における結果の解釈
6.5 実習1:部分集合選択法
6.5.1 最良部分集合選択
6.5.2 変数増加法と変数減少法
6.5.3 ホールドアウト検証と交差検証法によるモデル選択
6.6 実習2:リッジ回帰とLasso
6.6.1 リッジ回帰
6.6.2 Lasso
6.7 実習3:主成分回帰と部分最小2乗回帰
6.7.1 主成分回帰
6.7.2 部分最小2乗法
6.8 演習問題

第6章は線形モデルを拡張するアプローチについてです。第6章の冒頭では第7章以降の展開にも触れながら以下のように記載されています。

引用

本章以降においては、線形モデルの枠組みを拡張するアプローチを論じる。第7章では非線形で加法的な関係を扱えるようにするために(略)一般化する。また第8章ではさらに一般的な非線形モデルを論じる。しかし線形モデルは推論の点で明確な長所があり、現実の問題を扱う際には非線形法と比較して決して劣ることはない。したがって、非線形の世界に飛び立つ前に、本章では、最小2乗法ではなく何か別の方法で当てはめることにより、簡単な線形モデルを改良する。(引用元:『Rによる統計的学習入門』p.190)

上記にもあるように第7章以降の非線形の旅に出発する前に、第6章では線形モデルを深掘りします。大きく3つの論点があります。1つ目は最良部分集合選択やステップワイズ法などを通じた説明変数の選択についての話。2つ目は回帰係数の推定値に制約を与える正則化(縮小推定)という手法の話。ここでリッジ回帰やLasso回帰という線型モデルの一旦のゴールとも言える手法について説明がなされます。そして3つ目が主に主成分分析を用いた次元削減(説明変数の結合)についての話です。

さらに高次元データ(サンプル数に対して説明変数がかなり多いようなデータセット)の場合の問題点についても非常に丁寧に説明されています。データを扱う際によく「サンプル数が説明変数の数を超えてはいけない」と言われますが、その背景や理由についてわかりやすく説明されています。ここでも分散とバイアスのトレードオフ問題を軸に説明がなされるのでスムーズに理解しやすいです。分散とバイアスのトレードオフ問題について各章で何度も触れられるので、それが結果的に非常に良い復習になります。

ステップワイズ法とは? [Day14]はじめに こちらの記事では「ステップワイズ法」について考えていきます。 「どうやって説明変数を選択すればいいの?」 「どう...
AIC / 自由度調整済み決定係数(R2乗)とは? [Day15]はじめに こちらの記事では「AIC、自由度調整済み決定係数」について考えていきます。 「AICや自由度調整済み決定係数って何のた...
正則化(縮小推定)とは? [Day16]はじめに こちらの記事では線形回帰分析の傾き度合いを縮小する「正則化(縮小推定)」について考えていきます。 「正則化ってどんなも...
次元削減(主成分回帰)とは? [Day17]はじめに こちらの記事では説明変数を結合して単純化する「次元削減(縮小推定)」について考えていきます。 「次元削減ってどういうも...

第7章:線形を超えて

続いて第7章の目次を紹介します。

7.1 多項式回帰
7.2 階段関数
7.3 基底関数
7.4 回帰スプライン
7.4.1 区分多項式
7.4.2 制約とスプライン
7.4.3 スプライン基底関数
7.4.4 ノットの数と位置の選択
7.4.5 多項式回帰との比較
7.5 平滑化スプライン
7.5.1 平滑化スプラインの概要
7.5.2 平滑化パラメータλの選択
7.6 局所回帰
7.7 一般化加法モデル
7.7.1 回帰問題における一般化加法モデル
7.7.2 分類問題におけるGAM
7.8 実習:非線形モデリング
7.8.1 多項式回帰と階段関数
7.8.2 スプライン
7.8.3 一般化加法モデル
7.9 演習問題

第7章は線形モデルを非線形なモデルに拡張するアプローチについてです。第6章も線形モデルを改良することがテーマで、リッジ回帰やLasso回帰といった正則化の手法によりモデルの過学習や分散度合いを抑制して非柔軟な方向へ改良する話でした。一方で第7章の話はそのアプローチとは反対にモデルの柔軟性を高めてバイアスを抑止し未学習状態(線形性や加法性の強い前提)から脱することがテーマとなります。ここでもやはり分散とバイアスのトレードオフ問題が「幹」となり思考の助けとなります。もうこれでもかというくらい分散とバイアスのトレードオフ問題をしつこく説明してくれる希有な書籍ですね。

この辺のことについて『Rによる統計的学習入門(ISL)』では第7章の冒頭で次のように説明されています。

引用

標準的な線形回帰はその推測の性能に関して、明らかに限界がある。(略)第6章では、リッジ回帰、lasso、主成分回帰、その他のテクニックを用いることによって(略)線形モデルの複雑さを軽減し、推定量の分散を小さくすることによって、その改良が得られた。しかしモデルはいまだ線形であり、線形モデルを改良するのも限界がある。本章では、可能な限り線形モデルの解釈のしやすさを保ちながら、線形の仮定を緩めていく。(引用元:『Rによる統計的学習入門』p.249)

これだけ読むとスッと頭に入ってこないかもしれませんが、第1章から徹底して分散とバイアスのトレードオフ問題を「幹」として説明してきた本書を読み進めてきた学習者なら「ふむふむ」とうなずける内容です。第7章までくるとすでに著者と学習者との間に明確な共通理解が芽生えてきます。ある意味で『Rによる統計的学習入門(ISL)』は確かな地図を持つ著者と一緒に旅をするように読める書籍なのです。

第7章で取り上げられる手法として具体的にはまず多項式回帰階段関数といった単純な改良モデルが紹介されます。ここは第3章の線形回帰の章でも少し触れられていますのでおさらいがてらになります。そしていよいよ、より柔軟なスプライン系のモデルの話や一般化加法モデルへとテーマが昇華していきます。

スプラインという言葉は初学者にとって聞き慣れない言葉かも知れません。スプラインとは簡単に言うと滑らかな曲線(由来は弾力のある薄く長い板で、それをたわませてヨコから見たイメージです)のことで、変数の範囲をいくつかの区間に区分して各々の区間内で多項式回帰などをあてはめるものです。各々の区間の境界はノットと呼ばれ、このノットでなめらかにつながるような制約が課されます。

この制約という言葉も分散とバイアスのトレードオフ問題につながります。制約を強めるとモデルは非柔軟・バイアス大きい・分散小さい・未学習なモデルとなる傾向にあります。逆に制約を弱めるとモデルは柔軟・バイアス小さい・分散大きい・過学習なモデルとなる傾向にあります。なお、制約が大きいということは自由度が小さいということでもあります。『Rによる統計的学習入門(ISL)』では分散とバイアスのトレードオフ問題を書籍全体が貫いているので、読み進めるなかで自然と上記のような理解ができる点がありがたいですね。

平滑化スプラインとは? [Day18]こちらの記事では線形回帰分析の学びを踏まえ、非線形な分析手法である「平滑化スプライン」について考えていきます。 「平滑化スプライン...
一般化加法モデルとは? [Day19]はじめに こちらの記事では線形重回帰モデルを拡張した「一般化加法モデル(GAM)」について考えていきます。 「一般化加法モデルは...

第8章:木に基づく方法

続いて第8章の目次を紹介します。

8.1 決定木の基礎
8.1.1 回帰木
8.1.2 分類木
8.1.3 木と線形モデルの比較
8.1.4 木の利点と欠点
8.2 バギング、ランダムフォレスト、ブースティング
8.2.1 バギング
8.2.2 ランダムフォレスト
8.2.3 ブースティング
8.3 実習:決定木
8.3.1 分類木の当てはめ
8.3.2 回帰木の当てはめ
8.3.3 バギングとランダムフォレスト
8.3.4 ブースティング
8.4 演習問題

第8章は決定木分析とそれをバギングランダムサンプリングにより改良したランダムフォレストが主テーマとなります。

まず決定木分析についての説明からはじまるのですが、その際に決定木分析の問題点を明らかにしてくれます。決定木分析の問題点をシンプルに言うと「分散とバイアスの調整の難しさ」です。決定木分析は対象となるサンプルを「より決定的に分ける基準」によりサンプルを2グループに分割していく手法です。「より決定的に分ける基準」というのは回帰木の場合は分割後の分散を最小にする分割基準、分類木の場合は分割後のジニ係数やエントロピーをより減少させる分割基準です(詳細は割愛します)。

このとき何回分割を行うかという点がポイントになります。分割の回数を増やせば非常に柔軟なモデルとなる一方で過学習に陥りやすくなります。逆に分割の回数を減らせば過学習は抑制できますがバイアスの大きい未学習なモデルに陥りやすくなります。より精度の高いモデルであればここでパラメータの調整などにより「ちょうど良い」バランスを探すことができるのですが、決定木分析はその調整が難しいというか、さじ加減を効かせづらいモデルになります。

そこでランダムフォレストの出番となります。ランダムフォレストは決定木をたくさん作成してその平均を採用する(これをバギングといいます)手法です。これにより決定木の過学習な側面を抑制してくれます。加えて、一つ一つの決定木を作成する際に(サンプルと説明変数について)ランダムサンプリングを行いたくさん作成した一つ一つの決定木同士が似通わないようにします。これによって過学習な側面をさらにうまく抑制することができます。

このように第8章でもやはり分散とバイアスのトレードオフ問題が「幹」となり理解を助けてくれます。分散とバイアスのどちらに重きが置かれていて、どちらの視点に立ってモデルを改良すべきなのか。『Rによる統計的学習入門(ISL)』は常にこの視点で考察を進めてくれる点が読みやすさにつながっています。

決定木分析とは? [Day20]はじめに こちらの記事は非線形なアルゴリズムとして代表的な「決定木」について考えていきます。 「決定木ってどういうアルゴリズム?...
ランダムフォレストとは? [Day21]はじめに この記事では決定木分析の欠点に対処したアルゴリズムである「ランダムフォレスト」について考えていきます。 「ランダムフォ...

第9章:サポートベクターマシン

続いて第9章の目次を紹介します。

9.1 マージン最大化分類器
9.1.1 超平面とは何か
9.1.2 分離超平面を用いた分類
9.1.3 マージン最大化分類器
9.1.4 マージン最大化分類器の構成
9.1.5 分離不可能な場合
9.2 サポートベクター分類器
9.2.1 サポートベクター分類器の概要
9.2.2 サポートベクター分類器の詳細
9.3 サポートベクターマシン
9.3.1 非線形の決定境界による分類
9.3.2 サポートベクターマシン
9.3.3 心臓病データへの適用
9.4 3つ以上のクラスにおけるサポートベクターマシン
9.4.1 一対一分類
9.4.2 一対他分類
9.5 ロジスティック回帰との関係
9.6 実習:サポートベクターマシン
9.6.1 サポートベクター分類器
9.6.2 サポートベクターマシン
9.6.3 ROC曲線
9.6.4 多クラスの場合におけるSVM
9.6.5 遺伝子発現データへの応用
9.7 演習問題

第9章はサポートベクターマシンが主テーマとなります。サポートベクターマシンはランダムフォレスト同様に比較的精度も高く使いやすい手法です。ただその概念の理解はとても難しく、『Rによる統計的学習入門(ISL)』でもさすがに一度で理解するのは難しいかもしれません。

とはいえ超平面マージン最大化の考え方、そしてサポートベクターが「何をサポート」しているのかなど、基礎的な部分の説明は非常に丁寧で読みやすいです。また、第9章2節のところではパラメータの調整により分散が小さい(バイアスが大きい・非柔軟)モデルから、分散が大きい(バイアスが小さい・柔軟な)モデルへと改良していく流れが図とともに示されています。機械学習はパラメータの調整が重要なポイントとなりますが、むやみやたらに調整するだけでは中学生でもできます。『Rによる統計的学習入門(ISL)』を読むと、パラメータの調整は端的には分散とバイアスのトレードオフ問題を調整しているということを徹底的に理解できます。そういう意味でも学習における「幹」というのはやはりとても重要ですね。

サポートベクターマシン(SVM)とは? [Day22]はじめに こちらの記事では超平面という考え方を利用した「サポートベクターマシン(SVM)」についてについて考えていきます。 「サ...

第10章:教師なし学習

最後に第10章の目次を紹介します。ようやく最終章にたどり着きました。

10.1 教師なし学習の課題
10.2 主成分分析
10.2.1 主成分とは何か
10.2.2 主成分についての別の解釈
10.2.3 主成分分析に関する補足
10.2.4 主成分分析の他の応用例
10.3 クラスタリング法
10.3.1 K平均クラスタリング
10.3.2 階層的クラスタリング
10.3.3 クラスタリングにおける実用上の問題
10.4 実習1:主成分分析
10.5 実習2:クラスタリング
10.5.1 K平均クラスタリング
10.5.2 階層的クラスタリング
10.6 実習3:NCI60データへの適用例
10.6.1 NCI60データにおける主成分分析
10.6.2 NCI60データの観測値のクラスタリング
10.7 演習問題

第10章は教師なし学習です。そのなかでも主成分分析クラスタリング(K平均クラスタリングと階層的クラスタリング)を主テーマとしています。

教師なし学習には分析者の主観が入りがちになるという課題があります。教師あり問題には教師、要は答えがあるのに対し、教師なし学習には答えが用意されていないためです。この点について『Rによる統計的学習入門(ISL)』では以下のように記載されています。

引用

教師なし学習は(略)実行に際してより主観的になりがちであり、応答変数の予測のような明確な目的がない。教師なし学習は、よく探索的データ解析の一部として実行される。さらに、教師なし学習の方法から得られた結果を評価することは難しい。(略)教師なし学習ではその結果を検証する術がない。なぜなら正しい答えがわからない。つまり教師なしだからである。(引用元:『Rによる統計的学習入門』p.353,354)

内容としては主成分分析とクラスタリングについてで、まず主成分分析についての説明がなされます。主成分分析は統計学の要素が強く、この部分は『心理統計学の基礎』などの統計学の入門書と併せて理解するとよいかもしれません。

クラスタリングについてはK平均クラスタリング(k-means法)と階層的クラスタリングが取り上げられています。主成分分析とクラスタリングの違いについて、『Rによる統計的学習入門(ISL)』では以下のように説明されています。

引用

クラスタリングも主成分分析も、要約によってデータを単純化することを試みる。しかし、それらのメカニズムは異なるものである。

  • 主成分分析は、分散を多く説明するように観測値を低次元で表現する。
  • クラスタリングは、観測値の中で同類のものを見つけ、グループを作ろうとする。

(引用元:『Rによる統計的学習入門』p.364)

主成分分析は変数を結合して次元を削減する手法(変数の要約)であるのに対し、クラスタリングは変数を要約しようというよりも各観測値をグルーピングしようという考え方をベースにしています。こういった微妙なニュアンスの違いに触れてくれる点も『Rによる統計的学習入門(ISL)』の良いところですね。

主成分分析とは? [Day23]はじめに こちらの記事では教師なし学習の代表的手法である「主成分分析」について考えていきます。 「主成分分析はどんなことに役立つ...
k平均クラスタリング(k-means法)とは? [Day24]はじめに この記事では教師なし学習の一つである「k平均クラスタリング」について考えていきます。 「k平均クラスタリングのkって何...

さいごに

というわけで『Rによる統計的学習入門(ISL)』全10章について概観してきました。概観するだけでかなりの文字数となってしまいました(ここまでお読みいただきありがとうございます)。しかし本記事の内容は『Rによる統計的学習入門(ISL)』のほんの入口部分に触れたに過ぎません。『Rによる統計的学習入門(ISL)』の世界観にもっと触れたいと思った方はぜひ翻訳版を入手いただくか、無料の英語版をダウンロードしていただけるとうれしいです。機械学習がもっと広く理解されてほしいという思いからそのように願います。

最後まで読んでいただき本当にありがとうございました!ものすっっっごく(!)おすすめの書籍ですので本記事をTwitter等でシェアいただけるととてもうれしいです!

統計学ベーシック講座【確率分布・推定・検定】

統計学の基礎を効率的に学べるベーシック講座です。統計学の入り口となる「確率分布・推定・検定」について豊富な図を用いて説明していきます。

2021年3月リリース後すでに20,000人以上の方に受講いただき大人気ベストセラーコースとなっています!ぜひこの機会に統計学や確率思考という一生モノのスキルを一緒に身につけましょう!

※上記リンクからですと時期によってはクーポンが自動適用されます。
※Udemyは世界最大級のオンライン学習プラットフォームです。以下記事にてUdemyをご紹介しておりますのでよろしければこちらもご覧ください。

Udemyとは?セールでお得な世界最大級のオンライン学習プラットフォームこの記事では世界最大級のオンライン学習プラットフォームであるUdemyをご紹介していきます!まだUdemyを使っていない方やこれから使お...