見出し画像

Courseraでデータサイエンスのトレーニング を受けたはなし(後半)

こんにちは。「前半」の続きです。ちょっと長くなります。

履修の実際と感想

自分としてはよかったと思います。最後のコース9の課題をやる段階では、データ(ケース数6桁=ウン十万のCSV)のみが目の前にある状態からJupyter Notebook(開発環境)を立ち上げて、

○データフレームにして中身をチェック、
○欠損値処理して基本的な特徴量エンジニアリングを行い、
○視覚化を使いながらデータ探索をして、
○ターゲット変数の偏りを意識しつつDFを訓練・テストデータに分割、
○サポートベクターマシンをはじめ機械学習モデルをいくつか走らせパフォーマンスを比較して、
○最終的には決定木モデルを使って描画、解釈して以上をレポートに

という一通りの流れが、いろいろ参照しつつ独力でできるようにはなっていました。前半に記した知識経験はあるわけですが、分析にPythonは使わずpandas, matplotlib, scikit-learn等の各ライブラリともとんとご縁がないところから、各コースの学習を通じてまあこんな手順だったなと入口から出口までまとめることはできたので、少なくとも自分のニーズにはマッチしたトレーニングだったかと思います。

手元にCSVファイルのみがある状態からはじめ、最終的な出力までつながったコードが手元に残るのは大きいでしょうね。こういうのを自分で試行錯誤して一度作ったことがあると、具体的にいろいろ取り組むときのひな形になり、今後は経験積めば、となりますから。実務経験がない人の場合には、最終課題に取り組むことでポートフォリオが一つできるので、それもいいことかもしれません。

参考になりまた興味深かった点

ハンズオン教材はJupyter NotebookというブラウザベースのPython 開発環境上で動かします。このシステム自体が(IBM Watsonや教育用システムの)クラウド上に準備されているため、自分でローカルの分析環境を構築する必要がありません。教材ノートを走らせ挙動を見て、空欄になっているセルに自分なりのコードを書いて実行結果を確認し(また模範解答と比較し)、やる気があればコードやパラメータをいろいろ自分で書き換えて実験する、ということができます。もともと個人的にPythonのコードはエディタでがっつり書き走らせる(スクリプト言語的に)というような使い方が大半だったのですが、Jupyterで対話しMarkdownを挟みながらながら最後までやる、という使い方にこの機に完全に切り替わりました。データ分析の教え方という点からも、クラウドで完結するこの環境に考えさせられるところがありました。

クラウドのJupyter Notebookを使ってコードをオンライン共有して課題提出だったり、GitHubにレポートとコードを上げてURLを提出だったりと、初学者には経験になることが多いように感じます。学習は積み上げ式で行われ、多くの場合順番にこなし消化できていれば、後の課題もクリアできるようになっていたと思います。はじめに各コースの最終課題をいきなり見るとなかなか骨だなあと感じるのですが、最後にはたいていできるようになっていました。

自動採点のクイズ以外、各コースの最終課題はピアレビュー方式で行われます。自分の課題を提出すると、他の受講生の提出課題を採点基準(ルーブリック)にしたがって評価することが求められ、それを出すと(そのうち)自分の評価も返ってくる、という仕組みです。もちろん厳密な評価という意味ではどうしても限界がありますが、他の受講生の提出結果を見てそこから学ぶこともでき(かなりよいものもあった)、教育上の意義は非常にあるように感じました。なお評価点そのものは私については、ちゃんとしていれば高評価、抜け落ちがあれば減点とおおむね妥当でした。別途コメントにためになることを書いてもらえたときもあり、私もなるべく気づいたことを書くようにしていました。クイズも最終課題も何度でもやれるので点数はいくらでも上げることができ、その意味で点数そのものにはあまり意味がないかもしれません。でも点数を上げようとすれば、必然的に勉強したりクオリティを上げたりすることにはなり、学習という点からはありですね。

最初の方のコースの、座学的な部分でレポートの書き方、あるいはビジネス目標と分析の関係について考えさせるなど、いわば分析・技法遊びに陥らないような単元もあって個人的にそこは好ましく感じました(ただし人によっては興味がなく、退屈に感じたりするのかもしれません)。また自分としては、文法であやふやにしていたところがわかったり、回帰の視覚化や、word cloudの応用的使い方、folium choroplethなど有益なコツがいくつかありました。一方で、SQL、pandas(numpy)、matplotlibなど、もう少しちゃんとやらないとな、と課題もわかりました。

