OKIYUKI99 Blog

データ分析や日常に関するブログ

2017年導入してよかったこと

新年あけました。みなさんの2017年買ったよかったものなどを見てると、自分もまとめておこうかなと思いました。

習慣

Google Keep と Trelloと Evernoteのまとめ方が確立できた

Keepにメモを残す。その後、タスクはTrelloで管理する(To Do -> Doing -> Done -> アーカイブ)。作業内容・調べたこと・参考サイト・Tips・思ったこと等はEvernoteでまとめる。これでだいぶ落ち着きました。

ジムに通ったこと

日頃の運動不足を少しでも解消したいということで、2月から9月まで自転車でいけるジムに週1程度通いました。がっつり筋トレというより、日曜のオープンとともに、ランニングマシンでテレビをみながら5km走ったあと、その後ひととおり筋トレをして、お風呂入って帰るのみでした。時間にして、1時間〜1時間30分程度ですが、それだけで体調がなんとなくよかったのと、汗をかくことでリフレッシュできていることを実感しました。過去にも何度かジムに通ったことがありましたが、半年以上習慣かできたのははじめてです。10月からは子供が産まれたのと引越しして新しい場所に住み始めたので現在は停止中。

みてねをはじめた

mitene.us

子供が産まれたと同時に噂で聞いてたみてねを始めた。 どんなもんかなと思ってやってみたが、想像以上に圧倒的によかったです。

  • シンプルで見やすいレイアウト
  • お互いの親族が遠方にいるので、すごく喜んでくれている
  • 毎月フォトブックを自動的につくってくれて、簡単に注文できる。これでスマホが見れない親族にも送れる。

とくに、親族は毎日楽しみにしているらしく、妻は毎日写真をUPせねばとはりきるほどです。産まれたときの記録が時系列で残るってすごく良いですね。

論文を印刷して見ないようにした

重要な論文はもちろん印刷してリファーするのですが、全ての論文を印刷してるとかなりかさ張ります。PDF上でMacのプレビューでカラーラインをつけてポイントを押さえて見るようにするだけで十分な論文も多いので、そういう風に習慣化できたのは良かったです。

モノ

MTG 骨盤サポートチェア Body Make Seat Style

ついに導入。現在は意識的にこの上に座ってる。姿勢は昔は悪かったけど、これのおかげというより、姿勢をよくしようとという意識がついたのが大きかった。座りごこちも良いです。

BRUNO コンパクトホットプレート レッド

2,3人で使えるサイズのホットプレートを探していて、購入。見た目もよく、楽しくご飯が食べれます。長く使えるようにキレイにメンテナンスして使っています。

ビアカップ 能作 錫100%

誕生日プレゼントに頂きました(上記の夏限定バージョン)。冷蔵庫に一瞬で冷える(5分くらい)のと、ビールの泡がきめ細かくなる効果があります。お気に入りです。

Fire TV Stick

Fire TV Stick

Fire TV Stick

  • 発売日: 2017/04/06
  • メディア: エレクトロニクス

Amazonのセールのときに買いました。Prime Music と ビデオがテレビで見るために買いました。Prime会員は必須ではと思うほど、かなり便利です。

パナソニック 10.0kg ドラム式洗濯乾燥機(NA-VX7700L-W)

新作が出て少ししてから、上記の1つ古いバージョンを購入しました。家電量販店に期待せずに行ったところ、たまたま最後の在庫を見つけて購入しました。そのときの価格ドットコム最安値よりも安く買えたので良かったです。洗濯物を干す作業が減り、大満足です。ただ、毎日ホコリを掃除するメンテナンスが必要なのは知りませんでしたが…。

ダイニングテーブル

もともとローテーブルしかなかったので、ついに購入。生活もさらに快適になりました。

【 極厚 20mm 】 やさしいジョイントマット 大判

[asin:B01M18YASS:detail]

