Python初心者によるPython3エンジニア認定データ分析試験の勉強方法（2020年９月合格）

今回は「[Python3エンジニア認定データ分析試験](https://www.pythonic-exam.com/exam/analyist)」に合格したため、その学習方法を記載します。

#■筆者情報（2020年8月時点）
・インフラエンジニア。
・AWS資格はプロフェッショナルまで取得済み。
・「[G検定](https://www.jdla.org/certificate/general/)」は合格済み（2020年7月4日受験）。
　※詳細は「[★G検定合格者による受験時の心構えについて（2020年7月合格）](https://qiita.com/gomasa/items/f15c3ddcf33caa44852b)」参照。
・プログラミング経験は新人研修のみ。
・Pythonは7月から勉強し始めて8月に「[Python3 エンジニア認定基礎試験](https://www.pythonic-exam.com/exam/basic)」に合格済み(2020年8月1日受験)。
　※詳細は「[Python初心者によるPython3エンジニア認定基礎試験の勉強方法（2020年8月合格）](https://qiita.com/gomasa/items/a0c91cea24f41fd63c1c)」参照。
・今年度の目標は「クラウド」＆「AI」の知識スキル強化。

#■受験動機
ことの始まりは今年度の最初にAWSの専門知識資格を取得しようとしたことでした。

今後業務にも影響しそうなAI関連がよいと思い「[AWS認定機械学習](https://aws.amazon.com/jp/certification/certified-machine-learning-specialty/)」を目標にしたのですが、AWSの知識はあってもAIや機械学習の知識が全くない状況でした。その為、まずはG検定を取得したのですが、その中で機械学習の中での「Python」の重要性を知り「Python3 エンジニア認定基礎試験」を取得。今回の「Python3エンジニア認定データ分析試験」受験となりました。

#■試験内容
試験内容は以下の通りです。

受験費用：一般：10,000円（税抜）

|教材名 |区分　|情報|
|:------|:------|:------|
|[Python 3 エンジニア認定データ分析試験(公式)](https://www.pythonic-exam.com/exam/analyist)|Web(無料)|まずは公式サイトで試験内容を確認しました。この試験の特徴はテスト範囲が「Pythonによるあたらしいデータ分析の教科書」（翔泳社）から出題されることが明確になっている点です。どの章から何問出題されるか、まで明確になっています。例えば5章からは1問も出題されません。<br><br>


#■勉強方法と活用した教材
勉強方法と活用した教材は以下の通りです。

|教材名 |区分　|勉強方法|
|:------|:------|:------|
|【公式テキスト】<br>[Pythonによるあたらしいデータ分析の教科書(公式)](https://www.amazon.co.jp/dp/B07G39T2B7/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)<br>|kindle(有料)|すべての出題がここからされる前提となっている公式テキストです。<br><br>「教科書」と記載されているので、初心者が読んだら解るかと勘違いしそうですが、実際は全く初心者向けの記載はされていません。書籍の最初に「教科書としてデータ分析に必要な必要な情報を提示し、簡潔に説明しています」と記載がありますが、簡潔に説明が記載されすぎて、初心者が読んでも説明不足で理解できないためです。<br><br>内容を理解するためには書籍内のキーワードをネットで調べたり、他の教材で補完する必要があります。「勉強するための本」と言うよりは「テスト範囲を明示するための本」という位置付けだと感じます。<br><br>|
|[【1日で習得】技術者のためのPythonデータ分析](https://www.udemy.com/course/1day_course_of_python_data_analysis_for_engineers/)|Web(有料)|Udemyの講座です。普段は10,800円しますが、3か月1回くらいで実施しているタイムセール期間中は90%近い値引きとなって1,400円くらいで購入可能です。私自身もタイムセールで購入しました。<br><br>動画でAnacondaのインストールやSpyder、Jupyter notobookの使い方、Pythonの基本的な操作方法に触れており、非常に解りやすかった。Numpyより前の章に関しては、「Python3 エンジニア認定基礎試験」を受験する人にもおススメできる内容です。ただし、後の章は「Matplotlib」や「scipy」辺りはいきなり難しくなるので、そこら辺と演習問題は最初は流し見でよいかと思います。<br><br>データ分析試験の試験範囲から考えると「数学の基礎」と「scikit-learn」が不足しているので、そこは他の方法で補う必要があります。<br><br>やはり動画の解りやすさは最高です。<br><br>|
|[予備校のノリで学ぶ](https://www.youtube.com/channel/UCqmWJJolqAgjIdLqK3zD1QQ?sub_confirmation=1)|Web(無料)|「数学の基礎」の部分はWebで調べるより動画で勉強した方が理解しやすいことを「G検定」の学習の中で学びました。「予備校のノリで学ぶ」はその中でも特におすすめの動画になります。もちろん他の講師の方の動画もYoutubeに多数アップされているので、自分が理解しやすい動画を探すことが大事です。<br><br>|
|[■PRIME STUDY模擬試験](https://www.pythonic-exam.com/exam/analyist)|Web(無料)|この問題集がこの試験合格の鍵になります。公式テキストは範囲が広いので、私はこの3回の模擬試験に出てくる内容やキーワードについて、100%理解することを重視しました。私の勉強方法だと公式テキストに掲載されているが、模擬試験にキーワードが出てこない問題は解けないことになりますが、そこは割り切って、模擬問題集に賭けました。<br><br>|

#■PRIME STUDY模擬試験実施内容(参考）
模擬問題集は最初の1回目で徹底的に内容を理解し、その後はひたすら繰り返しました。最後の1週間の勉強は、1日1回、この模擬試験を解く形となりました。以下が実行結果となります。

|模擬試験名 |点数　|合否|実施日|結果|
|:------|:------|:------|:------|:------|
|[第1回 模擬試験](https://study.prime-strategy.co.jp/study/py3an1/)|047.5点|不合格|2020年08月30日|教科書1周終了後。全然解らない状況。全部の問題を完全に理解できるように学習する。|
|[第1回 模擬試験](https://study.prime-strategy.co.jp/study/py3an1/)|100.0点|合格|2020年09月06日|模擬試験内容復習実施後、再受験。|
|[第2回 模擬試験](https://study.prime-strategy.co.jp/study/py3an2/)|080.0点|合格|2020年09月06日|なんとか初回で合格点超える。全部の問題を完全に理解できるように学習する。|
|[第2回 模擬試験](https://study.prime-strategy.co.jp/study/py3an2/)|100.0点|合格|2020年09月06日|模擬試験内容復習実施後、再受験。|
|[第3回 模擬試験](https://study.prime-strategy.co.jp/study/py3an3/)|085.0点|合格|2020年09月06日|初回で合格点超える。全部の問題を完全に理解できるように学習する。|
|[第3回 模擬試験](https://study.prime-strategy.co.jp/study/py3an3/)|100.0点|合格|2020年09月06日|模擬試験内容復習実施後、再受験。|
|[第1回 模擬試験](https://study.prime-strategy.co.jp/study/py3an1/)|100.0点|合格|2020年09月07日|1日1回目標に実施。|
|[第2回 模擬試験](https://study.prime-strategy.co.jp/study/py3an2/)|100.0点|合格|2020年09月08日|1日1回目標に実施。|
|[第3回 模擬試験](https://study.prime-strategy.co.jp/study/py3an3/)|100.0点|合格|2020年09月09日|1日1回目標に実施。|
|[第1回 模擬試験](https://study.prime-strategy.co.jp/study/py3an1/)|100.0点|合格|2020年09月10日|1日1回目標に実施。|
|[第2回 模擬試験](https://study.prime-strategy.co.jp/study/py3an2/)|100.0点|合格|2020年09月11日|1日1回目標に実施。|
|[第3回 模擬試験](https://study.prime-strategy.co.jp/study/py3an3/)|097.5点|合格|2020年09月12日|凡ミスで1問間違える。|


[利用規約](https://study.prime-strategy.co.jp/terms-of-service/)に以下の記載があるので、内容については触れられません。また、メールアドレスに関しては、メール配信されても問題のないアドレスにした方が無難です。

>＜第７条（権利帰属）＞
２．当社によって本ウェブサイトに掲載された情報、写真その他の著作物（以下「著作物等」といいます。）は、当社若しくは著作物等を創作した著作者または著作権者に帰属するものとします。

>３．利用者は、当社著作物について、複製、公衆送信、譲渡、翻案及び翻訳等の著作権を侵害する又は侵害する可能性のある行為を行ってはならないものとします。

>＜第８条（個人情報等の取扱い）＞
２．利用者は、本サービスに広告等が掲載されることおよび広告等が掲載されたメールマガジンが配信されることに同意します。当社は、本サービスまたはメールマガジンに掲載されている広告等によって行われる取引に起因する損害および広告が掲載されたこと自体に起因する損害については一切責任を負いません。

>３．利用者は、当社より採用に関するメールが配信されることに同意します。採用に関連したメール配信に対する基準等に関しましては一切公開いたしません。

#■試験（9月12日受験：合格）

|ポイント|内容|
|:------|:------|
|試験会場|「[OddesseyID＆パスワード](https://cbt.odyssey-com.co.jp/)」と「指定の身分証明書」だけは忘れてはいけません。[OddesseyID＆パスワード]を覚えれないなら、係員に言うと記載する付箋の持ち込みを許可してくれます。私以外の他の受験者も付箋を貰っていました。<br><br>他の試験の際には途中でトイレに行くことも許されたのですが、この試験は体調が悪かろうが外に出たら終了、の前提でした。テストが始まる前にも何度も事前にトイレに行くように促され、逆にそれがプレッシャーになりました。途中で腹が痛くなったら、と緊張しながら受験しました。<br><br>また、今回はPayPalで事前に受験料を支払いしたのですが、私の試験会場では当日に会社宛ての領収書を発行してもらえました。これがないと会社の事務処理が面倒くさいので助かりました。<br><br>|
|所感|問題の内容は規約によって記載できません。40問の問題を解くのに30分くらいで終わりました。ただし、40問中12問程度の答えを悩む状況であり、危なかったです。700点以上で合格のなので28問(28×25点＝700点)は正解する必要があり、間違えることができるギリギリのラインでした。しかしながら、解らないところが暗記系の問題ばかりであり、時間をかけても仕方ないので諦めてテストを終了しました。<br><br>|
|結果|テストが終了した後はアンケート画面に遷移します。アンケートの回答が完了すると合否が表示されます。私は「合格」で、正解率は725点でした。あと2問間違っていたら、不合格になるところでした。久々に薄氷の結果です。<br><br>帰りに「試験結果レポート」の印刷物を渡してくれます。他にレポートが発行される訳ではないので、失くしたら困るレポートです。後日に認定証が郵送されてくるので、一緒に保管しておく必要があります。<br><br>|

#■Python初心者の理想的な勉強方法
私と同じPython初心者を前提としたポイントになります。

##（１）事前に取得した方がよい資格
事前に取得した方がよい資格が2つあります。以下の２つです。この2つを取得できるレベルに達していると、データ分析の資格勉強の理解が早いと思います。

|資格 |理由　|
|:------|:------|
|[G検定](https://www.jdla.org/certificate/general/)|機械学習のことや手法などが学べます。公式テキストには、さらっと回帰・分類、クラスタリングといった用語が出てくるのですが、G検定を取得していたおかげで、すんなり受け理れることができました。<br><br>「[G検定合格者による受験に向けた心構えについて（2020年7月合格）](https://qiita.com/gomasa/items/f15c3ddcf33caa44852b)」に記事を記載しましたが、1か月くらいの学習期間で取得できる資格です。<br><br>|
|[Python 3 エンジニア認定基礎試験](https://www.pythonic-exam.com/exam/basic)|こちらはPython初心者なら必ず通る道かと思います。データ分析の試験はPythonの基本が分かっていることが前提なので、必須と思います。<br><br>「[Python初心者によるPython3エンジニア認定基礎試験の勉強方法（2020年8月合格）](https://qiita.com/gomasa/items/a0c91cea24f41fd63c1c)」に記事を記載しましたが、1か月くらいの学習期間で取得できる資格です。<br><br>|

##（２）公式テキストによる勉強方法
先にも記載した通り「[Pythonによるあたらしいデータ分析の教科書(公式)](https://www.amazon.co.jp/dp/B07G39T2B7/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)」という公式テキストは初心者が最初に勉強するには難しい教材となります。その為、この教材の内容が頭に入るように事前学習するのが効率的だと思います。<br>
私が学習に利用したUdemy「[【1日で習得】技術者のためのPythonデータ分析](https://www.udemy.com/course/1day_course_of_python_data_analysis_for_engineers/)」は非常に有効だったので、おススメしておきます。動画でAnacondaのインストールやSpyder、Jupyter notobookの使い方、Pythonの基本的な操作方法、Numpy等のライブラリの利用方法まで解りやすく教えてくれます。これを学習したあとに公式テキストを読むと、ある程度すんなり理解することができました。学習の効率化・時間短縮にもつながると思います。この事前学習の教材に関しては、個人ごとに合う教材も異なると思いますので、合わない場合は自分に合った教材を探してみてください。<br>
###★「[Udemy](https://www.udemy.com/)」での教材購入のポイント
①「Udemy)」で教材を購入する時は3か月に1度くらいで開催されるタイムセールの際に購入するようにしてください。この教材は普段は10,800円しますが、タイムセールの期間だけ1,400円くらいまで値段が下がります。<br>
②教材の中の「コースの内容」という部分で幾つかの動画がサンプルとして公開されています。この内容を閲覧して、自分に合いそうだと思ったら購入してください。もし、自分に合わなさそうなら、他の教材を探した方がよいかと思います。<br>

##（３）本番試験に向けた準備方法
本番試験に向けた準備方法としては「[■PRIME STUDY模擬試験](https://www.pythonic-exam.com/exam/analyist)」を徹底的に理解するまで実施することが有効だと思います。正解が解るだけでなく、それ以外の選択肢がなぜ間違いなのかを理解するまで勉強することが重要です。

また、勉強するに際して模擬問題に関する補足ですが、模擬問題は全3回すべてが以下の通りの区分になっています。例えば1.データエンジニアの役割に関する問題は必ず1,2となります。この前提が分かっていれば、各模擬問題の内容を比較したり、公式テキストのどこを調べれば記載が載っているか学習を進めやすいかと思います。

|章番号|タイトル|問題数|問題割合|模擬問題の問題番号|
|:------|:------|:------|:------|:------|
|1|データエンジニアの役割|2|5.00%|1,2|
|2.1|実行環境構築|1|2.50%|3|
|2.2|Pythonの基礎|3|7.50%|4,5,6|
|2.3|Jupyter Notebook|1|2.50%|7|
|3.1|数式を読むための基礎知識|1|2.50%|8|
|3.2|線形代数|2|5.00%|9,10|
|3.3|基礎解析|1|2.50%|11|
|3.4|確率と統計|2|5.00%|12,13|
|4.1|NumPy|6|15.00%|14,15,16,17,18,19|
|4.2|pandas|7|17.50%|20,21,22,23,24,25,26|
|4.3|Matplotlib|6|15.00%|27,28,29,30,31,32|
|4.4|scikit-learn|8|20.00%|33,34,35,36,37,38,39,40|
|5|応用: データ収集と加工|0|0.00%||

ただ、私の試験結果に記載した通り、それだけだとギリギリの点数での合格になる可能性があります。私の反省から言うと、関数やメソッド類はEXCELか何かに整理して、ある程度理解した方がよいと思います。覚えている内容が多ければ多いほど、点数が向上し、余裕をもって合格できるようになると思います。<br>

#■「Pythonによるあたらしいデータ分析の教科書(公式)」の補足事項
公式テキストを実施していて気になったことを記載します。

##（１）Anacondaが事前にインストールされている場合の注意点
「2.1　実行環境構築」でPythonをインストールする手順があります。
ただし、Anaondaを既にインストール済みの場合は、インストールする必要はありません。
「Anaconda環境では、pipも利用できますので、こうしたパッケージの追加にpipを利用することは可能です。ただこの場合、稀にcondaコマンドで構築された環境が壊されてしまう可能性があります。」と記載もあり、最悪Anaconda環境が壊れるので、やめておきましょう。
Anacondaのままでも、テスト範囲の4章までの範囲で困ることはありません。

##（２）公式テキストに記載されている構文実行について
kindle版を購入して構文を張り付けてpythonで実行しようとすると、すぐに以下のメッセージが出ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561572/364d2cb9-b3c2-f4b0-2d9a-7a50e1a90fef.png)

しかし手で例文を転記すると膨大な時間がかかります。
ここで見逃してはいけないのが、テキスト内でダウンロードサイトの記載があるサンプルデータです。
ここでダウンロードした「notobooks」というフォルダを「jupyter」の指定フォルダの直下においてあげると、4章の構文が記載済みのページを開くことができます。その為、即実行して動作確認ができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561572/1e830fb3-1187-cedf-cb57-29c03f599477.png)

##（３）「pydotplus」モジュールのインストール方法
「4.4.2 分類」の「●決定木」のところで「pydotplus」というモジュールのインストールが必要になります。Anacondaによるインストール手順の記載が無かったので、記載しておきます。なお、これを実行する前に、「Jupyter」は一度停止しておきましょう。インストール環境後に「Jupyter」を起動すると、「pydotplus」モジュールが利用可能になっています。
①Wincowsの「スタート」ボタン＞Anaconda3(64-bit)＞Anaconda Navigator(anaconda3)を起動する。
②「Environments」を選択する。
③「All」を選択する。
④「Update index」を選択してインデックスを更新する。
※これを一度実施しておかないと「pydotplus」が一覧に表示されない。
⑤「pydotplus」モジュールを選択して「Apply」を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561572/b7e67c66-c6b1-3a10-6d45-92a8c8c4b51c.png)

##（４）scikit-learnのワーニングについて
「scikit-learn」で構文通りに記載してもエラーとなります。
これは一部のクラスが廃止されているため、エラーとなっています。
私も困りましたが[「写経中に遭遇したscikit-learnのワーニングに対応してみた」](https://qiita.com/y_nishimura/items/6d022a25beb21a186d60)というページに対策方法が記載されていて、助かりました。

#■感想
Pythonを利用したNumpy、Pandas、Matplotlib、scikit-learnといったライブラリの具体的な動きが勉強できたことは非常に良かったです。G検定ではライブラリ名は勉強しても、実際にどのような処理をしているかといった具体的な部分は解りませんでした。その疑問がこの資格勉強を通して解消できました。


#■次回に向けて
「G検定」⇒「Python基礎」⇒「Pythonデータ分析」と資格取得を進めてきましたが、次は「[E資格](https://www.jdla.org/certificate/engineer/)」及び「[AWS認定機械学習](https://aws.amazon.com/jp/certification/certified-machine-learning-specialty/)」の取得を目指したいと思います。

この記事がこれから「[Python3エンジニア認定データ分析試験](https://www.pythonic-exam.com/exam/analyist)」を受験される方の参考に少しでもなれば嬉しいです。

以　　上