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部では市町村界の可視化がタイル状になっていましたが、もう少し正確に市町村界の可視化を実施してみます。

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

最後に

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

2020-10-16

PyCon JP 2020 チュートリアルアンケート結果

はじめに

みなさん、こんにちは。コンテンツチームチュートリアル担当のあっきーです。今年の2020年8月30日に開催したチュートリアルのアンケート結果について共有します。

チュートリアルコンテンツの情報は下記をご参照ください。

PyCon JP 2020 チュートリアル

内容が長文になりますので、ご了承ください。

参加者情報

  • Pythonの開発エコシステムを学ぼう Slack Bot編
    • connpassチケット(Zoom参加権): 20人[完売]
    • 当日Zoom参加者:10人
    • 当日ユニーク視聴数: 118人
  • オープンデータを使って、Pythonでデータ分析
    • connpassチケット(Zoom参加権): 20人[完売]
    • 当日Zoom参加者:6人
    • 当日ユニーク視聴数: 156人

アンケート結果

総回答数:20件

難易度は適切でしたか?
(1:簡単、5:難しい)


今回の講座をどこで知りましたか?


今回の講座の満足度を教えてください。
(1:不満、5:満足)


今回のチュートリアルの良かったところを教えてください。

  • オンラインだったので移動コストがかからなかったのと講演者の話が聴きやすく資料も見易かった。
  • 講師の方がとても丁寧でわかりやすかったです。
  • 手順を追って動作を確認できたので、大変に分かりやすかったです。
  • 進行が丁寧
  • googleコラボラトリは受講者の環境と関係ないため、初心者には受けやすいのではないでしょうか。ストーリーというかシナリオが良かったと思います。特に、AI系が徐々にステップアップしているところが上手いと思いました。
  • slackボットの作り方がざっくりわかったところ
  • 関連する事柄を一通り体験できること。内容・手順を説明するだけでなく、実際に手を動かして手本を見せてくれること。ドキュメントやチュートリアル自体のアーカイブとして残っていること。
  • GitHub 上の Binder に環境が整っており、途中でつまづくことがなかった
  • 新しいことを知ることができとても良かった
  • slackbotだけかと思ったらドキュメンテーションまであっておなかいっぱいでした
  • 新しい知識を得た
  • 途中、詰まって聞き逃したところがありましたが、後から復習できる環境を用意して頂いていたので、ありがたかったです。
  • やってるときの生の声、考え方がわかるところが良かった。
  • mapboxという面白いサービスを知った
  • Mapboxの使い方がわかったことです。
  • 凄い内容だった

講師のみなさんに一言お願いいたします。

  • ありがとうございます。
  • とても有意義な講義をありがとうございます。当日のみならず準備などたいへんだったと思います。今後ともよろしくお願いいたします。
  • とても、よかったです。
  • 楽しく学習できました。ありがとうございました。
  • お忙しい中、準備含めてどうも有り難うございました。
  • 準備および運営等,大変おつかれさまでございました。ありがとうございました!
  • 構想、準備、そして当日まで、全力を尽くしてやっていただき、ありがとうございました。
  • お疲れさまでした
  • オンラインチュートリアルは初めての経験とのことで大変な苦労があったことと思いますが、とても良い体験ができました。不満な点などあるはすがありません。ありがとうございました。また機会がありましたら、是非参加させていただきたいです。
  • とても分かりやすく勉強になりました。ありがとうございました。
  • 大変な準備有難うございました
  • 準備は大変ご苦労様でした
  • 比較的、身近な題材でしたので使いどころがイメージしやすかった点でよかったです。
  • 楽しく聞かせてもらいました。時間を割いていただきありがとうございます。
  • ハンズオンの難易度はちょうど良かったですし、内容も良かったと思います。
  • 今後とも宜しくお願いします。

今後チュートリアルを行うとして、参加したい分野があれば教えてください。


次回、チュートリアルを受けるとしたらどのくらいの難易度を希望しますか?
(1:簡単、5:難しい)



その他、PyCon JPへのご意見/ご感想などありましたらご記入お願いします。

  • いつも楽しみにしています。
  • 引き続きPythonコミュニティの盛り上がりを応援してゆきたいと思います。
  • お疲れさまでした
  • お疲れ様でした。とても楽しく学べる時間でした。ありがとうございます。
  • 今後も期待しています
  • 適性や難易度を表示してほしい
  • 今年はチュートリアルしか参加できませんでしたが、セッションの資料と動画をアップして頂いているので、ありがたいです。
  • 今後もチュートリアルを継続して実施していただけるとうれしいです。

最後に

