サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
akiniwa.hatenablog.jp
この記事は、PyMC3のドキュメント A Hierarchical model for Rugby prediction — PyMC3 3.0 documentation のコードを引用しています。 PyMC3でラグビーの階層ベイズモデリング 元記事では、シックスネーションズ2014の各試合を階層ベイズでモデリングしている。元記事自体も、プレミアリーグのモデリングをした記事を元ネタにしているらしい。 A Hierarchical Bayesian Model of the Premier League シックスネーションズ シックスネーションズ、欧州チャンピオンを決める大会。2015年ラグビーワールドカップでジャパンがスプリングボクスから大金星を挙げて、ブームと呼べるほどの注目を集めたラグビーだけど、「シックスネーションズ」の知名度はまだまだ感がある。 でもでもおそらく、クラブ、インター
権限無しで取得できる情報。アカウント登録して、api_key取得すればすぐ使える。 アーティスト アーティスト情報取得 メソッド:artist.info サンプル:http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=misia&api_key=f171a1cbf2ea17d417dff90fe05bc82e&format=json アーティスト検索 メソッド:artist.search サンプル:http://ws.audioscrobbler.com/2.0/?method=artist.search&artist=cher&api_key=f171a1cbf2ea17d417dff90fe05bc82e&format=json 似てるアーティスト取得 メソッド:artist.getsimilar サンプル:htt
Scrapyでwebスクレイピングするとき、ページ上の画像を一括でダウンロードして、ローカルに全部保存する。 Downloading Item Images — Scrapy 0.21.0 documentation わけあってこのページからハンター文字を一括ダウンロードすることになった。 ハンター文字 scrapyの使い方はこちら scrapyには、ImagesPipelineというクラスがあって、ちょこっと設定するだけで画像のダウンロードができる。 まずは、setting.pyに、ITEM_PIPELINESとIMAGES_STOREを追加する。 ITEM_PIPELINESはパイプラインを有効にするもので、IMAGES_STOREは画像の保存先を指定する。 BOT_NAME = 'hunter' SPIDER_MODULES = ['hunter.spiders'] NEWSPIDE
連想配列のキーにグループの名前を使えばおk。 集計するファイル↓↓ hoge.txt りんご 230 りんご 300 ばなな 190 ばなな 190 みかん 110 りんご 310 ばなな 190 みかん 110 みかん 130 awkファイル↓↓ sum.awk { sum[$1]+=$2 }; END { for (key in sum) { print key, sum[key] } } スクリプトの実行と結果。 awk -f sum.awk hoge.txt ばなな 570 みかん 350 りんご 840
(head -n +1 sample.txt && tail -n +2 sample.txt | sort ) > sorted_sample.txt headとtailを使えば、中間ファイル無しで書ける。以下はサンプルファイルを使った解説。 例えばこんなファイル。sample.txt id x y 1 1.3 0.6 2 1.1 0.4 3 1.1 0.6 4 1.7 0.4 5 1.5 0.2 6 1.5 0.9 これをx, yでソートしようとするとき、普通はヘッダー以外の部分でソートしたいですよね。 ヘッダーとデータ部分の切り分けをていねいにやるとしたら head -n +1 sample.txt >>> id x y で、ヘッダー部分を取り出し、 tail -n +2 sample.txt >>> 1 1.3 0.6 2 1.1 0.4 3 1.1 0.6 4 1.7 0.4 5
グラフ理論~点と線~ 数学の一分野でありながら、情報系の特にアルゴリズム分野で発展してきたグラフ理論。 基本的な部分はとっても簡単で、とにかく点(node)と線(edge)について考える学問。 実装に使う言語は、boostにgraphアルゴリズムがあるようなのでc++とも考えたけど、軽量言語でサクサク作りたかったし、ドキュメントも充実してそうなNetworkXというフレームワークを使うことに。 インストール 公式サイトはこちら。 コマンドラインから、 sudo pip install networkx以上。matplotlibとかpygraphvizはインストールしときましょう。pygraphvizはpip install pygraphvizでインストールできないようなので、こちらからダウンロードする。 チュートリアル nodeとedgeの作成にnetworkx。作成したグラフの視覚化に
sklearnのランダムフォレストを使う。 前回の予測モデルは、線形モデルのロジスティック回帰。 今回は、ensembleモジュール内にあるランダムフォレストを試してみる。 あと、データを加工するときとか、評価するときの便利メソッドもいくつかメモ。 from sklearn import preprocessing from sklearn import ensemble import pandas as pd 最初にインポートするのは、preprocessingモジュールとensembleモジュール。 sklearn.preprocessing preprocessingモジュールは、生データを処理して、後々の解析に適した整形をしてくれる。 実際に、練習用csvを読み込んで使ってみる。 LabelEncoder()は、カテゴリカルデータを、数値(ラベル)で表現するメソッド。 train
物理学 Advent Calendar 2014 - Adventar 20日目の記事です。 ブラウン運動を表現する確率微分方程式であるLangevin方程式とそれを拡張した温度のゆらぐLangevin方程式の話をします。 また、幾何ブラウン運動は金融商品のモデル化に利用されたりするので、そのあたりについても少し触れます。 ブラウン運動 ブラウン運動は、簡単に説明すると、液体中の小さな粒子がランダムに動くような現象です。 水分子が不規則に衝突することによって、ブラウン運動が生じます。 ランジュバン方程式 質量1のブラウン粒子について、速度をv、抵抗係数をγ(>0)、ガウス分布に従う項をη、その係数をαとすると、 のように書けます。第1項は速度とマイナスの積なので、速度と反対方向に作用する粘性力の項です。第2項はランダム項で、水分子の不規則な衝突に対応します。 2次元空間でのランジュバン方程
awk(と他のコマンド)ユーザーがPerlワンライナーを覚えるとうれしいこと↓↓ -aオプションでawkと似たような書き方ができる(awkとの比較を参考) カラム1とカラム2を表示 awk '{print $1, $2}' perl -waln -e 'print $F[0], $F[1]' awkよりperlの方が速い場合がある 例えば-aオプションを使わないとき、$F[0]などをレコードごとに生成しないのでperlの方が速く実行できる場合がある(awkはレコードごとに$1などを生成する) awk 'BEGIN{sum=0};{sum+=1};END{print sum}' file.txt perl -wln -e 'BEGIN{my $sum=0}{$sum+=1}END{print $sum}' file.txt 正規表現をperlだけ覚えればいい(awk, sed, grepのコ
Python Advent Calendar 2014 - Qiita 3日目の記事です。 タイトルの通り、SageMathCloudを使ってみようという話をします。 SageMathCloudとは? すごく簡単に説明すると、クラウド(ブラウザ)上で、SageMathやiPython Notebook、LaTeX、Terminalなどが実行できます。 そもそもSageMathってなに?って思うかもしれませんが、SageMathはPythonベースのオープンソースでMathematicaみたいな数式処理のソフトウェアです。Mathematicaにはまだまだ適わない部分が多いらしい(使ったことない)ですが、無料というのはありがたいです。 SageMathは例によって環境構築ではまったりすることがあるので、SageMathCloudを利用すれば、いつでもどこでも使えて良い感じです。 SageMa
リモートサーバで接続切れたあともコマンド実行を続ける リモートサーバで作業をしていて、ちょっと時間がかかるスクリプトを実行していたら、接続切れた $ Write failed: Broken pipe これが計算を始めて、1時間くらい経っていると結構なえる。バックグラウンドでコマンドを実行してくれるのが、nohup。 例えば、a.outを実行するときは $ nohup ./a.out & nohup "コマンド" &って感じで使う。 あとは、帰る直前にコマンド実行したいときとか、とにかくssh先からログアウトしたあとも、コマンドを動かし続けたいときに使える。 自分はipython notebookをサーバで動かしているので、 nohup ipython notebook --profile=myserver & とすると、ログアウトしたあとも実行がつづく。 ちなみに、nohupはプロセスと
Markdownを使おう みんな大好きEvernote。 ちょっとしたノート代わりに書き込んだり、Todoメモや備忘録としても使えて、何よりクラウドで共有できるのが便利ですよね。 自分も思いついたことは何でもEvernoteに書き溜めているのですが、文字の大きさとか文の構造とかをカッコよく、サクサク書けたらなと考えていました。 いろいろ探してみたところ、Markdown記法で書けるようになる拡張機能が良さげなので、Chromeに追加してみました。 ちなみに、Markdown記法ってなに?っていう人。Markdown記法の特徴は、 文構造が直感的で覚えやすい。 htmlタグより簡単に書ける。 表とか数式も表示できる。 プラットホームを選ばない。 という感じでしょうか。 とっても簡単です。くわしくはこのあたりを。Markdown記法 チートシート Markdown Here 追加したアプリは、
Deep LearningにtheanoのGPU計算のチュートリアルがあったのでやってみた。 pylearn2を使ったディープラーニングのトレーニングもGPUで高速計算できる。 Using the GPU — Theano 0.6 documentation ちなみにCUDAが対応してないパソコンだとCPUしか使えない。(airできなかった(; _ ;)) 次のコードを実行する。 check.py from theano import function, config, shared, sandbox import theano.tensor as T import numpy import time vlen = 10 * 30 * 768 # 10 x iters = 1000 rng = numpy.random.RandomState(22) x = shared(numpy.as
機械学習ライブラリのsklearn(scikit-learn) 前回の続き 予測モデルをつくるときに、機械学習のライブラリを使ってみようということで、sklearnを試してみる。 というかpandasに機械学習入ってると思ってた。。 まずはインストール。 $ pip install scikit-learn 機械学習はいろんなモジュールに分割されているので、必要なものを以下のように、importする。 # 決定木 from sklearn import tree # 線形モデル from sklearn import linear_model # ニューラルネットワーク from sklearn import neural_network # サポートベクターマシン from sklearn import svm 今回は、ロジスティック回帰を使う。 import pandas as pd
新しいサーバー建てる度にググるのめんどうだからメモっとく。 公開鍵をサーバーに置いて、秘密鍵を使ってクライアントからログインするところまで。 鍵ペアをクライアント側で作成 公開鍵をサーバーへ sshサーバー設定 ユーザー追加 クライアント設定 鍵ペアをクライアント側で作成 # 鍵ペア作成 $ cd ~/.ssh $ ssh-keygen -t rsa ssh-keygenでは、デフォルトでid_rsa.pub(公開鍵)とid_rsa(秘密鍵)が作られる。 ファイル名を指定するときは、 $ ssh-keygen -t rsa -f hoge # >> hoge.pub & hoge 公開鍵をサーバーへ $ scp id_rsa.pub root@remoteserver.com:~/ サーバー建てた後はrootでログインできたり、コンソールログで操作できると思うので、何かしらの方法で、サーバ
Amazon AMI + Apache + mod_wsgi + virtualenv + Django Djangoのチュートリアル、開発用サーバを動かす(runserver)ところまでのものが多かったので、本番サーバで動くまでの手順をメモ。 動作環境は、Amazon AMI & Apache (+mod_wsgi)。 mod_wsgiはApacheのモジュールで、pythonのアプリケーションをApache上で動作させる。ちょっと古いmod_pythonは非推奨らしい。 今回は、virtualenvを使ってDjangoを動かすのに、pathの指定とかをApacheの設定ファイルに書く必要があって、そこを詳しくみてみる。 Apache+mod_wsgiのインストールと設定 必要モジュールをインストール $ sudo yum install httpd httpd-devel mod_ws
機械学習ハッカソンに行ってきました。 会場は、秋葉原アンダーグラウンド。アキバには妙に親近感を覚えます。 テーマは「機械学習を使ってなにかをする」ということで、使うデータは自由、手法も自由。R使ってもいいし、sklearn使ってもいいし、自分でアルゴリズム書いてもOK。 参加した方達は、ガチなデータサイエンティストって感じの人はあまりいなくて、エンジニア、マーケターが多かった印象。 写真は秋葉原アンダーグラウンドさんのFacebookページから拝借。 ハッカソン ハッカソン開始後は、どんなデータ使おうか話したり、慣れてるひとがライブラリのインストールの仕方を教えたり。 あと、ハッカソン中はコード書くのがメインという訳ではなくて、手法について議論が盛り上がって楽しかったです。「ニューラルネットワークでなにかできないかなー」→「ディープラーニングやってみたいよね!」→「じゃあまずRBM作ってか
awkで重複行を高速削除する。 行の重複削除で調べるとよく出てくるのが、sort & uniqを使ったコマンド。 ソートはファイルが大きくなると、実行にかなり時間がかかってしまいますね。 ソートせずに高速実行できるのが、次のawkコマンド。 awk '!colname[$1]++{print $1}' こういうファイルがあって、一列目の名前を取得したいとき、!colname[$1]は、データをキーにした連想配列で、インクリメントされる。 ボブ りんご | colname["ボブ"] → 0 {print $1} マイケル まんが | colname["マイケル"] → 0 {print $1} マイケル まんが | colname["マイケル"] → 1 サブロー PC | colname["サブロー"] → 0 {print $1} サブロー キーボード | colname["サブ
ipython notebookすごく便利。 The IPython Notebook — IPython 2.0.0-dev: Work in Progress documentation 開発が盛んで、バージョンが更新されるたびに、UIもどんどんよくなる。 ガンガン補完してくれるし、コマンドライン上のipythonでは出来ないような、グラフの描画や数式の表示がgoodだと思う。 リモートサーバ上で、pythonを使う場合でも簡単に設定ができるので、メモしといた。 参考にした記事 Setup a remote IPython notebook server with Numpy/Scipy/Maltplotlib/Pandas in a virtualenv on Ubuntu Server - Thomas Sileo まずは、ipythonを起動して、ipython notebook
tmux便利だな〜。ターミナル大好き人間はおしなべて使うべきと言ってもよいのではねぇでしょうか。 tmuxは複数のウィンドウを開いたり、画面を分割してレイアウトを変更したりできる。 (I mean, a terminal multiplexer!!) 下のようなイメージで、session内でウィンドウを複数もって、そのなかにペインが入れ子構造になっている。 macで使うときの設定とコマンドのチートシートをメモっとく。 1. インストール 2. .tmux.confの設定 3. コマンド インストール brew install tmux かんりょう。 .tmux.confの設定 tmuxのコマンドはC-b (control-b) から始まるので、特にemacsユーザーはC-bが食われて使いづらい。 というわけで設定ファイルを編集して、C-zからコマンドを打てるようにする。 # プレフィックを
ほぼほぼ初心者でSQLの練習がしたいっていう人、知識の再確認をしたい人にオススメのサイト。 SQLZOO ブラウザ上で動作するので、めんどくさい環境設定もなし。 データベースも、MySQL、Oracle、SQL Server、Postgre、Ingres、DB2から選べる。 簡単なSELECT文から始まって、SUMやCOUNTみたいな基本的な関数の問題や、JOINを使ったちょっと難しめの構文もある。 実行環境付きのリファレンスもあるのがよい!(超便利!)
.gitconfig よく使うサブコマンドはエイリアス貼る。logもきれいに見えるのでgit treeはおすすめ。 [alias] ch = checkout co = commit st = status br = branch hist = log --pretty=format:\\\"%h %ad | %s%d [%an]\\\" --graph --date=short tree = log --graph --all --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(bold white)— %an%C(reset)%C(bold yellow)%d%C(reset)' --abbrev-commit --date=relative g
Private Gist の注意点 - Block Rockin’ Codes gistのprivateはURLが分かれば他人から見えるということを知って、それなら全部publicでいいじゃんと思ったので、以下の記事を参考にprivate gistをpublic gistにした。 Making a Private Gist Public # Chris Dzombak (注意 新しいpublic gistに元のgistを追加するからURLが変わる。) publicにしたいgistをクローンする。 $ git clone git@gist.github.com:703a364c51b8c185efgc.git $ cd 703a364c51b8c185efgc webブラウザからpublic gistを作る。 URLをコピーしておく。 remote gistを追加する。 $ git remo
DeeplearnigのライブラリにはTheanoと聞いて。 ちょっとローカルのスペックではもの足りないので、計算用のcentosにTheanoをインストールしたときのメモ。pythonとパッケージのバージョン問題で詰まった。というかエラーのタコ殴りにあった。 とりあえず、開発ツールをあんまりインストールしてないみたいだったので、 sudo yum groupinstall "Development tools"あと、centosにpython2.4しか入ってなかったから、python2.7を入れて、virtualenvで環境を作った。 http://akiniwa.hatenablog.jp/entry/2013/11/23/233155 Theano動かすまでに、いろんなエラーでた。 libpython2.7.aのエラー UnicodeDecodeError /usr/bin/ld:
TeXはまず環境設定がめんどくさい。コンパイラの指定とか、よくわからないファイルも作られるし。 writeLaTeX: Online Collaborative LaTeX Editor with Integrated Rapid Preview サイトがおしゃれ。 右下の Start Writing をクリックすれば、登録なしで始められる。 最初の状態では日本語使えないけど、usepackageとかいじれば、使えるようになる。 なぜ使えるようになるかは置いといて、とりあえず下のコピーすればいいと思う。 \documentclass[a4paper]{article} \usepackage[pass]{geometry} \usepackage{CJK,CJKspace,CJKpunct} \usepackage{amsmath} \usepackage{graphicx} \usepa
Python Advent Calendar 2013 - Adventar、20日目の記事です。 pythonの機械学習ライブラリのsklearnが便利。 ドキュメントも充実してるし、機械学習のアルゴリズムに詳しくなくても手軽に使えるので、動かしながら勉強できる。 ↓ sklearnでできること(一部) データセット sklearn.datasets クラスタリング sklearn.cluster クロスバリデーション sklearn.cross_validation 行列の分解(PCA等) sklearn.decomposition アンサンブル学習 sklearn.ensemble 線形モデル sklearn.linear_model モデル評価 sklearn.metrics 近傍法 sklearn.neighbors SVM sklearn.svm 決定木 sklearn.tre
R Advent Calendar 2013 : ATND 17日目の記事です。 Rのオブジェクト指向 Rをオブジェクト指向で書けると聞いて、The Art of R Programmingを読んだ。 javaとかpythonのオブジェクト指向とはだいぶ違うもので、Rのオブジェクト指向は主に、「ひとつの関数でいろんな機能を呼び出す」ということを実現してる。(ジェネリック関数とかポリモフィズムとか呼ばれてるやつ) 例えば、Rのplot()は、引数に渡すデータがどんな形をしてても大体プロットしてくれる便利関数。こういう、どんな引数でもおっけーっていう器の大きいやつがジェネリック関数。 試しに、plotの中を見てみると methods(plot) [1] plot.acf* plot.cat plot.data.frame* [4] plot.decomposed.ts* plot.defaul
AMI上でPHPが必要になったので、インストールの手順をメモ。ついでにApacheとMySQLも。 EC2は初期状態でgccすらインストールされてないので、そこから始める。 ちなみに、emacsは当然のように入っていない。(vimとnanoは入ってるけどね!) gccとmake sudo yum -y update sudo yum install -y gcc sudo yum install -y make PHP sudo yum install -y php sudo yum install -y php-devel php-mysql php-pdo sudo yum install -y php-pear php-mbstring Apache sudo yum -y install httpd MySQL sudo yum -y install mysql-server my
記号計算ができるpythonライブラリのsympyを使ってみた。 因数分解とか微分とか、mathematica風の機能がpythonでも使えるようになる。 インストール $ pip install sympy 数式をきれいに表示するために、ipython notebookを使うのがオススメ。 from sympy import * # 数式の表示をするためのメソッド init_printing() # 使用する変数の定義 x, y, z = symbols('x y z') # 方程式をつくる expr = exp(x)/y + z**2 expr # 展開 expand((x + y)**3) # 因数分解 factor(x**2 + 2*x*y + y**2) # 方程式を簡単にする sympify((x + 2*x + x**3)*4 + 3 + x + 4*x) # 方程式を解く
次のページ
このページを最初にブックマークしてみませんか?
『忘れないようにメモっとく』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く