useR ! 2018 のまとめと(雑な)感想
これはなに
7/10-13の4日間、自腹を切ってuseR ! というRのカンファレンス(世界大会みたいなやつ)に参加してきました。
今年はオーストラリアはブリスベンでの開催。
見たものと感想を簡単に。帰国したら多分付け足します。
Tutorials
初日、二日目の午前はTutorial。これは基本的にはその分野をほぼ知らない初心者向けのもの。初めての参加だったので、全時間帯参加したんですが、タイトルをみて「あー、この内容は大体さわりは知ってる」というものはあんまり行かなくてもいいかも、という感想でした。
Production-ready R: Getting started with R and Docker
- スライド: https://rawgit.com/SymbolixAU/useR_docker_tutorial/master/Presentation/tutorial_slides.html#1
- レポジトリ: https://github.com/SymbolixAU/r_docker_hello, https://github.com/SymbolixAU/r_docker_hello/tree/googleway
内容と感想
Docker入門。基本的には知ってることだけでした。ネットワークの扱いだけ、あんまり詳しくなかったので出てよかった。
Spatial modelling using ‘raster’ package
内容と感想
raster, rgdalで地理データ分析。大体知ってる内容だったのでもっとsfの話が聞きたかった
Missing values imputation
- スライド: https://github.com/njtierney/user2018-missing-data-tutorial/blob/master/useR2018Tutorial.pdf
- レポジトリ: https://github.com/njtierney/user2018-missing-data-tutorial/
内容と感想
欠損値補完の話。前半はMCAR, MAR, MNARなど基礎的な概念のお話で、後半は主成分分析に基づいた補完の話。結局多重代入に行き着くということだったので、主成分分析にこだわる理由がよくわからず。要復習。
Talks (2日目)
Beyond syntax, towards culture: the potentiality of deep open source communities
(覚えてない)
Spark on demand with AZTK
SparkをAzure上で使う話。Big Data Session ということで見てみたけどAzureを使わない自分にとってはあまり関係なかった。
Graphs: Datastructures to Query
ネットワーク分析のお話。igraphメインだったけどtidygraphのほうが良いのではないか、という感想。Big Data Sessionだけどビッグデータは関係なかった、
Automated Visualisations for Big Data
(あまり覚えていない。)あんまり自動という要素は関係なかったような...
Visualizations to guide dimension reduction for sparse high-dimensional data
(感想は特になし、ビッグデータは関係なかった)
Poster Presentations 1
今年のポスターセッションはテレビが用意されていてそこにPCをつなぐモダンなもの。二組に分かれていて、一つは2日目夕食の時間、もう一つは三日目昼食の時間。全体で日本人(日本の会社、中の人の国籍は問わず)の発表は5/31と多いか少ないかで言うと多いほうかと。Poster Presentations1では3組の日本の発表がありました。
Talks (3日目)
Statistical Inference: A Tidy Approach using R
統計的仮説検定をtidyにやるinferパッケージの話。大学で周りを見てると仮説検定の関数はR学習者(統計分野)でつまずく一つだと思うので、もっと大学の授業とかで広まって欲しい、という他人事のような感想。
Subsampling and one-step polishing for generalised linear models
データベースに溜まったビッグデータでGLMをするときの工夫の話。なんでこれでいいのかの軽い証明もあった気がするけどこれはあとで復習。
Glue strings to data in R
- スライド: https://rawgit.com/jimhester/presentations/master/2018_07_13-Glue_strings_to_data_with_glue/2018_03_28-Glue_string_to_data_with_glue.html#/
- レポジトリ: https://github.com/jimhester/presentations/tree/master/2018_07_13-Glue_strings_to_data_with_glue#readme
glue パッケージの使い方。glueは簡単に言うと x<- 3 ; print("x")
の出力を "x"
ではなく "3"
にしたいときに print(glue::glue("{x}"))
やればできるよというもので、ゆるふわ勢の自分としては応用的な使い方が出てきて勉強になりました。
Poster Presentations 2
ここでは僕もポスター発表をやりました。英語で対応するのはやはり疲れます...
7/15追記
7/15にTokyo.Rがあったのですが、そこで同じ内容の話をしました。
Easy Writing for Bayesian Optimization in Machine Learning
Talks (3日目その2)
Optimizing Parallel R Programs via Dynamic Scheduling Strategies
mclapply() に affinity.list引数を指定して、CPUの性能に応じてジョブの振り分けを重み付けできる話。
Combining R and Python with GraalVM
GlaaVM というVirtual Machine 上でRとPythonを組み合わせる話。簡単なものならコードの変換みたいなこともできるらしい。へー。
Speeding up computations in R with parallel programming in the cloud
parallelパッケージとforeachパッケージの紹介とAzureの宣伝。感想は特になし。
rrrow: an R front end to Apache Arrow
Apache Arrow × Rの話かと思いきや、まだできてないので親ばか自慢とR×Goのプロジェクト(これもまだ途中)でごまかした感じ。
Dinner Party
豪華な食事とお酒をテーブルを囲んでいただきました。4日間休み時間なんかによく話していた日本から来た方々と一緒に、Kevin Kuo (sparklyrの開発者の一人)とフランクなお話をしました。Rの話はほとんどしませんでした。Kevin日本語うまい。あと日本に行ってみたいとのことなので、いつかTokyo.Rのゲストに呼べるかも...?
Talks(4日目)
Teaching R to New Users: From tapply to Tidyverse
Rの歴史と、2018年現在にtidyverseを使う意味について。tidyverseの哲学の半分くらいはUnixの哲学だよ、っていうのはHadley本人も認めるうまい解説。
.@rdpeng doing a better job of describing the #tidyverse design philosophy than I ever have! https://t.co/o3KunXe6qq
— Hadley Wickham (@hadleywickham) 2018年7月12日
tsibble: The 15th time series standard
ts×tidyverse なtsibbleのお話。あまり使ったことない(時系列組むときはだいたいStan)ので「へー、いいじゃん」という感想。Rでベーシックな時系列解析やるときは使ってみたい。
Tidy forecasting in R
- スライド: https://github.com/robjhyndman/fable-talk-2018/blob/master/fable_useR2018.pdf
- メッセージ: Move forecast to fable !
forecastパッケージをtsibbleとtidyverseと相性がいいように改良したfableパッケージの話#yutaniR
— Yuya MATSUMURA (@y__mattu) 2018年7月13日
Rの発表ではよく「Reproducibilityが大事!」って言われて、それって1年後とかでも同じ結果が再現できるってことなんだけど、パッケージのバージョンは頑張れば合わせられるとして、1年後に「そのパッケージはイケてないからこっちを使え!」みたいに言われると再現性もへったくれもなくなってしまう
— Yuya MATSUMURA (@y__mattu) 2018年7月13日
fasster: Forecasting multiple seasonality with state switching
fassterパッケージの紹介。このあたり(tsibble, fable, fassterなど)はtidyvertsというプロジェクトが作っているのですが、素直に強い人達だなあという感想です。
Code smells and feels
良いRコードの書き方の話。if...elseを重ねすぎるなとか、 %||%
便利だよとか、モンスター関数じゃなくて小さい関数を組み合わせる んだよとか、パッケージを作る人もそうじゃない人も改めて勉強になるような内容でした。個人的にも自分のパッケージに対する反省がいろいろ出てきて。。。プレゼン全体も聴衆をうまく巻き込んで長い時間を感じさせない、お手本のようなプレゼンでした。
全体的な感想。
ワールドワイドなカンファレンスだからといって全体的なレベルが凄く高いかと言うと、意外とそうでもなく、玉石混交な感じは否めませんでした。ただ、自分のポスター発表に関して言えば、英語不足が主な原因で思うように受け答えができず、少し反省しています。あと、発表も英語力不足で聞き取れないところが多々あり、もっと英語を勉強しなくてはなあという思いになった4日間でした。
あと、セッションの合間の休み時間に軽食が出るのですが、パンばっかり(しかも毎日同じ種類)で少し飽きました。米が食べたい。。。
最後に
hexwallと。なんか自分のパッケージ送れば載せてもらえたらしいので、来年はここに自作のを載せてもらおう...