SlideShare a Scribd company logo
1 of 47
Download to read offline
Shiny ユーザのための
非同期プログラミング入門
2019/09/28
@hoxo_m
株式会社
ホクソエム
• 牧山幸史(まきやまこうじ)
• ホクソエムの社長
• 人工知能によって人々が
笑って暮らせる社会を作る
既刊・新刊
R による
SNS 分析
(12月ごろ)
目次
① 非同期プログラミングとは
② Shiny における非同期プログラミング
③ future パッケージ
④ promises パッケージ
⑤ Shiny への組み込み
⑥ まとめ
非同期プログラミング
• 同期処理
• プログラムを1行ずつ順番に実行する
• 1つの処理を実行している間、他の処理は行わない(待ち)
• 非同期処理
• 複数の処理を同時に実行する
• 非同期プログラミング=非同期処理のコードを書くこと
なぜ非同期プログラミング?
• R言語は「シングルスレッド」
• 歴史的に R は1台の PC で単一ユーザでの利用が主流
だったので問題なかった
• Shiny アプリでは、複数のユーザからのリクエストを
処理する必要がある
➡ 非同期処理のニーズが高まる
• Shiny における複数ユーザの同時処理のやりかた
• ユーザからのリクエストを細かいタスクに分ける
• CSS の読み込み、JavaScript の読み込みなど
• それぞれのタスクを交互に実行する
ユーザA ユーザB
タスク1
タスク1
タスク2
タスク2
ところが・・
ユーザA ユーザB
長いタスク
(DB接続など)
短いタスク
ユーザAが
長いタスクを
実行すると、
ユーザBは
短いタスクしか
実行してないのに
とばっちりで
待たされてしまう
非同期処理
ユーザA ユーザB
長いタスク
長いタスクを
非同期処理に
変えることで
他のユーザの
待ち時間を
削減できる
別プロセス
まとめ①
• R は「シングルスレッド」
• Shiny の登場によって非同期プログラミングのニーズ
が高まった
• 非同期処理によってユーザの待ち時間が削減できる
目次
① 非同期プログラミングとは
② Shiny における非同期プログラミング
③ future パッケージ
④ promises パッケージ
⑤ Shiny への組み込み
⑥ まとめ
Shiny における非同期プログラミング
• Shiny に非同期処理を組み込むには、
• 次の2つのパッケージを使う
• promises: プロミスAPIの提供
• future: 非同期処理の実行
パッケージの読み込みと初期設定
• 次の3つ組(トリニティ)を server.R に書く
library(promises)
library(future)
plan(multiprosess)
output$table <- renderTable({
long_task() %>%
head(input$n)
})
output$table <- renderTable({
future({ long_task() }) %...>%
head(input$n)
})
非同期化
まとめ②
• Shiny に非同期処理を組み込むには「トリニティ」
• 同期処理を非同期化するのは簡単
目次
① 非同期プログラミングとは
② Shiny における非同期プログラミング
③ future パッケージ
④ promises パッケージ
⑤ Shiny への組み込み
⑥ まとめ
future パッケージ
• Rで非同期処理を実行するためのパッケージ
f <- future({
# 時間のかかる処理
download_lots_of_data()
})
plan の選択
• 非同期処理をどのように実行するかを plan() で選択する
• plan(multisession)
• 新しいバックグラウンドプロセスを起動し、そこで実行する
• plan(multicore)
• 現在のプロセスからフォークしたプロセスで実行する
• メモリ状態を共有するため高速だが、Windows では使えない
• plan(multiprosess)
• multicore が利用可能ならば multicore を、そうでなければ
multisession を使う
非同期処理
メインプロセス
別のプロセス
長いタスク
ポイント:
どのプランを
選択したとしても
非同期処理は
別のプロセスで
実行される
注意点
• フューチャコードブロック future({ 処理 }) の内部
ではメインプロセスで生成されたリソースは使えない
• データベース接続、ネットワークソケットなど
• 参照クラスオブジェクトや環境のようなミュータブル
オブジェクトは使えるが、変更はメインプロセスの
オブジェクトには反映されない
• R6 や data.table など
まとめ③
• future パッケージによる
非同期化は簡単
• future({ 処理 })
• 非同期化された処理は別の
プロセスで実行されること
を意識する必要がある
目次
① 非同期プログラミングとは
② Shiny における非同期プログラミング
③ future パッケージ
④ promises パッケージ
⑤ Shiny への組み込み
⑥ まとめ
非同期処理
メインプロセス
別のプロセス
長いタスク
疑問:
非同期処理の
結果は
どうやって
取得するの?
?
プロミス
• renderXXX() 関数は「プロミス」を受け取ることができる
• プロミスとは、非同期処理によって「いずれ得られる結果」を
表すオブジェクト
• future() の返り値はプロミスとみなせる
output$table <- reanderTable({
future({ read.csv(filepath) })
})
プロミス
• renderTable() の最終行はテーブルを返す必要があるはず
• しかし、プロミスを受け取った場合だけ特別な動作をする
• このプロミスは「いずれテーブルを返す」オブジェクト
• renderTable() はプロミスが結果を得るまで出力を待機する
• テーブルの表示は future() の処理が終わってから行われる
➡ 非同期処理の結果を明示的に取得せずに済む
• 非同期処理の結果はどうやって取得するの?
➡ Shiny が勝手にやってくれる
• プロミスは取り扱い方が特殊
➡ promises パッケージ
promises パッケージ
• プロミスを扱う便利な関数を提供
• 例えば、filter() はプロミスには適用できない
output$table <- renderTable({
future({ read.csv(filepath) }) %>%
filter(date == input$date)
})
プロミスパイプ %...>%
• プロミスに関数を連鎖する演算子
output$table <- renderTable({
future({ read.csv(filepath) }) %...>%
filter(date == input$date)
})
• 結果は再びプロミスになる
まとめ④
• プロミスを使えば、非同期処理の結果を明示的に取得
する必要がない
• これは非同期処理におけるバグの混入を防ぐ
• promises パッケージはプロミスを扱う便利な関数を
提供する
目次
① 非同期プログラミングとは
② Shiny における非同期プログラミング
③ future パッケージ
④ promises パッケージ
⑤ Shiny への組み込み
⑥ まとめ
Shiny への組み込み
• プロミスを Shiny に組み込むにはいくつか制約がある
• future() の中でリアクティブ式は使えない
• プロミスを組み込めるのは次の3つ
① renderXXX()
② オブザーバ
③ リアクティブ式
future() の中でリアクティブ式は使えない
r1 <- reactive({ ... })
r2 <- reactive({
future({ r1() }) # Error!
})
r1 <- reactive({ ... })
r2 <- reactive({
val <- r1()
future({ val }) # OK!
})
① renderXXX() への組み込み
output$table <- renderTable({
read.csv(url) %>%
filter(date == input$date)
})
output$table <- renderTable({
future({ read.csv(url) }) %...>%
filter(date == input$date)
})
ここでクイズです
どこが違う?(結果は同じ)
output$table <- renderTable({
input_date <- input$date
future({ read.csv(url) %>% filter(date == input_date) })
})
output$table <- renderTable({
future({ read.csv(url) }) %...>%
filter(date == input$date)
})
どこが違う?
output$table <- renderTable({
input_date <- input$date
future({ read.csv(url) %>% filter(date == input_date) })
})
output$table <- renderTable({
future({ read.csv(url) }) %...>%
filter(date == input$date)
})
別プロセスで実行
メインプロセス
で実行
どこに問題がある?
output$plot <- renderPlot({
future({ read.csv(url) %>% plot() })
})
どこに問題がある?
output$plot <- renderPlot({
future({ read.csv(url) %>% plot() })
})
• plot() を別プロセスで行っている
• メインプロセスに別プロセスのプロットを返すことができない
別プロセスで実行
どこに問題がある?
output$plot <- renderPlot({
future({ read.csv(url)}) %...>%
plot()
})
• plot() をメインプロセスで行うことで回避できる
• print() も同様
② オブザーバへの組み込み
• refesh_data ボタンが押されたときにデータを更新する
data <- reactiveVal(readRDS(“cache.rds”))
observerEvent(input$refresh_data, {
df <- read.csv(url)
saveRDS(df, “cache.rds”)
data(df)
})
② オブザーバへの組み込み
data <- reactiveVal(readRDS(“cache.rds”))
observerEvent(input$refresh_data, {
future({
df <- read.csv(url)
saveRDS(df, “cache.rds”)
}) %...>%
data()
})
③ リアクティブ式への組み込み
• プロミスはリアクティブ式の内部でも使える
• リアクティブ式は最終的に renderXXX() 関数に出力されるため
• リアクティブ式の内部では、プロミスは普通のオブジェクトと
同様に扱われる
• ただし、プロミスであることを意識して扱う必要がある
③ リアクティブ式への組み込み
data <- eventReactive({
read.csv(url)
})
filteredData <- reactive({
data() %>% filter(date == input$date)
})
output$table <- renderTable({
filteredData() %>% head(5)
})
③ リアクティブ式への組み込み
data <- eventReactive({
future({ read.csv(url) })
})
filteredData <- reactive({
data() %...>% filter(date == input$date)
})
output$table <- renderTable({
filteredData() %...>% head(5)
})
まとめ⑤
• 非同期処理を Shiny に組み込むときは、どのプロセスで実行
されるかを意識する必要がある
目次
① 非同期プログラミングとは
② Shiny における非同期プログラミング
③ future パッケージ
④ promises パッケージ
⑤ Shiny への組み込み
⑥ まとめ
まとめ
• 非同期プログラミングにより、
• Shiny アプリの待ち時間を削減できる
① トリニティ
② フューチャー
③ プロミス