期間と価格

一つのコースは1週間に数時間ずつ進めるとしておおむね3〜4週程度の内容となっていて、それが9コースあります。私は9コース全部でだいたい3週間で通り抜けましたが、個人的に勉強の必要がないところも多く全く参考になりません。一日にどれくらいの時間が割けるかにも大きく依存しますが、経験が浅ければ何ヶ月かはかかるでしょうか。特に後半、コース7以降のデータ視覚化(コース7)、機械学習(コース8)、最終課題(コース9)は、それなりの労力が要りそうです。

なおCouseraのこのコースは月額サブスクリプションモデルです。レートの関係もあるのでしょうが、4千円強/月くらいで、早くすめばすむほど安い、という仕組みです。お試しが1週間無料で、前半のcertificateはその期間内にもらえてしまったのですが、全体だとさすがに1ヶ月分の課金は要りました(後半の負荷が重いということでもあります)。実は、MOOCに対してお金を払うことには多少抵抗感があり、アカウントは持ちつつ使ったことがなかったのですが、料金を払うことで成績評価やピアレビューの仕組みがついてきて理解度が増し、また、修了という目標や期間の目安、課金によるコミットメントがあることから、少し考えを改めました。例えば何か言語を身につけるとなったら、いままでであれば定評ある本を数冊買ってきて、黙々といじりつつ試すという感じでやったかと思います。それに相当するぐらいの金額(例えば2〜3ヶ月分)くらいの支払いでビデオにインタラクティブ教材、課題とその評価がついてくるのなら、学習効果にも見あっているようにも感じました。なお、Couseraの受講料に関しては申請による免除の仕組みもあるようです。実は最後のあたりは本も買って、リファレンスにペラペラめくりながらやったのですが、まあ、これがリファレンスとして機能するくらいには学習できているともいえるのかと思います。

履修中また検討の方へ

IBM の提供するコースなのでベンダー系の知識が多くなってしまうと思う方がいるかもしれませんが、そういうことに限定されることはなく、おおむね一般的なPythonベースのDSのトレーニングになっていると感じました(データベースやCognitiveサービスの事例でIBM Cloudをいじりましたが、それはそれで経験として有益でした)。なお後半コースの課題は、自分ではローカルPCにインストールしたAnaconda上でJupyterを動かしてやっていました。そういうことはしなくてもよいのですが、クラウドアクセスの手間などなく楽かもしれません。

事前知識を必要としないとガイドには書いてありますが、私はそこそこの経験があるのでレベル感はうまく評価できません。ここはお試し期間を超えて課金することを考えている場合には気になるところかと思います。コース1〜3くらいは座学的で、これだけだとその後続くかどうかについて判断しにくいようにも感じます。コース4のPythonプログラミング基礎や、コース6の分析(回帰くらい)を体験してみて(あるいはauditし)、大丈夫かどうか判断するといいようにも思います。コース7(Pythonによるデータ視覚化)以降はそれなりに本格的になります。

なお、Applied DS Specializationだけ取ることを(Pro Cert.ではなく)考えられる方もいるかもしれませんが、最終のcapstoneをこなすには機械学習とscikit-learnのスキルはあったほうがよく(Proだとコース8)、しかしこのspecializationには含まれていないので何かで補完する必要はありそうです。

講座は原則英語です。ビデオに日本語字幕はありませんが、英語字幕付きでテキスト部分も上がっているので、理解はしやすいとは思います。また選択肢を選んだりコードを書くだけではなく、ちょっとしたエッセイや長めの最終レポートなど英語を書く機会も少なからずあります。翻訳システムなど実用的な水準になってきていますので、上手く取り入れるのがよいではないでしょうか。英語とお付き合いした方がデータサイエンスを実践していく上ではよいので、これをよい機会と考えられるかどうかだと思います。

特に後半コースで課題をこなしていく上で、これは難しい、やり方がよくわからない、ということは経験すると思います。検索で探すというのもよいですが、各コースのディスカッションボードに同じ悩みを抱えた人がたくさんいて、ヒントも多く転がっていることがわかります。こういうところを活用できるかどうかもキモのようです。日本の方はあんまり見かけませんでしたが、いろいろな地域の人が熱心にやっているなあと感じるところもありました。


やっぱり長くなりました。「終わりに」でもう一記事書くかもしれません。



この記事が気に入ったらサポートをしてみませんか?