今年のチュートリアルは初めてのオンライン開催ということで良かった点も悪かった点も様々あったかと思います。皆さんのご意見を参考にしながら、今後の活動に生かすことができるように頑張っていきます。(ง •̀ω•́)ง✧

PyCon JP 2020 システムチーム振り返り【技術編】

 はじめに

みなさん、こんにちは。システムチームのあっきーです。PyCon JP 2020のシステムチームの活動について紹介するブログの第3弾です。以前の投稿は下記から参照ください。

PyCon JP 2020 システムチーム振り返り【スケジュール編#1】

PyCon JP 2020 システムチーム振り返り【スケジュール編#2】

本投稿ではPyCon JP 2020のWebサイトをどのように作ってるのか、その裏側について紹介します。少しでも皆さんのお役に立てるような情報を公開できるように頑張って書きましたので是非参考にして頂ければ幸いです。(*^▽^*)


フロントエンド側

最終的なフロントエンドの使用技術は下記になります。

  • Nuxt.js(axios,i18n,content)
  • Tailwind CSS

実際のリポジトリは下記になりますので、興味ある方はご確認ください。

pycon.jp.2020.ui

技術選定についていろいろと議論した結果、Reactよりも使用経験者が多いNuxt.jsを採用することになりました。また、Vuetify等のフレームワークを使用する案も出ましたが、フレームワーク自体の習得が必要なため少しハードルが高いという結論に至りました。Tailwind CSSは通常のCSSの知識があれば利用可能であるため、比較的ハードルが低いと感じ採用しました。

PyCon JP 2020のサイトは原則WebサイトからのAPI呼び出しは実施せずにビルド時にデータを埋め込み、静的サイトとしてジェネレートしてホスティングする仕組みを採用しています。ページの性質として動的なコンテンツがほとんどないので、デプロイ時に静的サイトとしてジェネレートする方がメリットが多いと考えたためです。

具体的にはPyCon JP Blogの最新のブログ記事のタイトルとセッションデータを埋め込んでいます。ブログ記事はBloggerのAPI経由で、セッションデータはsessionizeのAPI経由でデータを取得しています。

上記構成の場合、ブログ情報とセッション情報はビルド、デプロイ作業を実施しないと内容が更新されません。内容の更新については深夜に1回自動でビルド、デプロイするような仕組みを導入しています。

バックエンド側

次にバックエンドの技術について説明します。

【AWSを採用した理由】

原則リソースはAmazon Web Services(以下AWS)で作成することにしています。複数人で開発を進める場合、アカウント周りがしっかりしていないと共通のアカウントを使いまわす、という運用になってしまうこともあります。アカウント管理をしっかりできるように、少ない人数で回せるようにという事でクラウドメインでの方針としています。Google Cloud PlatformではなくAWSを選んだ理由としては詳しい人が多かったからです。

【ホスティング環境について】

開発環境のホスティングはsurgeを使っています。GitHub Actionsでsurgeへの自動デプロイの設定をしているので、developブランチへマージされたら自動的に開発環境のデプロイが実行されます。ステージング環境と本番環境はAWS Amplify Consoleを使っています。こちらもstagingブランチとmasterブランチにマージされたら自動的にデプロイされるように設定しています。

【セッションデータの管理について】

セッションデータはsessionizeというサービスで管理しています。API経由でセッションデータを取得することができるので、ビルド時にセッションデータを取得し、フロントエンド側で利用しやすいように整形しています。このセッションデータ整形プログラムはPythonで作られています。

【トラブルシューティング】

セッションごとの固有URLについて

自分の気になるセッション、良かったセッションをTwitter等で公開する場合、セッションごとの固有URLがあると便利です。この機能は開催直前に発覚し、急遽実装しました( ° ω ° ; )基本的にはVue Routerのクエリパラメータ($route.query)の機能を使って実装しています。

サイトURLがサブディレクトリ構成だった

