データサイエンスのツールとは
「データサイエンスのツール」といった場合、大きくはデータ管理に関するツール、データ分析に関するツール、そしてアプリケーション開発に関するツールに分けることができます[1]ここではツールという言葉を、ソフトウェアおよび言語という意味で用いています。統計解析や機械学習の手法を、ツールと呼ぶ場合もあります。。
データ管理に関するツールとしては、Oracle Database、Microsoft SQL Serverなどのデータベース管理システム(DBMS)および「データベース言語」の代名詞であるSQL言語に加えて、Apache HadoopやApache Sparkといった分散処理フレームワークなどがあります。分業の進んだ組織において、これらを主に扱うのはデータエンジニアやデータベースエンジニアと呼ばれる職業です。
データ分析に関するツールとしては、RやPythonといったプログラミング言語に加えて、機械学習のライブラリであるscikit-learnや、ディープラーニングのフレームワークであるTensorFlow/KerasあるいはPyTorchなどがあります。分業の進んだ組織において、これらを主に扱うのはデータサイエンティストやデータアナリスト、あるいは機械学習エンジニアと呼ばれる職業です。
アプリケーション開発に関するツールとしては、HTML/CSS、JavaScript、PHPあるいはVisual Basic(Visual Basic .NET)、C#といったプログラミング言語が該当します。Webアプリを作るのか、Windowsアプリを作るのかにもよって、得意とする言語は変わってきます。分業の進んだ組織において、これらを主に扱うのはアプリケーションエンジニアやフロントエンドエンジニアと呼ばれる職業です。
項目 | データ管理 | データ分析 | アプリ開発 |
---|---|---|---|
代表的なツール | Oracle Database SQL Server MySQL PostgreSQL SQL言語 Apache Hadoop Apache Spark |
R Python Scala Julia scikit-learn TensorFlow/Keras PyTorch |
HTML/CSS JavaScript PHP Visual Basic C# C/C++ Java |
データ分析に関するツールと、アプリケーション開発に関するツールは単純にカテゴライズできない部分もあります。例えばPythonをアプリケーション開発に、あるいは逆にC/C++をデータ分析に用いることができないわけではありません。
RとPython
データ分析に用いられる代表的なプログラミング言語として、RとPythonがあります。RとPythonの比較や、RとPythonのどちらを学ぶべきかについては、次の記事をご参照ください。
有償ソフトウェア1(SAS/SPSS/MATLAB)
データ分析に用いることのできる有償ソフトウェアは数多存在します。とりわけ歴史があり、知名度の高いものとしてSAS、SPSS、MATLABがあります。
RやPythonにはないこれらに共通した特徴として、基本的な作業をマウスのクリックやドラッグといったGUI操作で行うことができるという点にあります。またここにあげたものはどれも独自の言語を持っており、標準機能にないものを追加したり、複数の処理を纏めて自動化するといったことが可能です。
どれも統計解析の機能からスタートし、機械学習(特に予測モデリング)の機能を追加する形で進化してきました。
SASの最新バージョンは、SAS Viya(ヴァイヤ)です。SAS Viyaは、クラウドネイティブな分析プラットフォームです。SAS製品群の中で有名なものとして、SAS Visual Data Mining and Machine Learning(通称VDMML)があります。
SPSS製品群の中で有名なものとして、SPSS ModelerとSPSS Statisticsがあります。SPSS Modelerはデータマイニングや機械学習、SPSS Statisticsは統計解析を主眼としたソフトウェアです。
SAS Visual Data Mining and Machine LearningおよびSPSS Modelerは、データサイエンスにおける一連のプロセス、つまりデータの取得からレポーティングまたはデプロイに至るまでを、視覚化されたパイプラインとして記録することが可能です。
MATLABは制御工学や信号処理といった分野で特に強みがあります。電気電子系出身の方には、もっとも馴染みのあるソフトウェアではないでしょうか。
項目 | SAS | SPSS | MATLAB |
---|---|---|---|
開発元 | SAS | IBM | MathWorks |
初版リリース | 1976年 | 1968年 | 1984年 |
独自言語 | SAS | SPSS | MATLAB |
有償ソフトウェア2(JMP/Minitab/Stata)
歴史のある統計解析ソフトウェアで、機械学習(特に予測モデリング)の機能を追加する形で進化してきたという点で、SAS、SPSS、MATLABと共通した特徴を持つものの、より特定の分野や業界にフォーカスしたパッケージ性の強いソフトウェアとして、JMP、Minitab、Stataがあります。
SAS、SPSS、MATLABと比べると、レポーティングを目的としたようなアドホックな(その場限りの)分析に使われることが多く、大規模なデータの取り扱いや、システムとの連携はそれほど得意ではありません。
JMPは「ジェイ・エム・ピー」ではなく、「ジャンプ」と呼びます。
JMPとMinitabはどちらも製造業を中心とした品質管理や信頼性、また医療統計に強みがあるという点で、完全な競合関係にあります。
Stataは計量経済、社会統計、および医療統計に強みがあります。医療統計の分野では、JMP、Minitabと競合しています。
項目 | JMP | Minitab | Stata |
---|---|---|---|
開発元 | SAS | Minitab | StataCorp |
初版リリース | 1989年 | 1972年 | 1985年 |
得意分野 | 品質管理 信頼性 医療統計 |
品質管理 信頼性 医療統計 |
計量経済 社会統計 医療統計 |
有償ソフトウェア3(RapidMiner/KNIME Server)
RapidMinerおよびKNIMEは、プロセスフローをドラッグ&ドロップの操作で組み立てることのできる、パイプラインと呼ばれるGUIを持っているのが特徴です。[2]SAS Visual Data Mining and Machine LearningやSPSS … Continue reading
RapidMinerは有償のソフトウェアですが、10,000行のデータまで無料で使用することのできるRapidMiner Free版というものが存在します。
KNIMEは「ナイム」と呼びます。
KNIME(KNIME Analytics Platform)自体は、無償のオープンソースソフトウェアです。プロジェクト管理やAutoMLなどの機能を強化した、有償のKNIME Serverというパッケージが存在します。
これらは機械学習の機能に特化しているため、UIはシンプルでわかりやすいという特徴があります。
一方で、これらは統計解析の機能をおまけ程度にしか持たない(いわゆる「統計解析ソフト」ではない)ため、データサイエンスのプロジェクトすべてカバーできるわけではないという点には、注意が必要です。
項目 | RapidMiner | KNIME |
---|---|---|
開発元 | RapidMiner | KNIME |
初版リリース | 2006年 | 2006年 |
RapidMinerの本社はアメリカのボストンにありますが、創業はドイツのドルトムントで、現在も同地に拠点を置いています。
KNIMEの本社はスイスのチューリッヒにありますが、最初に開発の拠点ができたのはドイツのコンスタンツ大学であり、現在もコンスタンツ市に拠点を置いています。KNIMEの”KN”は、コンスタンツ市の都市コードに由来しています。
RapidMinerとKNIMEはソフトウェアのコンセプトがよく似ているだけでなく、初版リリース年も同じで、発祥の地もドイツという共通点があります。
有償ソフトウェア4(DataRobot/H2O Driverless AI)
2015年以降に初版がリリースされ、高い注目を集めている有償ソフトウェアとして、DataRobot、H2O Driverless AIがあります。
DataRobotは、データ分析の世界的なコンペティションであるKaggleのトップランカー(Kaggle Grandmaster)が集まって設立された会社として有名です。H2O Driverless AIの開発にもやはり、Kaggle Grandmasterが携わっています。
これらは、究極的にはボタンひとつで機械学習のタスクを完了させるようなAutoML[3]MLはMachine Learning(機械学習)の略。AutoMLは直訳すると、「自動的な機械学習(自動化された機械学習)」。と呼ばれる世界で、いかに精度を高めるか、手数を減らすかを競っているように感じられます。DataRobotの巨大な「開始(Start)ボタン」は、それを象徴しています。しかしプロセスやアウトプットを正しく理解した上で、よりよい意志決定を行うには、やはりある程度機械学習の知識は必要不可欠です。
これらは機械学習の機能に特化しているという点で、RapidMiner、KNIMEと同じ特徴、および注意点を持ちます。
項目 | DataRobot | H2O Driverless AI |
---|---|---|
開発元 | DataRobot | H2O.ai |
初版リリース | 2015年 | 2017年 |