天色グラフィティ

技術ちっくなことを書きます

Quoraコンペの振り返りと上位解法まとめ

KaggleのQuora Insincere Questions Classificationコンペに参加しました。 結果は121位で、銀メダルでした。これで銀メダルが3枚目です。わーい。 Public Leaderboardで692位と振るわず、コンペのdeadlineが修論発表の当日だったので直前ほとんど何も出来ず…

決定木は本当に変換に依存しないのか?

決定木をベースとしたモデル(RandomForestやXGBoost、LightGBMなど)は正規化などの前処理が必要ないと言われています。 理由として挙げられるのは「決定木は特徴量の大小関係のみに着目しており、値自体には意味がないから」というものです。 先日もkaggler-…

2018年、たいへんお世話になりました。

大晦日なので実家に帰っています。あまり酒を嗜んだりはしない両親とシャンパンを飲み、話しているうちにこんな時間になってしまいました。 帰省する前は「親と話すことなんてそんなに多くはないよなぁ」と思っていましたが、24歳になって昔(中高時代など)を…

コピペで使える。Kaggleでの実験を効率化する小技まとめ

この記事はKaggle Advent Calendar 2018の20日目の記事です。当初の予定ではPLAsTiCCコンペの振り返りをするはずだったのですが、時空の狭間に吸い込まれた結果0サブミットでフィニッシュしてしまいました。何ででしょうね。 そこで、代わりにKaggleで使える…

2018年11月を振り返ってみる

先月に引き続き11月の振り返りをやっていきます。 やったこと 毎日GitHubに草を生やした 先月に引き続き毎日草を生やせました。 授業のTAの一環で簡単なコンペを開催するツールを作った(公開準備中) 授業のTAやる過程で小規模データ分析コンペを開催するWeb…

LightGBMのcallbackを利用して学習履歴をロガー経由で出力する

KaggleなどでLightGBMを使っていて学習履歴を見たとき、ログファイルにも残してほしいと思うことがあります。 公式にはそのような機能は実装されていないようなので、LightGBMのコールバックで対応したいと思います。 LightGBMではfitメソッドの引数としてコ…

2018年10月を振り返ってみる

最近、Dynalistというサービスを使ってやったことをメモしていました。それを元に今月を振り返りをやっていきます。 やったこと 毎日GitHubに草をはやした 前半はGoのツールで、後半はPLAsTiCCコンペでコミットを稼いだ。 苦し紛れでAtCoderの適当な問題を埋…

Goあんこ4kgでLTしました

知らない人にはGoあんこってなんだよって話だと思いますが。 GoあんことはGo(Un)Conferenceの略で、Go言語のゆるふわLT会のことです。4kgは4回目って意味です。かわいい。 発表資料はこちらです。 主催者は@deadcheatさんと@syossan27さんのおふたりで、株式…

Golangでどうでもいい知識を教えてくれるCLIツールを作った

最近ghqの作者@motemenさんのインタビューや pecoの作者@lestrratさんのインタビューを読んでいてCLIツールを作りたい欲がむらむらと湧いていました。 @motemenさんのインタビューによると、普段から「これ不便だな。ツールにならないかな」とアンテナを貼っ…

KaggleのHome Creditコンペで銀メダルを取った話と、チームで動く際のノウハウとか

書く書くといっておきながらなかなか書かないでいたらGoogle Analyticsコンペが始まってしまいました。慌ててこの参戦記を書いています。 Home Credit Default Riskコンペに参加し、166位で銀メダルを取りました! 僕は同じ研究室の@sugawarya、東大松尾研の…

Kaggleで使えるFeather形式を利用した特徴量管理法

みなさま、Kaggle楽しんでいますでしょうか。 僕は現在Home Credit Default RiskとSantander Value Prediction Challengeに参加しています。 前回のKaggle記事ではpandasのテクニックについてまとめました。 多くのアクセスをいただき、人生初のホッテントリ…

ARC100に参加した(510位)

ARC100に参加しました。結果は510位で、レートは1429→1427と微減しました。 問題としてはC問題を1WAしながらACし、D問題が解けませんでした。久しぶりにDで手こずった気がします。 今回から、解けなかった問題については典型要素の抽出をやってみたいと思い…

ARC099に参加した(210位)

ARC099に参加しました。210位でレートは1304→1429になりました。 久しぶりのコンテスト参加で緊張しましたが、Dをそれなりに早く解いたのがよかったっぽいです。 そういえば先日書いた記事がホッテントリに載りました。結構うれしいものですね。 amalog.hate…

Kaggleで使えるpandasテクニック集

PythonでKaggleなどのデータ分析を行う際、pandasでゴリゴリ作業をすることが多いかと思います。 最近知って「めっちゃ便利やん!」ってなったものをまとめておきたいと思います。 全部の関数にドキュメントへのリンクを付けたので参考にしてください。 今回…

ARC098に参加しました (726位)

ARC098に参加しました。C問題を1回TLEしてD問題が解けず無事死亡しました。 レートは1334→1298ということで、微減ですね。 D問題が解けなかったのは久しぶりなので練習不足を感じます。 最近Kaggleが忙しくて過去問埋めもあまりできていません。 前回の記事 …

