静かなる名辞

pythonとプログラミングのこと

2019/03/22:TechAcademyがteratailの質問・回答を盗用していた件
2019/03/26:TechAcademy盗用事件 公式発表と深まる疑念



scipy

【python】scipyでt検定する方法まとめ

概要 いっっっつも使い方を忘れて調べているので、自分で備忘録を書いておくことにしました。 t検定の概要 2群の標本の平均に差異があるかどうかを検定します。帰無仮説は「両者の平均に差はない」、対立仮説は「両者の平均に差がある」です。 詳しいことはw…

scikit learnのモデルに疎行列(csr_matrix)を渡したときの速度

はじめに sklearnのモデルには疎行列を取れるものもたくさんありますが、この場合速度差があったりするのでしょうか。 ごく簡単に検証してみます。 実験1 簡単のためにdigitsを使います。分類器は SVC RandomForestClassifier MultinomialNB GradientBoostin…

【python】sklearnのRandomizedSearchCVを使ってみる

はじめに RandomizedSearchCVなるものがあるということを知ったので、使ってみます。うまく使うとグリッドサーチよりよい結果を生むかもしれないということです。sklearn.model_selection.RandomizedSearchCV — scikit-learn 0.20.3 documentation 比較実験 …

scipy.optimize.curve_fitを使っていろいろな関数にフィットさせてみる

はじめに scipy.optimize.curve_fitを使うと曲線あてはめができます。いろいろな関数にフィッティングさせてみて、うまくいくかどうか試してみます。scipy.optimize.curve_fit — SciPy v1.2.1 Reference Guide f(x) = x + a ただの足し算。 import numpy as …

【python】scipyで線形最小二乗法

概要 scipyのscipy.optimize.lsq_linearで最小二乗法が使えます。 使い方 最低限必要な引数は、 A いわゆる説明変数です。基本的には(データ数, 次元数)のshapeでいいのですが、バイアス項を入れたければすべて1にした列が要ります。 b いわゆる目的変数です…

【python】scipyのpdistとsquareformの使い方と仕組み

はじめに scipyで距離行列を扱うときはscipy.spatial.distanceのpdist, squareformなどを主に使いますが、長年よくわからないままに使っていたので、整理してまとめておきます。 なお、以下のドキュメントを参考にします。 scipy.spatial.distance.pdist — S…

【python】scipyで階層型クラスタリングするときの知見まとめ

はじめに scipyの階層型クラスタリングを使う機会がありましたが、使い方がわかりづらいと思ったのでまとめておきます。 目次 はじめに 関数がいっぱいある 使い方 linkage fcluster cophenet dendrogram 実践編 データを作る 手法を選ぶ クラスタに分ける …

scipy.interpolate.griddataの内挿方法による違いを比較

はじめに 以前、3次元のサンプルデータを内挿してmatplotlibでうまくプロットする方法について記事にしました。www.haya-programming.com この記事では内挿のアルゴリズムをデフォルトのlinearにして使いましたが、他の方法ではどうなるのか気になったので実…

xyzの点データを内挿してmeshgridにしmatplotlibでプロットする

はじめに pythonでmatplotlibを使って作図するとき、三次元のデータでpcolormeshとかcontourでやるような等高線プロットを作りたいんだけど、手持ちのデータはxyzが紐付いた点のバラバラな離散データだけ……ということがままあります。 散布図ならそれでも良…

scipyで確率分布のサンプルと確率密度関数を生成する

乱数データと確率密度関数を一緒にplotしてみたかったので、メモ。 概要 scipy.statsでは様々な統計用のユーティリティが提供されています。大抵の分布はあるし、パラメータも好きに設定できます。Statistical functions (scipy.stats) — SciPy v0.16.1 Refe…

【python】pandasでデータを標準得点(z得点)に変換

データの正規化(標準化)をpandasでもやってみる。 正規化、標準化とは、データを分散1、平均0に変換する操作である。スポンサーリンク (adsbygoogle = window.adsbygoogle || []).push({}); 自分で書いてもできるが、scipyの関数を使うと簡単にできる。 >>…

【python】順列・組み合わせを計算する方法

順列(Permutation)と組み合わせ(Combination)がほしくなるときがある。 だいたい標準モジュールかライブラリでできるので、計算方法についてまとめておく。 目次 順列・組み合わせそのものがほしい場合 順列の場合 組み合わせの場合 順列・組み合わせの…

【python】距離・非類似度行列を計算する

記事概要 非類似度行列(距離行列)の計算方法について説明する。 計算方法 対象データと使う非類似度 とりあえず、データを5つ作る。irisの先頭5要素を抽出する。 from sklearn.datasets import load_iris iris = load_iris() data = iris.data[:5] 5*5の非…

【python】scipy.statsのzscoreで警告が出るときの対策

概要 z得点を計算しようとしたとき、このような警告を見かけることがあります。 RuntimeWarning: invalid value encountered in true_divide これが出た場合、結果にはnanが含まれています。なので後段の分析で落ちたりします。 >>> import numpy as np >>> …

【python】95%信頼楕円/確率楕円を描画する

「ライブラリあるやろw」と思ったら、なくて顔面蒼白になった。 しょうがないから調べて実装した。 理論的なもの ちゃんと数式を書いて説明する気概がないので、アバウトに説明する。 適当な二次元正規分布のデータがあるとする。PCAと同じ要領で分散共分散…

【python】pythonで情報エントロピーの計算

情報理論でとてもよく出てくる情報エントロピー。計算するにはどうすれば良いのだろう? 選択肢1:定義どおり作る 定義はとても簡単です。注意するべきことは、入力に0が来たときのパターンを想定しないで作るとmath domain errorが出る(は定義できないから…