読者です 読者をやめる 読者になる 読者になる

About connecting the dots.

statistics/machine learning adversaria.

RStudio + sparklyr on EMRでスケーラブル機械学習

前回に引き続き分析環境ネタ第2弾*1.今回はEMRでRStudioを立ててみます. RStudioの構築 やり方自体は,AWS Big Data Blogにまとまっているので,別に難しくはなかったり.RStudioとか関連コンポーネントは,例のごとくS3に便利スクリプトがあるので,これ…

Spark on EMRでZeppelinを使ってML Pipelineを試してみる

Sparkの最新状況をアップデートする意味も含めて,EMRで一通りの挙動を試してみたので,備忘録的にまとめておきます.慣れると簡単で便利なんですけど,それまでは結構ハマりどころが多いんですよねぇ,このあたり. Zeppelinにアクセスするまで AWS Big Dat…

Spark2.0でジョブのアウトプットを高速にS3に書き出す

ここのところEMRでSparkを触ってます.まぁやってるのは,主にデータのparquet+snappyへの変換処理なんですけどね.EMRといえばHDFSではなく,EMRFS経由でS3に書き出すのがモダンなやり方,ということでそれを試してます.で,いろいろ試してて以下の2点の問…

書評: StanとRでベイズ統計モデリング

今回は書評エントリです.日本のStan界隈の顔である @berobero11 さんが統計モデリング本を出版し,ありがたいことに献本いただきました*1.ようやっと一通り読み終えた*2ので,感想がてら本の魅力について述べていきたいと思います*3.StanとRでベイズ統計…

Fitbitから取得した心拍データで時系列の異常検知を試してみる

井出先生の「異常検知と変化検知」を読んで,自分でも試してみたいと思ったんですが,あいにくちょうどいい時系列データが手元にないなーと思ってました.そんな折,データサイエンスLT祭りの発表の中に,Fitbitデータを可視化するものがあって*1,これはち…

Ansible経由でDockerイメージを作ってみる

これまで仮想化とかクラウドとか,そんなにお仕事で触ってなかったこともあって割と放置気味だったのだけど,さすがに少しは使えないとねということでちょいと試してみましたというお話.以前に依頼を受けてWebアプリを作ったことがあって,これを1年くらい…

Fundamental Models for Forecasting Elections から考える,日本の選挙における当選者予測方法

参議院選挙が終わったと思ったら今度は都知事選と,まさに選挙の夏ですね.選挙といえば,20時の投票〆切と同時に発表される,マスメディア各社の当選者予測が風物詩です.開票率0%で当確が続々打たれる様は,まさに統計学+社会調査の面目躍如という感じがし…

マーケットデザインと受入保留アルゴリズム

最近,ブログエントリを書くときの枕が読んだ本のことが多いですが,今回も御多分に洩れずであります*1. 現実の中でのマーケットデザイン つい先日まで,以下の本を読んでました.マーケットデザインという分野を過分にしてしらなかったんですが,大元はゲ…

上司をマネジメントする (Managing your boss)

先日のETLの記事の中でも軽く触れたんですが,ホントの意味でデータが組織で活用されるためには,組織全体がデータを使って意思決定をする組織構成になっていないといけない,というのが最近強く感じることです.キンボール先生の本では,このあたりビジネス…

ビッグデータの成熟期に改めて見直したいETL

Hadoopが出てきてから10年,ビッグデータという言葉が流行り始めてからでも5年以上が経ち,2016年現在では,Hadoopエコシステムを使ったデータ活用が当たり前のものとしてあります.とはいえ巷に出回っているビッグデータ活用事例というのは,綺麗な上澄みだ…

optim()で階層構造を持った多変数の最適化をしてみる

最適化周りの処理について実装する必要が出たので,optim() を調べて使ってみましたよ,という話.optim() って関数の形で表わせさえすれば,結構なんでも自由にできるっぽくて便利です.特に,階層的な構造を持ったデータの最適化もできるのは大きいです. …

glmnetで正則化を試してみる

タイトルの通り,よく考えたら今までL1/L2正則化を知識としては知ってるけど,実際に試したことはなかったことに気がついたので試してみましたよという話.L1/L2正則化にの理屈については,TJOさんのエントリとか,unnounnoさんのエントリとかをみてもらえれ…

RStudio Serverの更新とロケール設定

