注目の投稿

【kepler.gl】コロナ対策による人流の変化も地図上に可視化(各種メディアで報道)

kepler.glのサイト画面 kepler.glを使ってコロナ対策の効果を分析したところ、テレビ、新聞、ネットのメディアから問い合わせや報道依頼が殺到。今も、土日返上で都内や全国の人流変化を分析しています。この記事では人流変化の可視化に便利なkepler.glにつ...

2019年7月12日金曜日

R 任意の行でデータを分割

【目的】 任意の行でデータを分割する
【方法】 データ名[最初の行:最後の行]

#テスト用データを作成

library(data.table)  #データテーブル作成のために読み込む

> data <- data.table(No = 1:10,random = runif(10, min = 0, max = 1))
> data
    No      random
 1:  1 0.301603490
 2:  2 0.745845367
 3:  3 0.559383677
 4:  4 0.737294025
 5:  5 0.525487942
 6:  6 0.361071876
 7:  7 0.259251202
 8:  8 0.002998326
 9:  9 0.909486709
10: 10 0.895856187

*runifで0~1までの実数をランダムに生成

#3行目までを分割する

> data_a <- data[1:3]
> data_a
   No    random
1:  1 0.3016035
2:  2 0.7458454
3:  3 0.5593837

あれ、randomの値が四捨五入されてる??

#dataを半分に分割する

*lengthでベクトルの長さが分かるのでそれを2で割れば半分に分割できる

> data_1 <- data[1:(length(data$random)/2)]
> data_2 <- data[(length(data$random)/2+1):(length(data$random))]
> data_1
   No    random
1:  1 0.3016035
2:  2 0.7458454
3:  3 0.5593837
4:  4 0.7372940
5:  5 0.5254879
> data_2
   No      random
1:  6 0.361071876
2:  7 0.259251202
3:  8 0.002998326
4:  9 0.909486709
5: 10 0.895856187
>

data_1は四捨五入されてるけど、data_2は元の値だ。なぜ??

2019年7月6日土曜日

【動画紹介】Exploratory: 決定木の紹介と使い方



役立ち動画発見!

データ分析の目的から決定木の説明に入るので、なぜ決定木を使う必要があるのかが良く分かる


動画の流れ


  • データ分析とは、「相関」、「パターン」を見つけること
  • たくさんデータがあると一つ一つ関係を見ていくのは大変
  • 機械学習(決定木など)で「相関」や「パターン」のあてを見つける
  • 決定木とは何か?どのように木を作るか?などを紹介

木をどうやって作るかはあまり説明されないことが多いけど、不純度(Gini Iimpurity)を減らすことで、木を作っているという説明もちゃんとされていてナイス!

ちなみに、不純度は、データにどれだけ値が混ざっているかを示す指標で、1から各サンプル数の割合を二乗したものを引いたもの

例:6人のうち2人が大人、4人が子供の場合

不純度 = 1 - (2/6)^2 - (4/6)^2

^2は二乗の意味