datamining 5th knn

18
データマイニング クラス分類(IV) - 手書き文字データの説明 k-NN 瀬々 潤 [email protected]

Upload: sesejun

Post on 11-Jul-2015

596 views

Category:

Business


0 download

TRANSCRIPT

Page 1: Datamining 5th knn

データマイニングクラス分類(IV) -

手書き文字データの説明k-NN

瀬々 潤[email protected]

Page 2: Datamining 5th knn

・数字判別の問題・k-最近点分類法

Page 3: Datamining 5th knn

先週までの話• クラス分類問題を扱ってきた• 例題として、コンタクトレンズを処方するか、し

ないかのデータ• 手法として扱ってきた物• 決定木• NaiveBayes• AdaBoost• テスト(属性)が、離散値(例題では2値)で表さ

れるもののみ扱った

Page 4: Datamining 5th knn

数字判別の流れ

4

172 D. DECOSTE AND B. SCHOLKOPF

Figure 2. The first 100 USPS training images, with class labels.

(1993) used an enlarged training set of size 9709, containing some additional machine-printed digits, and note that this improves the accuracy on the test set. Similarly, Bot-tou and Vapnik (1992) used a training set of size 9840. Since there are no machine-printed digits in the test set that is commonly used (size 2007), this addition distortsthe original learning problem to a situation where results become somewhat hard to in-terpret. For our experiments, we only had the original 7291 training examples at ourdisposal.

The MNIST database (figure 3) contains 120000 handwritten digits, equally divided intotraining and test set. The database is modified version of NIST Special Database 3 andNIST Test Data 1. Training and test set consist of patterns generated by different writers.The images were first size normalized to fit into a 20 ! 20 pixel box, and then centered ina 28 ! 28 image (LeCun et al., 1998).

画像

文字判別で利用する形式に変換

文字の判別

この授業ではこちらに注力

Page 5: Datamining 5th knn

数字画像をデータへ変換• 画像データを数値に変換します• 今回利用するUSPSの画像データは,256階調(8bit)の白黒画像• ラスタ画像(ベクタ画像ではない)• 各ドットが1つの値(輝度)を持つ• 縦,横それぞれ16ドット=256ドット• 256次元のデータ

• 文字の書き順や,どちらの方向に向かって線を引いたか,と言った情報は,利用できないものとします.

クラス 0,0 0,1 0,2 0,3 0,4 … 15,12 15,13 15,14 15,15

2 46 0 22 0 46 … 106 188 138 0

黒っぽい 比較的白っぽい

5

Page 6: Datamining 5th knn

問題例(1/3): 名称

• 今回は属性の名称としてドットの位置が入っています 6

ID クラス 0,0 0,1 0,2 0,3 … 15,14 15,15

1 2 46 0 22 0 … 138 0

2 1 0 59 13 0 … 13 42

3 8 0 46 56 50 … 42 0

… … … … … … … … …

ID クラス 0,0 0,1 0,2 0,3 … 15,14 15,15

100 ? 59 13 0 28 … 13 42

… … … … … … … … …

サンプル(トランザクション、タップル、レコード)

属性(アトリビュート,カラム)クラス(ラベル)

Page 7: Datamining 5th knn

問題例(2/3): 訓練とテスト

7

ID クラス 0,0 0,1 0,2 0,3 … 15,14 15,15

1 2 46 0 22 0 … 138 0

2 1 0 59 13 0 … 13 42

3 8 0 46 56 50 … 42 0

… … … … … … … … …

ID クラス 0,0 0,1 0,2 0,3 … 15,14 15,15

100 ? 59 13 0 28 … 13 42

… … … … … … … … …

訓練データ(Training Data): 各サンプルのクラスが分かっている

テストデータ(Test Data): 各サンプルのクラスが不明

Page 8: Datamining 5th knn

問題例(3/3): 問題設定

• 訓練データとテストデータが与えられたとき、テストデータのクラスを予測せよ。• 今回の文字の例では、予め数字の分かっている文字画像が与えられている(訓練データ)• 新しい文字が与えられた時(テストデータ)、その文字に何の数字が書かれているかを予測する

• 画像の問題と言っても、結局クラス分類問題になる

8

Page 9: Datamining 5th knn

• USPSの数字データ• http://www.cs.toronto.edu/~roweis/data.html• 0から9の数字それぞれ1,100個• 1,000個を訓練データ,100個をテストデータとして扱う• 全体で10,000個の訓練データ,1,000個のテストデータ• このままだと,データがとても大きいので,1,000個の訓練データと100個のテストデータのバージョンも配布します

