Above & Beyond

日々のアウトプット記録

みんなのPython勉強会#42

02/13(水) は「みんなのPython勉強会#42」に参加してきました。

startpython.connpass.com

f:id:kabukawa:20190210102539p:plain:w300

会場は 新虎通りCORE 5Fカンファレンスホール。 株式会社クリーク・アンド・リバー / 株式会社リーディング・エッジ さんの新しいオフィスにある会場です。 以前半蔵門に会場が有ったときには何度か参加しているのですが、会場が変わってからははじめての参加です。

f:id:kabukawa:20190213184318j:plain:w300f:id:kabukawa:20190213184316j:plain:w300 f:id:kabukawa:20190213185013j:plain:w600


目次


みんなのPython勉強会 とは

グループの概要には「Pythonでスタートする人たちの集い」として以下のようなことが掲げられています。

「みんなのPython勉強会」では、Pythonを中心としてプログラミングを仕事、研究、趣味など様々なシーンに生かす方法を一緒に学びます。 プログラマ、WEBエンジニアに限らず、初心者からマスターまで様々なレベルの、いろいろな分野の人が集まるので、「みんな」の勉強会です。

言語自体というよりは、それを使って何をするかという人向けの勉強会という感じでしょうか。 とはいえ、スタートには「初めて」という意味も含まれているので初心者向けのセッションもありますし、結構対象が幅広いですし、内容も多岐にわたっている勉強会だと思います。


何故参加したか

Pythonの勉強会の中では割と初心者向けの内容も多く、参加しやすい雰囲気というのが良いなと思っています。 実は人生で初めてLTをしたのがこの勉強会です。機材トラブルでうまく行かなかったというのも今となっては良い思い出です(笑)


内容

今回はPandasの使い方、ブロックチェーンビッグデータ処理基盤の3本のセッションがありました。 セッションの種類が本当に多岐にわたっていて、Pythonの広がりを感じますね。 (個人的にはもう少し絞って深くやってもらえたほうが嬉しいですけど)


pandasの全体像を知る

辻真吾(Start Python Club)さん

www.tsjshg.info

Pythonのデータ処理では当たり前のように使われるPandasについてのセッション。 Jupyter NotebookでPandasの使い方を一つ一つ確認していく流れになっていて、とてもわかり易かったです。

セッションで使われた .ipynb ファイルは以下の場所に公開されています。

http://www.tsjshg.info/Stapy20190213_Tsuji.ipynb

自分のPCにはPythonの実行環境がなくて動かせない、と諦めている方はこちらの記事を参考にしてください。

kabukawa.hatenablog.jp

個人メモ:

  • 使い方としてはRのdata.frameに似ている感覚
  • Jupyter Notebookで実演しながら進めるのはわかりやすくて良い
  • いろいろ1つのパッケージで出来すぎて、何でもこれだけで完結できそう(R でいう dplyr 見たな感じ?)
  • Excelファイルの読み書きは便利そう

質問にあった「Excelはセル結合していると、どのセルのデータが読まれるのか分からない」はVBAでやっても同じなので「だからExcelは〇〇」みたいな話には違和感が。「仕事ではじめる機械学習」にも出てきますが、Excelでできるならそれでやればいいし、何でもかんでもPythonでというのはどうなのかなと。

仕事ではじめる機械学習

仕事ではじめる機械学習

もう一つの質問にあった、Jupyter Notebookで開発はありか?という話。個人的にはJupyter Notebookで色々できちゃうけど開発に使うには向かないと思ってます。例外処理やエラーハンドリング、ロギングなど、システムにするために必要な機能を実装してテストするというのは、Jupyter Notebookだと逆にやりづらい。大体の機能をJupyter Notebookで実装したら、それを .py に出力して、そこに必要な処理を肉付けしたりリファクタリングしていく、というのが現実解なんじゃないかと。あくまで個人の意見ですが。


暗号通貨にまつわる課題のデータサイエンス的解決へ向けて

原利英(株式会社AndGo・代表取締役CEO)さん

[資料は公開されたら追記します]

ビットコインを例に、暗号通貨にまつわる課題についてのセッション。

個人メモ:

ビットコイン

  • それ自身のアドレスを署名鍵で暗号化したもの。
  • 署名を書き換えることで所有者が変わる

ブロックチェーン

  • 取引の記録
  • 公開されており、だれでもチェックできる

www.blockchain.com

ウォレットは大きく3つに分かれる

  • Log-in Wallets
  • Client Wallets
  • Hardware Wallets

Log-in Wallets の問題

  • 自分の手元に署名鍵が無いので、クラックされると簡単に盗まれてしまう。
  • 実際、そういう事件が起きているのは記憶に新しい

