u++の備忘録

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…

「Sports Analyst Meetup #3」を開催&LTしました #spoana

はじめに 発表資料 togetter ロングトーク「Jリーグ導入事例から見えてきた、ダイナミックプライシングの未来」 LT 自分の発表 おわりに 過去の開催 はじめに 「Sports Analyst Meetup #3」を開催しました。今回は自分自身もLTで発表しました。spoana.connpa…

Microsoft/interpret で Kaggle titanic

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

「データアナリストのキャリア」について登壇しました

「データアナリスト・機械学習エンジニアの実情とAIキャリアの築き方」というイベントにお声掛けいただき、「社外で探る自分のキャリア」の題目で登壇しました。登壇者はドコモ・インサイトマーケティングの浅野さん、エムスリーの河合さんも含めた計3人で、…

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

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

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

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

日本語版text8コーパスから単語の分散表現を得る

はじめに 参照記事 GitHub 手順 コーパスのダウンロード gensimでの読み込み Kaggle Kernel おわりに はじめに 手軽に日本語の単語の分散表現を得ようと思ったら、これが良かった。数分でやりたいこと終わった。===日本語版text8コーパスを作って分散表現を…

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

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

人工知能学会2019@新潟のご飯まとめ

2019年度 人工知能学会全国大会 (第33回)に参加してきました。 本記事では技術的な話は一切書かず、新潟で満喫したご飯をまとめます。www.ai-gakkai.or.jp 海老の髭 須坂屋そば 塚田牛乳ソフトクリーム とんかつ政ちゃん 朱鯱 須坂屋そば 廻転寿司弁慶 おわ…

AtCoder Beginner Contest 127をPythonで解く

AtCoder Beginner Contest 127をPythonで解きました(A〜D)。atcoder.jp A - Ferris Wheel(100点) 丁寧に条件分岐 A, B = list(map(int, input().split())) if (A <= 5): print(0) elif (A >= 13): print(B) else: print(B//2) B - Algae(200点) 漸化式…

AtCoder Beginner Contest 126をPythonで解く

AtCoder Beginner Contest 126をPythonで解きました(A〜E)。atcoder.jp A - Changing a Character(100点) いろんなやり方はあると思うが、計算量も余裕があるので愚直に マッピング用のdictを用意し、K番目のときだけ適用する N, K = list(map(int, inpu…

「サブスクリプションミートアップ vol.1」に参加しました(全発表まとめ)

本日開催された「サブスクリプションミートアップ vol.1」に参加しました。サブスクリプション事業における知見共有を目的とした会で、中でもKPIの運用・計測などアナリスト的観点の話が中心でした。subscription-meetup.connpass.com開催趣旨は、当日も説明…

「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…

「Sports Analyst Meetup #2」を開催しました #spoana

「Sports Analyst Meetup #2」を開催しました。実務でスポーツのデータ分析をしている方のロングトーク2本に加え、LTも10本と盛りだくさんの内容でした。spoana.connpass.com2月末に開催した初回に続く、第2回の開催です。upura.hatenablog.com発表資料はこ…

「diverta 2019 Programming Contest」をPythonで解く

A〜Dまで解きました。atcoder.jp A - Consecutive Integers(100点) サンプルなど、実際に具体的な数字で考えると良い N, K = list(map(int, input().split())) print(N - K + 1) B - RGB Boxes(200点) r, gを固定したときにbが答えとなり得るか(割り切…

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

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

コロケーションの指標「C-value」のPython実装

概要 論文 要旨 C-valueの算出アルゴリズム 計算の具体例 実装 概要 コロケーション("Read a newspaper", "Write a blog" など、慣習的に用いられる英単語の組み合わせ)を抽出したい 以下のブログで紹介されていたコロケーションの指標「C-value」をPython…

遺伝的アルゴリズムで平成から令和に変えてみる

遺伝的アルゴリズムを用いて 'HEISEI' という文字列を 'REIWA' に変えてみました。平成(HEISEI)から令和(REIWA)に遺伝的アルゴリズムで変換するプログラム書いた pic.twitter.com/LefqiaPYBM— u++ (@upura0) April 30, 2019 開始時 終了時 ルール 'HEISEI' …

千代田線を端から端まで歩いてみた

GWやることないから北綾瀬→代々木上原の千代田線ウォーキングチャレンジする pic.twitter.com/bsS4VdscAs— u++ (@upura0) April 28, 2019 暇だったので、普段通勤などで使っている千代田線を歩いてみることにしました。下記シリーズの第3弾です。upura.haten…

AtCoder Beginner Contest 125をPythonで解く

atcoder.jp A - Biscuit Generator(100点) Tまでに何回ビスケットが生産されるか考える 0.5は無視で良い A, B, T = list(map(int, input().split())) ans = T//A * B print(ans) B - Resale(200点) それぞれの宝石の「価値-コスト」を考え、正の宝石の値…

Tenka1 Programmer Beginner Contest 2019をPythonで解く

atcoder.jp A - On the Way(100点) 必ずしもA A = list(map(int, input().split())) if (A[0] < A[2] < A[1]) or (A[1] < A[2] < A[0]): print("Yes") else: print("No") B - *e**** ********e* *e****e* ****e**(200点) 問題文の通りに実装 N = int(inp…

Data Driven Developer Meetup 【番外編 好きな論文について語る会】 #1 の発表資料

これは何? ↓のイベントで話す際の資料です。d3m.connpass.com 自己紹介 事業会社のデータアナリスト&エンジニア Data Driven Developer Meetupは #4 で登壇 ブログやGitHubで読んだ論文をまとめています Many analysts, one dataset: Making transparent h…

AtCoder Beginner Contest 124をPythonで解く

予定があったので、リアルタイムでは参加できませんでした。atcoder.jp A - Buttons(100点) AとBを1回ずつ取る場合は、A==Bのときのみ それ以外は同じのを連続で取る A, B = list(map(int, input().split())) if (A == B): print(A + B) else: print(max(A…

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

KaggleのPetfinderコンペで準優勝しました。Solutionの概要はdiscussionで公開しています。 2nd Place Solution Summary | Kaggle

AtCoder Beginner Contest 123をPythonで解く

「AtCoder Beginner Contest 123」を解きました(リアルタイムでは参加できませんでした)。atcoder.jp A - Five Antennas(100点) 一番大きい座標と小さい座標の差がKより大きいかで条件分岐 最初問題文のa~eの不等号を見落としていたので無駄にmax, minを…

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含め大きな反響を頂きました。新年度に心…