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

More Related Content

Viewers also liked

Erlwood KNIME nodes 2014
Erlwood KNIME nodes 2014Erlwood KNIME nodes 2014
Erlwood KNIME nodes 2014James Lumley
 
Ford case study
Ford case studyFord case study
Ford case studyNewsworks
 
Relationships matter: How to build, nurture, and transform your talent pipeli...
Relationships matter: How to build, nurture, and transform your talent pipeli...Relationships matter: How to build, nurture, and transform your talent pipeli...
Relationships matter: How to build, nurture, and transform your talent pipeli...LinkedIn Talent Solutions
 
Julia0.3でランダムフォレスト
Julia0.3でランダムフォレストJulia0.3でランダムフォレスト
Julia0.3でランダムフォレストAtsushi Hayakawa
 
ニコニコ動画のコメント解析
ニコニコ動画のコメント解析ニコニコ動画のコメント解析
ニコニコ動画のコメント解析Keisuke Ogaki
 
Redefining the market in the Age of Women Empowerment
Redefining the market in the Age of Women EmpowermentRedefining the market in the Age of Women Empowerment
Redefining the market in the Age of Women EmpowermentMobile Marketing Association
 
15 cool ideas and designs that make me happy
15 cool ideas and designs that make me happy15 cool ideas and designs that make me happy
15 cool ideas and designs that make me happyMarc Heleven
 
Juliaのパッケージをつくろう!
Juliaのパッケージをつくろう!Juliaのパッケージをつくろう!
Juliaのパッケージをつくろう!Kenta Sato
 
8 trends of Creativity at #CannesLions 2016
8 trends of Creativity at #CannesLions 2016 8 trends of Creativity at #CannesLions 2016
8 trends of Creativity at #CannesLions 2016 HUB INSTITUTE
 
メカ女子将棋Julia tokyo#1
メカ女子将棋Julia tokyo#1メカ女子将棋Julia tokyo#1
メカ女子将棋Julia tokyo#1Takeshi Kimura
 
Juliaのススメ
JuliaのススメJuliaのススメ
JuliaのススメAi Makabi
 
Julia 100 exercises #JuliaTokyo
Julia 100 exercises #JuliaTokyoJulia 100 exercises #JuliaTokyo
Julia 100 exercises #JuliaTokyoAki Ariga
 
Intro to Machine Learning with H2O and AWS
Intro to Machine Learning with H2O and AWSIntro to Machine Learning with H2O and AWS
Intro to Machine Learning with H2O and AWSSri Ambati
 
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)Kenta Sato
 
Interaction designers vs algorithms
Interaction designers vs algorithmsInteraction designers vs algorithms
Interaction designers vs algorithmscxpartners
 
Work here, work there, work everywhere
Work here, work there, work everywhereWork here, work there, work everywhere
Work here, work there, work everywhereJon Brown
 

Viewers also liked (19)

Erlwood KNIME nodes 2014
Erlwood KNIME nodes 2014Erlwood KNIME nodes 2014
Erlwood KNIME nodes 2014
 
Ford case study
Ford case studyFord case study
Ford case study
 
Relationships matter: How to build, nurture, and transform your talent pipeli...
Relationships matter: How to build, nurture, and transform your talent pipeli...Relationships matter: How to build, nurture, and transform your talent pipeli...
Relationships matter: How to build, nurture, and transform your talent pipeli...
 
Guitar chords
Guitar chordsGuitar chords
Guitar chords
 
Julia0.3でランダムフォレスト
Julia0.3でランダムフォレストJulia0.3でランダムフォレスト
Julia0.3でランダムフォレスト
 
ニコニコ動画のコメント解析
ニコニコ動画のコメント解析ニコニコ動画のコメント解析
ニコニコ動画のコメント解析
 
Redefining the market in the Age of Women Empowerment
Redefining the market in the Age of Women EmpowermentRedefining the market in the Age of Women Empowerment
Redefining the market in the Age of Women Empowerment
 
15 cool ideas and designs that make me happy
15 cool ideas and designs that make me happy15 cool ideas and designs that make me happy
15 cool ideas and designs that make me happy
 
Juliaのパッケージをつくろう!
Juliaのパッケージをつくろう!Juliaのパッケージをつくろう!
Juliaのパッケージをつくろう!
 
8 trends of Creativity at #CannesLions 2016
8 trends of Creativity at #CannesLions 2016 8 trends of Creativity at #CannesLions 2016
8 trends of Creativity at #CannesLions 2016
 
メカ女子将棋Julia tokyo#1
メカ女子将棋Julia tokyo#1メカ女子将棋Julia tokyo#1
メカ女子将棋Julia tokyo#1
 
Juliaのススメ
JuliaのススメJuliaのススメ
Juliaのススメ
 
Database schema
Database schemaDatabase schema
Database schema
 
Julia 100 exercises #JuliaTokyo
Julia 100 exercises #JuliaTokyoJulia 100 exercises #JuliaTokyo
Julia 100 exercises #JuliaTokyo
 
Intro to Machine Learning with H2O and AWS
Intro to Machine Learning with H2O and AWSIntro to Machine Learning with H2O and AWS
Intro to Machine Learning with H2O and AWS
 
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)
 
Interaction designers vs algorithms
Interaction designers vs algorithmsInteraction designers vs algorithms
Interaction designers vs algorithms
 
Work here, work there, work everywhere
Work here, work there, work everywhereWork here, work there, work everywhere
Work here, work there, work everywhere
 
The Lean Startup
The Lean StartupThe Lean Startup
The Lean Startup
 

Data science packages