• 画像はすでに,数値に変換をしたものを配布します• クラス分類問題だけでなく、クラスタリングでもこのデータを利用します

この授業で用いるデータ

9

Page 10: Datamining 5th knn

クラス分類問題• データは訓練データとテストデータに分かれている• テストデータのクラスを予測をする問題• 数字の例では、訓練データが256次元。

モデルを作成

モデルの適用

訓練データ

テストデータ

予測

10

Page 11: Datamining 5th knn

• 多くのクラス分類アルゴリズムは,2個のクラス(○ or × あるいは,1 or -1 )を分類する用に作成されている• 数字を当てる問題は,0~9まで9つ種類があり,実際にはとても難しい問題• 多クラスのクラス分類問題と呼ばれる• 因に,数値を当てる問題は,回帰問題(regression)と呼ばれる• この授業では簡単のため,数値を当てる問題を「0か,それ以外」か「1か,それ以外か」といった問題に変更して解く• 簡単に多クラスに拡張できるアルゴリズムは,本授業内でも,多クラスで話を進める

多クラスのクラス分類

11

Page 12: Datamining 5th knn

画像の距離• 2つの画像の距離を測りたい。• どの画像が似ているのか、違っているのか。• 一例として、マンハッタン距離:• 点と点を軸に添って測った距離の和

|dx1| + |dx2|

x

y

x1

x2

dx1

dx2

0001111001110010...100

0001110000110010...100

(A)(C)

(A) (C)

多次元ベクトル(上記の図は64次元)

実数でも計算可能(値の差の絶対値を取れば良い)この後の例ではグレースケール(白,黒だけでなく,その中間色もある)で話を進める 12

Page 13: Datamining 5th knn

様々な距離• 実数値のデータの距離• それぞれのサンプルを多次元上の1点と見なす• ユークリッド距離• マンハッタン距離• 様々な距離があり、状況によって適切なものを利用する

x

y

(A)直線距離(ユークリッド(ノルム)距離) (B) マンハッタン距離

x1

x2

dx1

dx2

�dx2

1 + dx22 |dx1| + |dx2|

x

y

x1

x2

dx1

dx2

Page 14: Datamining 5th knn

相関係数(correlation coefficient)• 点x=(x1, x2,...,xn)と点y=(y1,y2,...,yn)を考える.

r =�n

i=1(xi − x)(yi − y)��ni=1(xi − x)2

��ni=1(yi − y)2

• 点x, y 間の相関係数(Pearson’s R)は次式で与えられる

r ≈ −1r ≈ 1 r ≈ 0負の相関相関なし正の相関

x

y

x

y

x

y• 2次元上のn点の配置を見ている

• 距離関数ではない(三角不等式が満たされない)

Page 15: Datamining 5th knn

k-最近点分類法(k-最近傍法、

k-Nearest Neighbor)

Page 16: Datamining 5th knn

1-最近点分類

点1の輝度

点2の輝度

Q

点1の輝度

点2の輝度

(A) 訓練データ (B) サンプルのクラス予測

I

JK L

G

B

CE

F

D

A

H

•最も白と黒が一致する=マンハッタン距離が最も近い•最も距離が近い訓練データのクラスを予測とする手法を1-最近点分類と呼ぶ

Qに最も近い点はEEが○なので,Qを○と予測

16

QI

JK L

G

B

CE

F

D

A

H

Page 17: Datamining 5th knn

• 属性が似ているサンプルは,クラスも似ている1. クラスを予測したいテストデータのサンプルをQとする.2. Qから訓練データ中で最も距離が近いk個のサンプルを選択.• 距離空間の選択は任意(後述)

3. そのk点のクラス(○,×)を調べ,最も多いクラスをQの予測クラスとする.

K-最近点分類 (K-Nearest Neighbor)

点1の輝度

点2の輝度

3-NN

点1の輝度

点2の輝度

(A) 訓練データ (B) サンプルのクラス予測 17

AB CD E

FG

IL

J

K

HQ

ABC

D EF

GI

L

J

K

HQ

Page 18: Datamining 5th knn

K-NNの距離関数やKの決め方• 距離関数• 近いピクセル同士の距離を重要視する• 数字の認識に重要そうな場所を重要視する• 「重要視」は距離関数としては「重み」をつけることに相当• 端の点の輝度が50ずれるのより,中央付近の点の輝度が10ずれることを重要視するなど

• Kの値• 与えられたデータによって値が変化する• 今のところ答えはない(なので、えいやっ!と決める)• いろいろ実験してみて決める• 手動ではなく,自動で実験するには・・・• クロスバリデーション。統計的な手法、など。 18