lazy diary

統計とその周辺

僕の図書館(2019/04/11更新)

https://www.pakutaso.com/shared/img/thumb/elly20160628465420_TP_V.jpg

ちゃんと読んだもの一覧

Python

Python学習講座~PythonエンジニアによるPython3学習支援サイト~

これで十分。あとはリファレンスを読む。
PythonエンジニアによるPython3学習サイト



・【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門

Udemyの講座です。分析の一通りの手順を教えてくれます。
実際にSignateに出てくる問題を扱っているので、実践形式で学べるところが良し。
https://www.udemy.com/optworks_1/



R

・全人類がわかる統計学

Rの基礎をこのサイトで覚えました。あとは必要に応じて調べるだけで今のところ十分のような気がしています。
to-kei.net



機械学習

・Coursera:Machine Learning

この世界なら知らない人はいないであろうAndrew Ng先生の授業です。
内容は機械学習の基礎で、大半は日本語字幕があります。WEEK1-11まであり、各WEEKの最後にはクイズやプログラミングの宿題が課されます。具体的な授業内容は別の記事に書いたので、良ければ参考に。
Coursera:Machine Learningを受講しました - lazy diary
www.coursera.org


・ゼロから作るDeep Learning――Pythonで学ぶディープラーニングの理論と実装

NNをPythonでスクラッチして理論を学んで最終的にCNNまでやってみようという本です。分かりやすいと人気の高い本ですが、第5章の計算グラフを使ったback propagationの説明は好みが分かれるような気がします。しかしながら第5章以外、特に第6章の学習に関するテクニック(最適化の方法)は知らないこともあったので勉強になりました。



伝統的な統計学

古典的な統計学。いわゆる〇〇検定とかの本です。

統計学入門 (基礎統計学Ⅰ)

統計の赤本の名で有名な統計学の入門書です。統計学を始めるときの1冊にどうぞ。線形代数だと行列の基本的な扱い、解析だと重積分あたりが前提知識かと思います(要は大学1年生が学ぶ数学です)。日常でも聞く平均などの統計量の説明から始まり、そこに確率変数を導入して分布の説明、次に標本の話と推定や仮説検定を行なったりする話、最後に少しですが回帰分析の話が載っています。
私はこの本を統計検定2級を受験する際の教科書として利用しました。統計検定2級の受験記も良ければ見て下さい。
統計検定2級に合格しました - lazy diary

統計学入門 (基礎統計学?)

統計学入門 (基礎統計学?)


・現代数理統計学の基礎

上にある統計の赤い本より深い内容まで突っ込んだ本です。この本の良い点は誤植や演習問題の解答、補足等を著者がWEBサイトで公開している点だと思います。数学書でこれほどありがたいことはないです。
私はこの本を統計検定1級を受験する際の教科書として利用しました。統計検定1級の受験記も良ければ見て下さい。
統計検定1級に合格しました - lazy diary

現代数理統計学の基礎 (共立講座 数学の魅力)

現代数理統計学の基礎 (共立講座 数学の魅力)



統計モデリング

モデリングの話。ベイズベイズしていない本。

・一般化線形モデル入門

一般化線形モデルを数理統計の視点で解説しています。この本を読めば一般化線形モデルの数理の側面は一通り理解できると思います。検定理論も少し含まれています。

一般化線形モデル入門 原著第2版

一般化線形モデル入門 原著第2版


・多変量解析入門――線形から非線形

線形から非線形への橋渡しに。この本は線形モデルの知識を前提とはしていませんが、知っていると捗ると思います。基底関数展開や判別分析、SVM、主成分分析を丁寧に数式を展開しながら説明しています。最後に教師なし学習が少しだけ説明されています。丁寧な数式展開で数学書としてはこの上ない素晴らしい本だと思います。以下、本で紹介されているものをいくつか私がPythonで実装したものです。
XORのようなデータを非線形ロジスティック回帰で分類する - lazy diary
ハードマージンSVMによる分類 - lazy diary
ソフトマージンSVMによる分類 - lazy diary
非線形SVMによる分類 - lazy diary

