STAY KOBE

Oracle Cloud Developers Meetup「機械学習スキルをレベルアップしよう!R中級編」参加レポート

Jpeg

すっかり参加レポートが遅くなりましたが、9月15日に開催された、オラクルさん主催の「R中級編」勉強会です。14日の初級と2日続けての参加となりました。

概要

初級編につづき、講師は日本オラクル 小川幹雄(オガワミキオ)さん
ゴールは、Kaggle に提供されているタイタニック号 生存者分析の予測モデルを作成し、アップロードするところまで。当日の資料はコチラ

まずは Rstudio を入れよう!

機械学習において直面する現実

初級でも言われてましたが、データサイエンティストは華やかな部分だけでなく、泥くさーい部分が多々ある

Kaggle とは

企業などがデータを提供し、参加者が最適な予測モデルを競いあっているプラットフォーム。コンペティションでは賞金をGETできる(当日閲覧したときには、RedHat社がコンペを開催しており、賞金 $50,000 が提示されてました) また、優秀なデータサイエンティストならば、kaggle 経由で企業からオファーがくることもあるそうです。

日本企業としては、リクルートがおそらく日本で初めての賞金付きコンペを開催されていたとか。(あとでググってみたところ、ボンパレの過去購買データから、クーポン購買予測のコンペだったようで、賞金は1位:$30,000 2位:$15,000 3位 $5,000 でした)

kaggle に挑戦!

ということで、参加者全員で kaggle アカウントを作成し、いざ分析データのGETです。
今回使用したのは、「Machine Learning from Disaster」というタイトルで、タイタニック号の搭乗者情報、生存者情報をもとに、生存者の予測モデルを作成するという内容です(ちなみに賞金はなく、kaggle の入門編的な扱いのようです)

これらのデータには、次のような情報が含まれています。生存情報、渡航者クラス、名前、性別、年齢、兄弟・配偶者の数、親・子供の数、チケット番号、運賃、キャビン(船室)、乗船所 など。
これらを元にどんな人が生き残ったのかを予測するワケですね。

Kaggle の仕組み

予測モデルに対して、kaggle はどのように評価をするのか。
kaggle は元データを分割して提供している。1つは学習データ(このケースでは生存情報ありのデータ)、もう1つはテストデータ(生存情報なし)参加者は学習データをもとに予測モデルを作成し、テストデータの誰が生存したかを予測し、その結果を kaggle にアップロードする。kaggle 側には、テストデータのうち誰が生存していたかの情報があるので、突き合わせをして答え合わせをするとのこと。(全データが採点対象ではなく、採点対象となるデータが決まっているらしい)
ちなみに、このケースの上位ランカーは 100% の正解率となっているが、ズルをしているだけとのこと(タイタニック号の生存者情報を探せば、手入力でアップロードデータは作れてしまうので、、)

「R」のデータ整備

予測モデルを作成/予測結果

予測モデルは、初級で演習したランダムフォレストを使いました。(今回のメインは、あらなたアルゴリズムを学ぶことではなく、機械学習におけるデータ整備の泥くささを体験するということなのでしょう)

いざ、Kaggleに提出

予測モデルによって導きだされた予測結果の csv ファイルを、kaggle にアップして採点を待ちます。スコアは 0.78947 となり 1618位/5152人中でした(笑)

さいごに、Oracle R Enterprise デモ

の予定でしたが、お約束のように時間切れとなりデモは割愛。自社製品の紹介を削って、ハンズオンに時間を割いてくださった講師の小川さんはやっぱり男前ですね!


R中級編、さすがに内容は難しく、データ整備後半は入力に必死でついていくのがやっとでした(;・∀・)だもんで、関数ひとつひとつの理解には及んでいません。。が、機械学習の一般的なイメージ(数式やアルゴリズムを使って、これが導きだされた予測結果です!( ー`дー´)キリッ みたいな)とは違って、好き勝手に入力されたデータを統一したり、分類したり、正規表現などを使って文字を抽出したり、置換したり、無いデータを補ったり、地道な作業のうえに成り立っているということを、体験させていただきました。
一方で、泥臭い部分ではあるけれども、数式やアルゴリズムより、「与えられたデータをどう整備するか」「どのように想像・仮説をたてて分類するか」といった部分のほうが、より良い予測結果を導きだすのには重要なんじゃないかとも思いました。


10月18日に「Oracle Cloud Developers Meetup@関西 – 機械学習でお客様が他にも買いそうな商品を予測しようじゃないか。」が開催されますので、早速こちらにも登録いたしましたので、またヨロシクお願いします!

https://oracleclouddevelopersk.doorkeeper.jp/events/52288