Einführung in die lineare Optimierung

Inhalt

Einführung

Unternehmen nutzen heute Data Science und maschinelles Lernen, um eine Vielzahl von Geschäftsproblemen zu lösen. Um eine echte geschäftliche Wirkung zu erzielen, Eine wichtige Überlegung ist die Überbrückung der Lücke zwischen der Data-Science-Pipeline und der Business-Entscheidungs-Pipeline.

Die Ergebnisse der Data-Science-Pipeline sind Vorhersagen, Muster und Erkenntnisse aus Daten (normalerweise ohne Einschränkungen), aber das allein reicht nicht aus, damit die Stakeholder des Unternehmens Entscheidungen treffen können. Die Ergebnisse der Data Science müssen in den unternehmerischen Entscheidungsprozess einfließen, was eine Art von Optimierung impliziert, die Einschränkungen und Entscheidungsvariablen beinhaltet, die die Schlüsselaspekte des Unternehmens modellieren.

Zum Beispiel, wenn Sie eine Supermarktkette betreiben, Ihr Data-Science-Kanal würde den erwarteten Umsatz prognostizieren. Später, würde diese Eingaben aufnehmen und eine optimierte Bestandsstrategie erstellen / Der Umsatz.

In diesem Artikel, Wir zeigen ein Beispiel für die lineare Optimierung, um auszuwählen, welche TED-Videos Sie sich ansehen möchten.

Inhaltsverzeichnis

  • Einführung in die lineare Optimierung
  • Das Problem: Merkliste für TED-Videos erstellen
  • Paso 1: relevante Pakete importieren
  • Paso 2: einen Datenrahmen für TED-Gespräche erstellen
  • Paso 3: stelle das lineare Optimierungsproblem auf
  • Paso 4: Konvertierung der Optimierungsergebnisse in ein interpretierbares Format

Einführung in die lineare Optimierung

Unter den Optimierungstechniken, Die lineare Optimierung mit der Simplex-Methode gilt als eine der leistungsstärksten und wurde als eine der 10 besten Algorithmen der 20.NS Jahrhundert. Als Data-Science-Profis, Es ist wichtig, über praktische Kenntnisse über die Implementierung der linearen Optimierung zu verfügen, und dieser Blogbeitrag soll ihre Implementierung mit dem PuLP-Paket von Python veranschaulichen.

Um die Dinge interessant und leicht verständlich zu machen, Wir werden diese Optimierungstechnik erlernen, indem wir sie auf ein praktisches Alltagsproblem anwenden.. Nachdem ich das gesagt habe, Was wir lernen, ist auch auf eine Vielzahl von Geschäftsproblemen anwendbar.

Notiz: In diesem Artikel wird davon ausgegangen, dass Sie über ein grundlegendes Verständnis der linearen Programmierung verfügen.. Sie können diesen Artikel lesen, wenn Sie das Thema überprüfen möchten.

Das Problem: Merkliste für TED-Videos erstellen

TED ist eine gemeinnützige Organisation, die sich der Verbreitung von Ideen verschrieben hat. TED begann in 1984 als Konferenz, in der Technologie zusammenlief, Unterhaltung und Design, und heute deckt es fast alle Themen ab, von der Wissenschaft über die Wirtschaft bis hin zu globalen Themen, in mehr als 100 Sprachen. TED Talks werden von Experten geleitet, die mit Leidenschaft in ihren gewählten Bereichen arbeiten und über eine Fülle von Informationen verfügen.

Jetzt, für diesen Blogbeitrag, Stellen Sie sich eine Situation vor, in der Sie aufgrund ihrer Einschränkungen daran interessiert sind, eine Merkliste der beliebtesten TED-Talks zu erstellen (Zeit, die zum Zuschauen zugewiesen werden kann, und die Anzahl der Gespräche). Wir werden sehen, wie wir das Python-Programm implementieren, um die Watchlist optimal zu erstellen.

Der Artikelcode Es ist hier zu finden. Screenshots von meinem Jupyter-Notebook sind unten gezeigt:

Bild001-2656453

Paso 1: relevante Pakete importieren

PuLP ist eine kostenlose Open-Source-Software, die in Python geschrieben wurde. Wird verwendet, um Optimierungsprobleme als mathematische Modelle zu beschreiben. PuLP kann jeden der vielen externen LP-Solver aufrufen (CBC, GLPK, CPLEX, Gurobi, etc.) um dieses Modell zu lösen und dann Python-Befehle zu verwenden, um die Lösung zu bearbeiten und anzuzeigen. Standardmäßig, CoinMP-Löser ist in PuLP enthalten.