Hardware Wallets と Client Wallets の問題

  • ハードウェア信じて良いのか問題
  • 壊れたときにバックアップどうするか問題
  • アプリ偽物問題

ビットコインとかブロックチェーンって面白いと思う。 表で騒がれている投機的な感じとは異なって、裏側は結構ガチな技術で実装されているし、真剣に取り組まれている。 今はまだブームが続いていて投機的な動きがまだまだ強いけど、このあとどうなっていくのかは気になる。 注目していく必要のある分野だなと思った。


Big Dataで価値を生み出すためのSmall Trial & Method

河野晋策、内田臣了(株式会社リクルートテクノロジーズ)さん

www.slideshare.net

昨年の台風で流会になった時に予定されていたセッションの再演(?)。 リクルートテクノロジーズさんの持つデータ分析基盤について。 実は他の勉強会でリクルートライフスタイルさんでも同じようにデータ分析基盤を持っていて活用をされているという話を何度か聞いていたので、それとの違い(あるいは同じもの?)が分かっていません。構成とか、使っている技術は似ていると思うのですが。

個人メモ:

分析基盤

  • 行動ログ
  • 共通横断基盤
  • カスタマー >集 め る>動 か す>結 ぶ<動 か す<集 め る< クライアント
  • データドリブンな意思決定

機械学習によるレコメンドの改善(ゼクシィ縁結び)

ビッグデータを扱う案件であっても 1つ1つ 小さな分析・検証の積み重である 」

レコメンド

  • おすすめ順はユーザー プロフィール内容や行動に基づき スコアを算出しランキング
  • お客様 出会いに大きく影響を与えるため非常に重要な役割

f:id:kabukawa:20190217151811p:plain:w500

f:id:kabukawa:20190217151840p:plain:w500

分析

  • Google BigQueryとJupyter Notebookによる分析
  • 主要なデータ(個人情報除く) Google BigQuery上に格納
  • おすすめ順の変更は「直感ではなく必ずデータに基づいて行う」
  • データ分析ハッカソン

recruit-tech.co.jp

実装

  • マイクロサービス化による高速リリース
  • 検索エンジンレコメンドAPI 定義
  • バックエンドから検索エンジンに 直接クエリを投げるのではなく、 おすすめ順ロジックを適用する機能をAPIとして切り出し
    • デプロイ 規模を小さくしてコスト・リスクを軽減
      • ロジック 適用・切り戻しが容易
      • 万が一 障害時、切り離しが容易 直接検索エンジンにリクエストする経路も用意
    • レコメンド定義をJSONファイルに切り出し
      • 誰でも容易にロジックを変更可能
      • エンジニアに依頼せずとも企画者が直接定義を編集できる

検証

  • A/Bテストによる効果検証
  • Redashを介したBigQueryクエリ共有

まとめ

  • 小さく作って小さく試しながら堅実にレコメンド機能を磨き込んでいる
  • 速く作るために各工程で コストを小さくし 改善サイクルを高速に回す仕組みを整えている

参考情報

recruit-tech.co.jp


機械学習による不正行為、規約違反などの検知

f:id:kabukawa:20190217152040p:plain:w500

f:id:kabukawa:20190217152101p:plain:w500

  • 問題を明確化(どこまで、何を、どうやって効果を評価)
  • データ分析
    • 可視化、統計的検定
    • MLで不正行為、規約違反などの検知をできないか?
  • モデル選定、チューニング
    • 単純なモデルから始める
    • パラメータチューニング、アンサンブル学習
  • システム設計
    • MVPで始める
    • 運用・拡張性
    • Feasibility Study
  • 機械学習施策の提案まで

f:id:kabukawa:20190217152130p:plain:w500

  • 既に手順化されているものも多いので、それらを変更する工数を最小化しつつ効果を狙う
  • ユーザーと検証をしながら開発
  • 結果を元に起案、リリースに向けた動きへ

f:id:kabukawa:20190217152147p:plain:w500

追加部分の内容に関する参考情報

recruit-tech.co.jp


懇親会

懇親会は隣りにあるカフェスペースで行われました。名物の生ビールサーバーによる生ビースの提供も健在。 懇親会の最中にLTというのも相変わらず盛況で、聞いてなさそうだけどみんなちゃんと聞いている。 ネットワーキングも活発で、とても充実した懇親会だったと思います。 これはこの勉強会が有料(1000円)なので無料飯目当ての人が来ないというのも大きいかもしれません。

f:id:kabukawa:20190213210707j:plain:w600

f:id:kabukawa:20190213210730j:plain:w300f:id:kabukawa:20190213210841j:plain:w300

お話をしてくれた皆様、ありがとうございます!


まとめ

久しぶりの参加でしたが、相変わらずの盛況ぶりで楽しく参加することができました。 講演者、スタッフ、参加者の皆様、ありがとうございました!