kakakakakku blog

Weekly Tech Blog : Keep on Learning 👍

NumPy / Pandas / Matplotlib / scikit-learn などの理解度確認ができる「Python 3 エンジニア認定データ分析試験」に合格した

先週末に「Python 3 エンジニア認定データ分析試験」を受験して合格した🎉とても良い試験で,特に試験勉強をする過程で知識の幅が広がった.試験の認知度向上のためにも紹介したいと思う.当然ながら試験問題に関しては何も書かず,基本的に公開情報をベースにまとめていく!

www.pythonic-exam.com

試験概要 : 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 エンジニア認定基礎試験」を受験すると良さそう.

kakakakakku.hatenablog.com

受験結果 📊

僕自身の受験結果としては「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刷」まで出ている.

www.shoeisha.co.jp

数学の基礎 📊

数学に関しては「Python によるあたらしいデータ分析の教科書」の内容を細かく整理すると,例えば「ベクトル計算(内積/ユークリッド距離/マンハッタン距離)」「基礎解析(微分/積分/偏微分)」「確率」などを理解しておく必要がある.特に勉強をしなくても大丈夫な人もいるだろうし,基本的なところから勉強をし直す必要がある人もいると思う.僕自身は学生時代に学んだはずではあるものの,最近使うことも少なく,パッと計算できないものもあったため,「Python によるあたらしいデータ分析の教科書」を読みつつ,YouTube や Cognicull などを使って勉強をし直した.

cognicull.com

ライブラリによる分析実践 (NumPy / Pandas / Matplotlib) 📊

NumPy / Pandas / Matplotlib に関しては,多種多様な関数(パラメータやデフォルトの挙動など)を理解しておく必要があり,出題範囲は多いと思う.無理に暗記をするのではなく,何度も実装をしたり,ドキュメントを読んだり,納得できるまで理解を深めていく必要があると思う.今回は Jupyter Notebook を使って,気になる関数を試した.特に Numpy「配列計算」「行列計算」をするため,数学的な基礎知識も必要になる.実際に以下の記事は理解を深めるために書いた.

また Pandas に関しては「Pandas ライブラリ活用入門」も読んで書評記事を書いた.関連書籍も併読するとより理解が深まる.

kakakakakku.hatenablog.com

ライブラリによる分析実践 (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
      • 階層的クラスタリング

そこで今回は「機械学習図鑑」を併読した.数式をあまり使わずに 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)には詳しくなった.とても良い試験なので,興味がある人は受けてみると良いのではないでしょうか!