PyCon JPのサイトは年度ごとのサブドメインではなくnginxのサブディレクトリ構成となっています(https://pycon.jp/2020/)。通常のNuxtの設定だとサブディレクトリには対応できないのでBase URLを本番環境のみ変更するような仕組みを入れています。

参考:API: router プロパティ
https://ja.nuxtjs.org/api/configuration-router/

多言語対応、セッションデータ整形、読み込みなどなどいろいろと紹介したい実装もあるのですが、長くなりそうなのでこの辺で(o´・ω・`o)ノシ

トラブルも多かったですが、いろいろな方のサポートのおかげで無事サイトが完成し、皆さんにお届けすることができました。この内容が少しでも皆さんのお役に立てれば幸いです。ヾ(*´∀`*)ノ

2020-10-08

PyCon JP 2021 座長決定


 一般社団法人PyCon JP Association 代表理事 寺田です。
 

来年のPyCon JP 2021の座長が決まりましたのでお知らせします。

座長: 二木拓也 (nikkie(にっきー))

nikkieさんは、PyCon JP 2019からスタッフとなり、PyCon JP 2020ではコンテンツチームのリーダとして活動し、自身のチーム外のことも積極的に取り組んでいました。

ほかには、みんなのPython勉強会スタッフ、Django Girls Tutorial 翻訳に参加されています。



PyCon JP 2021 座長 nikkieさん

 

9月下旬に本人からの立候補を受け、一般社団法人PyCon JP Associationの理事全員の賛成により、nikkieさんに座長をお願いすることとしました。

PyCon JP 2021の開催形態は決まっておりません。今後はnikkieさんを中心に検討が行われることになります。

 

PyCon JP 2020は開催計画を途中で変更し、オンラインでの開催となりました。来年をどのような形にするか 決めにくい状況です。いずれの形でもPyCon JPが継続できることが嬉しく思っており、新座長のもとで、スタッフや参加者が楽しいイベントが作れることを期待しています。

 

2020-10-05

PyCon JP 2020 参加者数について

こんにちは!PyCon JP 2020 事務局チームです。
8/28(金)-29(土)に開催されました。PyCon JP 2020 の参加者数に関して報告します。

カンファレンス 8/28(金)- 29(土)

  • Zoom参加権チケット(有料)数: 631
  • YouTube Live(無料) 2日間ユニーク視聴者数: 2,988
    ※YouTube Analyticsによる集計値。各日/各動画のユニーク視聴者数の合算ではなく、両日該当期間設定した際のchannel全体ユニーク視聴者数(2日視聴した人も1人とカウント)

その他イベント

  • チュートリアル 8/30(日)
    • Pythonの開発エコシステムを学ぼう Slack Bot編
      • connpassチケット(Zoom参加権): 20人[完売]
      • 当日ユニーク視聴数: 118人
    • オープンデータを使って、Pythonでデータ分析
      • connpassチケット(Zoom参加権): 20人[完売]
      • 当日ユニーク視聴数: 156人
  • スプリント 8/22(土)-30(日)
    • 参加者: 15人
  • ユースコーダーワークショップ 8/30(日)
    • connpassチケット: 16組

初のオンライン開催にも関わらず、たくさんのご参加ありがとうございました。
現地開催には現地開催の良さがありますが、オンライン開催により、東京近郊以外の方や自宅/オフィスを離れることが難しい方等、参加者全員が同じ環境・条件で参加できるカンファレンス・イベントが開催できたのは大きな進化だと考えています。

来年以降についてはまだなにも決まっていないですが、今年培ったオンラインカンファレンス・オンラインイベントの知見を活かして、さらにバージョンアップしたカンファレンスになっていきます。

カンファレンスのセッションは、一部を除いて下記URLよりアーカイブを視聴可能です。
- PyCon JP 2020(YouTube PlayList)

PyCon Kyushu 2021開催についてのアンケート回答のお願い

 

PyKyushu.JP運営の清田です。新型コロナウイルスによって、PyCon Kyushu 2020の開催は断念したのですが、今後どうするか運営メンバーで数回に分けてオンラインMTGを行いました。

今までの枠に囚われず、新たな装いで2021開催できないか?など色々と意見を交わしましたが、まず、スポンサーやイベントに興味関心のある参加予定の方にアンケートをとり今後の運営の参考にしよう!という話なり、アンケートを準備しました。

是非、アンケートにご協力お願いします!

アンケートフォーム https://forms.gle/vPBzLf8mPQsm5S7v6

※尚、スポンサーへのアンケートは直接お願いしています。

Python Boot Campその後 ― すごい広島 with Python

こんにちは、Python Boot Campコアスタッフの筒井です。

Python Boot Campから生まれた、またはPython Boot Campを開催したコミュニティを紹介する「Python Boot Campその後」第3弾をお届けします。

今回は、「すごい広島 with Python」の西本さんに開催後の様子について伺ってみました。

西本さん
西本さん


インタビュー内容

(以下敬称略)

――コミュニティについて簡単に紹介をお願いします。

2017年4月に立ち上げた「すごい広島」という勉強会の特別版という位置づけで名付けました。
Python Boot Camp参加者のフォローをしたかったというのが動機で始めました。
コワーキングスペース(最近はオンライン)で月末の水曜日夜7時から9時、何も予定を決めずに開催しています。自発的にLTしてくれる人が多いです。

――コミュニティの活動を続けていて、一番楽しかったことは何ですか?

PyCon JP CFP を出せたり、PyCon mini Hiroshima スタッフが増えたりしました。

――コミュニティを続ける上で工夫していることがあれば教えてください。

日程を変えないことですね。
まず、スタッフが日程を決めるという仕事がなくなります。
告知がうまくいかなくても、常連の人は予定をあけてくれます。
準備ができない、都合がつきにくい、他のイベントと重なってしまう、といったこともありますが、月末の水曜日と決めることで、参加者とのつながりを維持できていると感じます。

――運営体制について教えてください

基本は2人ですが、仕事は connpass と会場予約くらいです。

――他の地域コミュニティに向けてのメッセージをお願いします。

無理をしない範囲で続ければいいと思います。

――PyCampをこれから開催しようと思っている方へのメッセージをお願いします

地域でのつながり、全国規模の交流、両方を得るチャンスなので、ぜひチャレンジしてください。

インタビューは以上です。西本さん、ありがとうございました!

開催に興味がある人は

以下フォームから「現地スタッフとしてイベントを主催したい」旨を連絡してください。

Python Boot Camp 全国ツアーお問い合わせフォーム

Python Boot Camp 相談会 (2) を開催しました

 


こんにちはー。Python Boot Camp コアスタッフの小林です。
9/29(火)に第2回目のPython Boot Camp 相談会を開催しました。

第2回目も、北は東北、南は九州のメンバとオンラインでつながり、Python Boot Campをキーワードに、近況報告など、色々おしゃべりできて楽しかったです。

当日の様子をお伝えします。
Python Boot Camp 相談会 集合写真

Python Boot Campとは


Python Boot Camp(PyCamp)とは、遠方に住んでいて、PyCon JPチュートリアルに参加できずにいた方や、周りにPythonを使っている人がおらず、始めるきっかけが掴めなかった方のためのチュートリアルイベントです。

詳しくはこちらを参照ください。


今回の相談会はー。


Python Boot Camp とゆかりにある方、Python Boot Campを地元で開催したいと思っている方が集まって、気軽におしゃべりする会としました。

  • 2020年9月時点の地元の様子とか、
  • PyCon miniの話とか、
  • Python Boot Campに興味があってちょっと聞いてみたいこととか、などなど

最初にテーマを決めて、みんなで話し合う感じで進めました。

当日のおしゃべりネタ


当日は、オンラインホワイトボード Mural を利用してネタ集め。
集めて決めた当日のおしゃべりネタはこちらー。
  
当日のおしゃべりネタ


21:00 - 21:10 鎌倉開催タイム

鎌倉で2021年、具体的にこの日程で開催したい。日程候補と場所を決めた。
この後の進め方を確認したい。

21:10 - 21:20 山口開催タイム

地元、山口で開催を希望している。今の疑問点を相談したい。

21:20 - 21:30 講師陣タイム

地方でPython Boot Camp開催に向けての不安とかあります?
懇親会やりたい。懇親会できそう?

21:40 - 21:50 最近どう?タイム

オンラインもくもく会は、ちょっと微妙。オンライン読書会ってどんなことやってます?
オンラインで講師しているけど、TAいないと大変。
オフラインイベントの開催状況。

開催後のみなさまの感想


相談会の最後に皆さんからいただいた感想はこちらー。

Python Boot Campに興味がある参加者の感想


Python Boot Camp講師陣、TA、コアスタッフの感想

今回の成果と次回


先輩現地スタッフ、TA、講師の皆様と共に、2回目の開催を終えました。
日本各地とオンラインでつながり、色々おしゃべりできて面白かったです。

特にPython Boot Campに関しての疑問、質問等は、先輩現地スタッフ、TAの方が経験談を交えてフォローしてくれたのが助かりましたー。ありがとうございます。

2021年は、開催できる地域も増える機運を感じました。
Pythonをキーワードに新しいつながりができたことに感謝です。

次回は、2020年12月を予定しています。
また、新しい人とつながりができることや、すでに申し込み済みの方との近況報告など、ざっくばらんにおしゃべりできたら嬉しいです。

今回、参加できなかったという方、ぜひ次回、ご都合をつけてご参加ください。
待ってますよー。


Python Boot Camp 開催地スタッフ募集


PyCon JP では日本各地での初心者向け Python チュートリアルイベント
「Python Boot Camp ( #pycamp ) 」を開催しています!!
現地で Python Boot Camp の開催をサポートをしてくださるスタッフの方を募集しています。
ご興味のある方は下記のフォームよりご連絡ください。


現地スタッフ申し込みフォーム


Python Boot Camp(初心者向けPythonチュートリアル)
Python Boot Camp 全国ツアーお問い合わせフォーム