機械学習・データマイニングのツール紹介...

19
機械学習・データマイニングのツール紹介 -データベース的観点から- 2015311川島英之 筑波大学 システム情報系(計算科学研究センター)

Upload: others

Post on 20-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 機械学習・データマイニングのツール紹介 データベース的観点からasn/201501_sogo/201503... · 機械学習・データマイニングのツール紹介-データベース的観点から-2015

機械学習・データマイニングのツール紹介-データベース的観点から-

2015年3月11日

川島英之

筑波大学システム情報系(計算科学研究センター)

Page 2: 機械学習・データマイニングのツール紹介 データベース的観点からasn/201501_sogo/201503... · 機械学習・データマイニングのツール紹介-データベース的観点から-2015

機械学習・データマイニング用語

RF R

Python

SVM

K-means

平均Hadoop

Mahout

PostgreSQL

MySQL

SciQL

SciDB

Weka

Esper

R+Bigmemory

K-最近傍法

libsvm

LDA

グループ

MADLib

Hivemall

TinySVM

DBN

AutoPlait

SQL

Page 3: 機械学習・データマイニングのツール紹介 データベース的観点からasn/201501_sogo/201503... · 機械学習・データマイニングのツール紹介-データベース的観点から-2015

分析複雑度とデータサイズ

データサイズ

分析複雑度

RFR

Python

SVM K-means

平均Hadoop

MahoutPostgreSQL

MySQL

SciQLSciDB

Weka

Esper

R+Bigmemory

K-最近傍法

TinySVM

LDA

グループ

MADLib Hivemalllibsvm

DBN

銀の弾丸

AutoPlait

SQL

Spark

とりあえず分析してみたい!

Page 4: 機械学習・データマイニングのツール紹介 データベース的観点からasn/201501_sogo/201503... · 機械学習・データマイニングのツール紹介-データベース的観点から-2015

リレーショナルDBMSデータは表!

データが沢山

SQLStructured

Query Language

標準化SQL:1992SQL:1999SQL:2003SQL:2008

Page 5: 機械学習・データマイニングのツール紹介 データベース的観点からasn/201501_sogo/201503... · 機械学習・データマイニングのツール紹介-データベース的観点から-2015

問合せ言語:SQL-- パケットを題材として --

• 全てのパケットを得る– SELECT * FROM packet;

• srcipの情報を全てのパケットから得る– SELECT srcip FROM packet;

• HTTPアクセス(port 80)に関するパケットだけを表示– SELECT * FROM packet WHERE dstport = 80;

• HTTPアクセスに関するパケットの件数を表示– SELECT COUNT(*) FROM packet WHERE dstport = 80;

• dstip毎のパケット件数を表示– SELECT dstip, COUNT(*) FROM packet GROUP BY dstip;

Page 6: 機械学習・データマイニングのツール紹介 データベース的観点からasn/201501_sogo/201503... · 機械学習・データマイニングのツール紹介-データベース的観点から-2015

分析複雑度とデータサイズ

データサイズ

分析複雑度

RFR

Python

SVM K-means

平均

PostgreSQL

MySQL

SciQLSciDB

WekaR+Bigmemory

K-最近傍法

TinySVM

LDA

グループ

MADLib Hivemalllibsvm

DBN

銀の弾丸

AutoPlait

SQL

Spark

Hadoop

MahoutEsper

Page 7: 機械学習・データマイニングのツール紹介 データベース的観点からasn/201501_sogo/201503... · 機械学習・データマイニングのツール紹介-データベース的観点から-2015

近傍検索

SELECT R.id, S.id FROM R, SWHERE (R.x – S.x)2 + (R.y – S.y)2 < threshold;

O x

y

Page 8: 機械学習・データマイニングのツール紹介 データベース的観点からasn/201501_sogo/201503... · 機械学習・データマイニングのツール紹介-データベース的観点から-2015

アルゴリズム

1万件,100万件ではどの程度かかる?

𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝐹𝐹 𝐹𝐹 ∈ 𝑅𝑅 {𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹 𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝐹𝐹 𝑠𝑠 ∈ 𝑆𝑆 {

𝐼𝐼𝐼𝐼(𝐹𝐹 𝑚𝑚𝐹𝐹𝑡𝑡𝐹𝐹𝐹𝐹𝐹𝑠𝑠 𝑠𝑠)𝐴𝐴𝐴𝐴𝐴𝐴{𝐹𝐹, 𝑠𝑠}}}

Page 9: 機械学習・データマイニングのツール紹介 データベース的観点からasn/201501_sogo/201503... · 機械学習・データマイニングのツール紹介-データベース的観点から-2015

Query plan of PostgreSQL

Nested Loop (cost=23757.00..43907042607.00 rows=333333333333 width=16)

Join Filter: ((((a.x - b.x) * (a.x - b.x)) + ((a.y - b.y) * (a.y - b.y))) < 0)-> Seq Scan on loc a (cost=0.00..18850.00 rows=1000000 width=8)-> Materialize (cost=23757.00..37664.00 rows=1000000 width=8)

-> Seq Scan on loc b (cost=0.00..18850.00 rows=1000000 width=8)

今朝の 5時ごろにクエリをサブミット

まだ終わりません

こんなときには自作あるのみ…

Page 10: 機械学習・データマイニングのツール紹介 データベース的観点からasn/201501_sogo/201503... · 機械学習・データマイニングのツール紹介-データベース的観点から-2015

分析複雑度とデータサイズ

データサイズ

分析複雑度

RFR

Python

SVM K-means

平均

PostgreSQL

MySQL

SciQLSciDB

WekaR+Bigmemory

K-最近傍法

TinySVM

LDA

グループ

MADLib Hivemalllibsvm

DBN

銀の弾丸

AutoPlait

SQL

Spark

Hadoop

MahoutEsper

深く分析してみたい!

Page 11: 機械学習・データマイニングのツール紹介 データベース的観点からasn/201501_sogo/201503... · 機械学習・データマイニングのツール紹介-データベース的観点から-2015

R

• 古くから存在するプログラミング言語・環境

• 豊富なパッケージ• 決定木, k-means, random forest, SVM, deep learning…

• 大規模データ対応• Bigmemory, biganalytics

• 豊富なユーザ情報

Page 12: 機械学習・データマイニングのツール紹介 データベース的観点からasn/201501_sogo/201503... · 機械学習・データマイニングのツール紹介-データベース的観点から-2015

動物の分類

library("MASS")data("Animals")

animals.cluster <- kmeans(x=Animals, centers=5)

K-meansによる分類

データ読み込み

Animal Body BrainMountain beaver 1.35 8.1

Cow 465 423Grey Wolf 36.33 119.5

Goat 27.66 115Guinea pig 1.04 5.5Dipliodocus 11700 50

Asian elephant 2547 4603Donkey 187.1 419Horse 521 655

分類数

Page 13: 機械学習・データマイニングのツール紹介 データベース的観点からasn/201501_sogo/201503... · 機械学習・データマイニングのツール紹介-データベース的観点から-2015

分析複雑度とデータサイズ

データサイズ

分析複雑度

RFR

Python

SVM K-means

平均

PostgreSQL

MySQL

SciQLSciDB

WekaR+Bigmemory

K-最近傍法

TinySVM

LDA

グループ

MADLib Hivemalllibsvm

DBN

銀の弾丸

AutoPlait

SQL

Spark

Hadoop

MahoutEsper

C/Java等から呼び出したい!

Page 14: 機械学習・データマイニングのツール紹介 データベース的観点からasn/201501_sogo/201503... · 機械学習・データマイニングのツール紹介-データベース的観点から-2015

Support Vector Machine (SVM)

SVM 2クラス分類問題を扱う

画像認識,音声認識,etc. マージン最大化

⇒汎化能力が高い

学習

ベクトルとクラスの組を学習データとして与える

気圧配置ごとに分類器を作る

マージン

識別境界

冬型クラス

非冬型クラス

サポートベクトル

: ベクトル

Hiroki Kimura, Hideyuki Kawashima, Hiroyuki Kusaka, Hiroyuki Kitagawa:Applying a Machine Learning Technique to Classification of Japanese Pressure Patterns. Data Science Journal, 2009. 14

