使用しているプログラミング言語について 推奨銘柄無料公開ブログ

使用しているプログラミング言語について

当サイトのデータ解析で使用しているプログラミング言語について、大雑把にですが書いておきます。

一般的に、データ解析の行程はETL(Extraction、Translation、Loading)と呼ばれる3項目が大部分(8~9割)を占めています[1]。
3項目とは
・データの収集
・変換(前処理)
・読み込み
のことです。

上記した3項目の実装には静的型付け関数型言語のScalaを利用しています。
Scalaは強力な型チェックやパターンマッチの網羅性保証[2]などコンパイラによる静的検証機能が豊富なので、バグの少ないソフト開発を行うことができます[3]。
またJane Street CapitalのYaron Minskyによると「関数型言語を使っていると優秀な技術者を雇いやすくなる(関数型言語を使っている技術者の平均レベルが高いため)」[4]とのことなので、この観点から見ても関数型言語を使う利点があると考えています。

ETLが終わった後の解析にはRとPythonを使っています。
Rは古典的で枯れた機械学習手法のライブラリが充実しており、Pythonは先進的な機械学習手法のライブラリ(e.g. [5])が多数あります。
なので、解析は基本的にRで行い、Rでは力不足な部分にPythonを使うようにしています。
また、機械学習は全てライブラリに頼っているわけではなく、スクラッチからコードを書いている部分もあります。

ソースコードの管理はgitで行っています。

以上、非常に大雑把な情報ではありますが、参考にしていただければと思います。

参考
[1] 越智 修司・高田 敦史 (2014). データ分析が支えるスマホゲーム開発 ~ユーザー動向から見えてくるアプリケーションの姿~, 114.
[2] http://www.slideshare.net/Tindr/scala-sealed-classes
[3] Ray, Baishakhi, et al. "A large scale study of programming languages and code quality in github." Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering. 2014.
[4] Minsky, Yaron, and Stephen Weeks. "Caml trading–experiences with functional programming on wall street." Journal of Functional Programming 18.04 (2008): 553-564.
[5] http://deeplearning.net/software/pylearn2/  

コメント

コメントの投稿

  • URL
  • コメント内容
  • password
  • 秘密
  • 管理者にだけ表示を許可する

トラックバック

トラックバックURL: http://stockedge.jp/tb.php/57-c3967e34