Skip to content

Python

『推薦システム実践入門』5章1節2節

『推薦システム実践入門』を読み始めたので、実装をまとめてみます。 Pythonによる実装自体はGitHubにアップされています。 データ処理には定番のpandasが使われているのですが、 最近自分がpolarsを使い始めているのと、devcontainer上でpandasを回しているとすぐにメモリがあふれてしまうという問題にぶち当たったので、 ここではpolarsを使った実装をまとめていこうと思います。 このブログで紹介した実装は自分のGitHubにも適宜アップロードしていく予定です。

ベンフォードの法則

ベンフォードの法則は「自然界に現れる多くの数値の最初の桁の値はある特定の分布に従う」ことを指す法則である。 ふと出くわして非常に面白かったのでまとめておく。

決定木を1から実装する

決定木って名前はよく聞くしscikit-learnで簡単に使えてしまうけど、中身を詳しく知っているわけではなかったのできちんと実装してみることにする。 from scratchでの実装にはこの記事が非常に参考になった。

Hermite多項式の係数

Hermite多項式の係数をpythonで求める方法を紹介します。 係数自体は三項間漸化式で求められますが、高次の係数を求めるときには再帰が必要になり計算量が増えてしまいます。 functoolsモジュールのcacheを使うと再帰を高速化できます。

Random Fourier Features

カーネル法によるリッジ回帰は表現力が高いことが知られており、またその数学的背景の豊かさから多くの研究がなされてきました。 しかし、\(n\)個のデータ数に対して推論に\(\mathcal{O}(n^{3})\)の計算量が必要とされるため、計算量を低減させる方法を検討することは非常に重要です。 ここでは、Random Fourier Features 1と呼ばれる方法を紹介します。 実装も行ったがGistにも公開している。

M1 MacでのPython環境構築(tensorflowとか)

Apple Siliconが搭載されたMacが手元に何台かあって、その上で色々と研究をしていたのですが、pythonの環境構築に結構手こずってしまいました。何度か試してうまく行ったものを備忘録として記しておきます。 (ここではpyenvを用いた環境構築について記しています。もちろん他にも良い方法はあると思います。) インストールに手こずることがあれば随時この記事に書き足していきたいと思います。