Pythonと!

プログラミングド素人の勉強日記です。

Python3エンジニア認定データ分析試験の受験記録

データ分析試験に900/1000で無事合格したので、受験記録を兼ねてブログに書いてみます。

受験前の知識

  • CourseraのMachine Learning講座を修了して、KaggleやSIGNATEのテーブルコンペにちょっと参加したことがある。
  • 試験範囲の知識はだいたいある。
  • コンペでよく使うPandas, Scikit-learnはほぼ問題なし。numpyとMatplotlibは知らないメソッドがちょっとある。

学習方法

主教材で指定されている「Pythonによるあたらしいデータ分析の教科書」と模試で2週間ほど(1日1時間ちょっと)勉強しました。

study.prime-strategy.co.jp

1週目

とりあえず、3~4日かけてテキストを1週流し読みしました。 テキストを読み終えたら模試の第1回目を受けてみました。この時の得点率はたしか50%くらいでした。

2週目

2週目に入ってからは、模試で間違えたところを中心にノートにまとめて、一通り覚えたところで模試の第2回目を受けてみました。この時点では75%くらい取れていました。 Matplotlib知識があやふやだなと思ったので、テキストを見ながらJupyterで一通り実装しました(2~3時間くらい)。 あとは、本番までひたすら模試の間違えたところを覚えていきました。

本番

本番のテストは模試よりも簡単で、30分弱で解き終わりました。 その場で合否とセクションごとの正解率がわかるのですが、何を間違えたのかまではわからないのでモヤモヤします・・・。

受けた感想

正直、簡単すぎて少し拍子抜けしましたが、Matplotlibのオブジェクト指向の実装を学べた点は個人的にはよかったかなと思います。 テキストを一通り理解して、模試で合格点以上を安定的に取れれば何とかなる!

Google ColabolatoryとGoogle Driveでデータをやり取りする方法

Google ColabolatoryとGoogle Driveのデータ連携について、Pandasのread_csvとto_csvを例に書いてみます。

  • 事前準備(Googleドライブのマウント)
from google.colab import drive
drive.mount('/content/drive')
import pandas as pd

df = pd.read_csv('/content/drive/My Drive/hoge/fuga.csv')
import pandas as pd

base_dir = '/content/drive/My Drive/hoge/'
file_name = 'fuga.csv'
file_path = base_dir + file_name
df.to_csv(file_path)

'RandomOverSampler' object has no attribute '_validate_data'

imbalanced-learnでfit_resampleしたところ、「'RandomOverSampler' object has no attribute '_validate_data'」のエラーが出てしまいました。
調べたところscikit-learnのバージョンが古いことが原因のようで、0.23.0以上に上げたところエラーが出なくなりました。
めでたし!

PandasのデータフレームでIDを組み合わせて一意のキーを作成する。

key1_key2の形になるcombine_key列を作成する方法。
key1とkey2はint型を想定しています。

df['combine_key'] = df.apply(lambda x: '{}_{}'.format(x['key1'], x['key2']), axis=1)

参考にしたサイト
[python][DataFrame]数字を結合して文字列を作る - Qiita

ifとforを混ぜたリスト内包表記の書き方

例題

columns = ['I am Sam', 'She is Erica', 'He is Eric']
list = []
for c in columns:
    if 'Sam' in c:
        list.append(c)

print(list)
# ['I am Sam']

これを一行で書いてみると、以下のようになる。

list = [c for c in columns if 'Sam' in c]

Google Colaboratoryの90分セッション対策

Google Colaboratoryの90分セッション対策のメモです。

1. ブラウザの拡張機能で自動更新系のアドオンを入れておく

2. ノートブックのメニューから、ランタイム > ランタイムのタイプ変更 > 「このノートブックを保存する際にコードセルの出力を除外する」にチェックを入れる

3. 最初のリロード時だけ手動で再読み込みする