SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

「PyData.Tokyo Meetup」イベントレポート

国内外のトップランカーが語るデータマイニングコンペの勝ち方~PyData.Tokyo Meetup #6、7イベントレポート


  • X ポスト
  • このエントリーをはてなブックマークに追加

世界トップKagglerに必勝技を聞く

 前述のデータ分析コンペプラットフォーム、Kaggleにおいて、昨年まで2年もの間1位の座についていたOwen Zhangさんの来日に合わせて開催したPyData.Tokyo Meetup #7は、PyData.Tokyoとして初めての英語での進行となりました。普段は参加できない外国人の方や、日本人でも初めての参加者の方が目立ちました。今回のイベントに合わせ、外国人の方の間でよく使われている、Meetup.com上にもイベントページを開設し、今後さらに広く参加者を募りたいと思っています。

 「データ解析コンペで勝つための秘密を教えます」といって話し始めたOwenさんでしたが、その次に口にしたのは「その秘密とは、秘密なんかないってことです」とのこと。「コンペで勝ちたければ地道にテクニックを磨き、たくさんの時間がかかるという覚悟をしてください」というなんとも地味に始まった講演。

 データ解析の一般的な方法を図示したOwenさんは、「すでにこの地道な努力の多くがデータロボット社の製品によって自動化されている」と続け、「今後その範囲はさらに広がっていく。そうなった時に人間の仕事として重要なのは、データの中からは分からない、その分野で仕事をしている人だからこそ分かる知識を特徴量生成などを通じて分析に吹き込んでいくこと」だといいます。

Owenさんの思い描くデータ解析の自動化
Owenさんの思い描くデータ解析の自動化

 一方で、講演の中では、特定の特徴量をアルゴリズムに入力する際に必要となるエンコーディングの手法を説明してくれました。Kaggleで開催されたAmazonのUser Accessコンペでは、Amazon社内において、社員がリクエストしたさまざまなカテゴリの計算リソース(例えばディスクへのアクセス権限や、仮想マシンの利用)を管理者が判断し、許可するプロセスをどこまで自動化できるかを競いました。社員がリクエストするリソースにはさまざまな種類があり、非常に多くのカテゴリーに分かれています。ここで2つの問題が発生します。

  1. リグレッションなどを含む多くのアルゴリズムでは、カテゴリ型特徴量をそのまま入力することができない
  2. カテゴリが細分化されているため、そのカテゴリーに対してモデルを作ろうとすると、学習データに極度の偏りが生じる(例えば、非常に特殊なリソースをリクエストした社員が過去に2人しかいなかったとすると、その2人に対する決定が、モデルに大きすぎる影響を与える)
OwenさんのAmazon User Accessコンペでのアプローチ
OwenさんのAmazon User Accessコンペでのアプローチ

 1つ目の問題を解決するには、エンコーディングと言われる手法を用いてカテゴリを数値化します。これにはさまざまな手法がありますが、彼が紹介してくれたのは、頻度エンコーディングという手法。まずそれぞれのカテゴリーをそのカテゴリーが出現する回数に置き換えます(重複を避けるため、少しランダム関数で幅出しを行う)。こうすることで複数のカテゴリを1つの特徴量の中で数値化することができ、数値変数を期待しているアルゴリズムにも入力できるようになります。

 2つ目の問題は、もう少し複雑な解決方法が必要です。Owenさんが説明してくれたのは「収縮法」と呼ばれる方法。少数しか出現しないカテゴリの出現確率を、そのカテゴリの出現回数だけでなく、全カテゴリの出現確率の平均値に近づける(縮める)ことによって、予測の精度を上げるという手法。要するに、限定的なサンプル数による過学習を、サンプル全体の情報を使って中和するのです。こういった手法は自然言語処理のモデリングに使われるスムージングの手法(まだ学習モデルが一度も見ていない単語に対して、事前に出現確率を与えておくことで、確率値が学習データに必要以上に左右されるのを防ぐ手法)にも少し似ています。