RStudio Serverを久しぶりに使おうと思ってアクセスしたら,なんかバージョンが古すぎてggplot2もdplyrもtidyrも入れられない有様だったので,アップデートをしましたよの備忘録.元バージョンはR3.1.0にRStudio0.97あたり.OSはCentOS6.5でした.Rについて…

データビジネスに関して2015年に読んだ本

気がつけば2015年も大晦日で,早い一年でした.ということで,恒例の今年読んだ本紹介をしておきたいと思います.ちなみに昨年と一昨年のはこちら.各セグメント毎に,個人的に参考になった順,面白かった順に並べています.マーケティングとマネジメントが…

HiveでISO8601形式の時刻データを扱う

連日イカに潜っているため,すっかりご無沙汰になっている当ブログです.今回は小ネタ.HDFS上に保存しているデータの日付カラムがISO8601形式だったりすることがよくあるんですけど,これってHiveのtimestamp型で読み込めないんですね.蜂初心者なので全く…

勾配ブースティングについてざっくりと説明する

最近xgboostがだいぶ流行っているわけですけど,これはGradient Boosting(勾配ブースティング)の高速なC++実装です.従来使われてたgbtより10倍高速らしいです.そんなxgboostを使うにあたって,はてどういう理屈で動いているものだろうと思っていろいろ文…

Optimizelyのstats engineによる逐次A/Bテスト

ABテストといえば,だいぶ前に有意とか検定とかそのあたりで,データ系の界隈がいろいろと盛り上がっていたのが記憶に残っているトピックなわけですが,今年の1月にABテストの大手Optimizelyのエンジンがリニューアルされてました.これがなかなか興味深いん…

stackingを試してみた

つい先日,stackingについての以下の記事が話題になっていました.ランダムフォレストと他の機械学習(or統計)を組み合わせて使う - じじいのプログラミングこのあたり,私自身は試したことがなかったので,実際に試してみましたよというお話. コード Rで…

CaffeのImageNetで特徴量抽出器を動かすまで

前回でCaffeがインストールできたので,とりあえず今回はImageNetの特徴量抽出器を使うまで.Yahoo! JAPAN Tech blogの記事を参考にやってみたら,ハマりどころがたくさんあったので,そのあたりを共有しましょうの会です.ハマりどころを抜けるのに参考にし…

HBase徹底入門

ClouderaさまよりHBase徹底入門を献本いただいたの*1で,だいぶ遅くなりましたが感想をまとめておきたいと思います.HBase徹底入門 Hadoopクラスタによる高速データベースの実現作者: 株式会社サイバーエージェント鈴木俊裕,梅田永介,柿島大貴出版社/メーカ…

実装して理解するオンライン学習器(2) - Confidence-Weighted

前回からだいぶ間が空きましたが,その間なんもやってなかったので,いい加減まとめてエントリにしておきます.本当はSCWまでやってからにしたかったんですが,あきらめてCWだけで...実装して理解するオンライン学習器(1) - PassiveAggresive - About connec…

Mac OS X 10.10にCaffeをインストールするまで

メモ代わりに手順まとめておきます.基本は install_caffe_osx10.10.md と CaffeをOS X 10.10 にインストールした // ichyo.jpを参考に,細かい修正を幾つか,という感じです.マシンはmac mini late 2012(core i7 2.3GHz quad core)です. CUDA CUDAとドラ…

「熊とワルツを」のリスクシミュレーションをRで実装した

最近「熊とワルツを」というプロジェクトにおけるリスク管理についての本を読みました.本の中にでてくるリスク管理シミュレーションをR実装しました,という話です.熊とワルツを - リスクを愉しむプロジェクト管理作者: トム・デマルコ,ティモシー・リスタ…

dplyrを使ったdata.frameの前処理を関数化する

表題の通り,dplyr使って前処理する際に,それを関数化する方法のメモ.ユースケースとしては,ちょっとだけ条件変えてデータフレーム自体を何度か出し直すってとき用. 関数 まるっとフィルタ用のconditionと,select用のvariablesを引数で渡します*1.ポイ…

BW変換(Burrows Wheeler Transform)を書いた

「高速文字列解析の世界」を読んでて,BW変換のところがよくわからなかったので,実際に書いてみました.高速文字列解析の世界――データ圧縮・全文検索・テキストマイニング (確率と情報の科学)作者: 岡野原大輔出版社/メーカー: 岩波書店発売日: 2012/12/27…

データビジネス・分析・開発に関して2014年に読んだ本

