タグ

ブックマーク / hagino3000.blogspot.com (14)

  • 『効果検証入門』がアプリケーション開発エンジニアにとって得る物が多い本だった

    読みました。アプリケーション開発エンジニア視点で読んで同僚に勧められる素晴しい内容でした。稿はエンジニア視点のレビューになります。 効果検証入門〜正しい比較のための因果推論/計量経済学の基礎 技術評論社 (2019/1/18) 安井 翔太 (著), 株式会社ホクソエム (監修) Kindle版/紙版両方あり 目次と構成 序 嘘っぱちの効果とそれを見抜けないデータ分析 1章 セレクションバイアスとRCT 2章 介入効果を測るための回帰分析 3章 傾向スコアを用いた分析 4章 差分の差分法(DID)とCausalImpact 5章 回帰不連続デザイン(RDD) 付録 RとRStudioの基礎 終 因果推論をビジネスにするために まず効果検証とは何かという導入と共にビジネスの現場でありがちな誤りのある検証について解説があります。この誤りの原因となるセレクションバイアスと理想的な比較方法であるラ

    『効果検証入門』がアプリケーション開発エンジニアにとって得る物が多い本だった
  • 何故予測が当たるだけではマズいのか、因果と機械学習

    KDD2018の感想です。AdKDDやネット広告方面は職場のBlogに書くので、こちらは他の話を。今年は因果推論のチュートリアルが超満員だったり、予測モデルの差別、解釈性と説明性「interpretable and explainable machine learning models」が注目されたりと単に予測するのでは無く運用課題の話が増えたのが印象に残っています。 リスク予測とインセンティブデザイン 上の写真はDavid Hand氏による講演「Data Science for Financial Applications」の一場面です。自動車保険の保険料が女性に比べて男性が高い事に抵抗して行政上の性別を変更した男性*3の例が紹介されています (NEW YORK POSTの記事)。 事故を起す確率が高いと予測された顧客に高い保険料を課すのは自然なアイデアです。しかし事故発生確率と因果があ

    何故予測が当たるだけではマズいのか、因果と機械学習
  • オライリーから「仕事ではじめる機械学習」という本を出しました

    オライリーから「仕事ではじめる機械学習」というを出しました。技術書典2で頒布した同人誌がベースで引き続き @chezou, @tokoroten 両氏と共著です。実務者向けの内容で対象読者は情報システム開発現場のエンジニアです。 O'Reilly Japan - 仕事ではじめる機械学習 https://www.oreilly.co.jp/books/9784873118215/ 私は同人誌版で「ゲームの試合結果データのマイニング」の章を書きましたが、今回はより実務的な内容として効果検証について書いています。主に仮説検定と因果効果推定です。内容はChezouさんの告知を参照していただくとして、補足とバックグラウンドを紹介します。 お前だれよ インターネット広告配信システムの配信ロジックの開発をしています。2015年まではデータを集める所から分析基盤の構築を経てBIツールの導入、バッチ処理環

    オライリーから「仕事ではじめる機械学習」という本を出しました
  • Spotify社のエンジニア評価制度

    Spotifyが日に上陸しましたね。現在はアプリをインストールしてもすぐにサービスが利用できない様子、その隙に彼等の技術職評価制度についてのブログエントリを読みます。 ブログエントリは3部作になっており、技術職のキャリアパスフレームワークを作ったモチベーションに始まり、そこから得た物まで纏まっています。 印象に残った箇所 キャリアパスフレームワークをいつ作るか 会社の初期の頃にはキャリアパスフレームワークは不要である。しかし8年間、Spotifyは昇格・昇給の正式な手続きが存在しなかった。 昇格にはラインマネージャかプロダクトオーナーになるのが必要だと社員は考える様になってしまった。Spotifyにおいては、それは職種変更同然で開発者としての成長では無い。 2014年の春に "career ladder" の開発に着手した。 目標 Spotifyの文化に適合しており、社員の多様性、さまざ

    Spotify社のエンジニア評価制度
  • PyConJPで「アドネットワークのデータ解析チームを支える技術」という発表をしました

    PyConJP 2015に登壇してきました。PyConJPについてはライブラリの使い方についてのセッションが多く、じゃあそれを使ってどうやって金を稼いでるか、というプロダクトベースの話は少なめな印象がありました。なので自分は逆張りで仕事の話をしてきました。 といっても発表で例に出した手法は "Online Advertising" で論文を探せば出てくるメジャーな奴なので、うちだけ特殊な事をやっている訳では無いです。 発表資料

    PyConJPで「アドネットワークのデータ解析チームを支える技術」という発表をしました
  • 弱くてニューゲームしてアドテクエンジニアになりました

    近況。2015年からアドネットワークのデータサイエンスチームにおります。前の部署ではメディア寄りの所でモバイルアプリの開発をしていたので、ほぼ転職に近い状態です。アドネットワークなにそれという方向けの説明としては、広告主と広告枠をまとめていい感じにディスプレイ広告を配信するシステムだと思ってもらえれば。 データ分析や広告配信アルゴリズムの改良というアプローチでアドネットワークの収益改善に取り組むのがミッションです。会社ブログにMortal Multi-Armed Banditsの記事を書いた頃は多腕バンディットアルゴリズムの調査や実装をしていました。 データサイエンスといっても、いきなり機械学習を使った仕組みをプロダクションに投入できるかというと全くそんな事は無く、ログの収集と解析基盤を構築する所からでした。まっさらなAWSアカウントでCloudFormationテンプレートを書いて、VP

    弱くてニューゲームしてアドテクエンジニアになりました
    rokujyouhitoma
    rokujyouhitoma 2015/06/12
    よいチャレンジ > 弱くてニューゲーム
  • OpenSpendingを支える技術

    このエントリはCivic Tech Advent Calendarの23日目の記事です。突然ですが、私が時々コミットしているOpenSpendingについて技術周りの事を書きます。 OpenSpendingとは OpenSpendingは政府や自治体の予算・支出・財務諸表等の情報を集めてマッピングしたり分析したり、配布するプラットフォームです。誰でも登録されているデータセットを利用する事ができ、API経由での取得、ヴィジュアライゼーションの作成ができます。また手元にデータセットがあれば登録する事ができます。現在73カ国、905のデータセットが登録されています。 By understanding how governments spend money in our name can we have a say in how that money will affect our own liv

    OpenSpendingを支える技術
    rokujyouhitoma
    rokujyouhitoma 2014/12/25
    > "というわけで開発者が足りていません。特に日本人はAPIをガツガツ叩くくせにコミュニティにコミットしてくれないと評判です。"
  • PyCon JP 2014 オープンスペースでインタラクティブプログラミングについて発表しました

    PyCon JP行ってきた。話せるネタはあったものの、事前にトークセッションのプロポーザルを出してなかったのでオープンスペースで細々とやりました。 共用IPython Notebookサーバーの運用 共用のデータ分析環境としてIPython Notebookを運用する場合、適度に再起動をかけたりと、気にしなければならない事が多々ある。現在のv2系にはマルチユーザー機能が無い*1ので、自ずとノーガード戦法となり、ある程度のリスクを許容しつつの運用となるが、その中でもやれる事はやろうという話です。 インタラクティブ環境を意識したメソッドの作り 折角のインタラクティブ環境なので、動作はサクサクしていた方が良い。データロード用のショートカットメソッドなんか特にdocストリングとレスポンスタイムが重要。あと不意の事故防止。 脚注: *1: v3系で追加予定がある

    PyCon JP 2014 オープンスペースでインタラクティブプログラミングについて発表しました
    rokujyouhitoma
    rokujyouhitoma 2014/09/15
    マルチユーザーサポートはほしい。仮想ターミナル的な。
  • IPython Notebookを2.0にアップデートした

    IPython Notebookは1.x系をさくらVPS上で稼動させていたんだが、再起動の方法すら忘れてしまったのでこれを期に稼動場所移設と2.0.0にバージョンアップする事にした。以下気づいた事メモ Macで動かし易くなった Virtualbox上で稼動させようと思っていたが、試しにMacOSX上にセットアップしたらすんなり動いた。コマンドはbrew installとpip installだけで済む。ただ、virtualenv環境を使うと、brewで入れたsipやPyQTが使えないので一気に面倒な事に。matplotlibのbackendも変更が必要になったり、ハマり所が増える。pyenvやvirtualenvを使わずにbrewで入れたPython2.7の環境に全部入れてしまうと楽。 --pylab=inlineが非推奨に 以前からやりすぎ感はあったので同意。今後はそれぞれimportし

    IPython Notebookを2.0にアップデートした
  • RabbitMQ 3.1の導入とCluster構成を検証する

    RabbitMQ 3.1の導入と冗長化の検証をしたのでメモ。 検証のための構成はフロントのAPサーバー、RabbitMQが動作するキューサーバー、ワーカーそれぞれ二台づつ。キューサーバーが片方死んでも全体が動作し続けられる事、両方がダウンしたとしてもデータは損失しない事が確認できれば良い。要するに単一障害点にならないようにRabbitMQを使いたい。 サーバーの準備 仮想マシン6台はVagrantを使えば一発で用意できる、メモリ16GB積んでてよかった。ホスト名を後でいじるとrabbitmqctlで停止・再起動がうまくいかなくなった。ホスト名周りはEC2で使う時に面倒な事になりそうだ。 各サーバーの /etc/hosts にrabbit1とrabbit2は追加しておく。 RabbitMQ 3.1 のインストール 起動確認 vagrant@rabbit1:~$ sudo rabbitmq-s

  • 山城とお別れをした

    人間は死ぬ 身近な友人が死ぬというのは人生初めての経験だった。送別会は悲しい一方で最高に楽しかったのは事実で、印象的だったのは参加者がくちぐちに「気持ちに区切りがついた」と言っていた事だ。自分は一昨日まで葬儀の存在意義がわからず、葬式など必要無いと考えていたのだが、それは死者のためでは無く、生き残った人々のためにあるというのが理解できた。弔いの儀式は人類が古くに編み出した文化的な行為であると。 Bye Bye Yamashiro. この様なバカ騒ぎをしながら氏を偲ぶのはjava-jaに必要な儀式なのだ。 俺と山城 彼とは職場が一緒になった事は無いが、java-ja.jsというイベントを一緒にやったりしていた。歯に衣を着せぬ物言いをしてくれる貴重な友人でもあった。 最後にちゃんと話をしたのは、同じビルで働いていた時に、職場の近くでランチをした時だ。彼は「Google AnalyticsをGo

    山城とお別れをした
  • asm.jsを手書きしつつフィボナッチで速度比較をしてみる

    asm.jsを触ってみたので所感など。 asm.jsはJavaScriptのサブセットで、限られた型しか使えないが高速に動作する言語との事。とりあえずどの程度速くなるのか、計算量が多くなるfibonacciの実装で試してみた。参考資料はasm.jsの仕様ぐらいしか無かったのでこれを見ながら。 で、実際に書いてみると型がゆるゆるなJavaScriptのイメージは脆くも崩れ去り、厳格な型チェックの世界である事がわかった。コンパイル言語を書いている時の頭に切り換えないと、コンパイルエラーと延々格闘する事になる。まずはasm.jsのコードは次の形式で、module exportする。 function create_my_asm_module(stdlib, foreign, heap) { "use asm"; function hoge() {...} function fuga() {...

    asm.jsを手書きしつつフィボナッチで速度比較をしてみる
  • iPython notebookでPRMLのグラフを再現する

    先週のPRML復々習レーン#9でPRML下巻の図6.1がいまいち理解できなかったので、Pythonのコードで再現してみた。基底関数と特徴空間への写像の内積で定義されるカーネル関数をxでプロットした図である。 最初Excelのグラフでやってみたが、ありえない事に気づきOctaveに方針変更。それでも、コードと結果を見くらべながら試行錯誤しにくかったので、最終的に@__youki__氏に教えてもらったiPython notebookに落ちついた。 iPython notebookはiPythonのWebクライアント。グラフを試行錯誤しながらガンガンプロットして保存しておける。セットアップは若干面倒だがそのうちfabricのfabファイルとか出てきそう。結果はnbconverterでHTMLに変換できる。コード、結果の共有はもちろん、ブラウザから実行できるので一度サーバーを立ててしまえばどこでも

  • makefileを廃絶してgruntを使う

    JavaScriptを使った開発で必要となるconcat, minify, lint, test といったタスクを動かすのに使うツール、最近はgruntをよく見かけるのでオレオレmakefileから移行してみた。 既存のmakefileは以下の通り。makefile + makeターゲットから呼び出される各種タスクに対応した処理を行なうプログラムという構成。make minifyと打てば圧縮版のファイルを生成、make testと打てばテストが実行される寸法だ、圧縮にはuglify.js, lintにはjshint、全てnodeモジュールを使っているのでそのまま移行できるはず。concatにはmuというテンプレートエンジンを使っていた。 makefileからの移行 まず、gruntの制御に必要なgrunt.jsファイルは grunt init:gruntfile して生成する。concat

    makefileを廃絶してgruntを使う
  • 1