AGC024に参加しました (445位)

AGC024に参加しました。A・B・Cを3完し、Dを途中まで解いて散りました。レートは1240→1334となりました。 順調に水色を進んでいます。早く暖色になるぞという強い意志を持ってやっていきたいと思います。 と書いておいてウケるんですが、先週末土曜日にあっ…

ひとつの本屋で起きたこと。を読んで

バズっていたこの記事を読んでいろいろ考えたのでメモがてら残しておく。 nyawaraban2014.amebaownd.com これを読んでいる間は「なんだこの絵に描いたような無能な上司は」「たった一人のマネジメントでこんなぐちゃぐちゃになるんだなぁ」といった感想しか…

GCJ Round1C 通過しました (1165位)

Round1Aで敢えなく撃沈し、Round1Bは深夜1時からの開催に耐えきれず不参加。今回迎えたRound1Cで無事突破することができました。 内訳としては1問目をvisible、hiddenともに解き、2問目を通し、3問目はDPだなーと思いながら撃沈しました。DP力が低すぎる。 a…

AGC023に参加した (412位)

アイコンが変わりました。クラウドソーシングサイトでお願いして写真を送ったところ、ものごっつい美化されて返ってきました。 かわいいのでありとあらゆるSNSのアイコンを変更して回っています。 さて、AGC023に参加しました。AとBを解いて、Cで撃沈した結…

pandas + matplotlibで描くヒストグラムいろいろ

データ解析コンペの初期段階では、データを可視化して眺め、特徴を探すという探索的データ分析(EDA)が行われます。 Pythonでデータ分析している場合、可視化にはpandasのプロット機能、もしくはmatplotlibを使うことが多いでしょう。 今回はヒストグラムに絞…

ARC096に参加した (411位)

ARC096に参加しました。10分遅刻したものの、30分くらいでCとDをやっつけ、残り時間ずっとEに取り組みましたが解けませんでした。 レートは1010→1121になりました。水色が見えてきましたよ!! 前回の記事: amalog.hateblo.jp

Mac + matplotlibで日本語を表示する

タイトルにMacと入れたのはそれでしか確認していないから。WindowsやLinuxでもパスだけ変えれば当てはまるかもしれない。 TL;DR matplotlibで日本語表示できる.ttfフォントをインストールしましょう ~/.matplotlib/matplotlibrcに書きましょう 【重要】~/.ma…

機械学習コンペで使うスニペットたち

メモです。自分がコピペでぺたぺたする用なので随時更新です。 HyperoptでLightGBMモデルをチューニングする from hyperopt import fmin, hp, tpe def objective(params): params['num_leaves'] = int(params['num_leaves']) params['max_depth'] = int(para…

SUUMOデータ分析ワークショップで優勝した。

sankak.jp SUUMOのデータ分析ワークショップに参加した。結論から書くと優勝した。文字通りの意味である。 コンペ形式でランキングがつくということなので、腕試しのためにラボの同期と一緒に応募した。(ちなみに同期は落ちたので品川の日本酒フェアみたい…

ARC095に参加した

ARC095に参加しました。CとDを40分くらいでやっつけて、Eに1時間取り組むも解けず。 レートは935→1010になりました。 ようやっとレート4ケタの世界へ。単調増加し続けていきたいものです。 前回の記事: amalog.hateblo.jp

GCJ 2018 Round1Aに参加した

Google Code Jam 2018 Round1Aに参加しました。上位1500人がRound2に進めるらしいのですが、結果としては1717位で敢えなく敗退。 まぁ今回で強い人は全員消えるはずなので、Round1Bがんばりましょ。 前回の記事: amalog.hateblo.jp 振り返り Waffle Chopper…

Twitterでふぁぼったリンクを自動でPocketに飛ばしてあとで読む方法

僕の最近の情報収集はかなりの部分をTwitterに依存しています。 興味のある分野が機械学習まわりということもあり、PFNの岡之原大輔さん(@hillbig)をはじめ、 いろいろな人が新しい論文にコメントを付けて紹介してくれています。 Twitterを眺めている時間は…

Google Code Jam Qualification Round 2018に参加した

ラボの助教+ラボ同期に誘われてGoogle Code Jam 2018の予選に参加しました。 まるまる1日使うコンテストは初めてだったので、どういうテンションで望めばいいか全く分かりませんでした。 結果的に問題を見てから4時間くらい放置してAmazon Prime Video見てし…

僕のTwitterがまさかのレイバンったので、抹消するスクリプトを書いた

ついに先日僕もTwitter乗っ取られデビューしました。お恥ずかしい限りです。 リプライが飛んでしまった方々、すみませんでした。 レイバンwwwすみませんwww— えじ (@SakuEji) 2018年4月6日 せっかくだからレイバンのサングラス買ってくれよな!— えじ …

ARC094に参加した

今日やったこと: 昼過ぎに起きる Google Code Jamの問題をチラ見 4時間くらいAmazon Prime Videoと戯れる 重い腰を上げてGCJ解き始める ARC094に参加 GCJ予選突破確定 そんなわけでARC094に参加しました。C問題だけ解いて498位。レートは847→935となりました…