Zuhause Persönliche Finanzen Läuft in Parallel Python für Data Science - Dummies

Läuft in Parallel Python für Data Science - Dummies

Inhaltsverzeichnis:

Video: Execute Jars and Python scripts on Azure Databricks using Data Factory | Azure Friday 2025

Video: Execute Jars and Python scripts on Azure Databricks using Data Factory | Azure Friday 2025
Anonim

Die meisten Computer sind heute Multicore (zwei oder mehr Prozessoren in einem einzigen Paket), einige mit mehreren physischen CPUs. Eine der wichtigsten Einschränkungen von Python ist, dass standardmäßig ein einzelner Kern verwendet wird. (Es wurde zu einer Zeit erstellt, als einzelne Kerne die Norm waren.)

Data-Science-Projekte erfordern eine ganze Reihe von Berechnungen. Insbesondere ein Teil des wissenschaftlichen Aspekts der Datenwissenschaft beruht auf wiederholten Tests und Experimenten mit verschiedenen Datenmatrizen. Vergessen Sie nicht, dass das Arbeiten mit großen Datenmengen bedeutet, dass die meisten zeitaufwändigen Transformationen die Beobachtung nach der Beobachtung wiederholen (zum Beispiel identische und nicht verwandte Operationen an verschiedenen Teilen einer Matrix).

Die Verwendung von mehr CPU-Kernen beschleunigt eine Berechnung um einen Faktor, der fast der Anzahl der Kerne entspricht. Wenn Sie zum Beispiel vier Kerne haben, bedeutet dies, dass Sie höchstens vier Mal schneller arbeiten. Sie erhalten keine volle Vervierfachung, da beim Starten eines parallelen Prozesses ein Overhead entsteht - neue laufende Python-Instanzen müssen mit den richtigen In-Memory-Informationen eingerichtet und gestartet werden. Folglich wird die Verbesserung geringer sein als potentiell erreichbar, aber immer noch signifikant.

Das Wissen, wie man mehr als eine CPU verwendet, ist daher eine fortgeschrittene, aber unglaublich nützliche Fähigkeit, um die Anzahl der durchgeführten Analysen zu erhöhen und Ihre Operationen sowohl beim Einrichten als auch bei der Verwendung Ihrer Datenprodukte zu beschleunigen.

Multiprocessing funktioniert durch Replizieren desselben Codes und Speicherinhalts in verschiedenen neuen Python-Instanzen (den Workern), Berechnen des Ergebnisses für jedes von ihnen und Zurückgeben der gepoolten Ergebnisse an die Haupt-Originalkonsole. Wenn Ihre ursprüngliche Instanz bereits einen großen Teil des verfügbaren RAM-Speichers belegt, können keine neuen Instanzen erstellt werden, und Ihr Computer verfügt möglicherweise nicht über genügend Arbeitsspeicher.

Multicore-Parallelität ausführen

Um eine Multicore-Parallelität mit Python durchzuführen, integrieren Sie das Scikit-learn-Paket mit dem joblib-Paket für zeitaufwändige Operationen wie Replizieren von Modellen zur Validierung von Ergebnissen oder zum Suchen nach die besten Hyper-Parameter. Insbesondere ermöglicht Scikit-learn Multiprocessing, wenn

  • Cross-Validierung: Testen der Ergebnisse einer Machine-Learning-Hypothese mit verschiedenen Trainings- und Testdaten

  • Grid-Searching: Systematische Änderung der Hyper-Parameter einer maschinellen Lernhypothese und Testen der daraus resultierenden Ergebnisse

  • Multilabel-Vorhersage: Ausführen eines Algorithmus mehrere Male gegen mehrere Ziele, wenn viele verschiedene Zielergebnisse gleichzeitig vorhergesagt werden können

  • Ensemble-Maschinenlernmethoden: Modellieren eines großen Hosts von Klassifikatoren, jeder unabhängig vom anderen, z. B. bei der Verwendung von RandomForest-basierter Modellierung

Sie müssen nichts Besonderes tun, um parallele Berechnungen zu nutzen - Sie können die Parallelität aktivieren, indem Sie der Parameter n_jobs zu einer Anzahl von Kernen größer als 1 oder durch Setzen des Werts auf -1, was bedeutet, dass Sie alle verfügbaren CPU-Instanzen verwenden möchten.

