機械学習をマスターするための5つのPythonディストリビューション

統計、データサイエンス、または機械学習で仕事をしている場合、Pythonを使用している可能性が高くなります。また、正当な理由もあります。ライブラリとツールの豊富なエコシステム、および言語自体の利便性により、Pythonは優れた選択肢になっています。

しかし、どのPythonですか?言語には多くの分布があり、それぞれが異なる線に沿って、異なる聴衆のために作成されています。ここでは、最も一般的なものから最も具体的なものまで、5つのPythonの化身について詳しく説明し、機械学習ジョブを処理するためにそれらがどのように積み重なるかについて詳しく説明します。

関連ビデオ:Pythonがプログラミングを容易にする方法

PythonはITに最適で、システムの自動化から機械学習などの最先端の分野での作業まで、さまざまな種類の作業を簡素化します。

Anaconda Python

Anacondaは、データサイエンスや機械学習だけでなく、汎用のPython開発でも、主要なPythonディストリビューションとして注目を集めています。Anacondaは、企業向けのサポートプランを提供する同名の商用プロバイダー(以前のContinuum Analytics)によって支援されています。 

Anacondaディストリビューションは、何よりもまず、データサイエンスでよく使用されるパッケージ(NumPy、Pandas、Matplotlibなど)に簡単にアクセスできるPythonディストリビューションを提供します。これらは単にAnacondaにバンドルされているだけでなく、Condaと呼ばれるカスタムパッケージ管理システムを介して利用できます。 Condaがインストールしたパッケージには、Python独自のPipでは管理できないトリッキーな外部バイナリ依存関係が含まれている可能性があります。 (必要に応じてPipを引き続き使用できますが、Condaがこれらのパッケージに提供する利点は得られません。)各パッケージはAnacondaによって最新の状態に保たれ、それらの多くはIntelMKLでコンパイルされます。速度の拡張。

Anacondaがもたらすもう1つの大きな利点は、グラフィカル環境であるAnacondaNavigatorです。ナビゲーターはIDEではなく、Condaパッケージマネージャーやユーザー構成の仮想環境などのAnaconda機能用の便利なGUIフロントエンドです。Navigatorを使用して、JupyterノートブックやVisual Studio CodeIDEなどのサードパーティアプリケーションを管理することもできます。

Minicondaと呼ばれるAnacondaの最小限のインストールでは、開始するのに十分なAnacondaベースのみがインストールされますが、必要に応じて、他のCondaまたはPipがインストールされたパッケージで拡張できます。これは、Anacondaの豊富なライブラリを利用したいが、物事を無駄のない状態に保つ必要がある場合に役立ちます。

ActivePython

データサイエンスは、ActivePythonのユースケースの1つにすぎません。これは、アーキテクチャとプラットフォーム間で一貫した実装を備えた、専門的にサポートされている言語のエディションとして機能するように設計されています。これは、AIX、HP-UX、Solaris、Windows、Linux、MacOSなどのプラットフォームでデータサイエンスにPythonを使用している場合に役立ちます。

ActivePythonは、Pythonの元の参照の化身に可能な限り近づこうとします。ActivePythonは、複雑なmath-and-statsパッケージ用の特別なインストーラー(Anacondaアプローチ)の代わりに、必要に応じてIntel MKL拡張機能を使用してこれらのパッケージの多くをプリコンパイルし、ActivePythonのデフォルトインストールでパックインとして提供します。正式にインストールする必要はありません。それらは箱から出してすぐに利用できます。

ただし、これらのプリコンパイル済みパッケージの新しいバージョンにアップグレードする場合は、ActivePython自体の次のビルドがリリースされるまで待つ必要があります。これにより、ActivePythonは全体としてより一貫性があり、結果の再現性が重要な場合に持つ価値のあるものになりますが、柔軟性も低下します。

CPython

公式のプレーンバニラバージョンのPythonだけを使用して、機械学習作業を最初から開始したい場合は、CPythonを選択してください。Cで記述されたPythonランタイムのリファレンスエディションであるため、CPythonはPython Software FoundationのWebサイトから入手でき、Pythonスクリプトの実行とパッケージの管理に必要なツールのみを提供します。

CPythonは、機械学習またはデータサイエンスプロジェクト用のPython環境をカスタム構築する場合、それを正しく行うことを信頼し、サードパーティによる変更が邪魔にならないようにする場合に役立ちます。CPythonのソースはすぐに利用できるため、速度やプロジェクトのニーズのために必要な変更をカスタムコンパイルすることもできます。

