
はじめに 前回 ハミルトニアンモンテカルロ法の実装をやった. 今回は No U-Turn Sampler (NUTS)の実装をやる. 論文を参考にした. コードはここにもある github.com NUTS ハミルトニアンモンテカルロ (HMC)はパラメータの勾配を利用して, 効率的にMCMCサンプリングを行うことができる手法だった. HMCの問題点は2つ. 更新ステップ数 を適切に指定しなければいけない. 更新の大きさ を適切に指定しなければいけない. NUTSは更新ステップ数を自動的に決定する手法である. 論文内でははdual-averaging (Nesterov 2009)を用いて決定するが,今回は決め打ちにする. 更新ステップ数L ハミルトニアンモンテカルロでは,正規分布によって発生させた運動量を与えて, ステップの間,点を動かす. 予め決められたステップの間,点を動かすので,例
※サンプル・コード掲載 あらすじ Javaだと、Kuromojiを使用するまでに必要な手続きは、基本的にjarファイルを追加するだけで完了しますので、形態素解析を使うまでの敷居は高くありません。 しかし、PythonでMeCabを使おうとすると、セットアップに時間を取られてしまうことがあります。 ですので、今回は最小限の労力で、PythonからMeCabを使う方法を紹介致します。 使用した環境 Ubuntu 16.04python3、pipはインストールされていると仮定 *インスタンスを用意した直後の、何も手を加えていないインタクトなマシンの状態のままです。 MeCabのインストール(1分以内) コマンドを打ち間違えなければ、完了まで1分かかららず、ご活用いただけるはずです。 MeCabを使えるようにするという事だけを優先するので、MeCabの詳細等は、別途御確認頂ければと存じます。 Me
こんにちは、AI Lab の馬場です。 このブログは CyberAgent Developers Advent Calendar 2016 の11日目の記事です。 昨日は sitotkfm さんの「ログを集める時に気をつけたいポイント」という記事でした。 この記事では、僕が仕事でデータ分析をやっていく上で大変お世話になっている Jupyter Notebook の Tips をまとめてみます。Jupyter Notebook では便利な機能がたくさんあるので、ちゃんと使うと無駄作業の削減になります。僕もこれまで分析途中で「あーこれができたらなあ」と検索しては時間をつぶしてきたので、ここでまとめて記憶にとどめておきたいと思います。 図表・可視化系 notebook 内に図を表示したい 単純に jupyter notebook を起動して、pyplot などでグラフを描画しようとしても、図は
データ分析の会社に転職してから3ヶ月。 最初の1ヶ月はPandasの扱いに本当に困ったので、 昔メモしてたことを簡単にブログに記録しておく(o ・ω・)ノ 【追記】2017/07/31 0:36 データが一部間違ってたので修正しました Pandasとは pandasでよく使う型 テストデータについて 余談 Pandasでのデータ操作入門 pandasのload データ(csv)のロード データのサイズ データのカラム 行列から必要な列(カラム)を取り出す 条件にマッチするデータを取り出す 1. DataFrame.queryで取り出す True/FalseのSeries型を指定し、Trueの行だけを取り出す 追記(2017/12/14) 行列から必要な行番号を指定してを取り出す グループ分けと集計 新たな列を追加する 固有値を追加する 他の列を加工して新たな列を作る 他の複数列を加工して新
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに Python入門系の記事では概して、Pythonのロギング機能の紹介で最初にlogging.debug()といったloggingモジュール付属の関数を呼ぶ方法を案内しています。 Python本家が提供するloggingの「基本チュートリアル」でもこの点で大差ありません。Python本家の基本チュートリアルでは、print()関数を使用する方法もロギングの手段として有効であるとし、タスクに応じてprint()やlogging.debug()を使いわけよう、という流れで記述されています。 コマンドラインスクリプトやプログラムで普通
3月10 python-daemonでオレオレデーモンを動かす カテゴリ:My PythonMy Programming Python使うと自前Daemonが簡単に作れてしまう件。 まずはpython-daemonをeasy-installする。 easy_install python-daemon import daemon from mymodule import daemon_process from __future__ import with_statement # Python 2.5の場合 dc = daemon.DaemonContext() with dc: daemon_process() # ここの呼び出し処理がデーモンになる 超絶簡単ですね! ちなみに、デーモンとは「親プロセスを持たないプロセス」のこと。 デーモン (ソフトウェア) 今作ってるサービスでTwitte
#!/usr/bin/env python # -*- coding: utf-8 -*- import time import multiprocessing import daemon class NeetsDaemon(object): def __init__(self, processes): self.processes = processes def start(self): for i in range(self.processes): # 新しいプロセスを作る p = multiprocessing.Process(target=self._main_loop) # デーモンフラグを有効にすると親プロセスが死んだとき一緒に死ぬようになる p.daemon = True # プロセスを開始する p.start() # 自分もメインループに入る self._main_loop
GPIO入力でシャットダウンを実行するPythonスクリプトを前回まで作成した。今回はいよいよこのスクリプトが起動時にバックグラウンドで自動的に実行されるよう、デーモン化させてみる。 デーモンとは シャットダウンスクリプトをデーモン化させてみた デーモンの起動 その他の参考文献 デーモンとは こういうプロセスが一般にデーモンと呼ばれますよ、という説明が分かりやすかったのが以下の記事。 engineering.otobank.co.jp シャットダウンスクリプトをデーモン化させてみた 参考文献はこちら。 qiita.com デーモンの名前には末尾にdをつけるのが慣例らしいので、gpio_shutdownd.pyのようにファイル名を付け、下記の内容をファイルに書き込んだ。 #!/usr/bin/env python3 # -*- encoding:utf-8 -*- from __future
Python仮想環境に関してはじめに ここに書いてある環境構築は2021年時点でも有効で、私のように趣味ベースで使う場合は、特に大きな問題ありませんが、必ずしも全ての人にベストな手法ではありません。 他にも様々なPythonの環境構築ソフト(pipenv, venv等)がありますし、Anacondaは使わない主義などあります。こだわる人は各自調べて自分に合うものを選択しましょう。 Docker覚えるコストが許容できるなら、Dockerもオススメです。以下記事参照ください。 2021/04/17追記:Macに関しては、Apple Silicon Macの関係で、MiniForgeを使う環境構築に移行しました。以下記事参照ください。 2021/10/04 Linuxでのセットアップに関して新たに記事を書き直しました。以下記事参照ください。 zenn.dev これ以降の本記事は、参考情報として残
はじめに こんにちは、Python界のテリー・ギリアムです。こんな記事を見かけて、Pythonの開発環境を作るのが面倒という認識が広まるのは良くないなあと思って書きました。ただの突っ込み記事です。 qiita.com そのツールほんとに要りますか? 出だしにこんなセクションタイトルがありました。 その仮想環境本当に必要ですか? たしかに仮想環境要らないひとは要らないよねっていうのは同意です。その場合、入ってるPythonのsite-packagesにどんどんパッケージがインストールされるだけなので、手動で消せる人はそれでいいし、そもそもパッケージのバージョンとか知るかって人はそのままパッケージインストールすればいいと思います。 とはいえ、複数のプロジェクトでパッケージのバージョンがぶつかったら困る人とかいるし、そういう人は仮想環境を使うことになるでしょう。で、件の記事ではいろいろなツールを
- はじめに - 最近はWebスクレイピングにお熱である。 趣味の機械学習のデータセット集めに利用したり、自身のカードの情報や各アカウントの支払い状況をスクレイピングしてスプレッドシートで管理したりしている。 最近この手の記事は多くあるものの「~してみた」から抜けた記事が見当たらないので、大規模に処理する場合も含めた大きめの記事として知見をまとめておく。 追記 2018/03/05: 大きな内容なのでここに追記します。 github.com phantomJSについての記載が記事内でありますが、phantomJSのメンテナが止めたニュースが記憶に新しいですが、上記issueにて正式にこれ以上バージョンアップされないとの通達。 記事内でも推奨していますがheadless Chrome等を使う方が良さそうです。 - アジェンダ - 主に以下のような話をします。 - はじめに - - アジェンダ
こんにちは、アプリケーションエンジニアの id:skozawa です。 先日、BrandSafe はてなの裏側をリニューアルしました。リニューアルにあたり、アーキテクチャや開発言語を改めて検討しなおし、その結果、新たにPythonを使って開発を行いました。そこで、検討したことや新言語での開発で気を付けたことなどを簡単に振り返りたいと思います。 BrandSafe はてなとは アドベリフィケーションサービスであるBrandSafe はてなでは、はてなブックマークやはてなキーワードの情報を活用し、URL単位でWebページの解析をします。アダルトサイトや2ちゃんねるまとめといったサイトかどうか判定することで、特定の内容のページには広告を出稿しないようにするためのサービスです。 hatenacorp.jp リニューアルの経緯 現在、長年の開発により蓄積した技術的負債を減らすために、はてなブックマー
先日paizaが行ったアンケートで、「好きなプログラミング言語」の1位(※社会人2位・学生1位)にPythonがランクインしました。 paiza.hatenablog.com Pythonは1990年代前半からオランダ人のグイド・ヴァンロッサムによって開発されたオブジェクト指向スクリプト言語で、文法が必要最小限に抑えられており、ITエンジニアの学習の負担が軽減された開発言語と言われています。 海外では、近年Pythonによる開発が急速に増加しており、InstagramやDropboxなどの開発にも使われています。また、機械学習に適したライブラリが多く、最近は日本でも積極的に取り入れる企業が増加してきており、これからの一層の普及が期待される人気言語となっています。 Pythonはバージョン2系と3系があり、3系には後方互換性がない変更が入っています。Python3のコードがPython2で動
最近になって、バッチ処理においてデータパイプラインを組むためのフレームワークとして Luigi というものがあることを知った。 これは、Spotify という音楽のストリーミングサービスを提供する会社が作ったものらしい。 似たような OSS としては他にも Apache Airflow がある。 こちらは民宿サービスを提供する Airbnb が作ったものだけど、最近 Apache に寄贈されてインキュベータープロジェクトとなった。 Luigi の特徴としては、バッチ処理に特化している点が挙げられる。 ただし、定期的にバッチ処理を実行するような機能はない。 そこは、代わりに cron や systemd timer を使ってやる必要がある。 また、本体もそうだけどデータパイプラインについても Python を使って書く必要がある。 今回は、そんな Luigi を一通り触ってみることにする。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く