機械学習コン講評

40
機械学習コン講評 Hiromu Yakura

Upload: hiromu-yakura

Post on 20-Jul-2015

387 views

Category:

Technology


2 download

TRANSCRIPT

機械学習コン講評Hiromu Yakura

概要

• https://mlcon.npca.jp/camp_2014/ 

• 日時: 2014/08/18 ~ 

• 問題数: 3問

毒キノコを見つけろ

• NPCAの尊敬すべき偉大なOBである博多市が毒キノコを食べることのないように判別してあげる

• 出典: http://archive.ics.uci.edu/ml/datasets/Mushroom

毒キノコを見つけろ

• 特徴が20個,カテゴリが2つ(有毒/無毒)

• 学習用データセットが1000件

• テスト用データセットが1000件

Classification

• データを幾つかのカテゴリに分ける

• 今回は有毒/無毒の2つに分けるのでBinary Classificationとも

Classification

• よくある手法 (それぞれの手法についての解説は割愛)

• k-近傍法

• 決定木 (分類木)

• サポートベクターマシン

k-近傍法

• とりあえず1番簡単なk-近傍法で組んでみる

• https://gist.github.com/hiromu/d5ed079e98caea3b008c#file-mushroom-c

• 10000点 (K = 3)

• 抜群

出題の意図

• 分類変数(カテゴリ)なのか連続変数なのかをよく見よう

• 今回の特徴量はすべてカテゴリ

• ユークリッド距離とかを取ってはいけない!!!

分類変数か連続変数か

• e.g. 傘の色

• 0 = 茶色, 1 = 黄色, 2 = 白色, 3 = 灰色, 4 = 赤色, 5 = ピンク色,

6 = 黄褐色, 7 = 淡赤色

• 果たして, 茶色と灰色の違いは茶色と黄色の違いの3倍大きいのか??

分類変数か連続変数か

• 類似度を取るときに一致している特徴がどれだけあるかを見れば満点取れる

• ユークリッド距離を取ったりすると9500点とかに

ちなみに

• サポートベクターマシンにそのまま投げると一発満点でした

• つよい

不動産バブルを見極めろ

• NPCAの尊敬すべき偉大なOBである博多市のために物件の適切な家賃を計算する

• 出典: Suumo

不動産バブルを見極めろ

• 特徴が7個, 家賃の誤差が5000円以内なら得点が生える

• 学習用データセットは500件

• テスト用データセットは500件

Regression

• データの従属変数と連続尺度の独立変数が~(略)

• Classificationとの1番の違いは求めたいものが離散値か連続値か

• 今回求めたいもの = 家賃は連続値

Regression

• よくある手法

• k-近傍法

• 決定木 (回帰木)

• サポートベクターマシン (SVM万能説)

k-近傍法

• とりあえずk-近傍法で組んでみる

• 4000点

• 絶望

出題の意図

• 機械学習で重要なこと

• とりあえずデータを見ろ!!

• なにをするにもとりあえずデータを見てみる

データを見る

• 特徴: 7個

• 都市: 大阪市内, 京都市内, 神戸市内, 奈良市内

• 間取り: ワンルーム, 1LDK, ....

• 種別: マンション, 一戸建て, ...

データを見る• 特徴: 7個

• 専有面積

• 築年数

• 最寄り駅までの所要時間

• 家賃

データを見る

• 最初の3つの特徴は分類変数

• 間取りはある程度ソートしてるのである程度連続っぽい(?)

• 残りの4つは連続変数

データを見る

• 分類変数と連続変数が混ざっている

• うまい扱いを考えないといけない

データを見る

• さらによくデータを見てみる

• 実際のデータを手を動かして調べる

データを見る

• 都市はあんまり家賃と関係なさそう

• 逆にマンション,一戸建ての違いはかなり大きな影響がある

• 間取りの分類番号がソートされているので番号が高いほど家賃が高くなってそう

k-近傍法 (2回目)

• とりあえず都市のデータは無視する

• 建物の種別ごとに学習を分けてみる

• つまり4回に分けて学習→テスト

• これでk-近傍法をしてみる

• 15000点くらい

出題の意図

• 自分が物件を選ぶ時のことを想像してみる

• 部屋が10m2広いのと, 最寄り駅まで10分近いのどちらも同じ価値を持つだろうか?

feature selection

• それぞれの特徴がどれくらい重要か(≒どれだけ相関があるか)を調べてみる

• 貪欲法

• 焼きなまし法

feature selection

• それぞれの特徴の重要度を調べる

• それぞれの特徴に対して係数を掛けてやる

• この係数の最適値を焼きなましで見つける

feature selection

• 学習データの一部をさらに特徴選択のための学習データにする

• 残りのデータで精度を調べる

• これを繰り返しながら焼きなましをする

k-近傍法 (3回目)

• https://gist.github.com/hiromu/d5ed079e98caea3b008c#file-estate-c 

• 学習データを2つに分けて10000回焼きなまし

• 26000点 (K = 3)

• どうしても誤差は出てくるのでこの辺で頭打ちに

ちなみに

• 種別ごとに決定木に投げてやる

• 28000点

• さっきより強いけどK-近傍法でもある程度迫れる

ネットオークションを制覇せよ

• NPCAの尊敬すべき偉大なOBである博多市のために絵の判別をする

• 出典: http://www.ioi2013.org/wp-content/uploads/tasks/day1/artclass/

Art%20class%20ja%20(JPN).pdf

• IOI 2013の問題 (入力データは画像の生データ)

ネットオークションを制覇せよ

• 特徴が262144個

• 画像の色分布がそのままデータに突っ込まれてる

• 4つのカテゴリに分類する

データを見てみる

• データがでかすぎる

• そのままk-近傍法に突っ込むのは大変

• モバイルで落とすことを考えずに学習データが30MBくらいで申し訳なかったです...

出題の意図

• 色ごとにピクセルの数が列挙されていることに意味はあるの?

• そもそも画像のサイズがそれぞれ違う

• データ量が大きすぎるので減らしたい

データの前処理

• データ量を減らす

• 隣接するものをまとめてやって64分の1くらいに

• 比較しやすい数値にする

• ピクセル数ではなくピクセルの割合にする

k-近傍法

• データの前処理をしてとりあえずk-近傍法してみる

• 10000点

• まあ多少はね

データの前処理

• そもそもそれぞれのピクセルの色を学習データとするのが微妙

• 画像を見るとどれくらい色が使われているかとかのほうが重要そう

データの前処理

• 色の分散とかを特徴にしてやればもっと良い点数が出そう

• 時間が足りなかったのでwriter解として作れてない

• たぶんかなりいい点数になると思う

おつかれさまでした

• 1位 akourryプロ

• 2位 catupperプロ

• 3位 sugerpoyoプロ