子供の遊びスペースに買ったら、思いのほか横になるのも気持ちよく、ヨガマット代わりにも使えそうです。自由にレイアウトも決めれますし、不要になれば片付けるのも楽です。これは重宝しそうです。

2018年の導入予定

Amazon Echo でのスマートな生活

招待待ちなので、はやく試してみたいです。

iPad で論文読む

論文を大量に効率よく読む方法を模索中です。 色々見てると、まずはiPadでやってみようかなと思っています。

子供用の便利グッズ

子供のためのグッズ購入が増えそうな年になりそうです。

To Do ツール快適生活

新たな方法がないか思考錯誤は変わらずやっていきます。

何かで運動

ジム以外で家で運動する方法を模索中…

仕事ではじめる機械学習を読んだ(1章)

今年もおつかれさまでした。読みたかった本を少しずつ読んでます。

この本を読んだ動機

www.oreilly.co.jp

現在、機械学習システム(と真に呼べるものか分からないが)の運用や構築をちょくちょくしていて、ベストプラクティスを再確認したいなというのがありました。この本を手に取りました。以下は、読書メモです1

機械学習プロジェクトの流れ

  1. 問題を定式化する
  2. 機械学習をしないで良い方法を考える
  3. システム設計を考える
  4. アルゴリズムを選定する
  5. 特徴量、教師データとログの設計をする
  6. 前処理をする
  7. 学習・パラメータチューニング
  8. システムに組み込む
  • 1と2:問題設定
  • 3から6:道具選びと前処理
  • 7:モデルの作成
  • 8:サービスへの組み込み

という4STEPの流れ。この中でデータをEDA(Exploratory Data Analysis)して可視化したりする部分は1と2に当たる部分なのかなと。つまり、自分が関わった多くのプロジェクトは3に行く前に終わったなーというのが多い…笑

おもしろいのは、明示的に 2.機械学習をしないで良い方法を考える を流れに含んでいる点。その原因はモデルのメンテナンスコストが大きいこと。以下、6つの例をあげている。

  1. 確率的な処理があるため自動テストがしにくい
  2. 長期運用しているとトレンドの変化などで入力の傾向が変化する
  3. 処理のパイプラインが複雑になる
  4. データの依存関係が複雑になる
  5. 実験コードやパラメータが残りやすい
  6. 開発と本番の言語 / フレームワークがバラバラになりやすい

機械学習システムを維持するためのメンテナンスコストが多くある点と時間とともに変わるデータのトレンドの変化から100%正しい結果を常に出すとは限らないので、誤りを運用でカバーする仕組みが必須 というところは理解してもらわないといけない。

そういうところをちゃんと理解した上で、さらに導入をする前に、MVP(Minimum Viable Product)を作る点。これにより、本当にもっと高度な方法が必要かが明らかになる。いきなり難しいことをするのではなく、まず一番簡単なモデル(たとえば、平均値を返すモデル)でシステムの性能をチェックし、そのモデルに満足しない場合、エンジニアリング技術(次節で必須になる)とともに、改善していくのが正しい道と読めました。

実システムにおける機械学習の問題点への対処方法

その大きなメンテナンスコストに対して、著者らは以下のポイントを述べています。

  • 人手でゴールドスタンダードを用意して、予測性能のモニタリングをする

  • 予測モデルをモジュール化をしてアルゴリズムのA/Bテストができるようにする

  • モデルのバージョン管理をして、いつでも切り戻し可能にする

  • データ処理のパイプラインごと保存する

  • 開発/本番環境の言語/フレームワークは揃える

とくに、機械学習システムは一度作って終わることはないので、高度なアルゴリズムを作れる人だけではなくて、エンジニアリング技術が必須になってくる というのがこのポイントからも明らか。

機械学習システムは本来アップデートが激しいところが多いはずなので、パイプライン作りとバージョン管理 も間違いなく必要になります。