More Related Content

What's hot

R Markdownによるドキュメント生成と バージョン管理入門
R Markdownによるドキュメント生成と バージョン管理入門R Markdownによるドキュメント生成と バージョン管理入門
R Markdownによるドキュメント生成と バージョン管理入門nocchi_airport
 
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)Yoshitake Takebayashi
 
マルチコアを用いた画像処理
マルチコアを用いた画像処理マルチコアを用いた画像処理
マルチコアを用いた画像処理Norishige Fukushima
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門Kawamoto_Kazuhiko
 
GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論Koichiro Gibo
 
機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明Satoshi Hara
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使うAtsushi Hayakawa
 
機械学習と機械発見:自然科学研究におけるデータ利活用の再考
機械学習と機械発見:自然科学研究におけるデータ利活用の再考機械学習と機械発見:自然科学研究におけるデータ利活用の再考
機械学習と機械発見:自然科学研究におけるデータ利活用の再考Ichigaku Takigawa
 
傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装takehikoihayashi
 
エキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころエキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころTakayuki Shimizukawa
 
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)Shintaro Fukushima
 
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健Preferred Networks
 
Chapter9 一歩進んだ文法(前半)
Chapter9 一歩進んだ文法(前半)Chapter9 一歩進んだ文法(前半)
Chapter9 一歩進んだ文法(前半)itoyan110
 
