Peakers Hitachi Cup – クレジットカード不正取引予測ハッカソン- 優秀賞 鈴木広人さん 千葉大学 理学部 数学情報数理学科


2019年9月20日、株式会社日立製作所とPeakersの共同開催でPeakers Hitachi Cup – クレジットカード不正取引予測ハッカソン- が行われた。課題は、海外のクレジットカード取引のオープンデータを用いてモデルを作成し、不正取引の予測を行うというもの。個人戦のコンペティション形式で、参加者は自身のスキルや経験を最大限発揮しながら精度を競い合った。

日立製作所からは3名のメンターが参加し、学生からの疑問や質問に対してアドバイスする形でサポート。偏りが大きく、セキュリティ上詳細がわからないため取り扱いの難しいデータであったが、参加者それぞれが工夫を凝らし精度を磨き上げていった。その結果、F値での評価で2位と3位は0.8461ptの同率、1位と2位3位との差は0.01pt程度でかなりの接戦となった。今回は、最後までわずかな精度の差を争った上位3名の優秀者にインタビューを行った。

これまでもハッカソンに定期的に参加し、常に上位の成績を収めている鈴木さん。大学では数学・情報数理学科で統計学を専攻しており、来年から金融系のデータサイエンティストになる予定だ。就職するまでにオンライン、オフラインのコンペに参加し、スキルを身に付けたいという鈴木さん。今回も優秀者として見事な成績を収めたが、一体どんな手法を使ったのか。

どんなところが今回のハイスコアに繋がったのでしょうか?

モデルはLightGBMを使いましたが、パラメーターは自分が普段Kaggleで使うものをデフォルトとして使いました。最終的にその選択が良かったみたいです。未知のデータに対する性能、汎化性能を上げるためになるべく過学習しないようにパラメーターを調節しているんですが、そのパラメーターを使ってみたら、今回はたまたまそれが的中してうまく行きました。

もっとやっておけばよかったと思うことはありますか?

渡されたデータから自分で新しい特徴を見つけて特徴量として追加していく特徴量エンジニアリングの数が足りませんでした。1位の方はこれがきちんとできていて、スコアの差につながったと思います。僕の場合、「これは効かないだろうな」と思ってそもそも試さなかったものが多かったのです。やはりできるだけたくさん試してトライ&エラーを繰り返すべきだったなと思います。

時間はあったのですが、最後の30分でリークに気づきました。トレーニングのデータとテストのデータが全く同じところが何個かあったので、それを素早く除いて予測にかけていれば、それなりにいいスコアが出たかもしれません。ただ僕はリークがはじめてだったので、今回は残り時間で処理しきれませんでした。

限られた時間内での取り組みでは、何に注力すべきですか?

どんなデータでも、EDA(探索的データ解析)でデータをしっかり見て、こういう特徴量を作ったらこの分類には効きそうだなと考えて、特徴量エンジニアリングを行う。これに時間をかけるのが大事だと思います。1位の方から「一つひとつの列を金額で割って、金額の比を出したのが効いた」と聞いて、やっぱり試すべきは特徴量エンジニアリングだなと改めて思いました。

日立製作所にはどのような印象を持ちましたか?

思った以上にデータサイエンス系に力を入れているなという印象を受けました。前回と今回で違うメンターさんだったんですが、知識と経験がある方ばかりで驚きました。いま熟練の方の技術をAIで再現するという取り組みをされているとお聞きして、すごいなと思いました。

鈴木さんにとって、ハッカソンはどんな場ですか?

モチベーションを上げてくれる場です。参加する度に自分の足りないところに気づきますし、一人でやるオンラインのコンペとは違って、他の方が目に入ります。今日も関西から上京して参加している方がいて、そういう方を見ると「自分ももっとやらなきゃ!」という気持ちになります。今後は画像認識にも挑戦したいし、テーブルデータにも時系列解析などいろんな種類があるので、どんな分野でも知識を得ていきたいと思っています。こうなりたい自分の、まだ1割にもなっていないので頑張ります。

[contact-form-7 404 "Not Found"]