Concentration Timeを活用した分析コンペ参加体験記

こんにちは。2020年4月に新卒として入社したMaketing Solution Division (MSD) 所属の小林と申します。

前回の記事では、私が従事していたWEB閲覧履歴によるターゲティングモデルについての技術紹介をさせていただきました。今回の記事は、業務技術紹介ではなく分析スキル向上のため同期と参加したKaggleの分析コンペ参加体験記となっております。記事の内容としては、分析コンペ参加動機・コンペ概要・コンペ内で使用した一部技術紹介になります。ARISE analytics社内の若手データサイエンティストがどのようにスキル向上を図っているか知っていただけると幸いです。

分析コンペ参加動機

分析コンペに参加しようと思ったきっかけは、業務では扱わない技術やデータに触れて自分のデータサイエンス・エンジニア力を伸ばして行けたらよいなと思ったことす。また、分が所属しているチームが現在取り組んでいるプロジェクトのビジネス要件にマッチしない機械学習手法やデータがあり、その周辺知識を別途獲得したいとも感じていました。そこで同期がkaggleコンペに参加する話があったので合流することにしました。またARISE社内ではConcentration Time*とう制度があり、私はその制度を活用して分析スキル向上を図りました。

*Concentration Timeについて

ARISE analytics社内では毎週金曜日の午前中は自己研鑽の時間に割り当ててもよいという制度があります。その時間は各部署や全社にて勉強会・LTが活発に行われており、社員は運営や受講者として参加していま。また、今回私が取り組んだような分析コンペ参加に向けて、技術力向上のために自己学習する社員も多いです。

◆Concentration Timeをはじめ、ARISE analyticsの成長環境や制度についての記事がこちら

社員の成長を加速させる!独自の教育体系「ARISE university」とは‥?

アウトプットによりインプットを深化!全社横断組織で運営する社内勉強会『ARISE university Training』とは?

 

参加した分析コンペについて

コンペ概要

今回参加したKaggleのコンペGoogle Smartphone Decimeter Challenge という位置情報推定をするコンペです。アメリカ州内で車を走行させ、Androidスマートフォンによって収集されたデータ(GPS衛星からの信号、加速度計・ジャイロスコープの読み取り値)を分析し、精度よく位置情報(緯度・経度)を推定する内容となっています。

使用データ

データ収集方法は種類の異なる複数のAndroid端末を車両に搭載させ、異なる日付と走行ルート(一般道、高速道路、並木道)にて車を走行して収集するという方法です。

各データの概要は以下の表になります。

評価指標

予測するデータは各Android端末の時間ごとの位置情報(緯度・経度)です。評価方法は正解データと予測データの50パーセンタイル誤差と90パーセンタイル誤差の平均値となります。具体的には各Android端末ごとに日付が異なる位置情報データがあるので、その端末内での50パーセンタイル誤差と90パーセンタイル誤差の平均を求めます。その後に各端末の50パーセンタイル誤差と90パーセンタイル誤差の平均に対して平均値を取ることで評価値を算出する形になります。

扱った技術紹介(カルマンフィルタ)

今回のコンペでメインに扱った手法はカルマンフィルタです。カルマンフィルタというものは状態空間モデルの1種であり、航空・ロボット・信号・画像処理などの幅広い分野で活用されている技術になります。具体的な例ではロケットやロボットの自己位置推定が挙げられます。今回のコンペでは、baseline_locationsというデータが既に高い精度で位置情報を予測していたため、このデータをカルマンフィルタで補正してあげる(自己位置推定)というアプローチを取りました。そのため、簡単にカルマンフィルタについて紹介します。カルマンフィルタは以下の式のような考え方になります。

補正後の状態 = 補正前の状態 + カルマンゲイン ×(本物の観測値-補正前の状態)

状態方程式と呼ばれる式から1つ前の状態を基に現在の状態を計算し、実際の観測値と状態の誤差を反映し状態を更新するという流れになります。カルマンゲインは補正度合いを調整する倍率となります。今回のコンペの場合は以下のような式になります。

誤差修正した位置情報推定値 = 1時刻前の情報から算出した現時刻位置情報推定値 + カルマンゲイン × (baseline_locationsの位置情報ー1時刻前の情報から算出した現時刻位置情報推定値)

このようにすることで各時刻のbaseline_locationsの位置情報推定時に発生するノイズ(正しい位置情報との誤差)を修正することで、より真の位置情報に近づけることができます。

終わりに

私は、ARISE analytics特有の制度であるConcentration Timeを活用し同期と一緒にKaggleコンペ(位置情報予測)に参加しました。今回挑戦したコンペでは位置情報の膨大データ探索技術と位置情報補正技術であるカルマンフィルタの知識を得ることができました。引き続き別のコンペにも参加し、自身のサイエンス・エンジニア力を伸ばしていけたらと思っています。

関連記事