先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15Yoichi Ochiai
 
差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)Kentaro Minami
 
社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森Masashi Komori
 
「統計的学習理論」第1章
「統計的学習理論」第1章「統計的学習理論」第1章
「統計的学習理論」第1章Kota Matsui
 

What's hot (20)

R Markdownによるドキュメント生成と バージョン管理入門
R Markdownによるドキュメント生成と バージョン管理入門R Markdownによるドキュメント生成と バージョン管理入門
R Markdownによるドキュメント生成と バージョン管理入門
 
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
 
マルチコアを用いた画像処理
マルチコアを用いた画像処理マルチコアを用いた画像処理
マルチコアを用いた画像処理
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
 
GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論
 
2 3.GLMの基礎
2 3.GLMの基礎2 3.GLMの基礎
2 3.GLMの基礎
 
機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明機械学習モデルの判断根拠の説明
機械学習モデルの判断根拠の説明
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使う
 
機械学習と機械発見:自然科学研究におけるデータ利活用の再考
機械学習と機械発見:自然科学研究におけるデータ利活用の再考機械学習と機械発見:自然科学研究におけるデータ利活用の再考
機械学習と機械発見:自然科学研究におけるデータ利活用の再考
 
直交領域探索
直交領域探索直交領域探索
直交領域探索
 