All State社のコンペは非常に難易度が高く、優勝者もわずかにしか既存のモデルを向上することができなかった
All State社のコンペは非常に難易度が高く、優勝者もわずかにしか既存のモデルを向上することができなかった

 この他にもOwenさんは、All Stateというアメリカの保険会社のデータコンペに触れました。このコンペでは、見込み客がどのような保険のプランを購入するのか、7つのオプションすべてを正確に当てないといけないという非常に難易度の高い問題設定がされていました。既存のモデルとして「申し込みの前にどういう見積もり依頼をしたか」という参照モデルがありましたが、結局ほとんどの挑戦者がこのモデルをわずかに向上させることしかできませんでした。問題設定があまりにも多数の条件を指定しているため、それらすべてを満たすモデルの生成が非常に難しかったのです。結局Owenさんはこのコンペでは3位にランクインしたが「まったく時間の無駄だったとしか言いようがない」とのこと。

 エンコーディングなどの手法を学び、予測モデルの精度を上げるテクニックを磨くことは重要ですが、こういった労力は今後DataRobotに代表される自動化の中で人間ができる仕事の質としてはどんどん低くなっていくとOwenさんはいいます。一方で、2つ目の例にも見られたように、正しい問題設定や正しいデータの準備を行うことは今後も自動化が難しく、人間の力に委ねられている部分だと強調していました。

 一週間日本で多忙なスケジュールをこなし、最終日の勉強会登壇だったこともあり、この辺から勉強会はピザ&ビールパーティーに流れ込み、参加者の方々はOwenさんに直接質問したり、参加者同士データ分析の手法について熱く議論したりしていました。世界のトップデータサインエンティストが集まる勉強会にオーガナイザーたちも楽しさを隠せない様子で、話に花を咲かせていました。

次のページ
PyData.Tokyo運営だより

修正履歴

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
「PyData.Tokyo Meetup」イベントレポート連載記事一覧

もっと読む

この記事の著者

シバタアキラ(シバタ アキラ)

データサイエンティスト@DataRobot, Inc. PyData.Tokyoオーガナイザー 人工知能を使ったデータ分析によるビジネス価値の創出が専門分野。物理学博士。NYU研究員時代にデータサイエンティストとして加速器データの統計モデル構築を行い「神の素粒子」ヒッグスボゾン発見に貢献。その後ボストン・コンサルティング・グループでコンサルタント。白ヤギコーポレーションCEOを経て現職 Twitter: @madyagi Facebook: Akira Shibata DATAブログ: http://ashibata.com DataRobot, Incウェブサイト: http://datarobot.com

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

池内 孝啓(イケウチ タカヒロ)

神奈川県横浜市出身。1984年生まれ。ソフトウェア開発会社、インフラサービス提供会社を経て2011年3月株式会社ALBERT入社。クラウドコンピューティングを活用したマーケティングプラットフォーム事業の立ち上げに携わる。2014年1月に同社執行役員に就任。2015年8月株式会社ユーリエを設立。同社代表取締役社長兼CTO。2014年にコミュニティ PyData.Tokyo を共同で立ち上げるなど、Python と PyData ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

田中 秀樹(タナカ ヒデキ)

PyData TokyoオーガナイザーシリコンバレーでPython×データ解析の魅力に出会う。帰国後、ディープラーニングに興味を持ち、PyCon JP 2014に登壇したことがきっかけとなりPyData Tokyoをスタート。カメラレンズの光学設計エンジニアをする傍ら、画像認識を用いた火星および太陽系惑星表面の構造物探索を行うMarsface Project(@marsfaceproject)に参加。インドやモロッコなど、旅先で...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山本 光穂(ヤマモト ミツオ)

デンソーアイティーラボラトリ シニアエンジニア。2006年デンソーアイティーラボラトリ入社以来、時空間情報閲覧サービス(製品名:今昔散歩)や情報検索等に関する研究に従事。特に最近はドライバーの意図推定技術や同推定結果に基づく最適な情報提示技術に興味を持つ。趣味はマウンテンバイクとイングレス(Resistance)。Facebook: https://www.facebook.com/mitsuo.yamamoto.0112 Twitter: @kaita

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9330 2016/06/01 10:32

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング