タグ CUBE SUGAR CONTAINER
人気順 5 users 50 users 100 users 500 users 1000 usersMultipass を使って Apple Silicon 版の Mac で Ubuntu の仮想マシンを扱う - CUBE SUGAR CONTAINER
Apple Silicon (M1) の載った Mac mini を購入してからというもの、ローカルで仮想マシンを手軽に立ち上げる方法を模索している。 Intel 版の Mac であれば Vagrant + VirtualBox を使っていたけど、残念ながら VirtualBox は ISA が x86 / amd64 のシステムでしか動作しない。 Docker for Mac も使っているけど、コンテ... 続きを読む
Python: 広義の Target Encoding と Stacking は同じもの (と解釈できる) - CUBE SUGAR CONTAINER
おそらく、既に分かっている人には「知らなかったの?」とびっくりされる系の話なんだろうけど、今さら理解したので備忘録として残しておく。 結論から書くと、目的変数を用いた特徴量生成を広義の Target Encoding と定義した場合、Target Encoding と Stacking は同じものと解釈できる。 例えば、Target Mean Encoding... 続きを読む
dd コマンドの進捗を確認する - CUBE SUGAR CONTAINER
dd コマンドの進捗を確認したいときは macOS であれば SIGINFO を、Linux (GNU Coreutils) であれば SIGUSR1 を送れば良い。 また、GNU Coreutils の dd には status=progress というオプションもある。 macOS まずは macOS から。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.14.5 Bui... 続きを読む
Python: ユニットテストを書いてみよう - CUBE SUGAR CONTAINER
ソフトウェアエンジニアにとって、不具合に対抗する最も一般的な方法は自動化されたテストを書くこと。 テストでは、書いたプログラムが誤った振る舞いをしないか確認する。 一口に自動テストといっても、扱うレイヤーによって色々なものがある。 今回は、その中でも最もプリミティブなテストであるユニットテストについ... 続きを読む
Python: RFE (Recursive Feature Elimination) で特徴量を選択してみる - CUBE SUGAR CONTAINER
今回は RFE (Recursive Feature Elimination) と呼ばれる手法を使って特徴量選択 (Feature Selection) してみる。 教師データの中には、モデルの性能に寄与しない特徴量が含まれている場合がある。 アルゴリズムがノイズに対して理想的にロバストであれば、有効な特徴量だけを読み取って学習するため特徴量選択は不要か... 続きを読む
Python: IsolationForest で教師なし学習の外れ値検知を試す - CUBE SUGAR CONTAINER
今回は教師なし学習で外れ値の検知に使える IsolationForest というアルゴリズムを試してみる。 このアルゴリズムの興味深いところは、教師データの中にある程度外れ値が含まれていても構わないという点。 つまり、アノテーションしていないデータをそのまま突っ込むことが許容されている。 IsolationForest のアルゴリ... 続きを読む
Linux Bridge でタグ VLAN を使う - CUBE SUGAR CONTAINER
今回は Linux Bridge (ネットワークブリッジ) でタグ VLAN (IEEE 802.1Q) を使う方法について。 設定が足らなくてだいぶ悩んだのでメモしておく。 使った環境は次の通り。 $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=18.04 DISTRIB_CODENAME=bionic DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS" $ uname -... 続きを読む
Python: 機械学習における不均衡データの問題点と対処法について - CUBE SUGAR CONTAINER
機械学習における分類問題では、扱うデータセットに含まれるラベルに偏りのあるケースがある。 これは、例えば異常検知の分野では特に顕著で、異常なデータというのは正常なデータに比べると極端に数が少ない。 正常なデータが 99.99% なのに対し異常なデータは 0.01% なんてこともある。 このようなデータセットは不均... 続きを読む
Python: 特徴量の重要度を Permutation Importance で計測する - CUBE SUGAR CONTAINER
学習させた機械学習モデルにおいて、どの特徴量がどれくらい性能に寄与しているのかを知りたい場合がある。 すごく効く特徴があれば、それについてもっと深掘りしたいし、あるいは全く効かないものがあるなら取り除くことも考えられる。 使うフレームワークやモデルによっては特徴量の重要度を確認するための API が用意... 続きを読む
Linux のシャドウパスワードについて調べた - CUBE SUGAR CONTAINER
ふと Linux ディストリビューションのユーザ認証周りについて気になって、その中でも特にシャドウパスワードについて調べてみた。 シャドウパスワードは Linux に限らず Unix 系のディストリビューションで広く採用されている、ログイン用のパスワードを暗号化する仕組み。 シャドウパスワード自体は Unix 系の色々なデ... 続きを読む
Python: pandas-profiling でデータセットの概要を確認する - CUBE SUGAR CONTAINER
今回は pandas-profiling というパッケージを使ってみる。 このパッケージを使うと pandas の DataFrame に含まれる各次元の基本的な統計量や相関係数などを一度に確認できる。 最初にデータセットのサマリーを確認できると、その後の EDA (Exploratory Data Analysis: 探索的データ分析) の取っ掛かりにしやすいと思う... 続きを読む
リモートサーバ上の Docker コンテナで Jupyter Notebook を使う - CUBE SUGAR CONTAINER
今回は、以下のエントリの続き。 blog.amedama.jp 上記の記事でやったことを Docker コンテナにしてみる。 使った環境は次の通り。 まずは Docker ホストとして使う Ubuntu 18.04 のマシンから。 こちらも前回と同じように Vagrant で構築している。 vagrant $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=... 続きを読む
リモートサーバの Jupyter Notebook を SSH Port Forwarding 経由で使う - CUBE SUGAR CONTAINER
一般的に Jupyter Notebook はローカルの環境にインストールして使うことが多い。 ただ、ローカルの環境は計算資源が乏しい場合もある。 そんなとは IaaS などリモートにあるサーバで Jupyter Notebook を使いたい場面が存在する。 ただ、セキュリティのことを考えると Jupyter Notebook の Web UI をインターネットに晒... 続きを読む
Python: デコレータの全て - CUBE SUGAR CONTAINER
Python の特徴的な構文の一つにデコレータがある。 便利な機能なんだけど、最初はとっつきにくいかもしれない。 そこで、今回はデコレータについて一通り色々と書いてみる。 先に断っておくと、とても長い。 これを読むと、以下が分かる。 デコレータの本質 デコレータはシンタックスシュガー (糖衣構文) に過ぎない デ... 続きを読む
SSHFS を使ってリモートホストのディレクトリをマウントする - CUBE SUGAR CONTAINER
SSH でログインできるリモートホストとのファイルのやり取りは SCP を使うことが多い。 ただ、頻繁にやり取りするときは、それも面倒に感じることがある。 ただ、あんまり手間のかかる設定作業はしたくない。 そんなときは SSHFS を使うと手軽に楽ができそう。 使った環境は次の通り。 $ cat /etc/lsb-release DISTRIB_I... 続きを読む
Python: ベイズ最適化で機械学習モデルのハイパーパラメータを選ぶ - CUBE SUGAR CONTAINER
機械学習モデルにおいて、人間によるチューニングが必要なパラメータをハイパーパラメータと呼ぶ。 ハイパーパラメータをチューニングするやり方は色々とある。 例えば、良さそうなパラメータの組み合わせを全て試すグリッドサーチや、無作為に試すランダムサーチなど。 今回は、それとはちょっと違ったベイズ最適化とい... 続きを読む
Python: Selenium + Headless Chrome で Web ページ全体のスクリーンショットを撮る - CUBE SUGAR CONTAINER
スクレイピングした Web サイトからページ全体のスクリーンショットを撮影したい機会があった。 そこで Selenium の Python バインディングと Headless Chrome を使ったところ実現できたのでメモしておく。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.13.5 BuildVersion: 17F77 $ pyth... 続きを読む
Python: matplotlib で動的にグラフを生成する - CUBE SUGAR CONTAINER
今回は matplotlib を使って動的にグラフを生成する方法について。 ここでいう動的というのは、データを逐次的に作って、それを随時グラフに反映していくという意味を指す。 例えば機械学習のモデルを学習させるときに、その過程 (損失の減り方とか) を眺める用途で便利だと思う。 使った環境は次の通り。 $ sw_vers Pro... 続きを読む
Python: pandas で対応関係を渡して値を変換する - CUBE SUGAR CONTAINER
2018 - 03 - 20 Python: pandas で対応関係を渡して値を変換する Pandas Python 例えばデータセットの中のカラムが文字列型なんかで入っていると、それを数値に直したくなることはよくあると思う。 今回はそれを pandas でやる方法について書く。 結論から先に書くと Series オブジェクトにある map() メソッドを使うと上手くいく。 使った環境は次の通り... 続きを読む
まっさらな状態から Docker イメージを作る - CUBE SUGAR CONTAINER
2018 - 02 - 04 まっさらな状態から Docker イメージを作る Ubuntu16.04LTS Linux Docker Golang Docker イメージというと、一般的には既存の Docker イメージをベースにして作る機会が多い。 そうしたとき Dockerfile にはベースとなるイメージを FROM 命令で指定する。 とはいえ、既存のイメージをベースにしない、まっさらな状... 続きを読む
Python: ERAlchemy を使って ER 図を描く - CUBE SUGAR CONTAINER
2017 - 12 - 30 Python: ERAlchemy を使って ER 図を描く Graphviz Mac OS X SQLite 今回は ERAlchemy という ER 図を描くツールを使ってみる。 このツールは erd という Haskell で書かれた同様のツールにインスパイアされて作られたものらしい。 ただ、機能的にできることは ERAlchemy の方が多いみたいだ。 ERA... 続きを読む
Python: ジェネレータをイテレータから理解する - CUBE SUGAR CONTAINER
2017 - 11 - 23 Python: ジェネレータをイテレータから理解する Python のイテレータとジェネレータという概念は意外と分かりにくい。 今回は、実は深い関わり合いを持った両者についてまとめてみることにする。 というのも、最終的にジェネレータを理解するにはイテレータへの理解が欠かせないためだ。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS ... 続きを読む
Python: pandas でカラムの型を変換する - CUBE SUGAR CONTAINER
2017 - 11 - 01 Python: pandas でカラムの型を変換する Mac OS X NumPy Python pandas pandas はデータを読み込むとき、よきに計らってカラムに型を付与してくれる。 ただ、その内容が意図しない場合もある。 そんなとき、どうやってカラムの型を直すか、ということについて。 使った環境は次の通り。 $ sw_vers ProductName: M... 続きを読む
オープンソースの脆弱性スキャナ OpenVAS を使ってみる - CUBE SUGAR CONTAINER
2017 - 08 - 09 オープンソースの脆弱性スキャナ OpenVAS を使ってみる Ubuntu16.04LTS Security 今回はオープンソースの脆弱性スキャナである OpenVAS を使ってみることにする。 脆弱性スキャナというのは、ホストに既知の脆弱性が含まれないかどうかを自動でスキャンしてくれるツール。 注意: 脆弱性スキャンはポートスキャンやペネトレーションを含むため外部の... 続きを読む
Python: Keras/TensorFlow で GPU のメモリを必要な分だけ確保する - CUBE SUGAR CONTAINER
2017 - 06 - 07 Python: Keras/TensorFlow で GPU のメモリを必要な分だけ確保する DeepLearning Keras TensorFlow Ubuntu16.04LTS 機械学習 Keras のバックエンドに TensorFlow を使う場合、デフォルトでは一つのプロセスが GPU のメモリを全て使ってしまう。 今回は、その挙動を変更して使う分だけ確保さ... 続きを読む