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.
Upcoming SlideShare
M.R.S. Custom IT Applications- The Highlights
Next

Share

Data science packages

Data science packages in Julia

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Data science packages

  1. 1. Data  Science  Packages. #JuliaTokyo 2015/4/23 1
  2. 2. ⾃自⼰己紹介 2 Twitter :@yutajuly 興味   :⼈人⼯工知能,  深層学習,  オンライン学習,  最適化                エッジヘビーコンピューティング             Julia   :「RとPythonとJuliaで機械学習レベル4を⽬目指す」              「Juliaでスパム判定の機械学習分類器を作る」              「JuliaでDeep  Learning  vol.0」
  3. 3. 俺もパッケージ作って発表するか。 あるもの作ってもしょうがない。 何があるんだろう? パッケージ乱⽴立立しすぎ  !! 何ができるか  わからなすぎる!! 3
  4. 4. ここでは、Juliaの統計解析,  機械学習,  その他 データ分析のパッケージをまとめて紹介します。 4
  5. 5. 取り扱うテーマ 5 1.  データ構造 2.  可視化 3.  統計解析 4.  統計モデリング 5.  時系列列データ解析 6.  機械学習 7.  ディープラーニング 8.  グラフ・ネットワーク解析
  6. 6. *JuliaのパッケージはすべてGitHub上で管理理 ①公式レポジトリに登録されたもの •  公式リポジトリ:JuliaLang/METADATA.jl •  公式HPから検索索可能:http://pkg.julialang.org/ •  2015/4/18時点で547パッケージ •  Package.add(“PackageName”)で利利⽤用 ②個⼈人がGitHubで公開しているもの •  Package.clone(“PackageURL”)で利利⽤用 ⇒  ここでは基本的に①を中⼼心紹介 6
  7. 7. *JuliaのパッケージのOwnerは2パターン ①コミュニティ •  複数⼈人のメンバーがコミットして貢献が⼤大きい •  JuliaStats,  JuliaOpt,  JuliaParallel  etc… ②個⼈人 •  個⼈人がコミット ⇒  ①、②両⽅方とも紹介ですがコミュニティ強い 7
  8. 8. データ構造 8 DataFrame.jl •  標準のリスト,  配列列,  タプル,  辞書では扱いづらいテーブ ルデータをサポート –  カラムごとに異異なるデータ型 –  NAあり •  Rの”data.frame”,  Python(Pandas)の”DataFrame”
  9. 9. データ構造:使⽤用例例 9 –  DataFrame()でDataFrame型を作成 •  @data()でDataArray型を利利⽤用してNAを許容する •  カラム名称も与えられる –  DataFrame型データには、Rっぽいお馴染みのメソッドがある •  size,  ncol,  nrow,  head,  tail,  cbind,  rbind •  describe()で要約統計量量 •  colwize(mean,  df[:Name])などで列列ごとの演算    etc
  10. 10. 可視化 10 Gadfly.jl •  プロット等の各種のデータ可視化 •  Rの”ggplot2”,  Pythonの”matplotlib”
  11. 11. 可視化:使⽤用例例 11
  12. 12. 統計解析 12 StatsBase.jl •  統計に関する様々な基本的なサポートを提供 Distributions.jl •  各種分布からのサンプリング,  分布フィッティング等 HypothesisTests.jl •  各種の仮説検定を提供 それぞれ、Pythonの”Scipy”の⼀一部の機能
  13. 13. 統計解析:使⽤用例例 13
  14. 14. 統計解析:使⽤用例例 14
  15. 15. 統計モデリング 15 GLM.jl •  ⼀一般化線形モデルを提供。Rの”GLM”と⾔言える •  ⽬目的変数の分布により、リンク関数として以下を提供 –  正規分布(Normal) –  ポアソン分布(Poisson) –  ⼆二項分布(Binomial) –  逆正規分布(Gamma) •  AIC,  R2などの出⼒力力がなさそう。Predictがけっこう⾯面倒 くさそうだったり、使い勝⼿手は、もう⼀一歩(?)
  16. 16. 統計モデリング:使⽤用例例 16
  17. 17. 時系列列データ解析 17 TimeSeries.jl •  時系列列データのためのツールキット •  TimeArray型を提供 TimeModels.jl •  時系列列モデルを提供も、少し怪しい(?) –  srcには以下と思われるものがある •  ARIMA,  GARCH,  カルマンフィルター –  ドキュメントはGARCHのみ –  GARCHのExample試したけどエラー –  8ヶ⽉月前でGit更更新⽌止まってる(!?)
  18. 18. 時系列列データ解析 18
  19. 19. 機械学習(教師あり) 19 NaiveBayes.jl •  ナイーブベイズを提供 –  Gaussian(観測値が連続値),  Multinomial(観測値が単語とか の出現回数)の2パターンを⽤用意 –  PythonのScikit-‐‑‒learnでは、Bernoulli(観測値が0-‐‑‒1)を加えた の3パターン BackpropNeuralnet.jl •  ニューラルネットワークを提供
  20. 20. 機械学習(教師あり) 20 LIBSVM.jl •  最も有名なSVM実装の1つであるLIBSVMのJulia版 SVM.jl •  PegasosアルゴリズムによるSVM実装。⾼高速で、オンラ イン学習等に⽤用いられることが多い
  21. 21. 機械学習(教師あり) 21 DecisionTree.jl •  決定⽊木,  RadomForestを提供 •  分類,  回帰の両⽅方⽤用意 ExtremelyRandomizedTrees •  RadomForestの派⽣生。⽊木の分岐をランダムに作ること で、学習の⾼高速化と過学習の可避を実現する •  分類,  回帰の両⽅方⽤用意
  22. 22. 機械学習(教師あり) 22 kNN.jl •  k近傍法を提供 •  分類,  回帰の両⽅方⽤用意 LowDimNearestNeighbors.jl •  k近傍法の改修版。2〜~3の低次元下でのより効率率率的で適 切切な近傍探索索を⾏行行う
  23. 23. 機械学習(教師あり) 23 MLBase.jl •  パラメータチューニングや交差検証、評価⽅方法 を含む教師あり機械学習モデルの統⼀一的なフ レームワークを提供する –  gridtune(グリッドサーチ) –  cross_̲varidate(交差検証) –  confusmat(混合⾏行行列列) –  etc
  24. 24. 機械学習(教師あり、教師なし) 24 MultivariateStats.jl •  多変量量解析(回帰と次元削減)を扱う –  回帰 •  線形回帰 •  リッジ回帰 –  次元削減 •  主成分分析(PCA) •  正準相関分析 •  多次元尺度度構成法  (MDS) •  判別分析 •  独⽴立立成分分析
  25. 25. 機械学習(教師なし) 25 Clustering.jl •  下記のクラスタリング⼿手法を提供 –  k-‐‑‒means –  k-‐‑‒medoids(⾮非類似度度を⽤用いる) –  Affinity  Propagation –  DBSCAN •  種類数は、Scikit-‐‑‒learnの取り揃えに及ばない –  特に階層クラスタリングがない
  26. 26. 機械学習(教師なし) 26 KShiftsClustering.jl •  ⾼高速で低メモリで実⾏行行されるクラスタリング –  k-‐‑‒meansの類似の結果が得られる(らしい) –  オンラインでのクラスタリングにも利利⽤用される QuickShiftsClustering.jl •  ⾮非類似度度で測定される⾼高速な階層クラスタリングを提供 NMF.jl •  ⾮非負値⾏行行列列因⼦子分解を提供
  27. 27. 機械学習(オンライン学習) 27 ConfidenceWeighted.jl •  オンライン機械学習のSCWを提供 •  @chezouさん作成
  28. 28. 機械学習:使⽤用例例 28 http://nbviewer.ipython.org/github/bensadeghi/julia- datascience-talk/blob/master/datascience-talk.ipynb
  29. 29. 機械学習:使⽤用例例 29 参考 http://nbviewer.ipython.org/github/bensadeghi/julia- datascience-talk/blob/master/datascience-talk.ipynb
  30. 30. ディープラーニング 30 Mocha.jl •  ディープラーニングのフレームワークを提供 –  ⼤大きく、以下の2種類の構造が利利⽤用可能 •  (Slacked)  Auto-‐‑‒encoders •  Convolutional  Neural  Network –  Restricted  Boltzmann  Machineを⽤用いた構造はない
  31. 31. ディープラーニング:使⽤用例例 31
  32. 32. グラフ・ネットワーク解析 32 Graphs.jl •  グラフ解析,  グラフ⽣生成を提供 •  Rの”igraph”,  Pythonの”networkX” GraphViz.jl •  GraphvizへのJuliaインターフェースを提供
  33. 33. 時間の都合上触れなかったパッケージ 33 •  サンプリング –  Sampling.jl –  Resampling.jl –  Bootstrap.jl •  MCMC –  SliceSampler.jl –  MCMC.jl –  Lola.jl –  Mamba.jl •  機械学習,  確率率率モデル –  KernelDensity.jl –  BayesNets.jl –  Boltzmann.jl –  HopfieldNets.jl –  ManifoldLearning.jl –  SGDOptim.jl •  利利⽤用が困難系 –  CurveFit.jl –  TimeData.jl –  MachineLearning.jl
  34. 34. 時間の都合上触れなかったパッケージ 34 MachineLearning.jlについて •  決定⽊木,  RadomForest,  ニューラルネット,  BARTを提供   •  学習/検証データ分割,  交差検定等のツールも提供 •  ⼩小規模データにしか適⽤用できない –  “working  with  a  dataset  that  fits  in  memory  on  a   single  machine”
  35. 35. 構築環境 35 Julia  v0.3.7 参考 Juliaʼ’s  Role  in  Data  Science –  http://radar.oreilly.com/2013/10/julias-‐‑‒role-‐‑‒in-‐‑‒ data-‐‑‒science.html Julia  for  Data  Science –  http://nbviewer.ipython.org/github/bensadeghi/ julia-‐‑‒datascience-‐‑‒talk/blob/master/datascience-‐‑‒ talk.ipynb#for-‐‑‒Data-‐‑‒Science
  • ttyno

    Jul. 18, 2015

Data science packages in Julia

Views

Total views

1,649

On Slideshare

0

From embeds

0

Number of embeds

180

Actions

Downloads

1

Shares

0

Comments

0

Likes

1

×