データマイニングと機械学習プロセスを接続する方法


8

スクレイピングやAPIを介してデータを収集するデータマイニングサービスをGoogle Goで作成したいと考えています。

ただし、Goには優れたMLサポートがないため、PythonでMLを実行したいと考えています。

Webの背景があるので、両方のサービスをRPCのようなものに接続しますが、これはデータサイエンスの一般的な問題であると思うので、もっと良い解決策があると思います。

たとえば、ほとんどの(Web)プロトコルには以下がありません。

  • プロセス間のバッファリング
  • 複数インスタンスでのクラスタリング

では、データサイエンティストはさまざまな言語/プロセスを接続するために何(ライブラリの種類)を使用するのでしょうか。

ボードー


私が探している方向に向かう1つの解決策は、fluentdです。
bodokaiser、2014

Google Go内で利用できるライブラリのみに興味がありますか?
Hack-R

@ Hack-Rそれがいくつかの重いロジックを必要とするより複雑なプロトコルである場合、ライブラリをGoで利用できるようにしたいと思いますが、ライブラリが他の言語でも利用できる場合はさらに優先します。nsqのようなメッセージキューについてどう思いますか。
bodokaiser 2014

回答:


4

Data Science Toolkitある強力なライブラリ、多くの言語で利用可能である(技術的に、またはライブラリのコレクション)。たとえばRDSTK、Rで呼び出される実装を使用します。

お好みの言語であるGoogle Goの場合、非常に便利なWeb関連ライブラリのリストがここにあります。


Data Science Toolkit非常に興味深いが、私は探していますないものです。n個のデータマイナーからm個のデータプロセッサにデータをストリーミング(およびバッファー)できる、高性能なストリームベースのプロトコルを探しています。
bodokaiser 2014

2

Google Goを使用する唯一の動機がウェブスクレイピングであり、MLをPythonで実行したい場合は、次のスタックをお勧めします。

データをスクレイピングするためのPythonリクエスト

データをキャッシュするためのMongoDB(MongoDBのページ指向の形式は、APIによって一般的に返されるJSONオブジェクトを格納するための自然なホームになります)

pythonとmongodbをインターフェースするためのpymongo

機械学習を行うためのscikit-learn

これはすべてpythonで行われ、マルチプロセッシングで複数のプロセッサに拡張したり、djangoで複数のノードに拡張したりできます


これは純粋な pythonソリューションですか?
bodokaiser 2014

いいえ、キャッシュにmongodbを使用します。MongodbはJavaで書かれていると思いますが、それがあなたの言う意味ですか?
rawkintrevo 2014

1

メッセージキューライブラリがこの仕事に適したツールになるかどうかは100%ではありませんが、今のところはそうです。

次のようなメッセージングライブラリを使用します。

TCPベースのプロトコルを介して、異なる環境で動作する異なるプロセスを接続できます。これらのシステムは分散して実行されるため、複数のノードを接続することが可能です。

nsqの場合、Python Goにライブラリがあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.