年末なのでぼちぼち今年の振り返りをします.ちなみに去年のはこちら.データビジネス・分析・開発に関して2013年に読んだ本 - About connecting the dots.データブジネス,データ分析,ソフトウェア開発の3カテゴリに分けて,それぞれについて上から読んで…

PythonのnimfaでNMFを試す

PythonでNMFやるには,nimfaというパッケージを使えばよいらしいです.とりあえず使うだけなら,適当なnumpy行列vecを用意して,以下のように関数に投げてあげます. factor = nimfa.mf(vec, seed='random_vcol', method='nmf', rank='5', max_iter=10) res …

マンションポエムで新築マンションをクラスタリング

今回は自然言語処理の話です.それも若干不自然な言語のマンションポエムが対象になります.マンションポエムというのは,工場萌え*1の著者大山さんが提唱している,マンション広告に入っている詩的なコピーのことです*2.具体的にはこんな感じのやつです*3…

Yosemiteでのmecabのパス

mecabの辞書作成をしようとしたら,なぜかgooglecodeにある説明とパスが違ってて,探すのに多少苦労したのでメモ.Yosemitenのせいなのか,何か自分がインストールのやり方を間違えたのかはわからないのだけど. # mecabのディレクトリ /usr/local/Cellar/me…

memoizeでPythonの再帰計算をキャッシュして高速化

背景 ここ数ヶ月,頭の体操とPythonでの数値処理に慣れるのとで,project eulerの問題を順に解いていってます*1.割と初等整数論を使った計算問題が多いので,単純に公式を調べてなるほどこういう公式があるんだーとか感心しながら計算してます*2.で,その…

中古マンション売買データを分析してみた - シリーズ目次

中古マンション売買データを分析してみた(1) - 築年数と駅からの距離は価格にどう影響するか - About connecting the dots. 中古マンション売買データを分析してみた(2) - 路線と駅による中古売買価格の違い - About connecting the dots. 中古マンション売…

中古マンション売買データを分析してみた(4) - 完成系の階層モデルと駅ブランド力の可視化

半年ぐらいウダウダやってましたが,今回が最終回です.自分としては満足のいく階層モデルに仕上がり,可視化までたどり着きました.ということでこれまでのエントリを別ページにまとめておきます.中古マンション売買データを分析してみた - シリーズ目次 -…

Chrome Developper ToolとCasperJSでスクレイピング

思い出したかのように再開している中古マンション売買データを分析してみたのシリーズですが,今回はちょっと脇にそれてデータ集めのお話について説明したいと思います.いわゆるスクレイピングというやつです*1.今回のデータを最初に集めたときは,たいし…

中古マンション売買データを分析してみた(3.2) - 駅が複数の路線に所属する階層モデル

引き続き,階層モデルを実際のデータに即した形で組んでみようという試みを続けていきたいと思います.昨日の記事では,1つの駅は1つの路線にしか所属しない*1という制約を持ったモデルを作成しました.で,今日の試みは,1つの駅が複数の路線に所属できるよ…

中古マンション売買データを分析してみた(3.1) - 階層性を考慮したモデルのさらなる精緻化

今更感がだいぶただよう感じのネタではありますが,発表しようと思ってスライドまとめたものの,一向に予定が組まれないので,現状のモデリングがうまくいっていないので,ここで一旦公開しちゃおうというのが今回のエントリの主旨です. モデルを精緻化する…

実装して理解するオンライン学習器(1) - PassiveAggresive

一言でいうと,最近流行のオンライン学習器を,アルゴリズムを理解しながら実装して動かして挙動を眺めてみようというシリーズです.例によって飽きたらいつのまにかフェードアウトしますが,気長にやっていこうと思っています.だいたいいつもRばっかり使っ…

ggplot2でExcelライクなヒートマップを作る

Excelでぱぱっとデータを可視化するときに,よくヒートマップ使うんですけれども,これと同じことをggplot2でやってみましたというお話.Excelのヒートマップは,リボンUIで[ホーム]→[スタイル]→[条件付き書式]で設定できて,下のように赤-黄-緑とグラデーシ…

非負値行列因子分解(NMF)によるレコメンドのちょっとした例

