【統計学習】統計検定準1級の試験から約3ヶ月経過【振り返り】

学問系

【統計学習】統計検定準1級の試験から約3ヶ月経過【振り返り】

2021年11月4日に統計検定準1級の試験を受け、見事に大敗した。

この結果から約3ヶ月が経過しようとしている。

この3ヶ月間でやったことや今後のことを書いてみる。

過去記事の振り返り

まずは、試験後に書いた記事の「今後について」を見返す。

【統計検定準1級】「結果報告」と「総括」
【統計検定準1級】「結果報告」と「総括」 試験の概要やこれまでの経緯についてはこちら↓ 結果報告 統計検定準1級CBT方式を受験した結果、、 不合格!! 合格評価点にあと22点も足りなかった。 ...

今後

これからも統計関連の学習を続けていく予定だ。

学習の軸は下記の3つで進めてみる。

・統計検定準1級の自作問題集を作る
・R×統計(ベイズ統計)の書籍を進める
・統計の知識を用いてウーバーイーツの配達データを分析してみる

計画や進捗については、随時書いていく予定。

この3ヶ月間で上記3つをどのように進めたかをそれぞれ書く。

統計検定準1級の自作問題集を作る

問題集の自作はやらなかったが、市販の問題集を購入した。

https://amzn.to/3qKl6WQ

購入はしたが、問題を解いてはいない(積読状態)。

R×統計(ベイズ統計)の書籍を進める

プログラミング×統計に慣れるため以下の書籍を読みつつ、コードを写経した。

データ解析のための統計モデリング入門

https://amzn.to/3tNeCZ8

実践Data Scienceシリーズ RとStanではじめる ベイズ統計モデリングによるデータ分析入門

https://amzn.to/3nGshgI

Rで学ぶ確率統計学 一変量統計編

https://amzn.to/3GQuT34

Rで学ぶ確率統計学 多変量統計編

Amazon.co.jp

統計の知識を用いてウーバーイーツの配達データを分析してみる

書籍から得た統計知識を生かして、ウーバーイーツの配達データを分析し、記事にしてみた。以下、一部紹介。

【ウーバーイーツ】沖縄市エリアの「スリコ」を考える【沖縄市】
【ウーバーイーツ】沖縄市エリアの「スリコ」を考える【沖縄市】 スリコとは、配達1件でもらえる報酬の最安値(300円)のこと。 今回は、そのスリコについてを沖縄市エリア(沖縄市・うるま市一部)に絞って考える。 概要 沖縄のウーバー...

記事を書く際にとても参考になったのが、この本↓

Rによるデータサイエンス(第2版)

https://amzn.to/35bh0Pa

感想

統計検定準1級取得に向けての勉強の多くは、問題を解くことだった。そのこともあって、上記にある書籍の内容をマネて、自分に関わるデータを統計的に処理する作業は比較的飽きずに楽しめた。

特に、ウーバーイーツのデータから得られる仮説や疑問を統計の知識を用いて、明らかにしていく作業は面白く興味深かった。

一方、課題もあった。それは、自分に直接関わるデータがなければ、そもそも明らかにしたい仮説や疑問が生まれないため、統計の知識を用いるモチベーションが湧かないことだ。おそらく、自分の行動変化につながりそうにないデータ分析に意味を見出せないのだろう。

今回は、「ウーバーイーツで効率良く稼ぎたい」という欲と「自分の腰痛体質による長時間同じ姿勢を保てない」という制限が統計の勉強を継続する下地になっていた。

統計の勉強を長い目で考えるのであれば、○○したい欲と○○できないという制限を意図的に作り出しておくと良いのかもしれない。

データ分析コンペに挑戦

2021年12月30日にデータ分析プラットフォームSIGNATEに初投稿。

ウーバーイーツのデータ分析に飽きてきたため、データ分析コンペに挑戦してみた。

初投稿から約1ヶ月経過したため、これまでにやったことや感想を書く。

やったこと

はじめは、以下の書籍に目を通した。

実践Data Scienceシリーズ PythonではじめるKaggleスタートブック

https://amzn.to/3KxjkQM

kaggleで勝つデータ分析の技術

https://amzn.to/3Itcn1j

前者をデータ分析コンペの流れを体験する書籍、後者を詳細を調べるための書籍として利用している。

 

次にSIGNATEの練習問題(テーブルデータ)をやってみた。

