• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
カーネル密度推定を用いた店舗情報の可視化
 

カーネル密度推定を用いた店舗情報の可視化

on

  • 4,477 views

カーネル密度推定を用いて、日本国内のマクドナルドの分布状況を可視化するというお話です。

カーネル密度推定を用いて、日本国内のマクドナルドの分布状況を可視化するというお話です。
解析にはGRASSを使用しています。

Statistics

Views

Total Views
4,477
Views on SlideShare
4,056
Embed Views
421

Actions

Likes
6
Downloads
18
Comments
0

4 Embeds 421

http://d.hatena.ne.jp 410
http://yanagibashi.blogspot.jp 7
https://twitter.com 3
http://webcache.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    カーネル密度推定を用いた店舗情報の可視化 カーネル密度推定を用いた店舗情報の可視化 Presentation Transcript

    • カーネル密度推定を用いた 店舗情報の可視化 2012年2月23日 heshikik@orkney.co.jp heshikik
    • きっかけは1枚の絵 アメリカ全土のマクドナルド分布http://www.datapointed.net/2009/09/distance-to-nearest-mcdonalds/
    • これの日本版を見てみたい
    • ググってみる
    • 同じようなことを考える人はいるようですhttp://www.codezine.jp/article/detail/6103 http://mglab.blogspot.com/2009/10/blog-post.html
    • 自分でも描いてみよう
    • まずはマクドナルドの店舗リストを手に入れよう
    • そう簡単には手に入らない
    • じゃあ、自力でリストを作る
    • 公式サイトから住所録を取得 http://www.mcdonalds.co.jp/shop/map/mcd_shop.php
    • perlで取得Web::Scraper を使ってこの要素を切り取る
    • コードはこんな感じ :my $scraper = scraper { process #ShopLists .ShopName dd, addressList[] => TEXT;};my $list = "./pref_list.txt";while(<listfile>) { my $pref = $_; my $res = $scraper->scrape(URI->new("http://www.mcdonalds.co.jp/shop/map/mcd_shop.php/shops?keyword=".$pref."&search.x=0&search.y=0")); foreach my $address(@{$res->{addressList}}){ print "$address"."¥n"; };} :
    • 住所リストは取れたので…北海道岩見沢市八条東10丁目2-55北海道札幌市厚別区厚別中央二条4丁目4-12北海道滝川市南滝の川132-1北海道札幌市南区藤野三条4丁目1-1北海道日高郡新ひだか町静内末広町2-1-1北海道河東郡音更町木野大通西17-1-4北海道札幌市東区東雁来九条4丁目7-1北海道恵庭市黄金南6-10-2北海道札幌市清田区里塚二条7丁目1-5北海道千歳市錦町3-10-1北海道伊達市舟岡町236-1 : Web APIでジオコーディング
    • コードはこんな感じ (今度はpython) TARGET_FILE = "mac_address.txt“ OUTPUT_FILE = "mac_latlon.csv“ TARGET_URL = "http://www.geocoding.jp/api/? " f = file(TARGET_FILE, "r") writer = csv.writer(file(OUTPUT_FILE, "w"), delimiter="¥t") for line in f: if line == "¥n": continue target = unicode(line, "utf-8", "ignore") query = [("q", line[:-1]), ("v", "1.1")] url = TARGET_URL + urllib.urlencode(query) result = urllib.urlopen(url).read() tree = etree.fromstring(result, parser=etree.XMLParser()) if len(tree.xpath("//lat")) != 0 lat = tree.xpath("//lat")[0].text lng = tree.xpath("//lng")[0].text writer.writerow([line[:-1], lat, lng, lat_dms, lng_dms]) time.sleep(5)
    • 必要なデータは揃った! 43.05808,141.355735 43.041,141.326977 43.087173,141.327749 43.068373,141.347621 43.107265,141.339675 43.14021,141.340742 43.07117,141.370255 43.079937,141.403721 43.096212,141.398004 :
    • GRASSにインポート> v.in.ascii input=C:¥test¥mac_latlon.csv output=mac
    • 拡大するとこんな感じ
    • これだと、ただの点の集合 もう少し定量的に密集度を評価できないか?
    • 空間補間??標高値を持った点群 ボロノイ図形 IDW RST
    • Z値を持ったデータではないので これらの方法は不適切 密度を算出してその分布を 可視化できれば良さそう
    • カーネル密度推定• 統計学において、確率変数の確率密度関数 を推定する手法の1つ。• ある母集団の標本のデータが与えられたとき、 カーネル密度推定を使えばその母集団の データを外挿できる。 wikipediaより抜粋
    • 度数分布と言えばヒストグラムだけど… http://www.econ.kobe-u.ac.jp/~nomura/lecture/10f/kd-estimate.pdf
    • カーネル密度推定のアイデア http://www.econ.kobe-u.ac.jp/~nomura/lecture/10f/kd-estimate.pdf
    • カーネル密度推定の方法 http://www.econ.kobe-u.ac.jp/~nomura/lecture/10f/kd-estimate.pdf
    • カーネル密度推定を用いてマクドナルド分布を可視化してみる
    • GRASSで描くとこうなる> v.kernel input=mac@MAC output=kernel stddeviation=0.03
    • 拡大するとこんな感じ
    • カラーテーブルを調整
    • 日本版マクドナルド分布を描くという目的は無事達成
    • 定量的なデータは得られたので人口密度などとの相関も評価 できるはず・・・ to be continued…
    • 参照URL• http://www.codezine.jp/article/detail/6103• http://mglab.blogspot.com/2009/10/blog- post.html• http://www.mcdonalds.co.jp/shop/map/mcd_ shop.php• http://e8y.net/mag/013-web-scraper/• http://www.econ.kobe- u.ac.jp/~nomura/lecture/10f/kd-estimate.pdf