最近線形代数についていろいろ読みなおしたりしてるのですが(線形代数チートシートを前の記事でまとめてあります),その一環でレコメンドアルゴリズムについていくつか試してみたので,それを解説します.順序としては,基本の協調フィルタリング(ユーザ…

線形代数の用語と意味まとめ(主に自分用)

恥ずかしながら,線形代数周りの用語って似たようなものが多くて,すぐにアレがどれだっけと混同してしまいがちになります.線形代数の手計算とかがんばってたのなってもう10年とか昔の話だし,チートシート的にまとめなおしておこうと思いました.内容的に…

中古マンション売買データを分析してみた(3) - (より妥当なモデル化をした)路線と駅による中古売買価格推定

いくつかテクニカルに試行錯誤したり,他のことをやってたりしてしばらく間があいてしまいましたが,ようやく前回やった路線と駅モデルの精度向上ができました.エントリの最後に書いた通り,以前の路線・駅による中古マンション売買価格モデルは,大きな問…

中古マンション売買データを分析してみた(2.4) - 個体差を入れた階層ベイズモデルへの拡張

引き続きStanでモデルの拡張を行っていきます.前々回の結果について,通常の線形モデルをStanで回したわけですが,順調にこれを拡張していきます.まずは個体差のランダム効果項を入れて,よりモデルの汎化性を高めていきたいと思います.階層ベイズについ…

中古マンション売買データを分析してみた(2.3) - Stanの行列演算速度を軽く試す

とりあえずStanになれるというのも兼ねて,軽くマニュアル読みながら*1,どういう書き方が良い書き方なのかを学ぶことにしました.そうしたら,マニュアルのp141 Vectorizationのところで,基本的にvectorやmatrix使った方が計算早いよって書いてあるので,…

中古マンション売買データを分析してみた(2.2) - BUGSのモデルをStanに置き換えてみた

ごぶさたしています.シリーズの途中にも関わらず,1ヶ月半ほどブログを放置していました.仕事にかまけて更新が億劫になったのと,Pythonでせこせこbot作ったりしてたのが主な要因ではありますが.気がついたら第3回BUGS/Stan勉強会が開催されていて*1,そ…

中古マンション売買データを分析してみた(2.1) - MCMCで線形モデルを推定するためのパラメタ設定はどうすればいいか

今回のエントリはテクニカルな問題のお話のみで,住宅価格についての蘊蓄はいっさい含まれておりません.統計モデリングに興味のある方のみお読みください. 問題 前回のモデルでは,単純に群間の差を駅,路線の2層の群を使ってモデリングしました.考察のと…

中古マンション売買データを分析してみた(2) - 路線と駅による中古売買価格の違い

というわけで前回予告した通りに,引き続き川崎横浜の中古住宅についてみていきましょう.今回のテーマは路線と駅,です.その中でも個人的な興味は,特に東横線プレミアムってやつは存在するのか,というものです*1.実際,東横線沿いの住宅ショールームと…

中古マンション売買データを分析してみた(1) - 築年数と駅からの距離は価格にどう影響するか

新しい年度になって消費税も上がったことで,3月までの駆け込み消費*1の反動でマンションとか全く売れていないんだろうなぁと思う今日この頃です*2.個人的な趣味でいうと新築よりは中古派ですので,増税前に無理矢理ローン組んだ人がさくっと数年で手放した…

統計学・機械学習でよく使われる数学記号リスト(主に自分用)

統計学とか機械学習周りの本を読んでいると,何の説明もなくややこしい数学記号が出てきて,そういえばこれはなんだっただろう? と途方に暮れてしまうことが少なくないので,自分用にまとめなおしてみました,というのが今回のエントリ.あくまで自分用なの…

Excelの分布関数まとめ

分布関数 前回の記事で,いくつかの分布について紹介しましたが,実はこれらの確率分布ってエクセルでもさくっと計算できたりします.そんなわけで,エクセルに入ってる分布関数についてざっくりまとめてみました*1.丸め誤差とか怖いので,精緻なシミュレー…

不確実性を定式化するための確率過程

前回の記事で,二項分布に従う事象について,不確実性を求める例を紹介しました.このように,一定の規則に従ってランダムに事象が発生するような一連の事象を,確率過程と呼びます.ネタ本の入門リスク分析には,以下のように書いてあります. 確率過程(st…

データ分析における不確実性と変動性の違い

仕事をしていてデータを意思決定に用いる場合,データから予測されるシミュレーション結果が,どの程度信頼できるかということを判断する必要があります.例えば前期に20回実施して,14回は想定通りの効果が得られ,残りは失敗した施策があるとして,これを…