Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

2018.10.25 プログラムを母数推定部(計算のみ)と作図部の2部に書き換え はじめに 2018年10月10日に海外での業務完了につき帰国した.現在は休暇中であり,のんびりしているが,全く何もやらないのもちょっと気が引けたので,仕事の練習として,Pythonを使った非線形回帰のプログラムを作ってみた.昔は同じことをFortranプログラムでやっていたが,scipyの統計関数や,非線形回帰機能を使うことにより,非常にシンプルにやりたいことを実現できることを確認した. やっていることは,観測値を,仮定した確率分布関数に回帰し,母数(確率分布関数における係数)を推定するというものである.母数推定の方法は,これまでに積率法(モーメント法)などが研究されてきたが,ここでは Python:scipy の optimize.leastsq を用いる方法をとっている. 例として用いる観測値は,筆者の自
はじめに 前回の記事では画像の前処理方法であるバンドパスフィルターを解説しました。 実験系研究者のための画像処理技術~バンドパスフィルターを用いた画像処理をPythonで実装する~ ただ、フィルター処理の方法を解説しただけで、実際に形状分布をどのように測定するかは説明しませんでした。 なので、今回は、OpenCV-Pythonを用いた粒子の形状分布測定を解説します。 解析対象として、Wikimedia Commonsから持ってきた以下の画像を用いました。 作者 Zephyris [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0) または GFDL (http://www.gnu.org/copyleft/fdl.html)], ウィキメディア・コモンズより(リンク) ガラスコロイド粒子の光学顕微鏡像です。これを色々と
初めに 高速フーリエ変換(FFT)は通常の離散フーリエ変換(DFT)と比較して計算速度も速くて非常に便利ですが、データ数が2のべき乗個のでないと計算効率が良くないという欠点があります。 Scipyのfftpackのfft場合、2のべき乗個でなくても計算はしてくれるのですが、大量のデータを計算した時に体感でもかなり速度が低下したことがわかります。 ちなみに理論的にはFFTの計算量はNlogN、DFTはNの自乗の計算量になるらしいです。詳しくはwikideiaのFFTのページを参照ください。 理論はともかく、今回2のべき乗のデータとそうでないデータを作成して実際に計算速度を比較してみました。 環境は scipy version 1.0.0 numpy version 1.12.1 CPU core i5 7200U となっています。Jupyter Notebookのマジックコマンド%timei
データ拡張とは機械学習モデルを作成するとき、モデルの汎化性能を向上させるための追加データとして、元データに加工を施してデータを増やすことです。 例えば画像の場合には、元画像を反転する、水平・垂直にピクセルを移動させる、ノイズをピクセル値に加える等の方法が典型的です。 3Dデータの一種にはボクセルデータ(x, y, zの3次元格子をもつ、2次元画像データの拡張)があり、CADモデルやCTスキャンのデータがこの形式で表されることがあります。 このボクセルデータを対象にして、3D CNNで分類やセグメンテーションを行う、といったケースに用いられています。 本記事では、Pythonのscipyとnumpyを使ってボクセルデータの拡張データを生成してみます。 (拡張データを使った学習は本記事では扱いません。) 拡張元データ PRINCETON MODELNETの10クラスのものを使用しています。 h
GeForce GTX 1070 (8GB) ASRock Z170M Pro4S [Intel Z170chipset] Ubuntu 16.04.4 LTS desktop amd64 TensorFlow v1.7.0 cuDNN v5.1 for Linux CUDA v8.0 Python 3.5.2 IPython 6.0.0 -- An enhanced Interactive Python. gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609 GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu) scipy v0.19.1 geopandas v0.3.0 MATLAB R2017b (Home Edition) ADDA v.1.3b6 gnustep-gui-
実行時間をデータの大きさ(datasize)に対してplotした. 環境はanaconda2.5+python3.6.OSはmacOS High Sierra. 結果 データのサイズが小さいとき(<10^4)はjitが早い.for-loopのある駄目なcodeでもjitを利用するとscipyより速い!! データのサイズが大きいとき(>10^4)は生のscipy or numpyが早い. for-loopを使っただめなcodeはjitなしでは(勿論)悲惨. (緑(numpy+jit)と紫(bad numpy+jit)は殆ど重なっている) (橙(numpy)と青(scipy)も殆ど重なっている) おわりに はじめに述べたとおりデータ数が小さいときはjitで最適化したnumpyが生のnumpyのcodeより高速である. 今回は相関係数でしか試していないので結論の一般性については吟味が必要かもしれ
ググったら、pythonでのt-検定のやり方が日本語で少なかったため、メモ。 1、_indと_rel t-検定 scipy.stats.ttest_ind() 対応のあるt-検定 scipy.stats.ttest_rel()(自信ない) 2、P値とt値 P値は以下でみれる。 scipy.stats.ttest_ind().pvalue t値は以下でみれる。(自身ない) scipy.stats.ttest_ind().statistic 3、stats.ttest_ind(df_true["age"],df_false["age"]) 引数は、pandasのデータフレームから列指定(シリーズ)を二つ並べたらできた。 参考リンク https://docs.scipy.org/doc/scipy-0.15.1/reference/generated/scipy.stats.ttest_rel.
英語版 Optimization and root finding (scipy.optimize) — SciPy v1.3.0 Reference Guide 参考リンク 非線形最適化関数 — 機械学習の Python との出会い 最適化と求根 (scipy.optimize) SciPy optimizeは、場合によっては制約を受けることのある目的関数を最小化(または最大化)するための関数を提供します。非線形問題(局所的および大域的最適化アルゴリズムの両方をサポートする)、線形計画法、制約付きおよび非線形最小二乗法、球根およびカーブフィッティングのためのソルバーを含んでいます。 異なるソルバー間で共有される共通の関数とオブジェクトは、次のものがあります。 show_options([solver, method, disp]) 最適化ソルバーの追加オプションのドキュメントを表示する。
二項分布 $B(n, p)$ に $Z$ が従うとき, $n$ が大きい場合, 分布関数は, $$P(Z \leq x) \approx \Phi \bigg( \frac{x - np}{\sqrt{np(1-p)}}\bigg)$$ と近似できる($\Phi(\cdot)$ は正規分布 $N(0, 1)$ の分布関数). これを二項分布の正規近似という. ところで, 二項分布は離散分布であるから, $x$ が整数値であれば, 任意の $x' \in (x, x+1)$ に対して, $P(Z \leq x') = P(Z \leq x)$ であり, $$P(Z \leq x) \approx \Phi \bigg( \frac{x' - np}{\sqrt{np(1-p)}}\bigg)$$ とも近似できる. そこで, 中間をとって, $$P(Z \leq x) \approx \Phi
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く