MCMC法
MCMC法MCMC法
MCMC法
 
傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装傾向スコア:その概念とRによる実装
傾向スコア:その概念とRによる実装
 
エキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころエキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころ
 
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)
 
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
 
Chapter9 一歩進んだ文法(前半)
Chapter9 一歩進んだ文法(前半)Chapter9 一歩進んだ文法(前半)
Chapter9 一歩進んだ文法(前半)
 
先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15
 
差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)差分プライバシーとは何か? (定義 & 解釈編)
差分プライバシーとは何か? (定義 & 解釈編)
 
社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森
 
「統計的学習理論」第1章
「統計的学習理論」第1章「統計的学習理論」第1章
「統計的学習理論」第1章
 

Similar to Shinyユーザのための非同期プログラミング入門

Cプログラマのためのカッコつけないプログラミングの勧め
Cプログラマのためのカッコつけないプログラミングの勧めCプログラマのためのカッコつけないプログラミングの勧め
Cプログラマのためのカッコつけないプログラミングの勧めMITSUNARI Shigeo
 
「宣言的プログラミング」とSDNのひとつの形態
「宣言的プログラミング」とSDNのひとつの形態「宣言的プログラミング」とSDNのひとつの形態
「宣言的プログラミング」とSDNのひとつの形態npsg
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングterurou
 
Mk network programmability-03
Mk network programmability-03Mk network programmability-03
Mk network programmability-03Miya Kohno
 
デザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリングデザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリングkei takakuda
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版DIVE INTO CODE Corp.
 
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?Developers Summit
 
Xamarin 概要 2014年08月版
Xamarin 概要 2014年08月版Xamarin 概要 2014年08月版
Xamarin 概要 2014年08月版Yoshito Tabuchi
 
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjpAPIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjpTakeshi Komiya
 
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...Rakuten Group, Inc.
 
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話Tokoroten Nakayama
 
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話Drecom Co., Ltd.
 
とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例agileware_jp
 
HTML5 アプリ開発
HTML5 アプリ開発HTML5 アプリ開発
HTML5 アプリ開発tomo_masakura
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップKoichiro Sumi
 
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?Takashi Sogabe
 
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方Roy Kim
 
さくらのインフラコード
さくらのインフラコードさくらのインフラコード
さくらのインフラコードYukihiko SAWANOBORI
 

Similar to Shinyユーザのための非同期プログラミング入門 (20)

Cプログラマのためのカッコつけないプログラミングの勧め
Cプログラマのためのカッコつけないプログラミングの勧めCプログラマのためのカッコつけないプログラミングの勧め
Cプログラマのためのカッコつけないプログラミングの勧め
 
「宣言的プログラミング」とSDNのひとつの形態
「宣言的プログラミング」とSDNのひとつの形態「宣言的プログラミング」とSDNのひとつの形態
「宣言的プログラミング」とSDNのひとつの形態
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
 
Mk network programmability-03
Mk network programmability-03Mk network programmability-03
Mk network programmability-03
 
Herlockサービス紹介
Herlockサービス紹介Herlockサービス紹介
Herlockサービス紹介
 
デザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリングデザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリング
 
