u++の備忘録

Kaggle

Japan.R 2019にて「KaggleとRコンペの紹介」の題目で発表しました

「kaggle その2 Advent Calendar」の7日目の記事です*1。本日開催された「Japan.R 2019」*2にて「KaggleとRコンペの紹介」の題目で発表しました。TokyoRでは2度発表したことがあるのですが*3*4、JapanRは初参加でした。幅広い世代の方が多様なジャンルの発表…

小数点以下を取り出す特徴量エンジニアリングの解釈と実装

Couseraの「How to Win a Data Science Competition: Learn from Top Kagglers」*1などで紹介されている特徴量エンジニアリングのアイディアの一つとして「数値データの小数点以下を取り出す」という技法があります。本記事では簡単な解釈を述べ、Pythonによ…

Pythonを用いたKaggle入門書を2020年3月に講談社から出版します

このたびご縁があり、Pythonを用いたKaggle入門書を講談社から出版する運びとなりました*1。現在デザインや校正などを進めている段階で、発売開始は2020年3月17日を予定しています。https://www.amazon.co.jp/dp/4065190061同人誌ながら累計2500部以上を売り…

「マイナビ × SIGNATE Student Cup 2019: 賃貸物件の家賃予測」まとめ

はじめに 一覧 コンペ概要 評価関数 データ コンペ設計 表彰 予測精度賞(1位解法) 前処理・特徴量エンジニアリング 建物IDの付与 同一建物内での回帰モデル CatBoost Stacking Stratified Stacking Adaptive Stacking アイデア賞 賃料と合わせて緯度・経度…

「初手LightGBM」をする7つの理由

Kaggleなどのデータ分析コンペでテーブルデータを扱う場合、最近は取りあえずLightGBMを利用する場合が多いです。本記事では、初手の機械学習アルゴリズムとして「LightGBM」*1を採用する理由を紹介します。あくまで2019年10月末時点での個人の主観なので、…

Adversarial Validationを用いた特徴量選択

先日公開した「IEEE-CIS Fraud Detection」コンペの解法*1の中で、Adversarial Validationの考え方を用いた特徴量選択について何回か質問がありました。本記事では、Adversarial Validationの考え方を用いた特徴量選択を解説します。 Adversarial Validation…

「Kaggle Grandmasterに聞く!-トップデータサイエンティストの過去・現在・未来-」に登壇しました

データサイエンティスト協会 6thシンポジウム「Kaggle Grandmasterに聞く!-トップデータサイエンティストの過去・現在・未来-」に、モデレーターとして登壇しました。www.datascientist.or.jp私がGrandmasterのJackさん、Onoderaさんに質問する形式のパネ…

Kaggle「IEEE-CIS Fraud Detection」コンペ参加録

Kaggle「IEEE-CIS Fraud Detection」コンペに個人で参加して、2485位でした。public lb スコアだと2800位程度の提出でshake upを狙ったのですが妥当な結果に終わった次第です。本記事では、discussionに投稿した内容を基に、本コンペでの取り組みをまとめま…

【書評】『Kaggleで勝つデータ分析の技術』(技術評論社)

限定の先行販売*1で紙版を入手した『Kaggleで勝つデータ分析の技術』(技術評論社)を読みました。なお電子版をご恵贈いただく予定です。gihyo.jp10月7日の発売を待たずして Amazon*2のベストセラー1位になるなど、注目を集めています。既に著者の一人である…

AI×愛知の「AIchi勉強会」でKaggleの魅力について発表しました

愛知県名古屋市で開催された「AIchi勉強会」で、Kaggleの魅力について発表しました。愛知県出身という縁でお声がけいただいた形です。 愛知県の製造業の異なる会社で働く、AI・機械学習に興味を持つメンバー3人中心に「愛知県で会社を越えてAIに興味ある人、…

テーブルデータ向けのGAN(TGAN)で、titanicのデータを増やす

はじめに ynktk さんのツイート*1を見て、テーブルデータ向けの GAN の存在を知りました。本記事では、TGAN を用いて titanic のデータを拡張してみます。 TGANとは テーブルデータに対応した GAN (Generative Adversarial Network, 敵対的生成ネットワーク)…

【ネタバレ有】『アルキメデスの大戦』とデータ分析の仕事

はじめに OsciiArtさんの下記のツイートで興味を持ち、観に行きました。本記事では、ネタバレ要素を含みつつ、徒然と感想を書いていこうと思います。『アルキメデスの大戦』を観た。傑作。kaggler、データサイエンティストは絶対に見て欲しい。kaggleのプロ…

scikit-learn-contrib の Metric Learning を試す

Metric Learning について Metric Learning は、データの教師情報を基にデータ間の距離や類似度などの Metric を学習する手法です。日本語で手軽に読める記事だと、*1, *2 などが詳しいです。このたび、phalanx さんの tweet *3で、 Metric Learning の基礎…

【特徴量の追加編】機械学習を用いた大相撲千秋楽の勝敗予想

はじめに 「連勝・連敗」特徴量の追加 tsfresh特徴量の追加 おわりに はじめに 前回は、「Sports Analyst Meetup #4」でのLTに向けて、ベンチマークとなる機械学習モデルを構築しました。新しい特徴量を追加することで、予測モデルの性能が向上することも確…

【ベンチマーク編】機械学習を用いた大相撲千秋楽の勝敗予想

