天色グラフィティ

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

2022年を読んだ本とともにふりかえる

2022年もおつかれさまでした。今年は3月に転職を行い、業務内容もデータサイエンスよりエンジニアリング(MLOps)に近い領域に変わりました。来年はさらに変わりそうな気配がしています笑。 というわけで読んだ本をざっくり紹介しつつ、2022年を振り返ってい…

ワンフレーズで本と出会うサービス「一文一会」を作りました

ここ2週間くらい力を入れて開発していた「一文一会」というサービスが完成しました。 本のフレーズや紹介文がつぎつぎ(ランダムに)表示されるサービスです。 ビビッときたフレーズをクリックすると何の本なのか知ることができます。 好きな本を紹介するこ…

【discord.py】Among Usのためにランダムに人を選ぶDiscord Botを作りました

現在このbotは公開を停止しています。申し訳ありません。 discord.pyを使ってDiscordのbotを2時間くらいで作った話を書きます。 なんで作ったか Among Usはクルーメイト(村人)とインポスター(人狼)が争うゲームなのですが、MODを利用して「狂人」「てる…

【Next.js】Among Usが好きすぎて3日間でAmong Us用メモアプリを作りました【個人開発】

こんにちは。鈴木天音(@SakuEji)です。 今日はこの間作ったAmong Us NoteというAmong Us用メモアプリについて書きます。 Among Usが好きすぎて、Among Usのメモを手軽に取れるWebアプリを作りました・遊びながらでもぽちぽち簡単メモ・信用できる人と怪し…

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

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

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

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

自作キーボード沼への第一歩。Lily58を組み立てました!

みなさんは遊舎工房をご存知でしょうか? 遊舎工房とは、秋葉原(御徒町)にある自作キーボードの専門店です。 おそらく日本唯一の専門店で、かつ店内に工作スペースがあり、購入したキーボードを組み立てて帰ることができます。 開店当初から行きたいと思って…

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

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

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

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

【質疑応答付き】Kaggle Tokyo Meetup #6 に参加しました

DeNAで開催された、Kaggle Tokyo Meetup #6の参加記です。YouTube配信の視聴を含めるとMeetup参加は3回目ですが、回を増すごとに情報量も発表内容の多様性も増しているように思います。 本当にすばらしい発表を皆様ありがとうございました。僕も発表やLTでコ…

「結局、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-…

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となりました。 順調に水色を進んでいます。早く暖色になるぞという強い意志を持ってやっていきたいと思います。 と書いておいてウケるんですが、先週末土曜日にあっ…