概要
• https://mlcon.npca.jp/camp_2014/
• 日時: 2014/08/18 ~
• 問題数: 3問
毒キノコを見つけろ
• NPCAの尊敬すべき偉大なOBである博多市が毒キノコを食べることのないように判別してあげる
• 出典: http://archive.ics.uci.edu/ml/datasets/Mushroom
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番の違いは求めたいものが離散値か連続値か
• 今回求めたいもの = 家賃は連続値
データを見る
• 特徴: 7個
• 都市: 大阪市内, 京都市内, 神戸市内, 奈良市内
• 間取り: ワンルーム, 1LDK, ....
• 種別: マンション, 一戸建て, ...
データを見る
• 最初の3つの特徴は分類変数
• 間取りはある程度ソートしてるのである程度連続っぽい(?)
• 残りの4つは連続変数
データを見る
• 都市はあんまり家賃と関係なさそう
• 逆にマンション,一戸建ての違いはかなり大きな影響がある
• 間取りの分類番号がソートされているので番号が高いほど家賃が高くなってそう
出題の意図
• 自分が物件を選ぶ時のことを想像してみる
• 部屋が10m2広いのと, 最寄り駅まで10分近いのどちらも同じ価値を持つだろうか?
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の問題 (入力データは画像の生データ)
データを見てみる
• データがでかすぎる
• そのままk-近傍法に突っ込むのは大変
• モバイルで落とすことを考えずに学習データが30MBくらいで申し訳なかったです...
出題の意図
• 色ごとにピクセルの数が列挙されていることに意味はあるの?
• そもそも画像のサイズがそれぞれ違う
• データ量が大きすぎるので減らしたい
データの前処理
• データ量を減らす
• 隣接するものをまとめてやって64分の1くらいに
• 比較しやすい数値にする
• ピクセル数ではなくピクセルの割合にする
k-近傍法
• データの前処理をしてとりあえずk-近傍法してみる
• 10000点
• まあ多少はね
データの前処理
• そもそもそれぞれのピクセルの色を学習データとするのが微妙
• 画像を見るとどれくらい色が使われているかとかのほうが重要そう
データの前処理
• 色の分散とかを特徴にしてやればもっと良い点数が出そう
• 時間が足りなかったのでwriter解として作れてない
• たぶんかなりいい点数になると思う