タグ

ブックマーク / blog.amedama.jp (17)

  • Python: pandas-profiling は ydata-profiling にリネームされた - CUBE SUGAR CONTAINER

    Python の EDA 用フレームワークとして有名な pandas-profiling は ydata-profiling に名前が変更された。 まだ意外と知られていないようなので、今回はそれについて書いてみる。 使った環境は次のとおり。 $ sw_vers ProductName: macOS ProductVersion: 13.4 BuildVersion: 22F66 $ python -V Python 3.10.12 $ pip list | egrep ".*-profiling" pandas-profiling 3.6.6 ydata-profiling 4.2.0 もくじ もくじ 下準備 パッケージ名の変更について 変更点について 下準備 動作を確認するために、リネームされる前の名前を使って pandas-profiling をインストールしておこう。 $ pip i

    Python: pandas-profiling は ydata-profiling にリネームされた - CUBE SUGAR CONTAINER
    endor
    endor 2024/05/13
  • Python: Jupyter の IPython Kernel にスタートアップスクリプトを登録する - CUBE SUGAR CONTAINER

    今回は Jupyter の IPython Kernel に、スタートアップスクリプトを登録する方法について書いてみる。 スタートアップスクリプトというのは、カーネルの起動時に読み込まれるコードのこと。 IPython Kernel というのは、いわゆるフツーのノートブックを Jupyter で実行するときに動いているバックエンドのプログラムを指している。 使った環境は次のとおり。 $ sw_vers ProductName: macOS ProductVersion: 11.4 BuildVersion: 20F71 $ python -V Python 3.9.5 $ jupyter --version jupyter core : 4.7.1 jupyter-notebook : 6.4.0 qtconsole : not installed ipython : 7.24.1 ipy

    Python: Jupyter の IPython Kernel にスタートアップスクリプトを登録する - CUBE SUGAR CONTAINER
    endor
    endor 2023/01/13
  • Python: Streamlit を使って手早く WebUI 付きのプロトタイプを作る - CUBE SUGAR CONTAINER

    Streamlit は、ざっくり言うと主にデータサイエンス領域において WebUI 付きのアプリケーションを手早く作るためのソフトウェア。 使い所としては、ひとまず動くものを見せたかったり、少人数で試しに使うレベルのプロトタイプを作るフェーズに適していると思う。 たとえば、Jupyter で提供すると複数人で使うのに難があるし、かといって Flask や Django を使って真面目に作るほどではない、くらいのとき。 使った環境は次のとおり。 $ sw_vers ProductName: macOS ProductVersion: 11.3.1 BuildVersion: 20E241 $ python -V Python 3.8.9 もくじ もくじ 下準備 基的な使い方 基的な書式 プレースホルダー プログレスバーを使った処理の進捗の可視化 基的な可視化 組み込みのグラフ描画機能

    Python: Streamlit を使って手早く WebUI 付きのプロトタイプを作る - CUBE SUGAR CONTAINER
    endor
    endor 2021/07/19
  • Python: pandas の永続化フォーマットについて調べた - CUBE SUGAR CONTAINER

    以前、このブログでは pandas の DataFrame を Pickle として保存することで読み込み速度を上げる、というテクニックを紹介した。 blog.amedama.jp 実は pandas がサポートしている永続化方式は Pickle 以外にもある。 今回は、その中でも代表的な以下の永続化フォーマットについて特性を調べると共に簡単なベンチマークを取ってみることにした。 Pickle Feather Parquet 使った環境とパッケージのバージョンは次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.13.5 BuildVersion: 17F77 $ python -V Python 3.6.5 $ pip list --format=columns | egrep "(pandas|feather-format|

    Python: pandas の永続化フォーマットについて調べた - CUBE SUGAR CONTAINER
    endor
    endor 2021/06/01
  • Python: seaborn を使った可視化を試してみる - CUBE SUGAR CONTAINER

    今回は、Python の有名な可視化ライブラリである matplotlib のラッパーとして動作する seaborn を試してみる。 seaborn を使うと、よく必要になる割に matplotlib をそのまま使うと面倒なグラフが簡単に描ける。 毎回、使うときに検索することになるので備忘録を兼ねて。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.14.4 BuildVersion: 18E226 $ python -V Python 3.7.3 もくじ もくじ 下準備 Relational plots scatter plot (散布図) line plot (折れ線グラフ) Categorical plots strip plot (ストリップチャート) swarm plot (スウォームチャート) box

    Python: seaborn を使った可視化を試してみる - CUBE SUGAR CONTAINER
    endor
    endor 2021/04/16
  • Python: Cookiecutter でプロジェクトのテンプレートを作る - CUBE SUGAR CONTAINER

    Cookiecutter は Python で実装されたプロジェクトのテンプレートを作るためのツール。 似たようなツールだと JavaScript の Yeoman とか、Python だと他にも Paste Script なんかがある。 Python で実装されているとは言ってもテンプレートを作る・使うところまでなら Python が書けなくても問題ない。 今回使う環境は Mac OS X にした。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.11.2 BuildVersion: 15C50 インストールする Python のパッケージマネージャの pip を使ってインストールする。 $ pip install cookiecutter とりあえず使ってみる いくつかサンプルのテンプレートがあるので、それを使ってプロジェクトを作っ

    Python: Cookiecutter でプロジェクトのテンプレートを作る - CUBE SUGAR CONTAINER
    endor
    endor 2020/07/15
  • Python: Annoy の近似最近傍探索 (ANN) を試す - CUBE SUGAR CONTAINER

    今回は Spotify の作った近似最近傍探索 (ANN: Approximate Nearest Neighbor algorithms search) ライブラリの Annoy を試してみる。 ANN は k-NN (k-Nearest Neighbor algorithms search) の一種で、厳密な解を追い求めない代わりに高いスループットが得られる。 ちなみに ANN のライブラリごとのベンチマークを公開している Web サイトがある。 その中でいうと Annoy は大体のベンチマークで真ん中くらいの位置にある。 その代わり Annoy はインストールが簡単という利点がある。 ANN-Benchmarks 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.14 BuildVersion: 18A391

    Python: Annoy の近似最近傍探索 (ANN) を試す - CUBE SUGAR CONTAINER
    endor
    endor 2020/05/19
  • Python: Twine を使って PyPI にパッケージをアップロードする - CUBE SUGAR CONTAINER

    Python のサードパーティ製パッケージは、一般に PyPI (Python Package Index) というリポジトリに登録されている。 このリポジトリはユーザ登録さえすれば誰でも自分で作ったパッケージをアップロードできる。 今回は Twine というツールを使って PyPI にパッケージをアップロードしてみる。 PyPI - the Python Package Index : Python Package Index 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.12.6 BuildVersion: 16G1114 $ python --version Python 3.6.3 $ twine --version twine version 1.9.1 (pkginfo: 1.4.1, reques

    Python: Twine を使って PyPI にパッケージをアップロードする - CUBE SUGAR CONTAINER
    endor
    endor 2019/09/20
  • Python: k-NN Feature Extraction 用のライブラリ「gokinjo」を作った - CUBE SUGAR CONTAINER

    表題の通り、k-NN Feature Extraction という特徴量抽出の手法に使う「gokinjo」という Python のライブラリを作った。 今回はライブラリの使い方について紹介してみる。 github.com k-NN Feature Extraction で得られる特徴量は、Otto Group Product Classification Challenge という Kaggle のコンペで優勝者が使ったものの一つ。 手法自体の解説は以下のブログ記事を参照のこと。 なお、ブログ記事の中でも Python のコードを書いてるけど、よりナイーブな実装になっている。 blog.amedama.jp 以降、紹介に用いる環境は次の通り。 なお、ライブラリ自体にプラットフォームへの依存はない。 また、Python のバージョンは 3.6 以降をサポートしている。 $ sw_vers P

    Python: k-NN Feature Extraction 用のライブラリ「gokinjo」を作った - CUBE SUGAR CONTAINER
    endor
    endor 2019/05/08
  • Python: KMeans 法を実装してみる - CUBE SUGAR CONTAINER

    KMeans 法は、機械学習における教師なし学習のクラスタリングという問題を解くためのアルゴリズム。 教師なし学習というのは、事前に教師データというヒントが与えられないことを指している。 その上で、クラスタリングというのは未知のデータに対していくつかのまとまりを作る問題をいう。 今回取り扱う KMeans 法は、比較的単純なアルゴリズムにも関わらず広く使われているものらしい。 実際に書いてみても、基的な実装であればたしかにとてもシンプルだった。 ただし、データの初期化をするところで一点考慮すべき内容があることにも気づいたので、それについても書く。 KMeans 法の具体的なアルゴリズムについてはサンプルコードと共に後述する。 今回使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.12.3 BuildVersion

    Python: KMeans 法を実装してみる - CUBE SUGAR CONTAINER
    endor
    endor 2019/03/12
  • Python: pandas-profiling でデータセットの概要を確認する - CUBE SUGAR CONTAINER

    今回は pandas-profiling というパッケージを使ってみる。 このパッケージを使うと pandas の DataFrame に含まれる各次元の基的な統計量や相関係数などを一度に確認できる。 最初にデータセットのサマリーを確認できると、その後の EDA (Exploratory Data Analysis: 探索的データ分析) の取っ掛かりにしやすいと思う。 使った環境は次の通り。 $ sw_vers ProductName: macOS ProductVersion: 12.4 BuildVersion: 21F79 $ python -V Python 3.9.13 $ pip3 list | grep pandas-profiling pandas-profiling 3.2.0 下準備 まずは必要なパッケージをインストールしておく。 $ pip install pand

    Python: pandas-profiling でデータセットの概要を確認する - CUBE SUGAR CONTAINER
  • Python: ベイズ最適化で機械学習モデルのハイパーパラメータを選ぶ - CUBE SUGAR CONTAINER

    機械学習モデルにおいて、人間によるチューニングが必要なパラメータをハイパーパラメータと呼ぶ。 ハイパーパラメータをチューニングするやり方は色々とある。 例えば、良さそうなパラメータの組み合わせを全て試すグリッドサーチや、無作為に試すランダムサーチなど。 今回は、それとはちょっと違ったベイズ最適化というやり方を試してみる。 ベイズ最適化では、過去の試行結果から次に何処を調べれば良いかを確率分布と獲得関数にもとづいて決める。 これにより、比較的少ない試行回数でより優れたハイパーパラメータが選べるとされる。 Python でベイズ最適化をするためのパッケージとしては Bayesian Optimization や skopt、GPyOpt などがある。 今回は、その中でも Bayesian Optimization を使ってみることにした。 使った環境は次の通り。 $ sw_vers Produ

    Python: ベイズ最適化で機械学習モデルのハイパーパラメータを選ぶ - CUBE SUGAR CONTAINER
    endor
    endor 2018/08/19
  • Ubuntu 16.04 LTS で NVIDIA Docker を使ってみる - CUBE SUGAR CONTAINER

    (2019-09-22 追記) NVIDIA Docker は現在では非推奨 (Deprecated) な方法となっています。 代わりに NVIDIA Container Toolkit を使ってください。 blog.amedama.jp 以前、このブログで Keras/TensorFlow の学習を GPU (CUDA) で高速化する記事を書いた。 このときは、それぞれの環境の分離には Python の virtualenv を使っていた。 blog.amedama.jp 今回は、別の選択肢として NVIDIA Docker を使う方法を試してみる。 NVIDIA Docker というのは NVIDIA が公式で出している Docker から CUDA を使えるようにするユーティリティ群と Docker イメージ。 このやり方だと Docker ホストには NVIDIA Driver さ

    Ubuntu 16.04 LTS で NVIDIA Docker を使ってみる - CUBE SUGAR CONTAINER
    endor
    endor 2018/07/15
  • Python: ジェネレータをイテレータから理解する - CUBE SUGAR CONTAINER

    Python のイテレータとジェネレータという概念は意外と分かりにくい。 今回は、実は深い関わり合いを持った両者についてまとめてみることにする。 というのも、最終的にジェネレータを理解するにはイテレータへの理解が欠かせないためだ。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.12.6 BuildVersion: 16G1036 $ python --version Python 3.6.3 イテレータとは まず、そもそもイテレータとは何者だろうか。 それについて、いくつかの側面から考えてみることにしよう。 使い方から考える 最初は、使い方という側面からイテレータとは何かを考えてみよう。 このとき、答えは「要素を一つずつ取り出すことのできるオブジェクト」になる。 実際に、使い方からイテレータについて見ていこう。

    Python: ジェネレータをイテレータから理解する - CUBE SUGAR CONTAINER
    endor
    endor 2017/11/24
  • Python: コマンドラインパーサの Click が便利すぎた - CUBE SUGAR CONTAINER

    Python のコマンドラインパーサといえば、標準ライブラリに組み込まれている argparse が基。 蛇足になるけど、バージョン 2.7 以前で使われていた optparse は将来的に廃止予定なので新たに使うことは避けた方が良い。 そして、今回紹介する Python のサードパーティ製コマンドラインパーサ Click は、既存のパッケージと比較すると最小限のコードで美しくコマンドラインインターフェースを実装できるように作られている。 どれくらい楽になるかといえば、もう argparse を使っている場合じゃないな、と思えるレベル。 Welcome to Click — Click Documentation (8.0.x) もくじ もくじ Click をインストールする 基的な使い方 コマンドを定義する オプションを追加する 引数を追加する サブコマンドを作る オプションについて

    Python: コマンドラインパーサの Click が便利すぎた - CUBE SUGAR CONTAINER
    endor
    endor 2016/10/28
  • Python: mod_wsgi の組み込みモードとデーモンモードについて - CUBE SUGAR CONTAINER

    Python で Web アプリケーションを開発する場合、WSGI という仕様に沿った形で作られているとアプリケーションのポータビリティが向上する。 WSGI の仕様に沿っているアプリケーションは、異なる実装の WSGI サーバであっても動作させることができるためだ。 今回は数ある WSGI サーバの中でも Apache httpd 上で動作することで有名な mod_wsgi について扱う。 この mod_wsgi にはふたつの動作モードがあり、それぞれ組み込みモード (embedded mode) とデーモンモード (daemon mode) という名前がついている。 今回は mod_wsgi を組み込みモードとデーモンモードのそれぞれで動作させた上で、両者がどのように異なるのかについて調べていく。 尚、今回の検証には CentOS7 を使った。 $ cat /etc/redhat-re

    Python: mod_wsgi の組み込みモードとデーモンモードについて - CUBE SUGAR CONTAINER
  • Python のバージョン毎の違いとその吸収方法について - CUBE SUGAR CONTAINER

    この記事の目指すところ 現在 Python はバージョン 2.x 系と 3.x 系という、一部に互換性のないふたつのメジャーバージョンが併用されている。 その上で、この記事にはふたつの目的がある。 ひとつ目は、2.x 系と 3.x 系の違いについてまとめること。 現状、それぞれのバージョン毎の違いはまとまっているところが少ない。 自分用に、このページだけ見ればひと通り分かる!っていうものがほしかった。 ふたつ目は、2.x 系と 3.x 系の違いを吸収するソースコードの書き方についてまとめること。 こちらも Web 上にナレッジがあまりまとまっていない。 これについては今 python-future というパッケージがアツい。 尚、サポートするバージョンは以下の通り。 2.x 系: 2.6 と 2.7 3.x 系: 3.3 と 3.4 題に入る前に、最近の Python 事情についてまとめ

    Python のバージョン毎の違いとその吸収方法について - CUBE SUGAR CONTAINER
    endor
    endor 2015/11/13
  • 1