中野智文のブログ

データ・マエショリストのメモ

2017-11-01から1ヶ月間の記事一覧

scikit learn の 確率推定のクラスの順序はソートされている。※ただしバイナリクラスの重みは…

背景 liblinear libsvm の重みや、確率推定の配列は、訓練データのクラスラベルの出現順で、決まるという恐ろしい仕様。 出現順というのは、1行目の事例のほうが2行目の事例より前、という出現順。 もちろん学習後、その順序が参照できるように、モデルの出…

Logistic Regression における Negative Down Sampling

negative down sampling をしたときの logistic regression の最適な方法・設定を調べる。 結論としては、negative down sampling をする前に、 を平均から求める( )。それを対数化すれば切片の重みとなる( )。negative down sampling 後のデータは class_we…

小標本における正規分布の信頼区間を Excel で求める

背景 コイン投げのようなベルヌーイ試行の確率の信頼区間は Wilson score interval を使う。 - 中野智文のブログ でいいとして、母集団が正規分布で小標本の場合は、 t 分布で求めるのが、一般的である。 母集団が正規分布に従うときで標本の大きさ(サンプ…

scikit learn で cross validation で confusion matrix を取得する。

背景 confusion matrix を取得する場合は、一部の例だけでなく cross validation で全ての事例に対して取得したい。 対応 sklearn.model_selection.cross_val_predict を使う。 例 今回は iris のデータを使う。当たり前だが、confusion matrix は普通分類問…

scikit learn で DataFrameから色々なスパースな型に変換して学習

背景 scikit learn で学習しようとすると、メモリーを使い尽くす。 色々なスパースな型に変換して学習 準備 まず、データは次のものを利用。 measurements = [ {'city': 'Dubai', 'temperature': 31.0, 'country': 'U.A.E.'}, {'city': 'London', 'country':…

oom killer に python を優先的に狙わせるワンライナー

EC2 のマシンなどで、jupyter notebook で python カーネルを起動した後、次のコマンドを実行 pgrep python | xargs -l1 -I{} sh -c 'echo +15 > /proc/{}/oom_score_adj' 原理的には、python 以外のカーネルでもOKなはず。 追記 2017/11/07 /proc/23715/oom…

sklearn の DictVectorizer を使って学習して再び重みを dict 形式にする

背景 sklearn のライブラリに、学習データがdict の配列のときに、sklearn で使えるスパース(疎)な形式に変換する DictVectorizer がある。 この DictVectorizer の説明を見ると、たしかに色々な形式に変換できるようではあるが、実際にどのような形式に変…