多変量解析入門――線形から非線形へ

多変量解析入門――線形から非線形へ


・経済・ファイナンスデータの計量時系列分析 (統計ライブラリー)

沖本本の名で有名な時系列解析の本です。この本を含め、時系列の本はもう少し詳細な解説が欲しくなります。

経済・ファイナンスデータの計量時系列分析 (統計ライブラリー)

経済・ファイナンスデータの計量時系列分析 (統計ライブラリー)


・続・わかりやすいパターン認識教師なし学習入門―

前半はベイズ統計学の基礎。そのあと教師あり学習との対比をしたうえで教師なし学習で頻出のEMアルゴリズム、HMM(Viterbiアルゴリズム、Baum-Welchアルゴリズム)があります。次に、k-means法、凸クラスタリング、最後にノンパラベイズ(ディリクレ過程混合モデル)の説明があります。丁寧に記述されていてとても読みやすいです。

続・わかりやすいパターン認識―教師なし学習入門―

続・わかりやすいパターン認識―教師なし学習入門―



ベイズモデリング

ベイズモデリングについての本です。

・データ解析のための統計モデリング入門――一般化線形モデル・階層ベイズモデル・MCMC (確率と情報の科学)

みどり本の名で有名な統計モデリングの本です。下記のPyStanに移植したというありがたい記事が参考になりました。人によっては数学的要素が少し物足りないかもしれません。
データ解析のための統計モデリング入門(緑本)の読書メモ(PythonとStanで) - Qiita


パターン認識機械学習

PRMLの名で有名な本です。ベイジアンなら読まないとモグリだと思うので読みました。1度読んだだけで理解したとはとても言い切れぬ。

パターン認識と機械学習 上

パターン認識と機械学習 上

パターン認識と機械学習 下 (ベイズ理論による統計的予測)

パターン認識と機械学習 下 (ベイズ理論による統計的予測)


ベイズ統計の理論と方法

渡辺ベイズ本とかベイズの赤本とか言われるやつです。WAICの導出があります。数式は難解かもしれませんが「質問と回答」を読むだけでも十分に価値があると思っています。

ベイズ統計の理論と方法

ベイズ統計の理論と方法


・StanとRでベイズ統計モデリング (Wonderful R)

ヒル本と呼ばれるやつです。Stanの使い方と緑本や一般化線形モデル入門で扱われているモデリングの良い復習になりました。この本はRで書かれていますが、私は一部を除いて全てPyhonで実装しました。Pythonによる可視化の練習にもなりました。以下の記事が実装で困ったときの参考になりました。
StanとRでベイズ統計モデリング(アヒル本)をPythonにしてみる - 目次 - Qiita



その他

・入門 機械学習による異常検知―Rによる実践ガイド

異常検知に興味が湧いたので読みました。式はあまり行間が飛ぶことなく丁寧に書かれており、著者の親切さ(のようなもの?)をひしひしと感じました。異常検知の流れを掴むことができました。

統計検定2級に合格しました

合格したので感想を。
http://www.toukei-kentei.jp/wp-content/uploads/ToukeiAkari-300x123.png*1

統計検定とは

www.toukei-kentei.jp
そもそも統計検定って何?って方もいると思うのでザックリと説明を。

「統計検定」とは、統計に関する知識や活用力を評価する全国統一試験です。
データに基づいて客観的に判断し、科学的に問題を解決する能力は、仕事や研究をするための21世紀型スキルとして国際社会で広く認められています。
日本統計学会は、中高生・大学生・職業人を対象に、各レベルに応じて体系的に国際通用性のある統計活用能力評価システムを研究開発し、統計検定として実施します。

うむ、よく分からんということで具体的な検定内容は次のようになっています。