OpenSpan_PreMarketing
OpenSpan_PreMarketingOpenSpan_PreMarketing
OpenSpan_PreMarketing
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
 
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
 
Xamarin 概要 2014年08月版
Xamarin 概要 2014年08月版Xamarin 概要 2014年08月版
Xamarin 概要 2014年08月版
 
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjpAPIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
 
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
 
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話
 
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
 
とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例
 
HTML5 アプリ開発
HTML5 アプリ開発HTML5 アプリ開発
HTML5 アプリ開発
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
 
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
 
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
 
さくらのインフラコード
さくらのインフラコードさくらのインフラコード
さくらのインフラコード
 

More from hoxo_m

Prophet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツールProphet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツールhoxo_m
 
Prophet入門【R編】Facebookの時系列予測ツール
Prophet入門【R編】Facebookの時系列予測ツールProphet入門【R編】Facebookの時系列予測ツール
Prophet入門【R編】Facebookの時系列予測ツールhoxo_m
 
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門hoxo_m
 
学習係数
学習係数学習係数
学習係数hoxo_m
 
Prophet入門【Python編】Facebookの時系列予測ツール
Prophet入門【Python編】Facebookの時系列予測ツールProphet入門【Python編】Facebookの時系列予測ツール
Prophet入門【Python編】Facebookの時系列予測ツールhoxo_m
 
AJAXサイトの情報をWebスクレイピング
AJAXサイトの情報をWebスクレイピングAJAXサイトの情報をWebスクレイピング
AJAXサイトの情報をWebスクレイピングhoxo_m
 
高速なガンマ分布の最尤推定法について
高速なガンマ分布の最尤推定法について高速なガンマ分布の最尤推定法について
高速なガンマ分布の最尤推定法についてhoxo_m
 
経験過程
経験過程経験過程
経験過程hoxo_m
 
確率論基礎
確率論基礎確率論基礎
確率論基礎hoxo_m
 
シンギュラリティを知らずに機械学習を語るな
シンギュラリティを知らずに機械学習を語るなシンギュラリティを知らずに機械学習を語るな
シンギュラリティを知らずに機械学習を語るなhoxo_m
 
非制約最小二乗密度比推定法 uLSIF を用いた外れ値検出
非制約最小二乗密度比推定法 uLSIF を用いた外れ値検出非制約最小二乗密度比推定法 uLSIF を用いた外れ値検出
非制約最小二乗密度比推定法 uLSIF を用いた外れ値検出hoxo_m
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?hoxo_m
 
階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布についてhoxo_m
 
トピックモデルの評価指標 Coherence 研究まとめ #トピ本
トピックモデルの評価指標 Coherence 研究まとめ #トピ本トピックモデルの評価指標 Coherence 研究まとめ #トピ本
トピックモデルの評価指標 Coherence 研究まとめ #トピ本hoxo_m
 
トピックモデルによる統計的潜在意味解析読書会 3.7 評価方法 - 3.9 モデル選択 #トピ本
トピックモデルによる統計的潜在意味解析読書会 3.7 評価方法 - 3.9 モデル選択 #トピ本トピックモデルによる統計的潜在意味解析読書会 3.7 評価方法 - 3.9 モデル選択 #トピ本
トピックモデルによる統計的潜在意味解析読書会 3.7 評価方法 - 3.9 モデル選択 #トピ本hoxo_m
 
協調フィルタリング入門
協調フィルタリング入門協調フィルタリング入門
協調フィルタリング入門hoxo_m
 
データの不備を統計的に見抜く (Gelman’s secret weapon)
データの不備を統計的に見抜く (Gelman’s secret weapon)データの不備を統計的に見抜く (Gelman’s secret weapon)
データの不備を統計的に見抜く (Gelman’s secret weapon)hoxo_m
 
カップルが一緒にお風呂に入る割合をベイズ推定してみた
カップルが一緒にお風呂に入る割合をベイズ推定してみたカップルが一緒にお風呂に入る割合をベイズ推定してみた
カップルが一緒にお風呂に入る割合をベイズ推定してみたhoxo_m
 
