Cou氏の徒然日記

ほのぼの日記ブログです。

Python 3 エンジニア認定データ分析試験

Python 3 エンジニア認定データ分析試験

先月、Python 3 エンジニア基礎試験』を受けました。

coublood.hatenablog.com

Python自己啓発は継続で、色々とやっていますが、次は「データ分析試験」なるものが行けそうなので、そちらを受けてきました。

 


Python3エンジニア認定データ分析試験」は…

  • 線形代数
  • 確率と統計
  • Pythonのパッケージの知識(NumPy, pandas, Matplotlib, scikit-learnなど)

とあたりが主な内容のようで、特にNumPy」「pandas」「Matplitlibあたりは、便利なのでちょうど良さそうです。

 

■ NumPyパッケージ

ということで、どんなパッケージかをGeminiに聞いてみると…

★Gemini回答★

NumPyとは?数値計算の強力なツール

NumPy (Numerical Pythonの略) は、Python数値計算を行うための強力なライブラリです。特に、多次元配列 を効率的に扱うことに特化しており、科学技術計算やデータ分析において広く利用されています。

NumPyの主な特徴

  • 多次元配列: Pythonのリストよりも高速で、大規模な数値データを効率的に扱えます。
  • ベクトル化された演算: 配列全体に対して一度に演算を行うことができるため、forループによる処理よりも高速です。
  • 豊富な数学関数: 三角関数、指数関数、統計関数など、様々な数学関数が用意されています。
  • 線形代数: 行列の積、逆行列固有値問題などを効率的に計算できます。
  • 乱数生成: 様々な種類の乱数を生成できます。

 

■ pandasパッケージ

ということで、どんなパッケージかをGeminiに聞いてみると…

★Gemini回答★

Pythonのpandasとは?データ分析の強力なツール

pandas は、Pythonでデータ分析を行う際に欠かせない、強力なライブラリです。Excelのような表形式のデータを効率的に操作できることが特徴で、データサイエンティストやデータアナリストの間で広く利用されています。

pandasの主な特徴

  • DataFrame: 表形式のデータを扱うための主要なデータ構造です。Excelのシートのようなイメージで、行と列から構成されています。
  • Series: 1次元配列のようなデータ構造で、DataFrameの列を構成する要素です。
  • データの読み込みと書き出し: CSVExcelSQLデータベースなど、さまざまな形式のデータを簡単に読み込むことができます。また、結果をCSVExcelファイルに出力することも可能です。
  • データの操作: データの抽出、ソート、集計、結合など、データ分析に必要なさまざまな操作を簡単に行えます。
  • 欠損値の処理: データに含まれる欠損値を検出し、適切に処理することができます。
  • 時系列データの処理: 日付や時刻をインデックスとした時系列データを効率的に扱うことができます。

 

■ Matplotlibパッケージ

ということで、どんなパッケージかをGeminiに聞いてみると…

★Gemini回答★

Matplotlib:Pythonでグラフを描くための強力なツール

Matplotlib は、Pythonでグラフや図を作成するための、最も一般的なライブラリの一つです。科学的なデータの可視化から、シンプルなグラフの作成まで、幅広い用途に対応できます。

Matplotlibの主な特徴

  • 多様なグラフの種類: 折れ線グラフ、散布図、ヒストグラム、棒グラフ、パイチャートなど、様々な種類のグラフを作成できます。
  • カスタマイズ性: グラフのタイトル、軸ラベル、線の種類、色など、細かな部分までカスタマイズできます。
  • 出版品質のグラフ: 学術論文やレポートに掲載できるような、高品質なグラフを作成できます。
  • インタラクティブなグラフ: ユーザーがグラフを操作できるようなインタラクティブなグラフを作成することも可能です。

グラフを描画したりするには、かなり便利で、前にも少し使ったことがあります。

これは使いこなせて損はないので、使っていきたいパッケージです。

 

■ scikit-learnパッケージ

ということで、どんなパッケージかをGeminiに聞いてみると…

★Gemini回答★

scikit-learnとは?Python機械学習をもっと身近に

scikit-learn は、Python機械学習を行うための、非常に人気のあるライブラリです。その豊富なアルゴリズムと使いやすいインターフェースにより、データサイエンティストや機械学習エンジニアから広く支持されています。

scikit-learnの特徴

  • 多様なアルゴリズム: 回帰分析、分類、クラスタリング、次元削減など、幅広い機械学習アルゴリズムが実装されています。
  • 統一されたインターフェース: 異なるアルゴリズムでも、基本的に同じような形で利用できるため、学習コストが低いのが特徴です。
  • モジュール性:アルゴリズムが独立したモジュールとして提供されているため、必要な機能だけを組み合わせて利用できます。
  • 拡張性: NumPyやSciPyといった数値計算ライブラリと連携し、高度なカスタマイズも可能です。

scikit-learnでできること

  • 教師あり学習:
    • 回帰分析:数値の予測(例:住宅価格の予測)
    • 分類:カテゴリの予測(例:スパムメールの分類)
  • 教師なし学習:
    • クラスタリング:データを似たもの同士のグループに分割(例:顧客セグメンテーション)
    • 次元削減:高次元のデータを低次元に圧縮(例:可視化)
  • モデル選択:
    • クロスバリデーション:モデルの汎化性能を評価
    • グリッドサーチ:最適なハイパーパラメータを探索

ここまでは流石に手を出せていませんが、統計知識があれば、どういうことをやればいいか、どういうことをやっているか、といったことはわかります。

今後、やっていきたいところです。

 

■ 試験問題数・時間・合格ライン

Python3エンジニアデータ分析試験はこんな感じ。

Python 3 エンジニア認定データ分析試験 ■  
  • 問題数 : 40問
  • 時間 : 60分
  • 合格基準 : 7割正解

問題数、時間、合格基準は、「基礎試験」と全く同じです。

 

■ 試験受験

事前準備は「基礎試験」と同じ。

パッケージを導入して色々とやってみるのがよいですね。

直前で色々と仕事が立て込んだり、社のイベントがあったりと、最後の追い込みが微妙な感じになってしまいましたのが、ちょっと心残りでしたが…

 

試験会場では、試験準備の際に、試験官の人がなかなかログインできず、5分くらい試験開始が遅れました。

確かに、前に「基礎試験」を受けた時の試験官の人と違っていて、サブの人なのかわからないですが、ユーザ情報をあらかじめ押さえていなかったんでしょうね。

 

そして試験ですが、「基礎試験」は問題を解くのに45分くらい使い、見直しでほぼ時間いっぱいまで使いましたが、「データ分析試験」は数学の問題など、さほど考えなくても解ける問題がそこそこあったことで、30分くらいで一周できました。

やはりこの分野は数学的知識が重要ですね。

 

結果は…

 

 

無事に合格していました。

 

正直、数学部分は簡単でしたからね。確率・統計の知識や、線形代数微分の知識があれば、全然簡単です。

基本的なところとしては…

  • (mn列)行列 ✕ (ns列)行列 = (ms列)行列 になる
  • 標準正規分布は、平均 0、分散 1
  •  \displaystyle (e^{x})' = e^{x}

このあたりは、大学時代も死ぬほどやっていますし、ここ数年も統計について色々と勉強していますからね。

 

正直、数学を勉強していて、あとは各パッケージの基礎知識さえ抑えておけば、7割は余裕で行けそうな気がします。