試験の種別 試験内容
統計検定1級 実社会の様々な分野でのデータ解析を遂行する統計専門力
統計検定準1級 統計学の活用力 ─ データサイエンスの基礎
統計検定2級 大学基礎統計学の知識と問題解決力
統計検定3級 データの分析において重要な概念を身に付け、身近な問題に活かす力
統計検定4級 データや表・グラフ、確率に関する基本的な知識と具体的な文脈の中での活用力
統計調査士 統計に関する基本的知識と利活用
専門統計調査士 調査全般に関わる高度な専門的知識と利活用手法

2/3級については、CBT方式というもので受験が可能です。この方式で申し込みをすれば指定された全国の会場でほぼ毎日受検することが出来ます。
一方で、1級と準1級については受験日が決まっています。1級は11月、準1級は6月に試験が開催されます。全て合格点は60/100点だったと思います。
統計調査士、専門統計調査士についてはよく知らないので略。

この統計検定始まったのは2011年とまだ最近です。

勉強したこと

統計検定2級の範囲をまずチェックしましょう。
私は数学畑の人間とは言っても統計学については素人です。確率分布って何?という状態です。そこで合格した人のブログをいくつか調べて、この本で学ぶことにしました。

統計学入門 (基礎統計学?)

統計学入門 (基礎統計学?)

検定理論あたりで少し苦戦しましたがそれ以外はとても読みやすい本でした。この本をノートにまとめながら読むこと約2週間(※練習問題は飛ばしました)。
これだけでどれくらい点数が取れるのだろうかと過去問を解くことにしました。
日本統計学会公式認定 統計検定 2級 公式問題集[2014〜2016年]

日本統計学会公式認定 統計検定 2級 公式問題集[2014〜2016年]

ギリギリですが合格点を取ることが出来ました。私はこのとき初めてを2級の範囲を見たのですが(最初にチェックしておけよって話ですね)、『統計学入門』にいくつか載っていない項目があったのでそこをググりながら補うことにしました。これに1週間ほどかけました。その後、過去問の再度解き直しに1週間をかけ、安定して合格できるくらいまで知識を確認しました。

受験当日

事前に日程をこちらが決めてCBT方式で受験しました。会場に行ってパソコンの前に着席してから説明を聞いて、すぐに試験開始です。メモ用紙が貰えるでそこでガリガリ計算していきました。偶然かもしれませんが、過去問よりいくぶんか簡単でした。その場で合否が分かるので合格発表をドキドキして待つこともありません。

最後に

ここまで言及していなかったのですが、忘れてはいけないのが電卓です。この試験をサクサク乗り切るためには電卓をうまく使うことが結構重要なのではと過去問を解きながら思っていました。私は電卓といわれるとスマホの電卓しか長らく使っていませんでしたが、スマホの電卓はNGなので今回この試験のために買いました。

カシオ 電卓 時間・税計算 手帳タイプ 8桁 SL-300A-N

カシオ 電卓 時間・税計算 手帳タイプ 8桁 SL-300A-N

あまり使う機会ないですしお金が無い学生にはこれで十分でした。


参考書を選んで学習、最後に過去問で演習という流れで合格できました。参考書は範囲をおおよそカバーしているのものの中から気に入ったのを選べば良いと思います。*2統計学入門』もその1つだと思います。



次は統計検定1級に挑戦してみようと思います。頑張ります。
【追記】
2018年度の統計検定1級試験を受験して合格しました。1級の受験記はこちらです。
mt19.hatenablog.com

*1:統計検定の公式キャラクターらしいです http://www.toukei-kentei.jp/info/toukeiakari/

*2:公式の参考書もありますがAmazonではなかなかの酷評です。私は公式のものを見ていないので評価できません。

Coursera:Machine Learningを受講しました

機械学習を勉強している人ならどこかで聞いたことはあるであろう(たぶん?)
あの有名なAndrew Ng先生のMachine Learningを受講しました。
www.coursera.org

何を学んだのかの振り返りの意味も込めて、この記事を書いていきます。

1.受講動機

