こんにちは、Pythonエンジニア育成推進協会 顧問理事の寺田です。私は試験の問題策定とコミュニティ連携を行う立場です。
これまで、当協会では、Pythonの基礎を問う「基礎試験」と、その上位試験にあたる「実践試験」、Pythonを利用したデータ分析の基礎知識を問う「データ分析試験」を提供してきましたが、2024年9月18日、4つ目の有料試験となるPython3データ分析実践試験を公開しました。
データ分析実践試験はデータ分析試験の上位試験となりますが、今回はこのデータ分析実践試験についてお話したいと思います。
Python3データ分析実践試験のレベル感は?
当協会ができた当時から、Pythonによるデータ分析は非常に注目を浴びており、2020年に公開したデータ分析試験は、非常に多くの方に受験していただいています。この試験自体はPythonを利用したデータ分析手法に関する入門的な知識を問うものであり、比較的合格率が高い試験となっています。
今回公開したデータ分析実践試験は、基礎試験やデータ分析試験に通っていることを前提に試験問題が作られており、どちらの試験も通るレベルにない方や、データ分析を実践的に扱ったことが無い方にとっては合格へのハードルは非常に高いものと思われます。
そのため、普段、Pythonによるデータ分析を扱っていない人が書籍のみで学習したとしても、書籍にある手法を利用するシチュエーションやその意味が分からないものが多いと思いますので、ちょっと合格するのは厳しいのではと思います。
一方、実際に日々の業務等でPythonをデータ分析で活用している方からすると、少し考えればわかるような内容になっていると思いますし、たとえ苦手分野があったとしても少しの学習で理解できるという内容になっており、合格できればデータ分析ができるという証明になるようなレベル感になっています。
ちなみに、もう一つ実践試験と名付けられたものがありますが、そちらはPythonの実装や仕様をより理解し、詳しいかを問われているもので、データ分析分野とは問われる内容が異なりますので、こちらに通っているかはデータ分析実践試験の合否の指標には影響ありません。
Pythonによるデータ分析を実践的にできることを証明したいのであればデータ分析実践試験を、Pythonの仕様や実装に詳しいことを証明したいのであれば実践試験というように、自身の得意分野ややりたい方向性によって、どちらか、ないしは、両方受けてもらえればというように考えています。
データ分析実践試験の出題範囲について
データ分析試験実践の主教材はインプレス社から発刊している「Pythonデータ分析 実践ハンドブック 実務で使えるデータ加工のテクニック」になります。
基本的に、我々の試験は主教材を決めて出題を決めていますので、まず一つ目のポイントとしては、本を買って通読してもらうことにあります。この一冊で、Pythonによるデータ分析のすべてを学べるようなものではありませんが、実務でやっている人にとっては、ある程度主教材を読めば理解できますし、新しい知識を得ることができると思います。
当然、この分野に明るくない方がこの本を手に取っても難しい内容だと思います。データ分析試験の上位試験になるようなレベルのものである事を認識していただければと思います。
具体的な出題範囲や出題比率については、以下のページに詳細が記載されていますので、ご確認ください。
https://www.pythonic-exam.com/archives/news/cpda-3
簡単にポイントについてお話しておくと、書籍自体は11章ありますが、出題範囲となるのは最終章を除いた1~10章です。試験ではこれを3つに分割して考えて作られています。
1.基礎パート(1~3章/40問中9問出題)
1章のデータ加工概論では、データ分析とはどんなものですかという概論と、Pythonで―データ分析をやるときによく利用されるライブラリの種類です。2章は、データの種類や、読み込みです。このあたりに関しては基礎的な部分になりますので、この主教材を読んで頂いて大枠を捉えていただければ、理解できるのではと思います。
特にデータの種類と読み込みのところでは、データ分析で使われる様々なデータ形式(例:CSVやExcel、JSON)の取り扱い方法や、Pythonのオブジェクトやpandasのデータフレームなどに加工していく内容になっており、データ分析を行うための事前準備として必要な知識になっています。こういうデータが来た時は、最初にこういった処理をしておくと次のデータ処理やデータ分析をするときにスムーズに繋げられるようになるという初歩の内容です。
例えば、音声データを使ったことがない方の場合、音声データの扱い方はちょっと分かりにくい分野だと思いますが、この教科書を見て、概要だけでも掴んでいただければ良いと思います。また、リレーショナルデータベース(RDB)の項目もありますので、普段使わない方は、多少でもRDBの扱い、特に 読み込みの部分について理解を深めておく必要があるかなと思います。
確実に学習すれば答えられると思いますので、しっかり押さえておきましょう。
2.メインパート(3~5章)
とても重要なパートで、表形式データの加工、数値の扱い、データの評価の部分になります。
データ分析をする上で、二次元の表になっているデータを扱うことは圧倒的に多く、データを二次元の形にまとめられ、処理できるようになるということは非常に重要です。それをこの章で理解していただきたいと思います。
3章は、ちょっと突っ込んだpandasの使い方で、データの連結や結合、変形、カテゴリデータ、グループ化、階層化をするというのが教材に出ている部分です。それなりに理解を深め、実際にやっていかないと、覚えにくく、正解が導き出しにくいのかなという部分ではあります。
4章はNumPyの中身の話になりますが、数値データがどのようになっているのかを理解する内容です。pandasだけを使っていると思っていても、実は裏側はNumPyになっていますので、データ構造がどうなっているのか、計算方法はどうなっているかを知っておくことは、データ分析の世界において重要なポイントとなります。
数値データを得意にしている方にとっては簡単ですが、やったことが無い人はデータ型などで悩むかもしれません。
次に5章はデータの評価ですが、ここは全体の20%が出題範囲となっており、1番出題数が多い章です。
データの評価ができないと、データ分析はできたことになりません。データの評価は非常に難しい分野で、様々な角度から勉強する必要があります。その中の基本的なものをここでは取り扱っています。
まず定量的評価では、数値的に定量的に評価できる、統計量として評価ができるという部分であれば、何かしらの統計的な分析、または、要約統計と言われているもので、様々な手法があります。
もう1つが定性的評価です。定量的に数値として評価ができない場合、ここで最初に扱っているのは、グラフなどによる可視化によって、どのように定性的に評価をしていくのかということになります。
他にも5章では分布の確認や外れ値、異常値、欠損値、重複している値の扱いをどう処理するかなどの概念的なことや、実際にコードでどのように処理をするのかを理解できる必要があります。
データの評価にしても、データ分析を常日頃からやってると、いろんな場面でこうやるしかないかと妥協することなどがあると思いますが、これらも実践的な課題という事で問題数を増やし、しっかり理解してもらうことを考えて問題を作りました。
3.ラストパート(6~10章)
各個別データの取り扱いの章です。
ここで出てくる各種データは幅広く、それぞれが特徴的で、よく使っているものもあれば、使っていないものも出てくると思います。少なくともそれぞれの概要を知った上で受けてほしいと思っています。本来であれば、6~10章に出てくるデータはひとつずつでも1冊の本ができてしまうようなものです。
幅広くいろんなデータの処理の仕方を学ぶのは難しいものではあると思いますが、今回のデータ分析実践試験としては、全般的に実践できる、また、ここからさらに専門書によって深堀すれば、より専門的なところに入っていけるようになるだろうと考えた上で、幅広い形の問題を出題するという形をとっています。
問われるデータの形と、学びポイント
ここまでデータ分析実践試験の概要をお話してきました。
ここからは、このパートで実際に取り扱われているデータの形について簡単にお話したいと思います。
6章)時系列データ :ログ分析や異常分析をする際などによく利用されるデータです。
7章)テキストデータ:アンケートなどの文章を取り扱います。基本的な部分が出題されます。
8章)画像データ :いろんな画像を分析する手法です。
9章)グラフデータ :グラフ構造自体の理解と、グラフ構造を取り扱う「Networkx」というライブラリの使い方を問います。他にpyvisというライブラリもありますが、今回はそこまで問いません。世の中の結び付き(例:SNSのフォロワー関係図や乗り換えルート図など)や、それ以外の様々なデータを処理していく上で、グラフ構造による可視化が適しているケースは多々あります。触れたことが無い人にとっては難しいかもしれません。
10章)地理空間データ:GISデータと言われるものです。表形式というよりは、もう1歩進んだデータ形式になっています。地理空間データというものの取り扱いの基本的なところや使いこなす方法を学び、実際にできるようになって欲しいと考えている部分です。
上記で挙げたものには、苦手なものや、やったことがないものも出てくるかと思いますが、出題範囲は薄く、広くというかたちにしていますので、一通りの学習をして臨んでほしいと考えていますし、これらが取り扱えるようになってくると、データ分析者としての幅も広がります。どんなデータが来ても、データ処理する方法が身についいていれば、状況に応じて、自分の得意な手法を選べたり、データ処理の効率化を考えられるようになったりしますので、一通り、勉強していただいて、試験に臨んでほしいと思います
最後に
Python3エンジニア認定データ分析実践試験の実施にあたっては、事前にベータ試験やアルファ試験を実施しており、受験者からは様々な反響やフィードバックを得て、改題したり、問題の難易度を調整したりということを重ねてきました。
ちなみにベータ試験やアルファ試験を受験された方の結果としては、やはり、実践的にやられてる方においては、十分に合格できるほどのいい得点を取れていましたし、実践してない方は、問題の意味すらわからないというようなフィードバックが出ていました。
そうしたレベル感になりますので、過去の試験と比較しても、やはりちょっと難しくなっているかもしれませんが、挑戦しがいのある試験になっていると思いますし、合格できれば、自信を持ってこれだけの実績があるのだということを、世の中に示しやすくなるのではないかと考えていますので、ぜひ挑戦をしてほしいなという風に思っています。