静かなる名辞

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


numpy

【python】numpyで楕円形のデータを生成する

楕円形のデータを生成したいと思った。 理論 楕円の式は、基本的に次の定義でいく。 で、が楕円のパラメタである(長半径と短半径)。 よって、適当なスパンでのデータを生成して定義通りxy座標を求めれば良い。簡単そう。 データを生成する観点からは色々な…

【python】numpyで行ごと・列ごとに計算

行ごと、列ごとに一括で加減乗除する方法をずっと探していた。 こう書くとなんじゃそりゃと思われるかもしれないが、n行m列の行列に対してn次元の縦ベクトルを持ってきて、まとめて計算する感じ。 ずっとやり方がわからなかったのだが、このほど試してみたら…

【python】スタッキング(stacking)分類器を実装して理解する

最終更新:2018-04-02 はじめに スタッキング(stacking)といえば、複数の分類器を組み合わせて強い分類器を作る系の手法である。単なるvotingやsoft votingより強い。 誤解を恐れずにざっくり言ってしまうと、分類器の出力(複数)と真の出力の関係を機械…

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

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

【python】一定の確率で違う選択をする

※注意! この記事の内容も間違ってはいませんが、もっと良さそうな方法を後から見つけました。 こちらの記事も参照してください。【python】複数の選択肢から確率で選ぶ - 静かなる名辞 本文 タイトル通りのものが強化学習の実装で必要になった。 の確率で処…

【python】numpyで複数行・列の抜き出し

はじめに numpyで複数の行や列を抜き出して使いたいときがある。たとえば機械学習で特徴ベクトルのデータがあって、変数重要度の高い次元だけ取りたい・・・みたいなシチュエーション。 これには実はやり方があって、簡単にできる。ただし、これを知らないと…

【python】numpyのmatrix・matの使い方

注意 numpy.matrixはnumpy 1.15.0から「もはや非推奨」とされ、将来的に削除されることになっています。numpy.matrix — NumPy v1.15 Manual Numpy-discussion - Deprecate matrices in 1.15 and remove in 1.17? 代替手段を用いてください。以下の記事の内容…

【python】numpyで最小二乗法を実装(線形、多項式、正則化など)

はじめに 最小二乗法をnumpyで実装してみた。 理論背景についてはこちらを参照(外部リンク)。 mathtrain.jp PRMLの線形回帰モデル(線形基底関数モデル) from Yasunori Ozaki www.slideshare.net qiita.com やるべきこと 最小二乗法(正確には線形基底関…

【python】pythonでボゴソートしてみる

みんな大好きボゴソート。愚直に実装するならそんなに面倒なことはない。 import random def bogo(lst): while True: random.shuffle(lst) xb = lst[0] flag = True for x in lst[1:]: if xb > x: flag = False break xb = x if flag: return None 色々イケ…

【python】numpyの型の違いによる計算速度差を見てみる

はじめに 前回の記事で「なんとなくnp.float32が速い気がする」とか書いたので、実際に測ってみる。 予め断っておくと、計算速度なんて環境によって違うし、どの型が速いかもCPUのアーキテクチャに依存する。numpyはバリバリにSIMD命令を使って最適化する(…