先週末に「Python 3 エンジニア認定データ分析試験」を受験して合格した🎉とても良い試験で,特に試験勉強をする過程で知識の幅が広がった.試験の認知度向上のためにも紹介したいと思う.当然ながら試験問題に関しては何も書かず,基本的に公開情報をベースにまとめていく!
試験概要 : Python 3 エンジニア認定データ分析試験 📊
試験名にもある通り「Python 3 エンジニア認定データ分析試験」は Python を使った「データ分析」に関する理解を問う試験で「数学」や「Python ライブラリ」に関する出題が多くある.詳しくは以下に出題範囲を載せる.
セクション | 出題数 | 出題率 |
---|---|---|
データエンジニアの役割 | 2 | 5.0% |
Python と環境 : 実行環境構築 | 1 | 2.5% |
Python と環境 : Python の基礎 | 3 | 7.5% |
Python と環境 : Jupyter Notebook | 1 | 2.5% |
数学の基礎 : 数式を読むための基礎知識 | 1 | 2.5% |
数学の基礎 : 線形代数 | 2 | 5.0% |
数学の基礎 : 基礎解析 | 1 | 2.5% |
数学の基礎 : 確率と統計 | 2 | 5.0% |
ライブラリによる分析実践 : NumPy | 6 | 15.0% |
ライブラリによる分析実践 : pandas | 7 | 17.5% |
ライブラリによる分析実践 : Matplotlib | 6 | 15.0% |
ライブラリによる分析実践 : scikit-learn | 8 | 20.0% |
応用 : データ収集と加工 | 0 | 0.0% |
出題は「40問」で合格ラインは「70%」なので,単純計算で「28問」以上で合格になる.上記の通り「出題数」も明確なので対策自体はしやすいと思う.出題範囲をザッと分割すると以下のようになる.とにかく「ライブラリによる分析実践」の比重が高く,確実に理解を深めておく必要がある.とは言え,本質的に重要なのは試験に合格することよりも「学んだ知識を実務に活かすこと」であるため,バランス良く全体を勉強することを意識した.
- データエンジニアの役割 : 2問(5.0%)
- Python と環境 : 5問(12.5%)
- 数学の基礎 : 6問(15.0%)
- ライブラリによる分析実践 : 27問(67.5%)
関連試験 : Python 3 エンジニア認定基礎試験 📊
なお,関連する試験に「Python 3 エンジニア認定基礎試験」もある.同じく「一般社団法人 Python エンジニア育成推進協会」から提供されている.僕自身は2019年に合格して以下の記事にまとめている.「Python 3 エンジニア認定データ分析試験」の受験前提にはなっていないと思うけど,そもそも Python 自体に慣れていない場合は理解度確認も兼ねて,先に「Python 3 エンジニア認定基礎試験」を受験すると良さそう.
受験結果 📊
僕自身の受験結果としては「900点(1000点満点)」だった.4問も間違えてしまった!楽勝だと思っていた「Python と環境」を間違えてしまったのは逆に笑ってしまった😇逆に「数学の基礎」や「ライブラリによる分析実践」は自信を持って回答できてほぼ満点だったため,結果としては満足している!なお,時間配分としては「1周目 : 30分」と「2周目 : 20分」で,十分に見直しもできたため,少し時間を残して退出した.特に計算用紙などは配布されないため,各種計算は頭で考える必要がある点は注意が必要かも!
主教材 : Python によるあたらしいデータ分析の教科書 📊
本試験は主教材として「Python によるあたらしいデータ分析の教科書」が指定されていて,本書の構成通りに出題されるため,基本的に本書をベースに勉強をしていく形になる.とは言え,教科書ではなく「主教材」なので,本試験を受験しないとしても,機械学習や機械学習に関連する Python ライブラリに興味があれば「Python によるあたらしいデータ分析の教科書」を読んでみると良いと思う.具体例や図解やコードサンプルもあり,専門用語も多くなく,非常に読みやすく書かれている.目次も載せておくけど出題範囲と同じで,例えば「第5章」など,試験には出題されない範囲の内容も載っている.
- 第1章「データ分析エンジニアの役割」
- 1.1 データ分析の世界
- 1.2 機械学習の位置づけと流れ
- 1.3 データ分析に使う主なパッケージ
- 第2章「Pythonと環境」
- 2.1 実行環境構築
- 2.2 Pythonの基礎
- 2.3 Jupyter Notebook
- 第3章「数学の基礎」
- 3.1 数式を読むための基礎知識
- 3.2 線形代数
- 3.3 基礎解析
- 3.4 確率と統計
- 第4章「ライブラリによる分析の実践」
- 4.1 NumPy
- 4.2 pandas
- 4.3 Matplotlib
- 4.4 scikit-learn
- 第5章「応用 : データ収集と加工」
- 5.1 スクレイピング
- 5.2 自然言語の処理
- 5.3 画像データの処理
なお,本書の正誤表は以下に載っている.現在は「5刷」まで出ている.
数学の基礎 📊
数学に関しては「Python によるあたらしいデータ分析の教科書」の内容を細かく整理すると,例えば「ベクトル計算(内積/ユークリッド距離/マンハッタン距離)」や「基礎解析(微分/積分/偏微分)」や「確率」などを理解しておく必要がある.特に勉強をしなくても大丈夫な人もいるだろうし,基本的なところから勉強をし直す必要がある人もいると思う.僕自身は学生時代に学んだはずではあるものの,最近使うことも少なく,パッと計算できないものもあったため,「Python によるあたらしいデータ分析の教科書」を読みつつ,YouTube や Cognicull などを使って勉強をし直した.
ライブラリによる分析実践 (NumPy / Pandas / Matplotlib) 📊
NumPy / Pandas / Matplotlib に関しては,多種多様な関数(パラメータやデフォルトの挙動など)を理解しておく必要があり,出題範囲は多いと思う.無理に暗記をするのではなく,何度も実装をしたり,ドキュメントを読んだり,納得できるまで理解を深めていく必要があると思う.今回は Jupyter Notebook を使って,気になる関数を試した.特に Numpy は「配列計算」や「行列計算」をするため,数学的な基礎知識も必要になる.実際に以下の記事は理解を深めるために書いた.
- NumPy
- Pandas
- Pandas を基礎から学ぶために「Kaggle Courses」の学習コンテンツを受講した - kakakakakku blog
- Jupyter Notebook と Pandas で DataFrame を全て表示するオプション設定 - kakakakakku blog
- Pandas で NaN を操作する : fillna() と interpolate() - kakakakakku blog
- Pandas で相関件数を計算して Seaborn で可視化する - kakakakakku blog
- Pandas の get_dummies() 関数でカテゴリ変数をダミー変数に変換する - kakakakakku blog
- Pandas で時系列データをグループ化して集計できる「Grouper」 - kakakakakku blog
- scikit-learn
また Pandas に関しては「Pandas ライブラリ活用入門」も読んで書評記事を書いた.関連書籍も併読するとより理解が深まる.
ライブラリによる分析実践 (scikit-learn) 📊
scikit-learn に関しては,ライブラリを使う前に「数学的な基礎知識」や「機械学習アルゴリズムの知識」や「機械学習プロセスの知識」も必要になる.「Python によるあたらしいデータ分析の教科書」にはコードやアルゴリズムの図解も載っていてわかりやすいけど,それでも理解しにくいところもあった(実際に僕自身がそう感じた).なお,以下に目次「4.4 scikit-learn」の詳細をまとめる.理解するべき知識の幅広さが伝わると思う.
- 4.4 scikit-learn
- 4.1.1 前処理
- 欠損値への対応
- カテゴリ変数のエンコーディング
- 特徴量の正規化
- 4.1.2 分類
- サポートベクタマシン
- 決定木
- ランダムフォレスト
- 4.1.3 回帰
- 線形回帰
- 4.1.4 次元削減
- 主成分分析
- 4.1.5 モデルの評価
- 混同行列(適合率/再現率/F値/正解率)
- 交差検証
- 4.1.6 ハイパーパラメータの最適化
- グリッドサーチ
- ランダムサーチ
- 4.1.7 クラスタリング
- k-means
- 階層的クラスタリング
- 4.1.1 前処理
そこで今回は「機械学習図鑑」を併読した.数式をあまり使わずに scikit-learn のコードと図解で「機械学習アルゴリズム」を理解できるため,とても役立った.「Python 3 エンジニア認定データ分析試験」を受験する人には併読をおすすめする.
模擬問題(無料)📊
「Python 3 エンジニア認定データ分析試験」には大きく模擬試験が2種類あり「PRIME STUDY」と「DIVE INTO EXAM」から提供されている.無料で何度でも繰り返し受験できるため,理解度確認の意味も兼ねて定期的に受験してみると良いと思う.個人的なアドバイスとしては「全ての選択肢まで細かく理解できるように」しておくと良いと思う.
- PRIME STUDY
- Python 3 エンジニア認定データ分析 模擬試験 第1回
- Python 3 エンジニア認定データ分析 模擬試験 第2回(第1回と選択肢が少し異なる)
- Python 3 エンジニア認定データ分析 模擬試験 第3回(第1回と選択肢が少し異なる)
- DIVE INTO EXAM
- Python3 エンジニア認定データ分析 模擬試験
まとめ 📊
前から気になっていた「Python 3 エンジニア認定データ分析試験」を受験して合格した🎉もともと機械学習領域に詳しくなかったため,本を読んだり,e-Learning を受講したり,Jupyter Notebook を使って何度も繰り返し実装したりして,試験勉強をする過程で知識の幅を広げることができた.特に Python ライブラリ(NumPy / Pandas / Matplotlib / scikit-learn)には詳しくなった.とても良い試験なので,興味がある人は受けてみると良いのではないでしょうか!