タグ

ブックマーク / blog.kzfmix.com (51)

  • Python for Data Analysisはpandas: The Definitive Guide

    あまり深く考えすにタイトルだけで購入したのだが、良い意味で裏切られた。でも分析の手法を期待して買うと退屈かもしれない。 このはpandasの作者がそのライブラリの説明を事細かに語っているという内容です。 pandasは何かというと Python has long been great for data munging and preparation, but less so for data analysis and modeling. pandas helps fill this gap, enabling you to carry out your entire data analysis workflow in Python without having to switch to a more domain specific language like R.pandas データプレ

    Python for Data Analysisはpandas: The Definitive Guide
  • ScipyをLionにインストール

    ....ARPACK/FWRAPPERS/veclib_cabi_c.o" failed with exit status 1

    ScipyをLionにインストール
  • Mac OSX 10.8にmatplotlibをインストールする

    昔からmatplotlibのインストールはめんどくさかったんだが、OSX 10.8には全然入らない、入る気配すらみせない。 インストールできたと思ってもipython --pylabするとAbort trap: 6する。python対話環境からimportしてみると がでる。sofみたらln -sでいけるでっていうのを見つけたんだけど、「えーこれで解決すんの?」と思いつつやってみたけどやっぱダメだった。 さらに色々調べていたら、Mac OSX 10.7 LionにNumpy,Scipy,Matplotlibなどをインストールするというエントリをみつけて、Scipy Superpackを入れてみたらあっさりインストールできた。 仮想環境じゃないけどまぁいいかなぁと。 Numpy Scipy Matplotlib iPython Pandas がインストールされるのでPython for Da

    Mac OSX 10.8にmatplotlibをインストールする
  • Node.jsでSQLiteを使ってみる

    sqlite3 = require('sqlite3').verbose() db = new sqlite3.Database('/tmp/blog.db') readAllRows = -> db.all "SELECT perma,title FROM entries", (err, rows) -> rows.forEach (row) -> console.log("#{row.perma}: #{row.title}") closeDb() closeDb = -> console.log "closeDb" db.close 1355998432: PersistentのMigrationが便利そうだ 1356131853: カタカナのしりとりの圏 1356162470: ScottyはHaskellのSinatraクローン 1356235849: 棚オーバーフロー 135

    Node.jsでSQLiteを使ってみる
  • A/Bテストを超え、学習しながらウェブを最適化させる手法 (Bandit Algorithms for Website Optimization)

    ふと気になったので読んでみたら、当たりをひいた。 強化学習をウェブサイトの最適化に利用する方法に関してので、A/Bテストの何が問題かを説明してそれを克服するためのアルゴリズムを3つ紹介している Epsilon-greedy SoftMax UCB1 コードはPythonで書かれているので読みやすい。 実際のビジネスでは、A/Bテストで等確率でAB振り分けるために劣っている方のテストの分だけ収益が減ってしまうし、かといってテストをしないと、よりよいサイトを見出す機会がなくなってしまう。つまりexploreを最大化するか、exploitを最大化するかというようなジレンマを抱えることになる。 求められているのは、劣っているサイトデザインに対するテスト(損失)を最小にしつつベストなサイトデザインに収斂していく手法である。そういう問題をMultiarmed Bandit Probremと呼ぶらしく

    A/Bテストを超え、学習しながらウェブを最適化させる手法 (Bandit Algorithms for Website Optimization)
  • ビッグデータの衝撃というよりデータ分析の仕事が重要になるよっていう話

    ビッグデータとは Volume(データ量) Velocity(データの生成頻度) Variety(多様性、構造化できないという意味も含む) のいずれか、またはそれらの組み合わせ。 構造化できない大量のデータがリアルタイムにどんどん生成されていくような状況だと、RDBに収めにくいし、処理するのにも新しい技術や手法が求められるということ。 書では上に書いてあるビッグデータは狭いと考えていて、データ処理技術、ヒトを含めた組織まで含めてビッグデータとして捉えているが、そっちの話は分析力を駆使する企業のがずっと詳しいし、分析という観点から書いてある。 分析が先なのか、データが先なのかという話に関していえば、優秀なデータサイエンティストを有していればデータを与えれば意味のある分析結果がドンドン精製されてくるが、分析するヒトがいなければデータ生成はムダなコストにしかならないので、分析(者)ファーストだ

    ビッグデータの衝撃というよりデータ分析の仕事が重要になるよっていう話
    Gln
    Gln 2013/02/06
  • Pythonとかのちょっとしたスクリプトをforeverでデーモン化する

    pythonでちょっとしたクローラーを書いて終夜で流したい時に、夜中に落ちたりすると時間がもったいないので、死んでも生き返るようにしておきたいことがある。 追記121203 はてブで指摘された通り で良かった。ドキュメントにちゃんと書いてあった。 node.jsで書いた場合にはforeverが使えて便利だが、他の言語で書いた場合にはchild_processで子プロセスにして呼び出せばいいので、javascriptをちょっと書いておけば、PythonでもPerlでもHaskellでもなんでも使える。 でもjavascriptを毎回書くのは(忘れるし)面倒なのでforever用のjavascriptを出力するスクリプトをpythonで書いてみた(foreverizeっていう名前)。 #!/usr/bin/env python import sys js_str = """var spawn

    Pythonとかのちょっとしたスクリプトをforeverでデーモン化する
  • 出版・新聞絶望未来

    元出版社編集長による電子出版市場に対する懐疑的な意見のKindle前に出版されたので読んでみた。 著者は電子出版が進展しない7つの理由を挙げている タイトルが少なすぎる タブレット端末の普及不足 著作権処理が複雑で手間がかかりすぎる 出版社側に著作隣接権がない 紙と電子で販売制度が違う フォーマット乱立 厳しいDRM規制 電子書籍は、現時点では紙より制作費(ほとんど人件費)がかかるらしい。 リフロー型電子書籍はテキストだけの読み物なら比較的簡単に制作できるが、実用書、学術書など、レイアウトや図版が複雑なものになればなるほど手間と時間がかかる まぁ、でもいまの電子書籍の端末の解像度だとそんな複雑な図版にはできないんじゃないかなぁと思ったが、紙の図版を電子書籍化するのは面倒だろうな。 それから8章の課金モデルに対する取り組みと9章の著者の資主義に対する考え方は読み甲斐があった。 個人的に

    出版・新聞絶望未来
  • Emacsでタグジャンプ

    昨日Gentoo Linuxの布教活動に来ていた@karky7にEmacsのタグジャンプの便利さを教えてもらったので、僕もちょっと使ってみようかなと。 ちょうどredmineの中を読んでいるのでappディレクトリで と打つとTAGSファイルができて(etags -f rb -Rとか叩けないんだろうか?)タグジャンプができるようになるのでM-.で探索しつつM-*で元の場所に戻るということが簡単にできるようになっていい感じ。 RoRみたいなフレームワークは行きつ戻りつすることが多いのでタグジャンプを使えばコードを追いかける効率が上がりそうだ。anythingとかhelmでも使えるようなのであとで設定してみる。 42.4 タグジャンプ - 関数定義へジャンプ etags EmacsTags

    Emacsでタグジャンプ
    Gln
    Gln 2012/12/02
  • Emacsの短形領域が便利すぎる

    Emacs Rocks! Episode 01: From var to thisを見ていて、これってEmacsで複数行の行頭空白を削除する方法の逆パターンか!と思ったのだがkill-rectangleはC-x r kにアサインされていることを知った。 それから、C-sで検索すると検索開始位置が勝手にマークされるのを知らなかった。もっと使おうっと。 このブログはmarkdown記法で書いているのでコードを貼り付けるときにスペース4文字挿入しないといけないんだけど、文字幅0の短形領域を選択すれば簡単にspace x 4を挿入できる。いままではdmacro.elで繰り返してたけど、C-x r tのやり方のほうが快適だ。 使い始めると短形領域をkillしたりyankしたりしたくなるとおもうんだけど、それはC-x r k(y)でオッケー 参考 emacsの矩形選択モード紹介

    Emacsの短形領域が便利すぎる
    Gln
    Gln 2012/11/09
  • Nonnegative matrix factorization(NMF)でconsensus clustering

    NMFを追っかけてたらMetagenes and molecular pattern discovery using matrix factorizationという論文を見つけたので、週末はこの論文を読みながら色々やってみた。NMFの便利なところは元の特徴(この論文の場合は遺伝子発現量)からより少ない任意の特徴量(論文中ではmetagene)に変換できるところであり、さらにそのままクラスターの分割に利用できる。 たとえば2つのmetageneで表現した場合、より発現量の大きいmetageneで分割すれば2つのクラスに分けられる。(QSARだったらdescriptorからmeta discriptorが導かれてそれに基づいてクラス分類ができるでしょう) 続いて、重要なのがクラスの安定性である。要するに最適なクラスタの数はいくつなのかということである。これに対して、この論文ではConsensu

    Nonnegative matrix factorization(NMF)でconsensus clustering
  • 結合を切断しながらMatched Molecular Pair(MMP)を求める

    っていうハッシュを作っていく。fragmentは共通のScaffoldを持つので配列中の任意のフラグメントのペアがMMPということになる。 僕の切断ルール 僕の切断ルール シングルボンド 環の一部ではない ボンドのどちらかの端がCであること CHEMBL327743の結果 ('CC[C@@H]([C@H](NC(=O)[C@@H]1CCCCN1CC(=O)*)/C=C/c1ccccc1)C', 'COc1cccc(c1*)OC', 'CHEMBL327743') ('CC[C@@H]([C@H](NC(=O)[C@@H]1CCCCN1C*)/C=C/c1ccccc1)C', 'COc1cccc(c1C(=O)*)OC', 'CHEMBL327743') ('CC[C@@H]([C@@H](/C=C/c1ccccc1)N*)C', 'COc1cccc(c1C(=O)CN1CCCC[C@H]1

    結合を切断しながらMatched Molecular Pair(MMP)を求める
    Gln
    Gln 2012/08/30
  • fmcsを使ってMaximum Common Substructure(MCS)を求める

    openbabelはMCSを求められないのが難点なんだが、書けばいいよなと思いつつ実装してない。そうこうしているうちに、fmcsを見つけて、これ使えばいいかなーと思い始めた2者だけじゃなくて複数の化合物のMCSを求められるのも自分の求めていた機能だし。 fmcsを動かすにはRDKitをインストールする必要があって、「RDKitのインストールめんどいなー」とぶつくさ言ってたら@iwatobipenにsilicosを参考にしなはれと教えてもらった。 brewで入れられんのね。

    fmcsを使ってMaximum Common Substructure(MCS)を求める
    Gln
    Gln 2012/08/21
  • EmacsのPython開発環境を整えた

    macbookを買ってからずっとcarbon emacsを使っていたんだけど、思うところあって23系に変更した。 ここを参考にしながらソースコードを落としてきてインストールした。 python開発環境はemacs-for-pythonがよさそうだったんだけど自分の環境ではpyflakesが動かなかったので、深入りする前にやめた。今度また時間があるときにチャレンジする。 結局以下のサイトを参考にしてflymake, pyflakes, pep8, virtualenv, noseが動くようにしておいた。 flymake+pyflakes+pep8 virturalenv nose 出来上がったelisp (add-hook 'python-mode-hook '(lambda() (setq indent-tabs-mode nil) (setq indent-level 4) (setq

    EmacsのPython開発環境を整えた
  • 「わかる」とはどういうことか

    事実とは自分の心がなくても生起し、存在し続ける客観的現象です。 分かるの基礎は区別(分かつと書くように) 「わかった」という体験は経験の一つの形式であって、事実とか真理を知るということとは必ずしもおなじではない 自己の立場からあれこれ思案して、ものごとの真実を明らかにしようとするのが迷い

    「わかる」とはどういうことか
    Gln
    Gln 2012/02/28
  • アイデア創出技術のバイブル

    考具の著者の監修だということもあって読んでみたが、名前の通りアイデア出しのためのテクニックバイブルだった。 自分の発想力を運用する ためのリソースブックですね。 序部はアイデアパーソンになるための11の習慣付けの方法が書いてあり参考になるが、 アイデアを収集するためのブレインバンクを作る 素早くメモをとる っていうのはEvernoteでいいかなと。今はgoogle tasksにひとつメモ用のリストを用意してるんだけど収集には向かない。 主に以下のセクションに分けてテクニックをまとめてあるので、自分の能力バランスを考えるときに参考になる。 僕は特に直感的思考を高めるためのテクニックのセクションを、えーナニコレ気持ち悪いと思いながら読んでいたが、読後に改めて自分のバランスを考えると論理的な思考をすることに結構縛られているので、もうちょっと直感を養う訓練をしてもいいのかなと。 左脳(論理的思考)

    アイデア創出技術のバイブル
    Gln
    Gln 2012/02/25
  • javascriptを手っ取り早く学ぶためのjs本フローチャート

    今年はjavascriptをちゃんと学ぼうという目標を立てて、Node.jsでWiki作ってみたり、ナポリン(富士のB級グルメのご当地キャラ)のゲームを作ったりしたので、一通りやった感は得られたかなと。 Javascriptを何冊か読んだので、どういう順番で勉強したら効率的だろうかとGraphvizを使ってフローチャートにしてみた。 パーフェクトJavascriptは必読かなと思うが、知識がない段階でいきなり読むと挫折するなので、JGPかなんかで概要を掴んでおくか、普通にコード書けるようになってから読んだほうが得るものが多いですね。良書でしょう。

    javascriptを手っ取り早く学ぶためのjs本フローチャート
  • TPPのいく先を事例で学ぶ(それはつまり韓国ですね)

    個人的にはTPPはどうなのかぁと思っている派です。現状の経済としては明らかにゼロサムゲームっぽいのに、win-winなんてあるわけないでしょうから、単にアメリカに有利な政策なんじゃないかなぁと。客観的にみれば普通にそう思う。 実際にアメリカとFTAを結んだ韓国がどうなったかと、日はどこが同じになりそうで、どこが異なる結果を迎えそうなのかとかそういう議論がないのが気持ち悪いですね。 日のマスコミには、「韓国に学べ」などと主張するヒトが少なくない。実は、筆者もその意見に大賛成である。日韓国に学ぶべきだ。お手ではなく、反面教師として。 法人税減税とは政府から民間企業への贈与そのもの グローバルスタンダードの猛威のもと、たとえば日の製造業が人件費の安い中国に企業にビジネスをうばわれたとしても、「地球全体の付加価値」は変わらない 付加価値の源泉とは「人間のアイデア」 「物の生産が増えるほ

    TPPのいく先を事例で学ぶ(それはつまり韓国ですね)
  • ベターJavaというよりはゆるふわHaskellとしてScalaを使う

    最近ちょっとScala度が上がっています。螺旋を表すScalaのロゴはDNAのらせん構造をも意味するわけです(超訳) ここ数年はずっとPythonをメインに使っていて、大抵のことはサクサクかけて便利だし、コード読みやすいしFlaskは楽しいしと、特に不便を感じることはなく使っていたのだけど最近幾つかの要因が重なって心境の変化があった。 其の壱 devquizでPythonの高速化がめんどくさかった(というか出来なかった)こと。PyPyは手元のmacbookでは動かなかったので仕方ないとして、Cythonがクラスにしちゃうとよくわからんよねーと。だったら最初からC/C++で書けばいいんじゃないのかなぁと。 というわけで、Pythonの他に実行速度の速い言語も覚えておきたいなぁと思った(でも、LLっぽくお手軽に書きたいよね)。 其の貳 Haskellは面白いがなかなか身につかない。プログラミン

    ベターJavaというよりはゆるふわHaskellとしてScalaを使う
  • フォーカル・ポイント

    これは名著かも 今、あなたが仕事や日々の暮らしで思ったとおりの結果を得ていないのなら、戦略的な人生設計にたちかえるときだ。失望や不満を感じるのは、腰を落ち着けて戦略的に取り組むべきだという合図である 書は最も大切なポイントを見極める力の大切さを説いていてそこに焦点を当てることを説いている。 重要度と緊急度の軸があった場合に重要だが緊急でない仕事に割く時間を増やそうとか、そういこと。 基的にポジティブ、オプティミスティックでやるべきことにフォーカスしようっていう内容ですね。たまに読みなおすと負のモードに陥らなくて済むのでいいと思う。 一方で、重要でないけど緊急な仕事を如何にやらないかという割と現実にありがちな部分には触れてなかったりするのは、そもそも想定してないからだろう。 もっとも重要な人生の選択とは、現在と未来の自分の姿に、全て自分が責任を取ると決めることである っていう状況で、敢え

    フォーカル・ポイント
    Gln
    Gln 2011/06/11