一方、CPythonを使用するということは、NumPyのようなパッケージのインストールと構成の詳細と、それらのすべての依存関係に対処する必要があることを意味します。その一部は、手動で探し出して追加する必要があります。

この作業の一部は、特にPythonのPipパッケージマネージャーが多くのデータサイエンスパッケージで使用されている種類のプリコンパイル済みバイナリをエレガントにインストールするようになったため、過去数年間で負担が軽減されました。ただし、特にMicrosoft Windowsでは、C / C ++コンパイラを手動でインストールするなど、すべての要素を手作業で組み合わせる必要がある場合がまだ多くあります。

CPythonを使用するもう1つの欠点は、IntelのMath Kernel Library(MKL)拡張機能など、機械学習やデータサイエンスに役立つパフォーマンス向上オプションを使用しないことです。Intel MKLをすべて自分で使用するには、NumPyライブラリとSciPyライブラリを構築する必要があります。

思いついたキャノピー

PythonのEnthoughtCanopyディストリビューションは、多くの点でAnacondaに似ています。データサイエンスと機械学習を主なユースケースとして構築され、独自のキュレーションされたパッケージインデックスが付属しており、セットアップ全体を管理するためのグラフィカルフロントエンドとコマンドラインツールの両方を提供します。エンタープライズユーザーは、ファイアウォールの背後にあるパッケージ管理システムであるEnthought DeploymentServerを購入することもできます。 Canopy用に構築された機械学習パッケージは、IntelMKL拡張機能を使用します。

AnacondaとCanopyの主な違いはスコープです。キャノピーはより控えめで、アナコンダはより包括的です。たとえば、CanopyにはPython仮想環境を作成および管理するためのコマンドラインツールが含まれていますが(さまざまな機械学習ワークフローのさまざまなパッケージセットを処理する場合に便利です)、Anacondaはそのジョブ用のGUIを提供します。一方、Canopyには便利な組み込みIDE(ファイルブラウザー、Jupyterノートブック、コードエディターの組み合わせ)も含まれており、すぐに操作して手間をかけずに作業を開始できます。

WinPython

WinPythonの背後にある当初の使命は、MicrosoftWindows用に特別に構築されたPythonのエディションを提供することでした。 Windows用のCPythonビルドが特に堅牢ではなかった頃、WinPythonは有用なニッチを埋めていました。今日、CPythonのWindowsエディションは非常に優れており、WinPythonは、特にデータサイエンスや機械学習アプリケーションの場合、CPythonによってまだ舗装されていない亀裂を埋めることに目を向けています。

デフォルトでは、WinPythonは移植可能です。 WinPythonディストリビューション全体は、どこにでも配置してどこでも実行できる単一のディレクトリに収まります。 WinPythonのインストールは、アーカイブとして、またはUSBドライブに配信でき、特定のジョブに必要なすべての環境変数、パッケージ、およびスクリプトがプリインストールされています。これは、特定のモデルをトレーニングしたり、特定のデータ実験を再現したりするために必要なものをすべてまとめるのに便利な方法です。または、WinPythonインストールをWindowsに登録して、ネイティブにインストールされているかのように実行することもできます(必要に応じて、後で登録を解除します)。

機械学習中心のPythonディストリビューションのトリッキーな要素の多くもカバーされています。ほとんどの主要なライブラリ(NumPy、Pandas、Jupyter、およびR言語とJulia言語へのインターフェイス)はデフォルトで含まれており、必要に応じてIntelMKL拡張機能に対して構築されています。Mingw64 C / C ++コンパイラーもWinPythonのNumPyにパッケージ化されているため、コンパイラーをインストールしなくても、バイナリPython拡張機能をソースから(たとえば、Cython経由で)構築できます。

WinPythonには独自のパッケージインストーラーWPPMがあり、ビルド済みのバイナリに付属するパッケージと純粋なPythonパッケージを処理します。また、デフォルトでパッケージが含まれていない最低限のバージョンのWinPythonが必要な場合、WinPythonは、AnacondaのMinicondaと同じラインで「ゼロバージョン」を提供します。

関連ビデオ:機械学習とAIの解読

機械学習と人工知能に関する誇大宣伝を打ち破り、私たちのパネルはテクノロジーの定義と意味について話します。