データサイエンスや分析に携わっている方なら、おそらくPythonとRの論争をよくご存知でしょう。どちらの言語も、人工知能、機械学習、データ駆動型イノベーションを通じて未来を実現していますが、それぞれ長所と短所があります。
多くの点で、この2つのオープンソース言語は非常に似ています。どちらの言語も、データ操作やオートメーションからビジネス分析やビッグデータの探索まで、データサイエンスのタスクに適しています。主な違いは、Pythonは汎用プログラミング言語であるのに対し、Rは統計分析にルーツがあることです。どちらを選ぶかではなく、特定のユースケースに合わせて両方のプログラミング言語を最大限に活用する方法がますます問題になっています。
Pythonは、空白を多用することでコードの可読性を重視する汎用のオブジェクト指向プログラミング言語です。1989年にリリースされたPythonは、習得が簡単であり、プログラマーや開発者に人気があります。実際、PythonはJavaやCに次ぐ世界で最も人気のあるプログラミング言語の1つです。
いくつかのPythonライブラリーは、次のようなデータサイエンスタスクをサポートしています。
さらに、Pythonは大規模な機械学習の導入に特に適しています。同社の専門的なディープラーニングおよび機械学習ライブラリー・スイートには、scikit-learn、Keras、TensorFlow などのツールが含まれており、データサイエンティストはこれらを使用して、実稼働システムに直接接続できる高度なデータ・モデルを開発できます。Jupyter Notebookは、ライブPythonコード、数式、視覚化、データサイエンスの説明を含むドキュメントを簡単に共有できるオープンソースのWebアプリケーションです。
Rは、統計分析とデータの可視化に最適化されたオープンソースのプログラミング言語です。1992年に開発されたRには、複雑なデータ・モデルとデータ・レポート用のエレガントなツールを備えた豊富なエコシステムがあります。最終的には、分析用にComprehensive R Archive Network(CRAN)経由で13,000を超えるRパッケージが利用可能でした。
データサイエンスの学者や研究者の間で人気のあるRは、以下の目的に最適な幅広いライブラリーとツールを提供しています。
Rは、統計分析、視覚化、レポート作成を簡素化するための統合開発環境(IDE)であるRStudio内で一般的に使用されます。Rアプリケーションは、Shinyを介してウェブ上で直接かつ対話的に使用できます。
2つの言語の主な違いは、データサイエンスへのアプローチにあります。どちらのオープンソース・プログラミング言語も大規模なコミュニティーによってサポートされており、ライブラリーとツールを継続的に拡張しています。しかし、Rは主に統計分析に使用されますが、Pythonはデータ・ラングリングに対するより一般的なアプローチを提供します。
Pythonは、C++やJavaと同じように多目的言語であり、学習が簡単で読みやすい構文を備えています。プログラマーはPythonを使用してデータ分析を掘り下げたり、スケーラブルな運用環境で機械学習を使用したりできます。たとえば、Pythonを使用して、モバイルAPIに顔認識機能を組み込んだり、機械学習アプリケーションを開発したりすることができます。
一方、Rは統計学者によって構築されており、統計モデルや特殊な分析に大きく依存しています。データサイエンティストは、わずか数行のコードと美しいデータの可視化によってサポートされる詳細な統計分析にRを使用します。たとえば、顧客行動分析やゲノミクス研究にRを使用する場合があります。
適切な言語の選択は、状況によって異なります。ここでは、考慮すべき点をいくつかご紹介します。
Microsoft Machine Learning Serverなどの多くのツールはRとPythonの両方をサポートしていることに注意してください。そのため、ほとんどの組織は両方の言語を組み合わせて使用しており、RとPythonの議論は当然のことです。実際には、初期段階のデータ分析と探索をRで行い、データ製品を出荷する際にはPythonに切り替えるかもしれません。
コンピューター・サイエンスの専門家にとって、Pythonはデータサイエンスに最適なプログラミング言語として常に際立っています。一方、Rには独自の支持者がいます。スタック・オーバーフローなどの開発コミュニティーでぜひご確認ください。PythonとRを介したデータ分析の可能性について詳しくは、以下のLearn Hubの記事をご覧ください。IBM Developer Hubで、データサイエンスの言語チュートリアルを確認することをお勧めします。
オープンソース言語とフレームワークを使用してデータサイエンス開発を加速する方法については、IBM Watson Studioをご覧ください。