【練習問題】健診データによる肝疾患判定 | SIGNATE – Data Science Competition

【練習問題】銀行の顧客ターゲティング | SIGNATE – Data Science Competition

両方ともkaggleスタートブックで扱う問題(分類問題)と似ているためやりやすい。

 

次にSIGNATEのBeginner限定コンペ(テーブルデータ)をやってみた。

【第17回_Beginner限定コンペ】アメリカの都市エイムズの住宅価格予測 | SIGNATE – Data Science Competition

はじめて回帰問題を扱ったため、多少難しく感じた。理由は、kaggleスタートブックで用いたコードは分類問題用だが、今回のコンペは回帰問題だったため。そもそも、分類問題と回帰問題の区別があいまいだった。コードのどの部分を変更すれば回帰問題に対応できるか分からなかった。

 

次にSIGNATEのSOTAコンペ(テーブルデータ)をやってみた。

【SOTA】マイナビ × SIGNATE Student Cup 2019: 賃貸物件の家賃予測 | SIGNATE – Data Science Competition

この問題は、提供されるデータがかなり雑なため、前処理コードを大量に書く必要があった。前処理の大変さを思い知らされた。

当コンペ名でググるとコンペ上位者の記録やコードが掲載されていたため、そのコードに自分なりに解説を加えたり、実際に動かしたりしてみた。

 

上記をきっかけにPython自体の勉強をはじめた。

主にSIGNATEのGym(サブスク)を活用して学習している。

Gym一覧 | SIGNATE Quest

プログラミング分野の講座とデータサイエンス分野の講座がある。現在、プログラミング分野を終え、データサイエンス分野を進めているところだ。この後は、Questに進む予定だ。

Quest一覧 | SIGNATE Quest

 

テーブルデータのコンペばかりをあさっていると、以下の「レコメンドエンジン作成」というコンペにうっかり足を踏み入れてしまった。

【SOTA】オプト レコメンドエンジン作成 | SIGNATE – Data Science Competition

よくよく調べてみると、今までの知識では太刀打ちできそうになかったため、以下の本を購入した。

https://amzn.to/3FUO3nq

書籍を読みながらやってみる予定だ。

 

これまでの知識を試す目的でデータテーブルかつ回帰問題のコンペに取りかかった。

【SOTA】アップル 引越し需要予測 | SIGNATE – Data Science Competition

はじめは、LightGBMで試していたが、なかなか評価が改善されず、他の手法を探していたところ時系列解析用パッケージProphetの存在を知った。Prophetを活用すると、評価が改善された。時系列データの解法パターンの1つを体験できた。しかし、その後のパラメーター調整やアンサンブルは評価の改善につながらず、今後の課題となった。

 

ざっとまとめると、データテーブルコンペの評価改善に取り組んだ1ヶ月となった。

 

現状の課題と今後

大きな課題は、「調整」にある。

ある程度のモデルを作成し、コンペの上位60%以上に入るようになってきたが、そこからのもうひと踏ん張りで毎回コケている。

コケる場面は大きく「特徴量追加」「パラメーター調整」「アンサンブル」に分けられる。これら3つのうち、「特徴量追加」には改善の兆し(他人のコードや書籍からパターンを認識し、自分なりに応用する回数が増えつつある)があるが、「パラメーター調整」「アンサンブル」は改善の兆しがない。それどころか評価指標の改善につながったことが今までで一度もない。

一気に、「パラメーター調整」と「アンサンブル」についてを考えると大変なため、ここでは、「パラメーター調整」に絞る。

「パラメーター調整」が評価改善につながらない原因は、単純にパラメーターが何を表しているかを理解できていなさすぎるからだと思う。最近で言うと、評価関数を設定する際、回帰問題用のmaeと分類問題用のloglossがごっちゃになっているのに気づけなかったり、その結果発生するエラー文の指摘が理解できなかったりなどある。

ドキュメントでパラメーター一覧を読むことで、この問題の改善に努めてみた。が、そもそも、パラメーターの説明にある単語に慣れてなく、無意識的に読むのを避けてしまっているように思える(パラメーターの数も多いし、、)。

このように振り返ってみると、単純に機械学習の知識が足りていないだけにも思える(というかそれ!)。

確かに、統計学の流れでデータ分析に進んでいったため、機械学習の知識を中心にインプットした時期はない。

ということで、これまでの勉強法で機械学習の知識を身につけてみる。

 

