見出し画像

RでKaggleをやってたらいつのまにかNotebooks Expertになってた

noteのデータエンジニアのigjitです。
私はRが好きで、RでJava VMを実装したりして遊んでいます。最近ではRでKaggle(データ分析コンペ)をやるのが趣味です。

Kaggleのコンペのためにコードを書いて公開していたら、いつのまにかNotebooks Expertになっていました。そしてその過程で、英語が苦手でもなんとかコミュニケーションを取っていこう、という心境の変化が起こりました。その様子を話していこうと思います。

そもそもExpertってなに

KaggleにはProgression Systemという、ユーザーのデータサイエンティストとしての成長を示す仕組みがあります。

Novice、Contributor、Expert、Master、Grandmasterの5段階の称号があり、Competitions、Notebooks,Datasets、Discussionの4つのカテゴリそれぞれに対して付与されます。
今回私が得たのはNotebooksカテゴリに対するExpertの称号です。

カテゴリによって称号を得られる条件は違っていて、Notebooks Expertの場合はNotebookに対して5つの銅メダルを獲得することです。

Notebookの銅メダルは、そのNotebookが5 votes(いいね)を獲得するともらえます。

メダル獲得のようす

きっかけ

最初に公開したNotebookは、初めて参加したコンペ(H&Mコンペ。ユーザーに対する服の推薦の精度を競うもの)のために、Notebookの使い方を覚えつつ、試しに「最近人気の服を全ての人に推薦する」という雑な予測結果をsubmitするものでした。

これ本当に大したことやってなくて、単に同僚にこんな内容でfirst submitしたよ、って共有するだけのために公開したのでした。

でもなぜか9 votesももらえてびっくり。
Kaggleユーザーは初心者にやさしい。
これでvotesを集めるとメダルがもらえることを知りました。

次にメダルを獲得したのは、同じH&Mコンペで人気のPythonのNotebookの内容をRでやってみたもの。

この頃にはもうNotebookを公開することに全く抵抗がなかった気がします。
とりあえず雑なコードを公開しても悪いことは起こらなそうだし、もしかしたらvoteしてもらえるかも、みたいな。

Rユーザーとの交流

そしてH&Mコンペが終わって、RでKaggleをやる人がもっと増えれば良いのに、と思うようになります。

Kaggle初コンペにRで挑戦した話

なので次に挑戦したAmexコンペでは、まず評価指標のRパッケージを作って使い方をNotebookで共有しました。

コメントもらえた!

この頃から、だんだん自分の英語力の無さから来る気おくれよりも、コミュニケーションしたさが勝るようになってきます。

AMEX - Basic Logit with Feather Data

ある日、自分のRパッケージを使ってくれてるNotebookを発見。うれしい!

中身を見てみると、ちょっと修正すればスコアが大幅に上がりそうだったので、修正版のNotebookを書いて、どきどきしながらコメントを投稿。

おお、自分の英語が通じてるみたい。よかった。

この修正版のNotebookも7 votesもらって銅メダルを獲得しました。やったね。

良かったこと

Notebookを公開して良かったことはたくさんあります。

Memory Reduction: Feature Engineering with dplyr

まずは単純にみんなほめてくれること。Kaggleユーザーはやさしい。

有用なフィードバックがもらえることもあります。

Sample AMEX data with dtplyr

このNotebookで私は間違った集計結果を公開してしまっていたのですが、間違いに気づいたユーザーがコメントで指摘してくれました。言われなかったら気付かないままでした。ありがたい。

そして何よりも良いのは何らか他のユーザーの役に立てるかもしれないこと。
自分がつまづいたり実装に手間取ったりした箇所は、他の人も困っている可能性があるので、どんどん解法を共有すると良いと思います。

ハッカーらしくふるまうには、他のハッカーたちが考える時間は貴重であると信じなければなりません。それをとことん信じて、情報を共有するのがほとんど道徳的な義務であると思えるようになりましょう。問題を解決し、その解答を提供すれば、他のハッカーたちは古い問題にいつまでも取り組みなおし続けずに、新しい問題を解決できるのです。

ハッカーになろう (How To Become A Hacker)

ひどい英語を、もっと

私は英語が苦手で、特に英文を書くのはどう書き始めて良いかわからず、いつも気おくれします。
でも最近では、「片言で伝わりづらかったとしても、それを補う何らか価値のあることを伝えられるかも」と思いこんで書くようにしています。
一番重要なのはその人が持っているアイデアや役に立つコードで、それを説明するための英語が多少おかしくてもそんなに問題じゃないはず。

英語で発信することに気おくれしている人には、酷い英語をもっとお願いしますというコラムをおすすめします。

メーリングリストでもっとたくさん酷い英語を見かけたい。ネイティブじゃない人が英語が上手くなくてと謝る場面がもっと減ってくれたらとも思う。母語ではない第二、第三、あるいは第四の言語を、たとえ熟達していない状態でも、とにかく使ってコミュケーションを図ろうとするのは全く恥じるようなことなんかじゃない。もし、外国語だというのを理由に不安や気後れを感じて重要な貢献を果たさなかったり、FLOSSツールへ貢献する方法やその使い方について質問を控えたりしたのなら、そういうことが恥になるんだ。

酷い英語をもっとお願いします

これからも

というわけでRでKaggleをやってたらいつのまにかNotebooks Expertになっていた話でした。
次はRでCompetitions Expertを目指しています(銅メダルあと1個で達成)。

引き続き「ひどい英語」でコミュニケーションしながらKaggleを楽しんでいきます。


この記事が気に入ったらサポートをしてみませんか?