Python は、コンピューター ビジョン、人工知能、数学、天文学などの科学コンピューティングで広く使用されています。それが機械学習にも当てはまるのも不思議ではありません。
この記事では、Python の最も便利な機械学習ツールとライブラリをリストして説明します。このリストでは、Pythonインターフェースを備えている限り、これらのライブラリを Python で記述する必要はありません。
私たちの目的は、Python のすべての機械学習ライブラリをリストすることではなく (Python パッケージ index(PyPI) を使用した場合、searching「machine learning」で 139 件の結果が返されました)、むしろ有用であるとわかっているものをリストすることです。そしてよく維持されているもの。
また、一部のモジュールはさまざまな機械学習タスクに使用できますが、ここでは機械学習に主な焦点を当てたライブラリのみをリストします。たとえば、Scipy1 にはいくつかのクラスタリング アルゴリズムが含まれていますが、主な焦点は機械学習ではなく、包括的な科学計算ツールセットです。したがって、Scipy は除外します (ただし、Scipy も使用しています!)。
もう 1 つ言及しておきたいのは、機械学習 (教師ありまたは教師なし) もデータ処理システムの一部であるため、これらのライブラリを他の科学計算ライブラリとの統合に基づいて評価することです。使用するライブラリがデータ処理システムの残りの部分と一致しない場合、異なるライブラリ間の中間層の作成に多くの時間を費やすことになります。ツールセットに優れたライブラリを含めることは重要ですが、ライブラリが他のライブラリと適切に統合されることも同様に重要です。
他の言語は得意だが、Python パッケージも使用したい場合は、この記事にリストされているライブラリを使用するために Python と統合する方法についても簡単に説明します。
Scikit Learn7 は、CB Insights で使用する機械学習ツールです。これは、分類、特徴の選択、特徴の抽出、および集計に使用されます。
私たちが最も気に入っている点は、一貫性があり、使いやすい API を備えており、すぐに利用できる**たくさん**の評価、診断、相互検証メソッドを提供していることです (聞き覚えがあるでしょうか? Python には、 「バッテリーの準備ができています」メソッド)。さらに素晴らしいのは、内部で Scipy データ構造を使用していることです。これは、科学計算に Scipy、Numpy、Pandas、および Matplotlib を使用する Python の残りの部分とよく適合します。
そのため、分類器のパフォーマンスを視覚化したい場合 (たとえば、適合率-再現率グラフや受信者動作特性 (ROC) 曲線を使用)、Matplotlib を使用すると、迅速な視覚化に役立ちます。
データのクリーニングと構造化に費やす時間を考慮すると、このライブラリを使用すると、他の科学計算パッケージと緊密に統合できるため、非常に便利です。
さらに、限定的な自然言語処理特徴抽出機能、バッグ オブ ワード、tfidf (用語頻度逆変換ドキュメント頻度アルゴリズム)、前処理 (ストップ ワード/ストップ ワード、カスタム前処理、アナライザー) も含まれています。
さらに、小さな データセット (おもちゃのデータセット) に対してさまざまなベンチマーク テストをすばやく実行したい場合は、独自のデータセット モジュールが一般的で便利なデータセットを提供します。これらのデータセットに基づいて独自の小さなデータセットを作成することもでき、モデルを現実世界に適用する前に、モデルが独自の目的で期待を満たしているかどうかをテストできます。パラメータの最適化とパラメータ調整のために、グリッド検索とランダム検索も提供します。
これらの機能はどれも、強力なコミュニティのサポートがなければ、または適切に維持されていない場合には実現できません。最初の安定版リリースを楽しみにしています。
Statsmodels は、主に予測分析と探索分析に使用される、統計モデルに焦点を当てたもう 1 つの強力なライブラリです。線形モデルを近似したり、統計分析や予測モデリングを実行したりする場合、Statsmodels が最適です。提供される統計テストは非常に包括的で、ほとんどの検証タスクをカバーします。
R または S ユーザーの場合は、特定の統計モデル用の R 構文も提供します。そのモデルは Numpy配列と Pandas データ フレームも受け入れるため、中間データ構造は過去のものになります!
PyMC は **ベイズ曲線**を実行するためのツールです。これには、ベイジアン モデル、統計分布、モデルの収束、およびいくつかの階層モデルの診断ツールが含まれています。ベイズ分析をしてみたい方はぜひチェックしてみてください。
Shogun1 は、C++ で書かれたサポート ベクター マシン (SVM) に焦点を当てた機械学習ツールボックスです。これは積極的に開発とメンテナンスが行われており、Python インターフェイスを提供しており、文書化された最高のインターフェイスでもあります。ただし、Scikit-learn と比較すると、その API は使いにくいことがわかりました。さらに、すぐに利用できる診断および評価アルゴリズムはそれほど多くありません。ただし、スピードは大きな利点です。
Gensim は、「人間のためのトピックモデリング」として定義されています。ホームページで説明されているように、その焦点は潜在ディリクレ割り当て (LDA) とそのバリアントです。他のパッケージとは異なり、自然言語処理をサポートしており、NLP と他の機械学習アルゴリズムをより簡単に組み合わせることができます。
あなたの分野が NLP であり、集計と基本的な分類を実行したい場合は、見てみることができます。現在、リカレント ニューラル ネットワークに基づいた Google のテキスト表現 word2vec を導入しています。このライブラリは Python のみで書かれています。Orange
構成ファイル を通じてニューラル ネットワークを作成できるため、さまざまなパラメーターを試すのが簡単になります。ニューラルネットワークのパラメータとプロパティが設定ファイルに分離されていれば、そのモジュール性はより強力になると言えます。 DecafDecaf は、カリフォルニア大学バークレー校によって最近リリースされた深層学習ライブラリであり、Imagenet 分類チャレンジでテストされ、そのニューラル ネットワークの実装が非常に高度 (最先端) であることが判明しました。
Nolearnディープラーニングで優れた Scikit-learn ライブラリ API を使用したい場合は、Nolearn で Decaf をカプセル化すると、より簡単に使用できるようになります。これは Decaf のラッパーであり、Scikit-learn と (ほぼ) 互換性があり、Decaf をさらに素晴らしいものにしています。 OverFeatOverFeat は、Cats vs. Dogs (kaggle チャレンジ) 4 の最近の優勝者で、C++ で書かれており、Python ラッパー (Matlab および Lua とともに) も含まれています。これは、Torch ライブラリ経由で GPU を使用するため、高速です。 ImageNet 分類検出および位置特定チャレンジでも優勝しました。コンピューター ビジョンが専門の場合は、検討してみるとよいでしょう。 HebelHebel は、すぐに使用できる GPU サポートを備えた別のニューラル ネットワーク ライブラリです。 YAML ファイル (Pylearn2 と同様) を通じてニューラル ネットワークのプロパティを決定できるため、神レベルのネットワークをコードから分離し、モデルを迅速に実行するためのフレンドリーな方法が提供されます。開発されてから短期間しか経っていないため、ドキュメントの深さと広さの点で不足しています。ニューラル ネットワーク モデルに関しても、1 つのニューラル ネットワーク モデル (フィードフォワード) のみをサポートするため、制限があります。 しかし、これは純粋な Python で書かれており、スケジューラーやモニターなど、他のライブラリには見られない多くの実用的なPython は分からなくても、他の言語は得意ですか? Python の強みの 1 つは、(特に) 完璧な接着言語であることです。通常の言語を使用できることです。これらのライブラリにアクセスするための Python によるプログラミング言語。さまざまなプログラミング言語用の次のパッケージを使用して、他の言語と Python を組み合わせることができます:
R -> Julia -> PyCall.jl非アクティブなライブラリ便利だと思われるため、これらのライブラリをリストに挙げていますが、これらのライブラリはバグ修正、特に将来的に行われる機能拡張を受ける可能性は低いです。 MDP2MlPyFFnetPyBrain以上が一般的に使用される機械学習ライブラリを Python で分析するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。