2020-10-25

PyCon JP 2020 チュートリアル振り返り【データ分析編】

はじめに

みなさん、こんにちは。PyCon JP 2020コンテンツチーム、チュートリアル担当のあっきーです。2020年8月30日に開催された「オープンデータを使って、Pythonでデータ分析」の振り返りブログになります。当日のチュートリアルの概要を記載していますので、当日参加頂けなかった方も雰囲気を感じて頂けると思います(´∀`*)

チュートリアルの詳細な情報は下記を参照ください
オープンデータを使って、Pythonでデータ分析

アーカイブ動画はこちらです
PyCon JP 2020 Tutorial データ分析編

イントロダクション

今回のチュートリアルでは下記コンテンツを扱います。
  • 貿易収支データの分析
  • 家計調査データの分析
  • 地理データの可視化

データ分析の手法として、機械学習やデータの可視化について丁寧に解説頂きました。
今回のコンテンツは全てGitHub上のコンテンツとして作成されているので、ハンズオン後の復習にも利用できるように配慮頂いております。また、ハンズオンで扱いきれなかったライブラリの基礎的な使い方についての解説資料も同梱されています。自己学習に最適な内容となってますので、ぜひぜひチェックしてみてください。



貿易収支データの分析

資料はこちらです。

扱う内容は以下になります。
  • 日本の貿易収支データの取得(command)
  • データの読み込み(sqlite3 / pandas)
  • データの整形(pandas) 
  • データの可視化(plotly/dash)
  • 国別のクラスタリング(sklearn)

個人的にはあまり.dbファイルを扱ったことがなかったので、pandasからクエリの実行ができることは初めて知りました。また、欠損値に対してmap関数で処理する部分も非常に勉強になりました。
可視化部分についてはPlotly ExpressもDashも使ったことがなかったので基本的な可視化の流れを知ることができたのは良かったです。ツリーマップはなかなか興味深いなーと思いました。

図:ツリーマップのグラフ


また、Dashを使うと簡単に可視化Webアプリケーションが作成できる部分も魅力的だなと感じました。

図:作成したDashアプリケーション

データを取得し、データを読み込み、データを整形し、データを可視化する、というデータ分析の基本的な流れを一通り学べる充実した内容だと思います。

教師なし学習:クラスタリング

データ分析に機械学習の手法を取り入れることで、より踏み込んだ分析ができるようになります。今回は教師なし学習のクラスタリングについて解説頂きました。クラスタリング結果を見ると、リーマンショック後に輸出量が回復している国とあまり回復していない国で分かれていることに気づけて、なるほどなーと思いました。


図:輸出量データを5クラスターに分類した場合

家計調査データの分析

資料はこちらです。
家計調査データの分析

午後の部の最初は家計調査データの分析です。
目的は以下になります。
  • 支出額の費目毎の分布の違いを見る
  • 支出額からどういう世帯か予測する機械学習のモデルを作る

扱う内容は下記になります。
  • データの読み込み(pandas)
  • データの理解(pandasの基本的な使い方、記述統計量の理解)
  • データの可視化(箱ひげ図、ヒストグラム、Ridgeline plot)
  • Dashによるアプリケーション作成

記述統計量、ヒストグラムなどデータ分析の基礎的な内容について実際に手を動かしながら学ぶことができます。また、こちらのチュートリアルでも最終的にはDashを用いたアプリケーションを実装しています。



機械学習:2クラス分類

家計の情報から3大都市圏に住んでいるかどうかを判定するモデルを作成してみます。機械学習を用いてモデルを作成する基礎を学ぶことができます。取り扱っている内容の一部は下記になります。
  • 目的変数、説明変数とは
  • データをテストデータと訓練データに分割する方法
  • 線形SVM、非線形SVM
  • ハイパーパラメータ
  • スケーリング

機械学習:多クラス分類

各世代の年代を予測するモデルの作成を行います。勾配ブースティングの手法を用いてモデルを作成し、混同行列の作成まで実施します。

図:与えられたデータから世帯の年代を推定した結果の混同行列

地理データ分析

資料はこちらです。

地理データ分析の目次は以下になります。
  • 第1部 大阪市内の平均路線価の可視化
  • 第2部 平均路線価と自転車盗難数の可視化
  • 第3部 平均路線価の可視化と自転車盗難数データのより正確な可視化

第1部 大阪市内の平均路線価の可視化

大阪市内の平均路線価をグラフィカルに可視化します。実際の可視化は下記のような結果になります。

図:大阪の平均路線価の可視化

第2部 平均路線価と自転車盗難数の可視化

第1部ではマップに対して1つの情報のみを可視化しました。第2部では路線価と自転車盗難数の両方を可視化してみます。
このパートでは、pandasにおけるグループバイ、テーブルのマージ、インデックスの再振り分け等についても併せて解説頂いています。

図:路線価と自転車盗難数の可視化

第3部 平均路線価の可視化と自転車盗難数データのより正確な可視化

第2部では市町村界の可視化がタイル状になっていましたが、もう少し正確に市町村界の可視化を実施してみます。

図:平均路線価と自転車盗難数の正確な可視化

最後に

データ分析の基本的な内容から応用的な内容まで幅広く扱って頂き、とても学ぶことが多いコンテンツだと思います。チュートリアルを当日参加された方も、まだアーカイブ動画を視聴されていない方も、この記事をきっかけにぜひご覧ください(≧∇≦*)。

0 件のコメント:

コメントを投稿