機械学習をざっくりと学びたく、当初市販の本を手にとってはみたのですがどうもしっくり来ませんでした。なぜその手法を使うのかといった所謂motivationの部分の話が無くて分かりづらかったです。そこで評判の良いCourseraの講義に手を出してみました。
(追記:統計的学習理論を1年ほど学んだ今でも市販の本で学び始めるのは難しいと思っています。)

2.講義内容

散々色んなブログでまとめられているとは思いますが、振り返りの意味も込めて自分で作ったノートを見ながら講義内容をざっくりここに箇条書きにします。

Week1

機械学習の一般的な定義と教師あり学習教師なし学習について
MATLABOctaveアルゴリズムの簡単な実装には便利
・線形単回帰
最急降下法とは何か?

市販の本で分かりづらかった最急降下法がとても分かりやすく、あぁ教えるのがお上手でと思いながら動画を見てました。

Week2

・線形重回帰
・特徴量のスケーリングの効果とその実装
多項式回帰
・正規方程式の利用

Week3

・線形ロジスティック回帰
・マルチクラスの分類問題への対応の仕方
過学習の恐ろしさとその対策方法(特徴量選択、正則化項の追加、可視化etc)

Octaveの便利さをこのあたりで実感。

Week4

・ロジスティック回帰の欠点
ニューラルネットワークの概要とその素晴らしさ

Week5

・forward propagationとback propagation
ニューラルネットワークにおける最急降下法とエラーチェック(gradient checking)

ニューラルネットワークは線形回帰やロジスティック回帰に比べてかなり難しかったです。特にback propagationがなぜ必要なのかがなかなか理解できませんでした。このMachine Learningの講義で私が一番大変だと思ったWeekです。

Week6

・交差検定の理解
正則化係数λの決定方法
・学習曲線から分かること
・評価指標(F値

ここではアルゴリズム云々ではなく、モデルの改善にはなにが必要なのかが学べます。

Week7

・サポートベクターマシーン(SVM)の実装とその良さ
カーネルトリック
・ロジスティック回帰とSVMの使い分けについて

Week8

教師なし学習の応用例
・K-means法
・クラス数Kの決め方
・次元削減の必要性と主成分分析の概要
機械学習での主成分分析の組み込み方

Week9

ガウス分布を用いた異常検知アルゴリズム
・異常検知アルゴリズムが適している問題
・レコメンデーションシステムの概要
協調フィルタリングの実装と実際のレコメンドの仕方

項目はたくさん並んでしまいましたが、ガウス分布等は統計では定番なので、統計を少し学んだ人は苦労しないと思います。レコメンデーションシステムは機械学習の定番なので知れてよかったです。

Week10

最急降下法(バッチ急降下法)のデメリット
・確率的急降下法とミニバッチ最急降下法の実装
・オンライン処理の特徴
・データが膨大にあるときに使われるMap Reduceについて

データをたくさん持っていることは強い(オーバーフィッティングしているとき)というのは動画内で何度も説明されます。その膨大なデータを計算コストの面からどのように扱うかが説明されます。

Week11

機械学習の応用例としてのOCRの説明
・アプリケーションのパイプラインを用意することの重要性
・現実で直面するデータ量の問題と人工データ合成の概要
・シーリング分析の概要
・受講に対する感謝の言葉

機械学習を実際のアプリケーションに組み込む際の注意事項がたくさん説明されています。
最後の受講に対する感謝の言葉はなかなか嬉しいものがあります。

3.受講してみて

受講して本当に良かったです。とにかく分かりやすいの一言です。
1ヵ月を使って学びましたが、勉強していて楽しかったです。動画なので本と違って行間埋める必要もありませんのでとっつきやすいです。

もし

前提条件
機械学習の基礎を学んでみたい
・英語が少し読める
歓迎条件
・行列演算、微分偏微分を知っている(これらは知らなくても動画内で簡単な説明がありますが、この先どこかで深い知識が必要になるでしょうから事前に数学書で学ぶことをオススメします)
・巷の機械学習入門書が難しすぎる

という方がいたら私はこの講義をオススメします。