kaggleのメルカリのKernelを読む

まず、Kernelを読むのがはじめてなので、なんとなく全体像を確認する。
今回はmerkariのコンペティションの例。

Kernelの種類

OutputsLanguagesTypes大きく3つの分類がある。
それぞれ、以下のような種類がある。

  • Outputs: Visualization, Data Files, Visualization & Data Files

これが結構微妙な分類で、Visualizationはjupyter notebookとかでビジュアル化しているもの、Data Filesがアウトプットのcsvが貼り付けられているものっぽいのですが、しっかり分類できていない感じがあった..
なので、ビジュアル化しているKernelが見たい人は、Visualizationを選択すれば間違い無いかと。

  • Languages: Python, R, SQLite, Julia

単純に開発言語。
SQLiteでもできるのか。

  • Types: Script, Notebook

Scriptはコードだけ、Notebookはjupyter notebook形式。

Favariteが多いkernel

まずkernelをfavariteすることができる。
イイネ的なやつ。
kernel一覧の画面で左の矢印を押すと、favariteとして登録できる。
kernelはfavariteが多い順に並んでいる。

favarite

そこで、favariteが多い順にkernelを読んでいく。
現時点で一番人気があるkernelは以下のリンク。

流石1番人気というべきかかなりのボリューム。
大きく2つに分かれており、データの概要把握データの処理、トレーニングの項目がある。

データの概要把握

ここでは、普通にshapeをprintしたり、describeしたりしているだけ。
データの概要を表示してくれている。

具体的には以下のような内容。

# size of training and dataset
print(train.shape)
print(test.shape)

# different data types in the dataset: categorical (strings) and numeric
train.dtypes

train.head()

train.price.describe()

その他にもデータの表示はもちろんのこと、カテゴリーの加工方法も記載してある。
データの内容物を正確に把握するために、表示系はやっておいた方がいい。

データの処理、トレーニング

Ahmed BESBESのチュートリアル

Ahmed BESBESのチュートリアルに従って実装している。

Google Newsなどの60種類のニュースフィードからデータを集めて、フォーマットに落とし込み機械学習をして新たな発見をする。
ポイントは以下のような内容。

  • 5分に一回pythonのスクリプトでnewsapiを叩いてデータを取得する
  • データ処理してK近傍法とLDAを実施する
  • Bokehとpyldavisでビジュアライズする

tokenize

ここでkernelに戻ろう…
NLP(Natual Language Project:自然言語のプロジェクト)は基本的にtokenizeするらしい。
tokenizeとは、token化することで、文章などを語句レベルに分割することをいう。

Tf-idf

wikipediaがわかりやすい。
こちらもsklearnでimportできる。

from sklearn.feature_extraction.text import TfidfVectorizer

tfidfで評価が低いものたち

low

tfidfで評価が高いものたち
high

t-Distributed Stochastic Neighbor Embedding (t-SNE)

次元を減らすために利用する。
次元が多いデータのvisualizeに効果的。

vialization

WordCloudを使えばこんなに綺麗に表示される。
k近傍法とLatent Dirichlet Allocation (LDA)でクラスタリングして表示している。

トレーニングやアウトプット

version39にアウトプットがあるという書き込みをみつけたが、結局どれがアウトプットかわからなかった…
こんなことあるのか?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です