データサイエンス実践A (2022-1T)
ホームページ: https://www.ces-alpha.org/hp/DSA2022/
on-line
|
|
|
データサイエンス実践A授業担当:熊野 英和 (kumano@create.niigata-u.ac.jp) 実施方法:Zoom(オンライン) (月・木3限) 第1回レポートの 解答例 を掲載しました。(2022/4/30)
Zoom情報:https://zoom.us/j/91736784474 ミーティングID: 917 3678 4474 / パスコード: 258703 出席は、CESのレポート機能によるipynbファイルのアップロードで確認します。在籍番号と氏名のチャット入力は無効です。
第3回課題解答例(問1)はこちら。New! (2022/6/6 掲載) 課題、お疲れさまでした。 皆さんよくできていました。 ただ、複数条件の処理に手こずっていた人が多いようでした。
受講者の皆様へのお願い本講義の独自アンケートを作成しました。 こちらから、是非ご回答ください【回答期限:6/5 (Sun.)】。
DB実践Bを履修する学生へ DS実践Bの登録ページはこちら。 (認証コード:834002)
グラフ描画のための参考サイト (old versionと出るサイトもあるが、こちらの方が見やすいです。)
なお、可視化ツールであるmatplotlibには、pyplotスタイルと、オブジェクト指向スタイルがあります(正直、混乱の元となっていると思います)。ネットで検索する際には、どちらのスタイルかをよく確認して自分のプログラミングの参考にするようにして下さい。ざっくり言えば、plt.*** で何でもやってしまうのがpyplotスタイル、ax.*** と出てくるのがオブジェクト指向スタイルです。最近では、どうもオブジェクト指向スタイルで書かれた資料が多くなりつつある気がします。 ですが、この講義では、初心者により分かりやすいと思われる pyplotスタイルを採用します。 本格的に使いこなしたい場合は、オブジェクト指向スタイルも併せて学ぶといいでしょう。その場合は、こちらの資料を一読されることをお勧めします。
データ処理&データ可視化関連資料(CQ出版 Interface)
講義時使用データ このファイル "dsa_data1.xlsx" をダウンロードし、jupyter notebook で cd . として表示されるフォルダの中に入れること。) 時系列データの例:Dow Historical Data (Excel) 第15講用データ (Excel)
データの整形(Word使用) 男子高校生100人の体重のデータ (kg) (引用:データサイエンス概説 / 基礎 テキスト p.5) アポストロフィ「’」入力方法とWord自動修正機能の停止手順
講義資料 (zoom / notebook) 置き場(Zoomファイルは保持期限7日です。早めにDL下さい。自習専用。第三者へのファイル提供禁止。)
レポート課題 第1回(締切:4/29日(金・祝)23:59) (必答問題4問)
(発展:任意課題2問)
解答例(2022/4/30 掲載)
第2回(締切:5月18日(水) 23:59)
何れの問題も、グラフとしての体裁(グラフタイトル、軸名など)を整えること。 マーカーなどのグラフデザインについては、自由に遊んでよい(むしろ遊んでください)。 解答例(2022/5/19 掲載 DL可) 解答例(2022/5/19 掲載 Preview)
第3回(締切:6月5日 23:59) 以下の2つのデータ処理を、別々のnotebookに分けて行え。提出は、それぞれのipynbファイルを対応する場所にUPすること。 問1東京の不動産データ(Excelファイル)を、このリンクから直接notebookに読み込み、以下の情報を取得せよ。
問2 e-Stat 【政府統計の総合窓口】の「時系列表」のデータの中で好きなもの(但し、講義で説明したガソリン販売量以外)を選び、「全国」、「年」のデータを「一括ダウンロード」ボタンのクリックによりDLした上で、そのファイルをnotebookで読み込み、47都道府県の年推移についてのヒートマップを作成せよ。生データ(規格化処理しないもの)、および初年度で規格化したものの2つを作成すること。但し、ダウンロードしたcsvファイルは適宜加工(データの整形やcsvからExcel形式への変換は可、演算は一切不可)してからnotebookに読み込んで構わない。 (難易度高いデータ形式だが)Pandasで整形できるようならそれももちろん可。 ただし、データによってはどういう訳か都道府県でデータの質が違うもの(例えばある県は月単位、ある県は年単位など)があるので、そのようなデータは使わないこと。 問1解答例はこちら。New! Q&AQ. mathがインストールされておらず、importできません。 A. Anaconda Prompt の黒い画面で、jupyter notebook と打つ前に、pip install python-math と打ってmath をインストールしてみて下さい。 一般に、pypi と インストールしたいライブラリで検索すると対応する pypi.org のサイトに飛びますので、そこのインストール用のコマンドを実行します。 (本当は conda と pip を混ぜるな、という議論がありますが、この講義の範囲内では気にしなくていいです)
Q. jupyter notebookのmarkdown部分での改行の仕方が分かりません。 A. 改行したい部分で、半角スペースを2つ入れてから改行して下さい。
Q. 授業中に理解が追いつくことができませんでしたので、動画を見直して復習いたします。 その日の課題提出を延長するなどの予定はありますか? A. 各回のレポートは出席確認の意味合いが強いので、特に延長は考えていません。追いつけない場合は、是非その場で言って頂けると。。。。
Q. plt.savefigでは画像の保存先は指定できないのでしょうか? A. フルパスで指定すればどこでも保存できます。例えば僕の環境なら、plt.savefig('c:/users/desktop/temp.png') (オプションは省略してます)でデスクトップに ’temp.png' という名前で画像ファイルを保存できます。
Q. 何かの拍子に意図せず必要な入力BOXが消えてしまいました。復活(UnDo)させることはできますか? A. Jupyter notebookのメニューの Edit から、上から7番目の「Undo Delete Cells」を実行ください。数回分の削除情報が残っているので、数回分の削除が復活可能です。
この講義について
データサイエンスのココロこちらをお読みください。ビジネス寄りに書かれていますが、そのココロは誰にでも(特に創生学部生には)当てはまります。 「見つける」、「解く」、「使う」をマネージできるように!
Win / Mac ショートカットキーリストたとえばこちらを参照してください。 効率的にプログラミングをする上で、是非使いこなしてほしいところです。 この講義とは直接関連しませんが、Excel等ではこれに加えてCtrl +Y もよく使います。あとフラッシュフィルは超便利。
Jupyter notebookの使い方たとえばこちらを参照してください。 第2講終了時のファイル提出時点での進捗状況
CESアカウントの取得&本授業登録(各自初回講義までに実施)アカウントの作成方法 に従ってCESシステムのアカウント取得後、https://www.ces-alpha.org/course/register/DSA2022/ にアクセスしてこの講義を登録して下さい。 認証コードは、 903288 です。
本講義受講の心得創生学部の学生のスペクトルは非常に広く、共通に必要なスキルを求めるのは容易ではありません。が、基本的なデータの整理や可視化は、データを扱う上で何をやるにしても必要な基礎事項です。従って、この講義ではここに着目し、データの可視化手法を中心に学びます。様々なデータを扱い、その整理や可視化を実装できることを目指します。そこで、学習する上でとても大切になってくるのが、「自分で考えて手を動かしながら学ぶこと」です。 この講義の中で、実際に変数の値を変えてみたり、コードを実行して、結果を見てください。基本、上から順に実行するだけで良いのですが、ただコードを眺めているだけでは、データ分析やコーディングのスキルは身につきません。コードをすぐに実行できる環境があるという点が、この講義の大きな特徴です。実際にああでもないこうでもないと試行錯誤することでしか、コーディングスキルは身につきません。この講義で使用するJupyter notebookは、1行1行実行結果を確かめながら進めることができるのが大きな特徴です。あやふやなままで次に進むことなく、何が起こっているのかをきちんと考え、頭の中のイメージと合うかどうかを確認しながら、コーディングをしてみてください。 さらに、色々と動かしている中で「ここの数字や記号を変えたり、別のオプションを使ったらどうなるのだろう」など、疑問やアイデアが浮かんだら、是非実際に試してみてください。プログラミングのよいところは、誰にも迷惑をかけずに自由な発想で試行錯誤できる点です。時間がかかるかもしれません。詰まる時があるかもしれません。英語でエラーが返ってくることもしょっちゅうですがが、そういうときはめげずにエラーメッセージを解読しながら、まずは自分で調べて原因を探ることも大事です。 この講義の中で、わからない用語やプログラムコードなどが出てくることもあると思います。その場合は、プログラミング言語(ここではpython)の正規ドキュメントや検索エンジンを積極的に使って調べていきましょう。はじめは調べたいものがすぐに見つからず、時間がかかるかもしれませんが、慣れてくれば調べるコツも分かってきます。この「調べる力」も、何かを成し遂げる、あるいは形にしていく上ではとても重要です。 また、この講義の内容を全て覚えようなどと思わないでください。あくまでこの講義は、可視化を主な軸として、プログラミングでどのようなことができるのかを学んでもらうためのものであって、逐一コマンドや構文、ライブラリ、細かいオプション機能などを覚えてもらうことを想定していません。学んだばかりの処理は、すぐに使いこなせないかもしれませんが、必要なものは使う頻度も多くなって、そのうち手が覚えて、自然に使えるようになります。実際、現場で働いている多くのエンジニアは、わからないことがある場合は、ネットで探したり、掲示板で聞いたりして、仕事をしています。熊野ももちろんそうです。ですから、初学者の皆さんは、この講義ではプログラミングの基本的な考え方を知り、見よう見まねで手を動かしながらいろいろなプログラムの書き方に触れて、必要な時に振り返って使えれば十分です。後々必要に迫られた時のプログラミングの敷居を下げる、これがこの講義の最大の狙いです。 なにより、自分で考えてコーディングしたものが想定通りに動いて、結果が返ってくるというのはとても楽しいものです。もちろん、泥臭い単純作業もありますが、それを自動化したり、うまく処理できるスクリプトができた時も気分がいいものです。クリエティブな要素も多いです。この講義を通じ、ぜひ皆さんにもその感覚を味わってもらいたいと思います。(東京大学松尾研作成資料を元に一部改変) 例えばこんなこと、できます!
主教材:ゼロからのPython入門講座 こちらの資料(CQ出版 Interface)もよくまとまっています。
主教材が終わった人向けの推奨サイトリスト好みで選択ください。 自分で見つけた類似のサイトも可です。
参考サイト
CESでの授業登録とレポート提出CESのアカウントを持ってない場合、CESの使用手引を参考して作成してください。使用手引
|