静かなる名辞

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


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

【python】hyを触ってみる

なんか、たまにlisp使ってみたくなるんだよね。 去年のこれくらいの時期にもcommon lispをやってみた記憶があるが、たぶん言語として悪くはないんだろうけど、ちゃんと書けるようになる前に飽きてしまった*1。 という訳で、今回はpython方言(lisp方言と言う…

【python】分数の文字列をfloatに変換する

入力データに文字列の分数がやってきたとき、floatに変換したい・・・という気持ちになることがある 目次 Fractionクラスを使う 自分でやる evalする できないやり方 まとめ Fractionクラスを使う 王道。というか実質的にこれ以外ないと思う。 >>> from frac…

【python】sklearnのCountVectorizerの使い方

sklearnのCountVectorizerを使うとBoW(Bag of Words)の特徴量が簡単に作れます。 ただし、指定するパラメタが多かったり、デフォルトで英語の文字列を想定していたりして若干とっつきづらい部分もあります。 この記事ではCountVectorizerの使い方を簡単に説…

【python】sklearnのPipelineを使うとできること

機械学習では、何段もの前処理をしてから最終的な分類や回帰のアルゴリズムに入力するということがよくあります。 前処理にはけっこう泥臭い処理も多く、leakageの問題なども絡んできます。はっきり言って自分で書こうとすると面倒くさいです。 こういう問題…

【python】sklearnのfetch_20newsgroupsで文書分類を試す(3)

前回はとりあえずベースラインの分類を行い、F1値にして0.7くらいの性能を得た。 ここで自然言語処理的なアプローチで手法の改良に進むのもありだと思うが、とりあえずmin_dfをパラメタチューニングしてみるか、という方向に傾いている。前回は恣意的に決め…

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

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

【python】The Anti-Zen of Pythonの和訳

The Anti-Zen of Pythonというネタがある。そもそも「The Zen of Python」というpython使いの過半数が知っているネタがあるのだが、それに反対する怪文書である。Welcome to that’s documentation! — that 1.0.7 documentation the zen of pythonはデフォル…

【python】lxml.etreeの使い方まとめ―pythonによるXML処理

lxmlを使ってXMLを生成したり、パースしたりするという処理をたまに書く。そんなに頻繁にやる訳ではないので、処理の書き方を忘れてしまいがち。 備忘録として書いておく。なお、htmlは今回扱わないので、別のサイトを見てください。 目次 installとimport …

【python】sklearnのfetch_20newsgroupsで文書分類を試す(2)

前回の続きをやっていく。とりあえず今回は簡単な方法で分類してみて、ベースラインを作ることにする。 目次 特徴を捨てる 分類する まとめ 次回 何はともあれ、文書から特徴抽出してベクトル化しないと話にならない。ベースラインなのでBag of Wordsを使う…

【python】sklearnのfetch_20newsgroupsで文書分類を試す(1)

fetch_20newsgroupsはUsenetというネットニュースの記事(でいいのかな、良くない気がする)をカテゴリ別に集めたデータセット。sklearnで気楽に使えるので*1、試してみることにする。 とりあえずこの記事はintroductionとし、使い方とデータの扱い方の説明…

【python】CKY法をpythonで実装

構文解析アルゴリズムのCKY法の実装について説明する。参考にしたテキストはこれ。自然言語処理の基礎作者: 奥村学出版社/メーカー: コロナ社発売日: 2010/10/15メディア: 単行本(ソフトカバー)購入: 8人 クリック: 379回この商品を含むブログ (11件) を見…

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

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

【python】sklearnのVotingClassifierを試す

複数の分類器に分類を行わせ、その結果を平均した結果を得ればより正しい結果が得られるだろう・・・ということらしい。sklearn.ensemble.VotingClassifier — scikit-learn 0.20.1 documentation 先に結論を書いておくと、何種類かの分類器を入れてsklearnの…

【python】正準相関分析(Canonical Correlation Analysis)を試してみる

正準相関分析を使うと、2つの多次元データ同士の関連性を分析できるらしい。 面白そうなので試してみた。ちなみに正準相関はsklearn.cross_decomposition.CCAで使える。正準相関自体の解説はほとんどしないので、文中のリンクを参考にして欲しい*1。 目次 一…

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

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

【python】pythonで悲しい思いをしないためのファイルパス操作の基本

コマンドライン引数からパスを受け取って処理する、というプログラムはありがちなんだけど、適当に書くと適当なパスを渡したとき悲しい動作になったりするんだ(´・ω・`) 気をつけないといけないポイントを色々まとめておこう。一応linux環境で、python3.5以…

【python】気持ち悪いリスト内包表記のサンプルたち

最終更新:2018-4-21 この記事は思いつく度に加筆していこうと思う。 目次 二回評価されるのを避けたかった numpy配列がなんだ!俺がやってやる! forのよさを殺していくスタイル 2018/3/30 追記 リスト内包表記でファイル出力 無限ループ リスト内包表記で…

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

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

はてなブログでうっかり付けちゃったカテゴリを外す方法

やったこと はてなブログで、記事の管理画面でカテゴリを整理してたら、うっかり間違えてカテゴリを貼ってしまった。チェックボックスを外し忘れたまま操作すると簡単にそういうことが起こる。 カテゴリを記事の管理画面から外す方法を探したが、どうやって…

【python・ネタ】importする順番

はじめに PEP8はimportに際し、次の順番でimportしろと規定している。 import文 は次の順番でグループ化すべきです:1.標準ライブラリ 2.サードパーティに関連するもの 3.ローカルな アプリケーション/ライブラリ に特有のもの 普通はこの通り書けば何の問題…