まず、積読状態の機械学習本を並べる。

・機械学習のエッセンス
・機械学習図鑑
・はじめてのパターン認識

上記3書籍の内容をざっくり見ると、上記2つは図で分かりやすく解説されている、一方、最後の書籍はグラフや数式が多くあり、とっつきにくさを感じた。機械学習の勉強初手は「機械学習のエッセンス」または「機械学習図鑑」が良さそうだ。

3書籍で扱う内容に違いがあったため、まとめておく。

・機械学習のエッセンス→深層学習なし
・機械学習図鑑→深層学習あり
・はじめてのパターン認識→深層学習なし

深層学習を書籍内で扱っているかどうかで分類できた。今回は深層学習を含まない書籍で勉強を進めてみる。※深層学習本は他で積読状態のため。

つまり、機械学習の大まかな勉強の流れは、以下のようになる。

機械学習のエッセンス→はじめてのパターン認識

 

もう少し具体的にしてみる。

今回の目的は、「機械学習の知識を身につける」である。この目的を念頭に置き、書籍の目次を見てみる。

機械学習のエッセンス

第1章学習を始める前に
第2章Pythonの基本
第3章機械学習に必要な数学
第4章Pythonによる数値計算
第5章機械学習アルコリズム

第2章と3章は機械学習で使うPythonの解説となっている。この項目は、SIGNATEのGymで学習中のため、この書籍で改めて勉強する必要はなさそうだ。よって、勉強対象として残るのは、以下になる。

第3章機械学習に必要な数学
第5章機械学習アルコリズム

この中で、今回の目的に直結するのは、第5章になるため、そこを優先して勉強を進める。つまり、機械学習の勉強の流れは、こうなる。

機械学習のエッセンス第5章→機械学習のエッセンス第3章→はじめてのパターン認識

 

はじめてのパターン認識の勉強の流れをもう少し具体的にしてみる。

この書籍は1章ごとに章末問題がある。また、節の中に例題を含む場合がある。この章末問題と例題を軸に勉強の流れを考えるとこうなる。

はじめてのパターン認識〇章を読む→〇章にある例題を解く→章末問題を解く

ただ、今回は機械学習の勉強はじめということもあるため、全体像の把握に努めたい。よって、最後の章末問題は後回しにしても良いかもしれない。

 

以上をふまえると、機械学習の勉強の流れはこうなる。

1.【読む】機械学習のエッセンス 第5章機械学習のアルゴリズム
2.【読む】機械学習のエッセンス 第3章機械学習に必要な数学
3.【読む】はじめてのパターン認識 第〇章
4.【解く】はじめてのパターン認識 第〇章 例題を解く
5.3と4の繰り返し
——ゴール——-
6.【解く】はじめてのパターン認識 各章末問題を解く

 

上記の【読む】をもう少し具体的にしてみる。

「機械学習分野で用いられる単語に慣れていきたい」を具体的に考えると、「書籍の索引にある単語の意味を即座に思い出せる状態になりたい」となりそう。よって、今回は索引を軸にAnkiカードを作成し、機械学習の用語を効率的に覚えていく。

 

とりあえず、以上のように進めてみる。

追記

本記事を書いている途中に、事が進んでしまった。

2月2日時点の現状を以下に書く。

まず、予定通りに書籍「機械学習のエッセンス」を進めてみた。

1.【読む】機械学習のエッセンス 第5章機械学習のアルゴリズム
2.【読む】機械学習のエッセンス 第3章機械学習に必要な数学

この辺りは、3~4日でサクッと読み終えて、書籍記載の練習問題も難なく解き終えた。統計検定準1級に取り組む流れで数学の知識を身につけていたため、特に問題なかった。が、予定になかった「第4章Pythonによる数値計算」を流し読みしたところ、節「数理最適化」の内容が理解しづらかった(というより初見)。

ということで、一旦「最適化数学」を勉強することにした。書籍は以下。

はじめての最適化

https://amzn.to/35vVMvp

とりあえず、この書籍にある例と練習問題をすべて解き終えて、次に進む予定だ。

進捗

目次
1.数学的準備
2.凸関数
3.最適化問題
4.制約つき最適化問題 ←今ここ!
5.線形計画問題
6.変分問題
7.制約つき変分問題
8.計算機利用

 

 

 

 

 

コメント

タイトルとURLをコピーしました