Wenn Sie Ihren Code nicht von der Konsole oder einem IPython Notebook aus ausführen, ist es äußerst wichtig, dass Sie Ihren Code von jedem Paketimport oder einer globalen Variablenzuweisung in Ihrem Skript trennen, indem Sie if __name __ == '__ main__' verwenden.: Befehl am Anfang jedes Codes, der Multicore-Parallelität ausführt. Die if -Anweisung überprüft, ob das Programm direkt ausgeführt wird oder von einer bereits laufenden Python-Konsole aufgerufen wird, um Verwechslungen oder Fehler durch den multiparallelen Prozess (z. B. rekursives Aufrufen der Parallelität) zu vermeiden.

Demonstrieren von Multiprocessing

Es ist eine gute Idee, IPython zu verwenden, wenn Sie eine Demonstration ausführen, wie Multiprocessing Ihnen bei Data Science-Projekten wirklich Zeit sparen kann. Die Verwendung von IPython bietet den Vorteil, den Befehl "% timeit magic" für die zeitgesteuerte Ausführung zu verwenden. Sie beginnen mit dem Laden eines Multiclass-Datasets, eines komplexen Machine-Learning-Algorithmus (des Support Vector Classifier oder SVC) und eines Kreuzvalidierungsverfahrens zur Schätzung zuverlässiger resultierender Scores aus allen Prozeduren.

Das Wichtigste zu wissen ist, dass die Prozeduren ziemlich groß werden, weil der SVC 10 Modelle erzeugt, die er 10 mal mit Kreuzvalidierung wiederholt, für insgesamt 100 Modelle.

von sklearn. Datensätze import load_digits Ziffern = load_digits () X, y = Ziffern. Daten, Ziffern. Ziel von sklearn. svm importiert SVC aus sklearn. cross_validation import cross_val_score% timeit single_core_learning = cross_val_score (SVC (), X, y, cv = 20, n_jobs = 1) Out [1]: 1 Schleifen, bestes von 3: 17. 9 s pro Schleife

Nach diesem Test Sie müssen die Multicore-Parallelität aktivieren und die Ergebnisse mit den folgenden Befehlen einstufen:

% timeit multi_core_learning = cross_val_score (SVC (), X, y, cv = 20, n_jobs = -1) Out [2]: 1 Schleifen, best of 3: 11. 7 s pro Schleife

Die Beispielmaschine demonstriert einen positiven Vorteil bei der Multicore-Verarbeitung, obwohl ein kleines Dataset verwendet wird, in dem Python die meiste Zeit damit verbringt, Konsolen zu starten und einen Teil des Codes in jedem auszuführen. Dieser Overhead, einige Sekunden, ist immer noch signifikant, wenn man bedenkt, dass sich die Gesamtausführung für eine Handvoll von Sekunden erstreckt. Stellen Sie sich vor, was passieren würde, wenn Sie mit größeren Datenmengen arbeiten würden - Ihre Ausführungszeit könnte leicht um zwei- oder dreimal verkürzt werden.

Obwohl der Code gut mit IPython funktioniert, kann es in einem Skript abgelegt werden und Python dazu auffordern, es in einer Konsole auszuführen oder eine IDE zu verwenden, da dies aufgrund der internen Operationen einer Multicore-Task zu Fehlern führen kann. Die Lösung besteht darin, den gesamten Code unter eine if-Anweisung zu stellen, die prüft, ob das Programm direkt gestartet wurde und danach nicht aufgerufen wurde. Hier ist ein Beispielskript:

von sklearn. Datensätze importieren load_digits aus sklearn. svm importiert SVC aus sklearn. cross_validation import cross_val_score wenn __name__ == '__main__': Ziffern = load_digits () X, y = Ziffern. Daten, Ziffern. Ziel multi_core_learning = Cross_val_score (SVC (), X, y, cv = 20, n_jobs = -1)
Läuft in Parallel Python für Data Science - Dummies

Die Wahl des Herausgebers

Wie man die Socialcast Mobile App benutzt - dummies

Wie man die Socialcast Mobile App benutzt - dummies

Sogar die stoischste Anwendung wie Microsoft Excel hat ein begleitendes Smartphone-App, natürlich hat Socialcast auch eine. Wenn es so wäre, wäre es nicht wirklich eine Ausrede zu sagen, dass Socialcast nicht sehr sozial wäre, wenn du es nicht mit in die große Welt außerhalb deiner Zelle mitnehmen könntest. Die mobile App ...

Wie man das App Verzeichnis von Yammer benutzt - dummies

Wie man das App Verzeichnis von Yammer benutzt - dummies

