天色グラフィティ

機械学習やプログラミングでいろいろ作って遊ぶブログ

データ解析

atmaCup #5に参加しました(Public2位→Private6位)

先週土曜日から今週土曜日にかけて1週間、atma社が主催するatmaCup #5に初参戦しました。 結果はPublic2位からのPrivate6位で、残念ながらメダルは逃す結果となりました( ´•̥ו̥` )クヤシイ 個人的には短期間のコンペで複数のモデルを試し、最終的にエレガントっ…

初めて技術書典に出展して、新刊を300部売るまで

9/22の技術書典7で『ハマって覚えるデータ分析・機械学習の罠』を頒布しました。 BOOTHでの同時販売を含めると、書籍とPDFで合計300部以上買っていただけました。 買ってくださった方々、ありがとうございました。 感想や改善点などはTwitterで@SakuEjiにメ…

ICNR: Sub-Pixel Conv使用時のcheckerboard artifactを防ぐ初期化

ニューラルネットワークで画像を拡大(アップサンプリング)する際、Transposed ConvolutionやSub-Pixel Convolutionという手法を使います。 しかし、これらの手法を用いた場合、拡大した画像に格子状の模様(checkerboard artifact)が発生することが知られてい…

Sub-Pixel Convolutionについて#5【画像処理&機械学習】論文LT会!で発表しました

エルピクセル株式会社で開催された #5【画像処理&機械学習】論文LT会! で発表しました。 題材に選んだのはSub-Pixel Convolutionで、関連する論文をいくつか紹介したという感じです。 ちょっと前だけど定番な論文から最新の論文まで、幅広い論文が紹介され…

「結局、Kagglerは何を必死にやっているのか?」というLTをしました

弊社では毎週、新卒LT会が開催されています。 エンジニアがメインですが、同期が職種を問わず広く集まる場になっています。 僕もなにか話したいと思い、7/5(金)に発表しました。 タイトルは「結局、Kagglerは何を必死にやっているのか?」です。 スライドはS…

なぜn_estimatorsやepochsをパラメータサーチしてはいけないのか

ハイパーパラメータを探索するため、グリッドサーチやOptunaなどを利用することがあると思います。 しかし、「ハイパーパラメータ探索してみた」のようなQiita記事などでは間違って書かれていることも多いのですが、XGBoostやLightGBMの n_estimators ( num_…

Dockerでデータ分析環境を手軽に作る方法

何かデータ分析を行わなければいけないとき、手軽に分析環境を用意したいというニーズがあります。 Jupyter Notebook上でnumpy、pandas、matplotlib、scikit-learnあたりが使えれば十分でしょうか。XGBoostやLightGBMといったライブラリも使えるようにしてお…

Kaggle Eloコンペの振り返り・上位解法まとめ

KaggleのElo Merchant Category Recommendationコンペに参加しました。 僕は@kasuminkoさん、@hirokasさんとチームを組んで、ラスト2週間だけ参加しました。結果から書くと、Public 221位からのPrivate 2220位という乱高下で儚く散りました。 手元に銀メダル…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

メモです。自分がコピペでぺたぺたする用なので随時更新です。 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のデータ分析ワークショップに参加した。結論から書くと優勝した。文字通りの意味である。 コンペ形式でランキングがつくということなので、腕試しのためにラボの同期と一緒に応募した。(ちなみに同期は落ちたので品川の日本酒フェアみたい…