So verbinden Sie Data-Mining mit dem Prozess des Maschinenlernens

8

Ich möchte einen Data-Mining-Dienst in Google Go schreiben, der Daten durch Scraping und APIs sammelt.

Da Go jedoch keine gute ML-Unterstützung hat, würde ich gerne die ML-Sachen in Python machen.

Mit einem Web-Hintergrund würde ich beide Dienste mit so etwas wie RPC verbinden, aber da ich glaube, dass dies ein häufiges Problem in der Datenwissenschaft ist, denke ich, dass es eine bessere Lösung gibt.

Zum Beispiel fehlen die meisten (Web-) Protokolle bei:

  • Pufferung zwischen Prozessen
  • Clustering über mehrere Instanzen

Welche (Art von Bibliotheken) verwenden Datenwissenschaftler, um verschiedene Sprachen / Prozesse zu verbinden?

Bodo

Bodokaiser
quelle
Eine Lösung, die in die von mir gesuchte Richtung geht, ist fließend .
Bodokaiser
Interessieren Sie sich nur für Bibliotheken, die in Google Go verfügbar sind?
Hack-R
@ Hack-R Wenn es sich um ein komplexeres Protokoll handelt, das eine umfangreiche Logik erfordert, würde ich es vorziehen, wenn eine Bibliothek in Go verfügbar wäre, aber ich würde es noch vorziehen, wenn die Bibliothek auch für andere Sprachen verfügbar wäre. Was halten Sie von einer Nachrichtenwarteschlange wie SCN .
Bodokaiser

Antworten:

4

Dies Data Science Toolkitist eine leistungsstarke Bibliothek (oder eine Sammlung von Bibliotheken, technisch gesehen), die in mehreren Sprachen verfügbar ist. Zum Beispiel verwende ich die Implementierung RDSTKin R.

Für Ihre bevorzugte Sprache, Google Go, gibt es hier eine Liste webbezogener Bibliotheken, die sehr nützlich aussieht.

Hack-R
quelle
Das Data Science Toolkitist sehr interessant, aber nicht das, wonach ich suche. Ich suche nach einem leistungsstarken Stream-basierten Protokoll, mit dem ich Daten von n Data Minern zu m Datenprozessoren streamen (und puffern) kann.
Bodokaiser
2

Wenn Ihre einzige Motivation für die Verwendung von Google Go das Webcraping ist und Sie ML in Python ausführen möchten, würde ich den folgenden Stack empfehlen:

Python-Anforderungen zum Scraping von Daten

MongoDB zum Zwischenspeichern von Daten (das seitenorientierte Format von MongoDB macht es zu einem natürlichen Zuhause für das Speichern von JSON-Objekten, die üblicherweise von APIs zurückgegeben werden)

Pymongo zur Verbindung von Python und Mongodb

scikit-learn für maschinelles Lernen

Dies alles geschieht in Python und Sie können es mit Multiprocessing auf mehrere Prozessoren oder mit Django auf mehrere Knoten erweitern

rawkintrevo
quelle
Dies ist eine reine Python-Lösung?
Bodokaiser
Nein, mit Mongodb zum Zwischenspeichern. Ich denke, Mongodb ist in Java geschrieben, wenn Sie das meinen?
rawkintrevo
1

Ich bin nicht zu 100% davon überzeugt, dass eine Nachrichtenwarteschlangenbibliothek das richtige Werkzeug für diesen Job ist, aber bisher sieht es für mich so aus.

Mit einer Messaging-Bibliothek wie:

Sie können verschiedene Prozesse, die in verschiedenen Umgebungen ausgeführt werden, über ein TCP-basiertes Protokoll verbinden. Da diese Systeme verteilt ausgeführt werden, können mehrere Knoten verbunden werden.

Für nsq haben wir sogar eine Bibliothek in Python and Go!

Bodokaiser
quelle