はじめに ベンチマークの構築 特徴量 目的変数 機械学習モデル Validation の構築 評価性能 新しい特徴量の追加 追加する特徴量 評価性能(新しい特徴量の追加) おわりに はじめに 前回は、「Sports Analyst Meetup #4」でのLTに向けて、「Sumo Reference」…

Kaggle Jigsawコンペ32位でした

KaggleのJigsawコンペにチーム参加して、32位で銀メダルでした。public 58位からは上昇しましたが、金メダル圏内にはもうひと押し足らずという結果でした。www.kaggle.comdiscussionにチームメイトのKazSappさんが投稿した通り、解法は6モデルの重み付き平均…

LightGBMでtargetをsqrt(target)に変換して予測する「reg_sqrt=True」

機械学習の教師あり学習における一つのテクニックとして、学習時の target 変換があります。昨晩に LightGBM の documentation を読んでいたところ、sqrt 限定ですが、target の変換を自動で処理してくれる parameter "reg_sqrt" を(恥ずかしながら初めて)…

「長さの近いデータを同じbatchに入れる」の性能劣化と速度

先のKaggle Tokyo Meetup #6 でのtksさんの発表で触れられた「長さの近いデータを同じbatchに入れる」について、チームで参加した「Jigsaw Unintended Bias in Toxicity Classification | Kaggle」にて同じような取り組みをしていました。本記事では、Jigsaw…

Kaggle Tokyo Meetup #6 にて「PetFinder 2nd Place Solution」の題目で発表しました

「Kaggle Tokyo Meetup #6」に参加し、チーム Wodori の一員として「PetFinder 2nd Place Solution」の題目で発表もしました。connpass.com本記事では、各発表の簡単な感想などを述べます。twitterの #kaggle_tokyo や kaggler-ja slackの #event-live にも…

Dockerのコンテナのメモリ上限の拡張

下記ブログを参考にDockerでデータ分析環境を構築した後、Dockerのコンテナのメモリ上限の関係でエラーが発生したのでメモしておきます。amalog.hateblo.jp 発生したエラー 原因 解決策 おわりに 発生したエラー The kernel appears to have died. It will r…

Microsoft/interpret で Kaggle titanic

次のツイートを見かけて興味を持ったので、取りあえず使ってみました。使い方はGitHubのREADMEに記載がありますが、sklearnの機械学習モデルと同様に fit -> predict します。Microsoftが、解釈性が高くかつ精度も高いBoostingのモデル(Explainable Boosting…

データセットの綴りミスは必ず直すべきか?

前回書いた記事では、綴りミスなどの修正に用いる辞書を手動で構築する方法を紹介しました。upura.hatenablog.com本記事では、Petfinderコンペを題材に「データセットの綴りミスは必ず直すべきか?」という問いについて考えたいと思います。 自分なりの回答 …

typo辞書を人力で作るためのTips

準優勝したKaggleのPetfinderコンペでは、元データの英単語の綴りミスなどの修正に用いる辞書を手動で構築しました。upura.hatenablog.com本記事では、このような辞書を構築した方法についてまとめます。 結論 概説 embeddingのout of vocabularyとなる単語…

Kaggle地震コンペ振り返り(public 5th -> private 212th)

2019年1〜6月にわたって開催されていたKaggleの「LANL Earthquake Prediction」コンペに参加し、銀メダルを獲得しました。public LBの時点では賞金圏の5位につけていて、ドキドキしながら最終結果を待ち構えていました。心臓ちぎれそうだけど、このドキドキ…

「Machine learning graph pitch #1」に参加しました(全発表まとめ)

本日開催された「Machine learning graph pitch #1」に参加しました。機械学習の中でも、特にグラフ関連の技術を実務で使っている5人の方々のLTをお聞きできました。machine-learning-pitch.connpass.com Improving "People You May Know" on Directed Socia…

Kaggle Kernel (Jupyter Notebook) でログを別ファイルに出力する

本記事では、Kaggle Kernel (Jupyter Notebook) でログを別ファイルに出力する方法を紹介します。「Jupyter Notebook形式での出力が大量になると見づらいので、別ファイルに吐き出したい」などの需要を想定しています。 方法 loggerでファイルに書き込んでい…

Kaggle PetFinderコンペで準優勝しました

KaggleのPetFinderコンペで準優勝しました。Solutionの概要はdiscussionで公開しています。 PetFinder.my Adoption Prediction | Kaggle

Kaggleコンペでは忘れずに「Final Submission」を選ぼう

「Santander Customer Transaction Prediction」コンペが、残り5日になりました。過去最多だった7,198 teams参加の「Home Credit Default Risk」コンペを超え、現時点でも8,650 teams参加と過去最多になっています。このコンペが「メダルが獲得できるKaggle…

Kaggle入門記事をQiitaに書きました

先日「Kaggleに登録したら次にやること ~ これだけやれば十分闘える!Titanicの先へ行く入門 10 Kernel ~」という記事の初版を公開しました。qiita.com初めてQiitaに記事を書いたのですが、ありがたいことにTwitter含め大きな反響を頂きました。新年度に心…

Kaggleでメダルが獲得できるコンペか否か確認する

コンペのトップページの「Tiers」部分の表記で確認できます。例えば、メダルが獲得できるpetfinderコンペでは、次のような表記です。https://www.kaggle.com/c/petfinder-adoption-prediction一方で、メダルが付与されないコンペでは、次のような表記になっ…