Page 15: 機械学習・データマイニングのツール紹介 データベース的観点からasn/201501_sogo/201503... · 機械学習・データマイニングのツール紹介-データベース的観点から-2015

データのベクトル化

・ ・ ・ ・ ・ ・・ ・ ・

1016.2 1016.8 1017.3 1017.8 ・・・ ・・・ ・・・

1019.1 1019.7 1020.1 1020.8 ・・・ ・・・ ・・・

1021.9 1022.8 1023.4 1023.9 ・・・ ・・・ ・・・

1023.2 1024.6 1025.7 1026.4 ・・・ ・・・ ・・・

1023.4 1025.2 1026.7 1027.7 ・・・ ・・・ ・・・

1023.9 1026 1027.7 1028.8 ・・・ ・・・ ・・・

1025.2 1027.4 1029.3 1030.6 ・・・ ・・・ ・・・

1027.4 1029.8 1031.6 1032.6 ・・・ ・・・ ・・・

1030 1032.4 1034.1 1034.3 ・・・ ・・・ ・・・

1031.5 1033.5 1034.9 1035 ・・・ ・・・ ・・・

・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・

・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・

・・・ ・・・ ・・・ ・・・ ・・・ ・・・ ・・・

1019.1 1019.7 1020.1 1020.8 ・・・ ・・・ ・・・ 1021.9 1022.8 1023.4 1023.9 ・・・ ・・・ ・・・ ・ ・ ・ ・ ・ ・

1件のデータ

1×2109(2109次元ベクトル)

SVMで扱うために,1件のデータを2109次元ベクトルに変換

可視化したもの

37×57=2109点

15

Page 16: 機械学習・データマイニングのツール紹介 データベース的観点からasn/201501_sogo/201503... · 機械学習・データマイニングのツール紹介-データベース的観点から-2015

実験

実験用データ

1981~2000年の20年分の気圧データ(前線型は相当温位データ)

学習: 1981~1990年 ⇒ テスト: 1991~2000年学習: 1991~2000年 ⇒ テスト: 1981~1990年

次元を削減したベクトルを用いて,気圧配置ごとに20通りの実験

TinySVM(SVMのツール)を利用

http://chasen.org/~taku/software/TinySVM/16

Page 17: 機械学習・データマイニングのツール紹介 データベース的観点からasn/201501_sogo/201503... · 機械学習・データマイニングのツール紹介-データベース的観点から-2015

分析複雑度とデータサイズ

データサイズ

分析複雑度

RFR

Python

SVM K-means

平均Hadoop

MahoutPostgreSQL

MySQL

SciQLSciDB

Weka

Esper

R+Bigmemory

K-最近傍法

TinySVM

LDA

グループ

MADLib Hivemalllibsvm

DBN

銀の弾丸

AutoPlait

SQL

Spark

すぐに結果がほしい!

Page 18: 機械学習・データマイニングのツール紹介 データベース的観点からasn/201501_sogo/201503... · 機械学習・データマイニングのツール紹介-データベース的観点から-2015

Example Query on DSMS

• #Access for each port ? [1]• Group by aggregates

SELECT dst_port, COUNT(dst_port)

FROM pkt[1 sec]GROUP BY dst_port

g-pkt

src_ip

dst_ip

src_port

dst_port

seq_no

packet_size

timestamp

protocol

ack

fin

syn

urg

push

reset

content

22: 280: 215: 1

22

NIC

80 15 80 22

1 second

[1] “Enabling Real Time Data Analysis”, DiveshSrivastava (AT&T Labs), et, al. Keynote talk, VLDB 2010. (a similar query is found in pp.15 of talk slide)

18

Page 19: 機械学習・データマイニングのツール紹介 データベース的観点からasn/201501_sogo/201503... · 機械学習・データマイニングのツール紹介-データベース的観点から-2015

まとめ

データサイズ

RFR

Python

SVM K-means

平均Hadoop

MahoutPostgreSQL

MySQL

SciQLSciDB

Weka

Esper

R+Bigmemory

K-最近傍法

TinySVM

LDA

グループ

MADLib Hivemalllibsvm

DBN

自作AutoPlait

SQL

Spark1

1

1 2

3

4