Bild002-4884036

Paso 2: einen Datenrahmen für TED-Gespräche erstellen

Der Datensatz mit allen TED-Gesprächen (2550) wird von Kaggle heruntergeladen und in einen Datenrahmen eingelesen. Eine Teilmenge relevanter Spalten wird ausgewählt und der resultierende Datensatz hat die folgenden Details: Index vom Vortrag, Namen sprechen, TED-Ereignisname, Gesprächsdauer (in Minuten), Anzahl der Aufrufe (Proxy für Chat-Popularität)

Bild003-5622579

Paso 3: stelle das lineare Optimierungsproblem auf

Beginnen Sie mit der Definition des LP-Objekts. Das Variable prob wird erstellt, um die Problemstellung zu enthalten.

Bild004-8906803

Paso 3.1: Erstellen Sie die Entscheidungsvariablen

Wiederholen Sie jede Zeile des Datenrahmens, um die Entscheidungsvariablen zu erstellen, damit jedes Gespräch zu einer Entscheidungsvariable wird. Da jeder Vortrag als Teil der endgültigen Beobachtungsliste ausgewählt werden kann oder nicht, die Entscheidungsvariable ist binärer Natur (1 = ausgewählt, 0 = nicht ausgewählt)

Bild005-4581569

Paso 3.2: Definiere die Zielfunktion

Die Zielfunktion ist die Summe aller Reihen der Ansichten jedes Gesprächs. Ansichten dienen als Indikator für die Popularität des Chats, somit, im Wesentlichen, Wir versuchen, die Aufrufe zu maximieren (Popularität) Auswahl geeigneter Vorträge (Entscheidungsvariablen).

Bild006-7820970

Paso 3.3: Einschränkungen definieren

Im Problem, haben 2 Beschränkungen:

ein) Wir haben nur eine festgelegte Gesamtzeit, die für die Betrachtung der Vorträge zur Verfügung steht

B) Wir möchten nicht mehr als eine bestimmte Anzahl von Gesprächen sehen, um eine Informationsüberflutung zu vermeiden

Bild007-4576228

Paso 3.4: Das endgültige Format (zur Formulierung des Problems)

Das endgültige Format des formulierten Problems wird in eine .lp-Datei geschrieben. Dies listet die Zielfunktion auf, die Entscheidungsvariablen und die dem Problem auferlegten Beschränkungen.

Bild008-3093581

Paso 3.5: die eigentliche Optimierung

Die eigentliche Optimierung ist nur eine einzige Codezeile, die aufruft ‚prob.solve‘. Es wird eine Behauptungsaussage eingefügt, um zu bestimmen, ob ein optimales Ergebnis für das Problem erhalten wurde.

Bild009-1711112

Paso 4: Konvertierung der Optimierungsergebnisse in ein interpretierbares Format

Die Optimierungsergebnisse, die die spezifischen Entscheidungsvariablen angeben (Gespräche) die ausgewählt wurden, um das Ergebnis zu maximieren, sollten in ein Watchlist-Format konvertiert werden, wie im Folgenden gezeigt:

Bild010-2530610

Bild011-7062365

Abschließende Anmerkungen

Dieser Artikel enthält ein Beispiel für die Verwendung der in Python verfügbaren linearen Optimierungstechniken, um das tägliche Problem der Erstellung einer Videoanzeigeliste zu lösen.. Die erlernten Konzepte sind auch in komplexeren Geschäftssituationen anwendbar, die Tausende von Entscheidungsvariablen und viele verschiedene Einschränkungen beinhalten..

Alle Data-Science-Profis sollten hinzufügen „Optimierungstechniken“ zu ihrem Wissensschatz, damit sie mit Advanced Analytics reale Geschäftsprobleme lösen können. Dieser Artikel soll Ihnen dabei helfen, den ersten Schritt in diese Richtung zu machen..

karthikeyan-232x300-9590781Karthikeyan Sankaran Derzeit ist er Direktor von LatentView Analytics, Bereitstellung von Lösungen an der geschäftlichen Schnittstelle, Technik und Mathematik für betriebswirtschaftliche Fragestellungen in unterschiedlichsten Branchen. Karthik verfügt über fast zwei Jahrzehnte Erfahrung in der Informationstechnologiebranche und hat in mehreren Rollen im Bereich Datenmanagement gearbeitet., Business Intelligence und Analytics.

Diese Geschichte wurde im Rahmen von Wettbewerb „Auf einem Blog“ und DataPeaker. Karthikeyans Beitrag war einer der Gewinner des Wettbewerbs.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.

Datenlautsprecher