2018-01-01から1年間の記事一覧
* はじめに sklearnのLabelEncoderとOneHotEncoderは、カテゴリデータを取り扱うときに大活躍します。シチュエーションとしては、 - なんかぐちゃぐちゃとカテゴリデータがある特徴量をとにかくなんとかしてしまいたい - 教師ラベルがカテゴリデータなので数…
タイトルの通りのものが必要になりました。一体どう書くのでしょう? とりあえず反転させる >>> lst = list(range(20)) >>> lst[::-1] [19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0] ま、これは常識(python廃人の皆さんには)。…
べき乗はxのn乗、べき根はxのn乗根です。では、pythonではどう書くのでしょうか。 2乗とかsqrtくらいはわかっても、n乗根あたりになるとすぐ出てこないという人も多いのでは? そこで、説明を書きます。
pythonの環境構築に悩む人たちのために、環境構築についてまとめておきます。
forループでループ対象のリストから要素を除去してしまったりすると、まったく想定と違った結果になってしまうことがあります。pythonプログラミングを始めたばかりの人がよくハマるネタです。
そんな機能があるらしい。DataFrame.to_latex()という名前のメソッドである。pandas.DataFrame.to_latex — pandas 0.21.1 documentation これが使えると何かの役に立つかもしれないので、使い物になるかどうか確認してみる。 お試し とりあえず、てきとーにd…
VMware Playerはホストとゲスト間で、ドラッグ・アンド・ドロップやコピ・アンド・ペーストによってファイルを移動できる。 便利な機能なのでつい頻繁に使ってしまうが、これは腹立たしいことにゲストの仮想ディスク上にキャッシュを生成する。 そしてこのキ…
私は疑問を持った pythonでは比較演算子==を使うと、内部的には__eq__メソッドが呼ばれる。 ここから、素朴な疑問が生じる。比較演算子は二項演算子なので、2つのオブジェクトに対して適用される。 どちらのオブジェクトの__eq__が呼ばれるのだろう? また、…
前回の記事ではMeanShiftクラスタリングを試してみました。www.haya-programming.com このMeanShiftにはbandwidthというパラメータがあり、クラスタ数を決定する上で重要な役割を果たしているはずです。 いまいち結果に納得がいかないというとき、bandwidth…
等比数列がほしくなった。作り方をメモしておく。
はじめに MeanShiftはクラスタリングアルゴリズム。クラスタ数を自動で決定してくれるという長所がある。 理論的には最急降下法で各クラスタの極大点を探していく感じらしいです。わかりやすい解説があったので、リンクを張っておきます(ただし私自身はすべ…
テーマ matplotlib.cmが直接使うことはない謎の技術と思われがちなので、「普通に可愛い子なんですよ」って説明する。cm (colormap) — Matplotlib 3.0.2 documentationスポンサーリンク (adsbygoogle = window.adsbygoogle || []).push({}); cmとは何か とり…
はじめに こういう状況を考える。 >>> s = "hoge! fuga! piyo!" >>> if "hoge" in s and "fuga" in s and "piyo" in s: ... print("fizz!") ... fizz! 文字列の中に部分文字列が含まれているかを判定する、という状況で、ただ判定したい条件が複数ある。 壮…
「seed(種)」とか「random state」とか呼ばれる奴の設定方法。これを設定することで、乱数の処理に再現性を与えることができる。 方法 np.random.seed()を呼ぶと、とりあえずseedが引数でリセットされる。https://docs.scipy.org/doc/numpy/reference/gene…
はじめに この記事を開いた人の大半は「itemgetter? なにそれ」という反応でしょう。 (いや、検索で来た人はそうでもないかもしれないけど) itemgetterは以下のように使えるものです。 >>> lst = list(zip([1,3,5,6,7,1,4], [3,4,1,0,8,5,2])) # 特に値に…
numpyで行列演算を行う方法としては、普通のnumpy配列に行列演算系の関数を適用していく方法と、あまり知られていないがnp.matrix型やnp.mat型を使う方法がある。 速度が違ったりするのだろうか? 仮に違うと困る(というか場面によって適切な方を選ぶ必要が…
はじめに numpyのmeshgridの使い方があまり理解できなくて、なんとなくコピペで動かしていたので、どのようなものなのかまとめておくことにしました。 目次 はじめに とりあえずmeshgridを作ってみる 計算する plotしてみる xyz座標の配列に変換する 逆にxyz…
はじめに 先に断っておくと、class_weightの挙動はモデルによって異なる可能性が十分ある。今回はsklearn.svm.SVCとsklearn.ensemble.RandomForestClassifierのドキュメントを参照して、一応基本的に共通する部分を抜き出した。 class_weightを調整する必要…
sklearnで「何もしない」モデルがあると、チョー便利。個人的にはそう思う。 どうやって使うかというと、具体的には以前の記事で書いたFeatureUnionと組み合わせて使う。 参考(以前の記事):【python】複数の特徴をまとめるFeatureUnion - 静かなる名辞 た…
単一の入力データから、複数の処理方法で幾つもの異なる特徴量が得られる・・・というシチュエーションがある。 この場合、「どれが最善か」という観点でどれか一つを選ぶこともできるけど、そうすると他の特徴量の情報は捨ててしまうことになる。総合的な性…
この記事は思いついたままに書いたポエム。 有意水準5%とは、その判断(主張)の妥当性が95%である、ということを意味する。 よって、有意水準5%で検定したら、100回に5回は第1種の過誤を犯す。 有意水準5%の論文が100本あったら、(いちおうすべての論文が…
スライスの基本的な話なんだけど、意外と知らない人が多いと思うので。 スライスで1つおきに取り出すには、こうする。 >>> "hogehoge~"[::2] 'hghg~' スライスで指定できるのはstart, stop, stepであり、上のように指定するとstart, stopはNoneでstepが2にな…
リスト(じゃなくてもだけど)に次のようにアクセスするとき、内部的には__getitem__が呼ばれていることは、歴戦のpythonistaの皆さんには常識でしょう。 >>> lst = [1,2,3,4,5] >>> lst[0] 1 この様子を自作クラスで観察してみましょう。 >>> class Hoge: .…
はじめに 回帰分析を行う際、複数の目的変数に対して回帰をしたい場合があります。普通のモデルではできないのでちょっと面食らいますが、やり方は色々あるようです。 目次 はじめに 目的変数の数だけ回帰モデルを作る方法 複数の目的変数に対応したモデルを…
問題設定 想定しているのは、たとえばこんなシチュエーションです。 s = "hoge! 1234" tmp = s.split() lst = [tmp[0], int(tmp[1])] 要するに、比較的短いリストだが性質の違うものが入っており、それぞれ違う処理をして返したいのです。 それだけなら良い…
calendarモジュールは標準ライブラリに入っていて、曜日や日付の計算にはけっこう便利なモジュールらしいです。 でもあまり周知されていないので、使い方を(自分用に)メモっておきます。 ドキュメントはここです。 8.2. calendar — 一般的なカレンダーに関…
データの正規化(標準化)をpandasでもやってみる。 正規化、標準化とは、データを分散1、平均0に変換する操作である。スポンサーリンク (adsbygoogle = window.adsbygoogle || []).push({}); 自分で書いてもできるが、scipyの関数を使うと簡単にできる。 >>…
概要 DataFrameから平均と標準偏差を計算する方法をメモしておきます。 目次 概要 列の平均と標準偏差を計算したい 行の平均と標準偏差を計算したい 特定の列・行だけ取り出してから計算する describeメソッドで全体の雰囲気を掴む 列の平均と標準偏差を計算…
ちょっとしたTips。 辞書(dict)は通常、一つのキーには一つの値しか登録できない。代入しても上書きされる。 >>> d = {} >>> d["hoge"] = 1 >>> d {'hoge': 1} >>> d["hoge"] = 2 >>> d {'hoge': 2} こういうときどうすれば良いのかというと、値をリスト等…
pythonのプログラムは先頭行(あるいはシェバンの次の二行目)でファイルの文字コードを指定することができます。エンコーディング宣言といいます。 こんなのとか # coding: UTF-8 こういうのもありますね。これはemacsに自動認識させるための書式らしい*1。…