Stan で欠測データの相関係数を推定してみた
Stan で欠測データの相関係数を推定してみたStan で欠測データの相関係数を推定してみた
Stan で欠測データの相関係数を推定してみたhoxo_m
 
チェビシェフの不等式
チェビシェフの不等式チェビシェフの不等式
チェビシェフの不等式hoxo_m
 

More from hoxo_m (20)

Prophet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツールProphet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツール
 
Prophet入門【R編】Facebookの時系列予測ツール
Prophet入門【R編】Facebookの時系列予測ツールProphet入門【R編】Facebookの時系列予測ツール
Prophet入門【R編】Facebookの時系列予測ツール
 
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
 
学習係数
学習係数学習係数
学習係数
 
Prophet入門【Python編】Facebookの時系列予測ツール
Prophet入門【Python編】Facebookの時系列予測ツールProphet入門【Python編】Facebookの時系列予測ツール
Prophet入門【Python編】Facebookの時系列予測ツール
 
AJAXサイトの情報をWebスクレイピング
AJAXサイトの情報をWebスクレイピングAJAXサイトの情報をWebスクレイピング
AJAXサイトの情報をWebスクレイピング
 
高速なガンマ分布の最尤推定法について
高速なガンマ分布の最尤推定法について高速なガンマ分布の最尤推定法について
高速なガンマ分布の最尤推定法について
 
経験過程
経験過程経験過程
経験過程
 
確率論基礎
確率論基礎確率論基礎
確率論基礎
 
シンギュラリティを知らずに機械学習を語るな
シンギュラリティを知らずに機械学習を語るなシンギュラリティを知らずに機械学習を語るな
シンギュラリティを知らずに機械学習を語るな
 
非制約最小二乗密度比推定法 uLSIF を用いた外れ値検出
非制約最小二乗密度比推定法 uLSIF を用いた外れ値検出非制約最小二乗密度比推定法 uLSIF を用いた外れ値検出
非制約最小二乗密度比推定法 uLSIF を用いた外れ値検出
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?
 
階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について
 
トピックモデルの評価指標 Coherence 研究まとめ #トピ本
トピックモデルの評価指標 Coherence 研究まとめ #トピ本トピックモデルの評価指標 Coherence 研究まとめ #トピ本
トピックモデルの評価指標 Coherence 研究まとめ #トピ本
 
トピックモデルによる統計的潜在意味解析読書会 3.7 評価方法 - 3.9 モデル選択 #トピ本
トピックモデルによる統計的潜在意味解析読書会 3.7 評価方法 - 3.9 モデル選択 #トピ本トピックモデルによる統計的潜在意味解析読書会 3.7 評価方法 - 3.9 モデル選択 #トピ本
トピックモデルによる統計的潜在意味解析読書会 3.7 評価方法 - 3.9 モデル選択 #トピ本
 
協調フィルタリング入門
協調フィルタリング入門協調フィルタリング入門
協調フィルタリング入門
 
データの不備を統計的に見抜く (Gelman’s secret weapon)
データの不備を統計的に見抜く (Gelman’s secret weapon)データの不備を統計的に見抜く (Gelman’s secret weapon)
データの不備を統計的に見抜く (Gelman’s secret weapon)
 
カップルが一緒にお風呂に入る割合をベイズ推定してみた
カップルが一緒にお風呂に入る割合をベイズ推定してみたカップルが一緒にお風呂に入る割合をベイズ推定してみた
カップルが一緒にお風呂に入る割合をベイズ推定してみた
 
Stan で欠測データの相関係数を推定してみた
Stan で欠測データの相関係数を推定してみたStan で欠測データの相関係数を推定してみた
Stan で欠測データの相関係数を推定してみた
 
チェビシェフの不等式
チェビシェフの不等式チェビシェフの不等式
チェビシェフの不等式
 

Shinyユーザのための非同期プログラミング入門