Sie haben vielleicht gehört: "Es gibt eine App dafür. "Nun, das ist der Fall bei Yammer, der als einzige Ressource für die Vernetzung am Arbeitsplatz funktioniert. Aber Yammer bietet Ihnen auch eine Menge Apps, mit denen Sie Ihr Arbeitsleben noch einfacher gestalten können. Es gibt zwei Möglichkeiten, auf das App-Verzeichnis zuzugreifen: Option ...

So ​​verwenden Sie die Yammer-Analysetools - Dummies

So ​​verwenden Sie die Yammer-Analysetools - Dummies

Yammer rühmt sich damit als "führendes soziales Unternehmensnetzwerk für Unternehmen" um die Arbeit intelligenter und schneller zu erledigen. "Woher weißt du, ob das wahr ist? Ein guter Weg, um zu sehen, wie es für Sie funktioniert, ist die Analyse von Yammer. Wie greifen Sie auf diese großartigen Tools zu? Es ist einfach. Log ...

Die Wahl des Herausgebers

Die Evolution von Distributed Computing für Big Data - Dummies

Die Evolution von Distributed Computing für Big Data - Dummies

Hinter allen wichtigen Trends des letzten Jahrzehnts, einschließlich Serviceorientierung, Cloud Computing, Virtualisierung und Big Data, ist eine grundlegende Technologie namens Distributed Computing. Einfach gesagt, ohne die Verteilung von Datenverarbeitung wäre keiner dieser Fortschritte möglich. Distributed Computing ist eine Technik, mit der einzelne Computer über geografische Gebiete hinweg miteinander vernetzt werden können, so als ob ...

Drei Anbieter mit Data Mining-Produkten - Dummies

Drei Anbieter mit Data Mining-Produkten - Dummies

Es gibt mehrere Anbieter, die Data-Mining-Produkte verkaufen, die Sie vielleicht in Betracht ziehen möchten. Verwenden Sie mit Ihrem Data Warehouse. Hier sind drei, die eine Überlegung wert sind. Microsoft Microsoft hat das serverseitige Data Mining mit Microsoft SQL Server 2005 eingeführt. Obwohl es nicht so ausgereift und ausgeklügelt wie SAS und SPSS ist, hat Microsoft im Laufe der Zeit seine Fähigkeit bewiesen ...

Grundlagen der Big-Data-Integration - Dummies

Grundlagen der Big-Data-Integration - Dummies

Die fundamentalen Elemente der Big-Data-Plattform verwalten Daten auf neue Weise verglichen mit der traditionellen relationalen Datenbank. Dies liegt daran, dass Skalierbarkeit und hohe Leistung erforderlich sind, um sowohl strukturierte als auch unstrukturierte Daten zu verwalten. Komponenten des Big-Data-Ökosystems von Hadoop bis NoSQL DB, MongoDB, Cassandra, ...

Die Wahl des Herausgebers

So ​​stellen Sie eine Verbindung zu Spotify Mobile her - Dummies

So ​​stellen Sie eine Verbindung zu Spotify Mobile her - Dummies

Die meisten modernen Smartphones sind Wi-Fi-fähig. In ein lokales Netzwerk können Sie Spotify-Tracks mithilfe von Wi-Fi auf Ihr Telefon streamen. Sie können Spotify Mobile zu Hause und über Wi-Fi-Netzwerke in Hotels und Cafés problemlos nutzen - Sie müssen nur sicherstellen, dass Sie angemeldet und verbunden sind. ...

Wie Spotify funktioniert - Dummies

Wie Spotify funktioniert - Dummies

Wie Spotify funktioniert, kann Auswirkungen auf den Festplattenspeicher Ihres Computers haben. Internetverbindung. Spotify funktioniert anders als viele andere Online-Musikdienste, weil es auf mehrere Arten angewiesen ist, um Ihnen reibungslos Musik ohne Verzögerungen zu liefern. In Computing-Sprechen, das Maß der Verzögerung zwischen Anfordern eines Songs und Hören es ...

So ​​erreichen Sie Spotify Support - Dummies

So ​​erreichen Sie Spotify Support - Dummies

Es kann vorkommen, dass Sie eine kleine Hilfe beim Navigieren und Verwenden von Spotify benötigen von deinen Spotify Freunden. Sie können jederzeit Support @ spotify per E-Mail senden. com mit Ihrer Frage oder melden Sie sich bei Twitter an und senden Sie einen Tweet an @spotify. Stellen Sie sicher, dass Sie alle Informationen einschließen, die dem Support-Team helfen könnten, einschließlich Ihres Benutzernamens, damit sie ...