Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

第4回関東ゼロからはじめるR言語勉強会

4,270 views

Published on

ゼロからファンクションを作る。

Published in: Technology
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

第4回関東ゼロからはじめるR言語勉強会

  1. 1. 第4回ゼロからはじめるR勉強会 ゼロからファンクションを作る
  2. 2. Agenda  自己紹介  カスタマイズした関数がほしい  関数を作る  高い再現性  高速化が可能  バイナリー化する  効果を確認する
  3. 3. Agenda  自己紹介  カスタマイズした関数がほしい  関数を作る  高い再現性  高速化が可能  バイナリー化する  効果を確認する
  4. 4. 自己紹介  名前  飯田 啓介 (twitter: menphis_feel) (facebookの方に主に出現)  会社  株式会社ブリリアントサービス  業務  サーバー、データ解析、マイニング
  5. 5. Agenda  自己紹介  カスタマイズした関数がほしい  関数を作る  高い再現性  高速化が可能  バイナリー化する  効果を確認する
  6. 6. カスタマイズした関数がほしい Rは統計解析のライブラリーが充実 統計解析を少ないステップ数で実行できることが特 徴  統計解析に特化した関数が標準で組み込まれている  スクリプトなので細かい設定が不要  CRANパッケージでモジュールの拡張が容易
  7. 7. カスタマイズした関数がほしい 実績のある関数は再利用したい  他プロジェクトでも利用したい  実績のある関数は部品化しておく  高いデータの再現性  処理を高速化したい
  8. 8. Agenda  自己紹介  カスタマイズした関数がほしい  関数を作る  高い再現性  高速化が可能  バイナリー化する  効果を確認する
  9. 9. 関数の基本系 関数名<-function(x){ x<-x+10 return(x) } 関数を作る
  10. 10. 関数を作る > # 基本形 > f.test<-function(x){ + x<-x+10     # 引数に10をたす + return(x)     # 結果を返す + } > > # 実行 > f.test(2) [1] 12 早速関数を作ってみる
  11. 11. 関数を作る # 文字列を変数に指定 f.test2<-function(s){ # 結合する文字列を設定 smp.pb <- c("おはよう","こんばんわ","こんにちわ","寒いで すね","暑いですね") # 文字列をランダムに抽出 rndStr<-sample(smp.pb,1) # 文字列を結合する s<-paste(s, rndStr) return(s) } > f.test2("飯田さん") [1] "飯田さん おはよう" 当然スクリプトなので型指定などはない。
  12. 12. Agenda  自己紹介  カスタマイズした関数がほしい  関数を作る  高い再現性  高速化が可能  バイナリー化する  効果を確認する
  13. 13. 高い再現性 $ R --no-save --vanilla --file=r04_test.R Rのファイルをそのまま読みこませればデータを再現させれ る。
  14. 14. Agenda  自己紹介  カスタマイズした関数がほしい  関数を作る  高い再現性  高速化が可能  バイナリー化する  効果を確認する
  15. 15. 高速化が可能 スクリプトスクリプト インラインインライン コンパイルコンパイル おそいおそい バイナリーバイナリー はやいはやい
  16. 16. 高速化が可能 ● よく使う関数 ● 長いコードの関数 ● for文などコストのかかる関数 高速化の効果があるコード
  17. 17. Agenda  自己紹介  カスタマイズした関数がほしい  関数を作る  高い再現性  高速化が可能  バイナリー化する  効果を確認する
  18. 18. バイナリー化する > library(compiler) > binary_func = compiler::cmpfun(inline_func) > library(compiler) > binary_func = compiler::cmpfun(inline_func) バイナリー化のコードはこれだけ
  19. 19. Agenda  自己紹介  カスタマイズした関数がほしい  関数を作る  高い再現性  高速化が可能  バイナリー化する  効果を確認する
  20. 20. 効果を確認する 1. 処理時間の長い関数を作成 samples.low_random<-function(s_val){ tensu<-c(1:100) x<-sample(length(tensu), size=3, replace=FALSE, prob=tensu) for (i in 2:s_val){ aa<-0 for(zz in c(1:10000)){ aa<-aa+zz } y<-sample(length(tensu), size=3, replace=FALSE, prob=tensu) x<-rbind(x,y) } …........... }
  21. 21. 効果を確認する 2. コンパイルして高速化 library(compiler) samples.high_random = compiler::cmpfun(samples.low_random)
  22. 22. 効果を確認する 3. 実行してグラフ化 measure_start<-function(s_vals){ measures.period<-c(0,0) for (x in s_vals){ print(x) l_time<-samples.low_func(x) h_time<-samples.high_func(x) y<-c(l_time[1], h_time[1]) measures.period<-rbind(measures.period, y) } …............... plot( samples.times, (df.z[,1] - df.z[,2]), type="l", pch = pchs[2],.…............... }
  23. 23. 効果を確認する 4. 結果 関数内のループ処理回数による実行時間の差分を対数グラフで 表す。 処理回数と実行時間の差分
  24. 24. 効果を確認する 実行時間の違いを正規分布で表すと効果がよくわかる。
  25. 25. ご清聴ありがとうございました Rを共に勉強しましょ う!

×