さらなるベストプラクティスについてはRules of Machine Learning Best Practices for ML Engineeringを参考にあげていた。また時間あるときに読みたい。

機械学習を含めたシステムを成功させるには

重要なプレイヤーとして、4人のプレイヤーをあげている

  1. プロダクトに関するドメイン知識を持った人
  2. 統計や機械学習に明るい人
  3. データ分析基盤を作れるエンジニアリング能力のある人
  4. 失敗しても構わないとリスクを取ってくれる責任者

とくに、現場・分析者・エンジニアの3人+責任者1人 の存在が必要。構築や運用ではこのとおりなんですが、その機械学習システムを作って見せる人(利用者)もプレイヤーとして出てきます。その利用者からの無茶振りも色々ある。なので、その利用者も機械学習プロジェクトの流れを理解して、長く付き合ってくれるか もありますね。その辺の説明(説得?)方法での良い資料が欲しいですね。

まとめ

読んだのは1章だけですが、道筋を明確に記述して読みやすかったです。1章だけでも、チーム全員必読してもらって、議論して理解を深めたいなと思いました。


  1. しかし、すでに多くの方がレビューしているみたいなので、内容が被りそうですが、あまりその辺は気にしていません。

RのSlidifyを触ったけど、色々問題でた

RのSlidifyと言えば、

Rでパワーポイントを作成できるパッケージです。

触ってみた感想、
・ローカルのRStudioで実行したが、文字化け(SHIFT-JIS、UTF8等が混ざっている?)が激しい(結局なおらなかった)
・サーバー版のRStudioだと問題なかった
・RPubsに公開したら、あとから見れなくなった
というのに、色々ハマる。

インストールは超簡単。

・事前準備

install.packages("devtools")
library(devtools)
install_github("slidify", "ramnathv")
install_github("slidifyLibraries", "ramnathv")

・"sample"というフォルダができて、サンプルコードがでてくる。(適宣、変更して下さい)

library(slidify)
library(slidifyLibraries)
author("sample")

・好きなように編集
パッケージslidify - 浅井拓也 研究室用ページパッケージslidify - 浅井拓也 研究室用ページ

・実行

slidify("index.Rmd")

・出来上がるはず。このとき、ローカルなら文字化け激しかった。

・RPubsへの公開(titleの部分は適宣変更してください)

publish(title = 'test_slidify', 'index.html', host = 'rpubs')

すると、RPubsのアップロード画面に遷移する。

以上です。もう少しオプション等、見てみよう。

Google Refineとか

クレンジングツールなんてあったとは….

Google Refine便利そう.データ集めるのが簡単になるのかな.

Webに載ってるデータをコピーして処理できるっぽい.

詳しい解説ページないかな.日本語希望w

■参考
『米Google、データクリーニングツール「Google Refine 2.0」をリリース』
http://sourceforge.jp/magazine/10/11/15/0514235

Google Refineの使い方』
http://wiki.kazusa.or.jp/Google_Refine%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9

『第7回 大相撲のアノーマリー (1)』
http://www.atmarkit.co.jp/fcoding/articles/stat/07/stat07b.html

クラスタリングとか

「Rで学ぶクラスタ解析」を購入した.

Rで学ぶクラスタ解析

Rで学ぶクラスタ解析

図書館で借りてパラパラと見ると良さ気だった.
何分,クラスタだけの本って持っておらず,Rで学べるってのも今の流行かなと思い,中古本を購入.

2000+250円でアマゾンさんでね.

届くのが楽しみです.

決定木とか

今更ながら決定木強っ!って思った.

ランダムフォレストって今のところ最強の分類器じゃ….

CHAIDとかC5.0とかCARTとか色々あるけど,どれ選べばいいのでしょうか?

CARTジニ係数使ってて,純度で分岐点を作る.純度が増す=ばらつきが少なくなるね.

ランダムフォレストのようなアンサンブル学習はほかの分類器にも使えるよね.計算時間やばそうだけど.