静かなる名辞

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


2018-03-01から1ヶ月間の記事一覧

【python】クラスタリング結果をエントロピーで評価する

はじめに クラスタリング結果の良し悪しを評価したいことがあります。 正解ラベルがないデータに対してクラスタリングを行った場合(つまり本当に教師なし学習でやる場合)、基本的にクラスタ内距離二乗和やクラスタ中心間の距離などを使ってやる以外の方法…

【python】クラスタリング結果を積み上げ棒グラフで可視化する

ラベル付きデータをクラスタリングすることがよくあります(そんな頻繁にあるか? まあ、クラスタリングの使い方次第でたまにはあるからこうして記事にしている訳ですが)。各クラスタの中身がどんなラベルで構成されているのか、知りたくなります。積み上げ…

【python】分類タスクの評価指標の解説とsklearnでの計算方法

混同行列、適合率、再現率、F1値の基本と多クラス分類のマクロ平均・マイクロ平均の理論、それらのsklearnでの計算について解説

sklearnのclassification_reportで多クラス分類の結果を簡単に見る

多クラス分類をしていると、「どのクラスが上手く分類できてて、どのクラスが上手く行ってないんだろう」と気になることがままあります。そういった情報を簡単に要約して出力してくれるのがsklearnのclassification_reportで、簡単に使える割に便利なので実…

【python】RandomForestの木の本数を増やすとどうなるか?

はじめに RandomForest(ランダムフォレスト)には木の本数という重要なパラメータがある。slearnのデフォルトは10だが、実際に使うときは1000以上にしてやらないと良い性能が得られないということをよく経験する。 これを大きくすることで、一体どんな効果…

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

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

【python】混合ガウスモデル (GMM)でハード・ソフトクラスタリング

ソフトクラスタリングの有名な手法としては混合ガウスモデル(混合正規分布モデル)を使った手法があります。この手法はデータが「複数の正規分布から構成されている」と仮定し、その正規分布のパラメタをEMアルゴリズム(expectation–maximization algorith…

【python】skfuzzyのFuzzy c-meansでソフトクラスタリング

はじめに Fuzzy c-meansはソフトクラスタリングの手法です。 pythonではscikit-fuzzyというライブラリで利用できるようです。ということで、実際に使ってみました。 基本的な理論はこちらのサイトなどを参考にしてください。ファジィc-means法 - 機械学習の…

【python】「{}」はdictだからな! 間違えるんじゃねえぞ!

ことのあらまし pythonって綺麗な文法だと思ってたけど、ちょっとこれは酷いと思った。 >>> type(eval("{}")) <class 'dict'> >>> type(eval("{1,2,3}")) <class 'set'> 僕の言いたいことがわかるだろうか。 >>> hoge = {} # すごくsetに見える 率直に言って事故の元である。というか、</class></class>…

python使いのためのhy基本文法まとめ

はじめに hyの使い方の記事は一定の需要があると思い、まとめて公開する。 hyはpythonの抽象構文木に変換されるlisp。lispなのでマクロなどの素敵な機能が使えるらしいが、私もよくわからないのでその辺には触れない。とりあえずpythonのコードをhyに書き写…

【python】pythonのenumerateの使い方

pythonにはenumerateという便利なものがある。これを使うと、初心者のうちは書きがちなrange(len(list))のようなコードを改良できる。 具体的には、以下のようなコードを想定している。 for i in range(len(lst)): element = lst[i] 要するに何らかの理由で…