2018-12-01から1ヶ月間の記事一覧
概要 multiprocessing.Poolで並列化じゃ! と調子に乗ってコードを書いていると表題のようなエラーに遭遇することがあります。 再現するコード。poolerrortest.py from multiprocessing import Pool p = Pool(2) def f(x): print(x) p.map(f, [1,2]) # 中略 …
概要 multiprocessing.Poolは原理的にプロセスをforkさせるので、メインプロセスに大きなデータが残っているとそれが丸々コピーされてメモリ領域を食います。 グローバル関数限定ですが、initializerを使って必要ないデータを消すことができます。また、Pool…
はじめに numpy.savezは最近使ってみてけっこう良い感じだったのですが、日本語のわかりやすい説明が少なかったので解説記事を書いてみます。 なお、以下のドキュメントも併せて参考にしてください。numpy.savez — NumPy v1.15 Manual 基本的な使い方 まず、…
はじめに numpy配列を直列化する方法はいろいろあります。numpyから使える方法に限っても4つあります*1。numpy.savetxt — NumPy v1.15 Manual numpy.save — NumPy v1.15 Manual numpy.savez — NumPy v1.15 Manual numpy.savez_compressed — NumPy v1.15 Manu…
はじめに 20 newsgroupsはこのブログでも過去何回か取り上げまたしが、ベクトル化済みのデータを読み込めるfetch_20newsgroups_vectorizedは意図的にスルーしていました。 使えるかどうか気になったので、試してみます。sklearn.datasets.fetch_20newsgroups…
ふと「あれ、どうなってるんだっけ」と思うことがあったので実験してみる。import_test.py import time print("aaa") def hoge(): print("hoge") print("bbb") def fuga(): print("fuga") for i in range(1, 4): print(i) time.sleep(1) 普通に実行すると、 …
概要 ライフゲームを書きました。 素のpythonだと何をやっても激遅だったので、numbaで高速化しました。 方針 まず実装の方針を決めます。主要な関数としては以下のものがあればできると思いました。 update_cell 1セルの状態を更新する update_field フィー…
はじめに OneClassSVMというものがあると知ったので使ってみます。 「1クラスSVM?」と思われると思いますが、要するに異常検知・外れ値検出などで使う手法です。信頼区間を出すのに似ていますが、複雑な分布だったりそもそも分布が想定できないようなデータ…
はじめに 以前、3次元のサンプルデータを内挿してmatplotlibでうまくプロットする方法について記事にしました。xyzの点データを内挿してmeshgridにしmatplotlibでプロットする - 静かなる名辞 この記事では内挿のアルゴリズムをデフォルトのlinearにして使い…
はじめに 今日コードを書いていて、rangeでもinが使えることに気づきました。 >>> 10 in range(20) True ドキュメントを見るとシーケンス型としての機能は一通り備えているようです。 range オブジェクトは collections.abc.Sequence ABC を実装し、包含判定…
はじめに pythonでmatplotlibを使って作図するとき、三次元のデータでpcolormeshとかcontourでやるような等高線プロットを作りたいんだけど、手持ちのデータはxyzが紐付いた点のバラバラな離散データだけ……ということがままあります。 散布図ならそれでも良…
はじめに FeatureAgglomerationは階層的クラスタリングを用いた教師なし次元削減のモデルです。特徴量に対して階層的クラスタリングを行い(つまり通常のサンプルに対するクラスタリングと縦横の向きが入れ替わる)、似ている特徴量同士をマージします。マー…
たとえば、こういうものを書きたいとする。 def f(a, b): if a == "0" and b == "0": print("a:0, b:0") elif a == "0" and b == "1": print("a:0, b:1") elif a == "1" and b == "0": print("a:1, b:0") elif a == "1" and b == "1": print("a:1, b:1") 条…
概要 sklearnで書籍やネットに掲載されているコードを実行した結果、表題のようなエラーが出ることがある。 一例をあげる。 >>> from sklearn.cross_validation import cross_val_score Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportErro</module></stdin>…
はじめに 一ヶ月ほど前から当ブログはGoogle Adsenseを導入しています*1。 このブログはいわゆる「技術ブログ」と呼ばれるようなプログラミングのブログですが、プログラミング関連のジャンルでアドセンスを貼った場合の収益性についてはネット上にもあまり…
カテゴリデータをone-hot表現として取り扱うという方法は、機械学習などでは一般的に行われます。しかし、sklearnでのサポートが微妙に悪いという問題が長年あり、やれpandasを使えだの、やれサードパーティ製ライブラリで凌げだのといった話題が乱立してい…
scipy.statsでは様々な統計用のユーティリティが提供されています。大抵の分布はあるし、パラメータも好きに設定できます。numpyにも充実したrandomモジュールがありますが、こちらは分布に従うデータの生成や、データのサンプリングなどしかできません。「…