Advertisement
Advertisement

More Related Content

Recently uploaded(20)

Advertisement

地理データを集め、可視化し分析することが簡単にできるプログラミング言語について @ BIT VALLEY -INSIDE- Vol.16

  1. 地理データを集め、可視化し分析することが簡単に できるプログラミング言語について 2020/2/3 BIT VALLEY -INSIDE- Vol.16 Mr_Sakaue(SKUE)
  2. ● 阪上晃幸(@Mr_Sakaue) ● データアナリスト@渋谷のベンチャー企業 ● 経歴 2012/2:インターン@渋谷のベンチャー企業 2012/3:一橋大学大学院経済学研究科 修士課程修了 2012/4〜:渋谷のベンチャー企業入社 ● 趣味 料理、ブログ記事の作成 『かものはしの分析ブログ』で検索! 自己紹介 2
  3. ● 事故物件に関する某UGC(User Generated Content)サイトがあるが、人口あたりの発 生件数などが提供されていない。事故の発生要因もフリーテキストなため全体感を俯瞰 することが難しい。そこでテキストマイニングなどを用いてその詳細を調べ引っ越しの際 の参考としたい。 研究動機 3
  4. 1. 某UGCサイトから事故物件の情報をWebスクレイピング 2. 事故物件に記載された住所から緯度経度をAPIにより取得 3. メッシュデータを作成し、メッシュあたりの事故物件件数を集計 4. 国土地理院の提供している人口や地価などのメッシュデータとつなぎこむ 5. 集計・可視化をする 6. 事故物件に関してテキストマイニングをする 研究計画 4
  5. 1.某UGCサイトから事故物件の情報をWebスクレイピング 5 【主な処理内容】 1.都内の住所一覧を収集 2.検索窓に住所を入力 3.検索結果一覧の上位 5件をクリック 4.一度地図を引くことで物件を広い範囲で捉 えれるようにする 5.物件のマークの要素を取得し、 1件ずつク リックし、表示された物件の情報をデータフ レームに格納する
  6. 事故物件に記載された住所から緯度経度をAPIにより取得 6 "{"ResultInfo":{"Count":1,"Total":1,"Start":1,"Status":200,"Description ":"","Copyright":"","Latency":0.011},"Feature":[{"Id":"34368.2","Gid ":"","Name":"広島県山県郡安芸太田町穴(大字) ","Geometry":{"Type":"point","Coordinates":"132.37215787,34.56353 237","BoundingBox":"132.34500700,34.53783800 132.40468100,34.61470700"},"Category":[],"Description":"","Style":[], "Property":{"Uid":"932e61fed665b8216c2c3c3fed72600199c1e52a","Ca ssetteId":"b22fee69b0dcaf2c2fe2d6a27906dafc","Yomi":"ヒロシマケンヤ マガタグンアキオオタチョウアナ(オオアザ) ","Country":{"Code":"JP","Name":"日本"},"Address":"広島県山県郡 安芸太田町穴(大字) ","GovernmentCode":"34368","AddressMatchingLevel":"3","AddressT ype":"町・大字"}}]}" 【主な処理内容】 1.Yahoo!のAPIのアカウントに関する config ファイルを読み込む。 2.先程の工程で手に入れた住所の緯度経度 をAPIを用いて取得
  7. メッシュデータを作成し、メッシュあたりの事故物件件数を集計 7
  8. メッシュデータを作成し、メッシュあたりの事故物件件数を集計 8 横軸は事故物件発生件数、縦軸は頻度。 ※APはAccidental Propertyの略 一番発生しているのは新 宿歌舞伎町周辺の1km メッシュ 2番目に発生しているの は池袋周辺の1kmメッ シュ
  9. 国土地理院の提供している人口や地価などのメッシュデータとつなぎこむ 9
  10. 国土地理院の提供している人口や地価などのメッシュデータとつなぎこむ 10
  11. 国土地理院の提供している人口や地価などのメッシュデータとつなぎこむ 11 それぞれ属するメッ シュごとに集計し平均 値を取った。
  12. 集計・可視化をする 12
  13. 集計・可視化をする 13 人口密度が高いと治安が悪くなる?人口 密度が高いと地価が上がる? 横軸は地価の階級値、縦軸は人口あたり事故物件発生件数 ※APはAccidental Propertyの略
  14. 集計・可視化をする 14 インタラクティブに操作できる
  15. 事故物件に関してテキストマイニングをする 15 MeCabで形態素解析を行い、頻度の高いものの文字が大きくなるよう表示 以下は事故物件の詳細に関するテキストについて
  16. 事故物件に関してテキストマイニングをする 16 以下は事故物件の住所について形態素解析を行ったもの
  17. 事故物件に関してテキストマイニングをする 17 LDA(トピックモデル)を用いて、潜在的なトピック数を10に固定してそのトピックに含まれ やすい単語のランキングTop5 治安と関係してそうなトピック は少なめだった。
  18. 事故物件に関してテキストマイニングをする 18 LDA×ベイズ時系列分析の手法を用いて、潜在的なトピック数を3に固定してそのトピッ クの時系列推移をプロット ・incident(事件)に関するトピックが近年増えている? ・近年まではビルからの転落が減っていた?
  19. これまでの分析はたった一つのプログラミング言語で可能 19 1. 某UGCサイトから事故物件の情報をWebスクレイピング 2. 事故物件に記載された住所から緯度経度をAPIにより取得 3. メッシュデータを作成し、メッシュあたりの事故物件件数を集計 4. 国土地理院の提供している人口や地価などのメッシュデータとつなぎこむ 5. 集計・可視化をする 6. 事故物件に関してテキストマイニングをする
  20. その言語とは 20
  21. Python 21
  22. ではなくて 22
  23. ● 統計解析に特化したスクリプト言語 ● データ取得、前処理、可視化、分析、レポーティング、分析結果を用いたアプリケーション の開発までをスムーズに行える ● RStudio、Jupyter Notebookなど統合開発環境が充実 ● 自由な書き方ができる ● 豊富なライブラリ(2020年1月時点で15,344以上(GitHub除く) ) ● 頻度の高いコミュニティー(Tokyo.R) ● カジュアルに相談できるSlackチャンネル(r-wakalang) ● 書籍も充実(統計解析系の本はRを扱っているものも多い) R言語 23
  24. R言語の人気は伸び悩んでいる? 24
  25. ● configファイルの読み込み:config ● Seleniumの実行:RSelenium ● APIを用いたデータ取得:RJSONIO、RCurl ● データ整形:tidyverse(dplyr) ● 地理データ関連:jpmesh、sf、kokudosuuchi、jpndistrict ● 可視化:mapview、ggplot2 ● 形態素解析:RMeCab ● LDA:topicmodels ● LDA×ベイズ時系列分析:LDATS 本日登場したライブラリ 25
  26. さぁ、皆さんも R言語 始めてみませんか? 26
  27. Enjoy 27
Advertisement