機略戦記

Maneuver warfare

データを可視化して傾向や特徴を知ったり仮説を発見したりしたい

前回までのあらすじ

shinya131-note.hatenablog.jp

  • Rインストール
  • kaggleチュートリアル課題やった

困っていること

  • 与えられたデータがどんな傾向を持っているのか把握したい。
  • 前回は、以下の手段しか知らなかった。
    • Rsummary()関数
    • データをawkでcolumn毎に切り出して、sortしたりunic -cしたりwc -lしたり
    • Excelに貼り付けてフィルター機能を使う。条件付き書式でヒートマップ作る。

ショボイ!

仕入れた情報

あんちべさん本

  • データ分析には探索的データ解析(仮説を探す)仮説の検証があることを知った。
    • 分析対象のデータを見て、意味のある傾向を見出そうとするのはたぶん探索的データ解析に当たるんだろう。
  • データの傾向をつかむ可視化の手段としてヒストグラム散布図スライシングなどの便利な手法があることを知った。

www.amazon.co.jp

みんなのR

  • ヒストグラム散布図をRで描写する基本的なやり方を知った。

www.amazon.co.jp

試してみた

kaggleのランキングからcsvデータがダウンロードできる。
前回やったタイタニックのチュートリアルのランキングに怪しい部分があるので可視化してみた。

怪しい部分とはトップ陣の異様な正答率の高さである。
ランキング上位10%の内かなりの割合が正答率80%前後で競っているのに、正答率100%を出している人が何人か居る。
ぶっちゃけチートなのでは無いか(笑)

ハンドルネームがcheaterになっている人とか居るしw

散布図を描いてみた。

  • x軸が順位、y軸が正答率である。

f:id:Shinya_131:20150712220424p:plain

  • A: ランク7000位付近にx軸に水平な部分が現れる。
    • たぶんサンプルコード実行して結果をサブミットしてみた人たちだろう。
  • B: ランクが上がるに従って僅差の勝負になっていく傾向が分かる。
    • 高度化すると、投じたリソースから得られるリターンが減っていくのだろう。
  • C: だが、一番上位付近の唐突な急上昇は何だ(笑)

ちなみに別の課題のランク+スコアの散布図
こちらはどこかの政府機関か企業か研究所がガチで困っている課題なので世間一般に回答は無い。

f:id:Shinya_131:20150712221456p:plain

  • 2250位付近にA.に近い傾向が見える。幅が小さいのはチュートリアル用の課題では無いからだろう。
  • Bの傾向も同じ。
  • Cの特徴は現れていない。

コード

#install.packages('ggplot')
library('ggplot2')

leaderboard<- read.table('~/Desktop/leaderboard.csv', header=T, sep=',')

ggplot <- ggplot(data = leaderboard, aes(y=Score, x=Rank))
ggplot + geom_point()
  • R力がなので、Rankは事前にExcelで出した。

感想

  • Cのような傾向はグラフを描くまで予想してなかった。こう言うのを読み取るというのが、探索的データ解析なのかな?
  • ある表があるとき、列Aとその他の列の散布図を全部一気に出したい。

メモ

統計

ヒートマップ、統計的要約量、スライシング、外れ値

R

  • グラフィックの描写、packageのインストールなどの機能が言語に組み込まれてるの面白いな。
  • なんでpackageのReferenceがPDFなんや…