Einsatz von Machine Learning zur Optimierung der Anruferprognosen eines Call Centers
1. Dr. Christian Fels | April 2020 | Einsatz von Machine Learning zur Optimierung der Anruferprognosen eines Call Centers
Christian Fels
Methoden-Beispiel
Einsatz von Machine Learning
zur Optimierung der Anruferprognosen
eines Call Centers
Dr. Christian Fels, April 2020
2. Dr. Christian Fels | April 2020 | Einsatz von Machine Learning zur Optimierung der Anruferprognosen eines Call Centers
Christian Fels
Herausforderung: Die Anruferzahl schwankt über Uhrzeit, Wochentag & Monat Fiktive Daten
- Schwankung über Monat -- Schwankung über Wochentag -
- Schwankung über Uhrzeit -
3. Dr. Christian Fels | April 2020 | Einsatz von Machine Learning zur Optimierung der Anruferprognosen eines Call Centers
Christian Fels
Bisheriges Prognosemodell: Erfahrungs- & gefühlsbasierte Schätzung der Anruferzahlen
Schätzung
der Anruferzahlen
Anruferzahl in
den Vorwochen
Ferientage1
Brückentage
Feiertage
Fokustage2
1) Bayerische Schulferien
2) Tage vor / nach 3 Nicht-Werktagen
(incl. Samstagen & Brückentagen)
oder vor / nach Ferienbeginn
4. Dr. Christian Fels | April 2020 | Einsatz von Machine Learning zur Optimierung der Anruferprognosen eines Call Centers
Christian Fels
Neuer Lösungsansatz: Strikt datenbasierte Anruferprognose mittels Machine Learning
Decision Tree
Regressor
Support Vector
Machine Regressor
Random Forest
Regressor
Gradient Boosted
Regression Trees
k-nearest Neighbor
Regressor
Polynomiale
Regression
5. Dr. Christian Fels | April 2020 | Einsatz von Machine Learning zur Optimierung der Anruferprognosen eines Call Centers
Christian Fels
Vorgehen: Datenaufbereitung I
- Ausgangsdaten -
Fiktive Daten
. . .
6. Dr. Christian Fels | April 2020 | Einsatz von Machine Learning zur Optimierung der Anruferprognosen eines Call Centers
Christian Fels
Vorgehen: Datenaufbereitung II
1. Zusammenführung der täglichen Anruferstatistiken aus 2019 mittels VBA
3.600.000 Zeilen (51 Spalten)
2. Entfernung von Bereichsüberschriften, Summenzeilen, Null- & Fehlerwerten, irrelevanten Daten1
und überflüssigen Spalten 688.000 Zeilen (Zeit | Datum | Anruferzahl)
3. Aufaddierung der Anruferzahlen pro Viertelstunde und Tag über alle Call-Center-Bereiche
23.232 Zeilen (Zeit | Datum | Anruferzahl)
4. Ergänzung der Viertelstunden ohne Anrufe durch Datenzeilen mit Nullwerten für Anrufer
23.360 Zeilen (Zeit | Datum | Anruferzahl)
5. Entfernung von Tagen mit Systemausfällen und den Tagen um Weihnachten2
22.656 Zeilen (Zeit | Datum | Anruferzahl)
6. Ergänzung von numerischen Spalten zu Wochentag und Monat aus Datum
22.656 Zeilen (Zeit | Wochentag | Monat | Anruferzahl)
7. Ergänzung von kategorialen Spalten zu Feier-, Ferien-, Brücken- & Fokustagen
22.656 Zeilen (Zeit | Wochentag | Monat | Feier- | Ferien- | Brücken- | Fokustag | Anrufer)
8. Berechnung der durchschnittlichen Anruferzahl für jede Kombination aus Zeit, Wochentag,
Monat, Feier-, Ferien-, Brücken- & Fokustag
9.984 Zeilen (Zeit | Wochentag | Monat | Feier- | Ferien- | Brücken- | Fokustag | Anrufer)
1) Vor 06:00 oder nach 22:00 2) Wegen komplizierter Kodierung bzgl. Ferien-, Feier-, Brücken- & Fokustagen
- Einzelschritte -
7. Dr. Christian Fels | April 2020 | Einsatz von Machine Learning zur Optimierung der Anruferprognosen eines Call Centers
Christian Fels
Vorgehen: Datenaufbereitung III
- Verwendete Daten -
Fiktive Daten
. . .
8. Dr. Christian Fels | April 2020 | Einsatz von Machine Learning zur Optimierung der Anruferprognosen eines Call Centers
Christian Fels
Vorgehen: Machine Learning I − Korrelationsberechnung und Auswahl möglicher Modelle
Korrelationen zur Anruferzahl:
(geordnet nach Absolutwert)
Wochentag: -0,45
Uhrzeit: -0,23
Feiertag: -0,21
Fokustag: -0,16
Ferientag: -0,09
Monat: -0,07
Brückentag: -0,03
Die Korrelationen von Monat,
Brücken- & Ferientag liegen
unerwartet dicht bei Null.
Beste erzielte ∅ RMSE1
-Werte:
Decision Tree Regressor: 10,10
Gradient Boosted Regression Trees: 10,26
(max_depth = 2, n_estimators = 500, learning_rate = 1.0)
K-Nearest Neighbor Regressor: 21,10
(k = 3)
Lineare Regression: 45,03
(intercept = True)
Polynomiale Regression: 19,83
(degree = 4)
Random Forest Regressor: 7,55
(n_estimators = 500)
Support Vector Machine Regressor: 48,53
(kernel = "poly", degree = 6)
Nur Gradient Boosted Regression Trees und Random
Forest Regressor werden zwecks Optimierung mittels
verschiedener Parameter weiter untersucht.
1) ~ Standardabweichung; gemessen an Validierungsset (20 %); Standardeinstellungen sofern nicht anders angegeben; ∅ von 5 Werten
Werte proportional
anonymisiert
9. Dr. Christian Fels | April 2020 | Einsatz von Machine Learning zur Optimierung der Anruferprognosen eines Call Centers
Christian Fels
Vorgehen: Machine Learning II − Versuch einer Noise-Entfernung mittels PCA
Anzahl der entfernten
Dimensionen:
1
2
3
Random Forest
Regressor:
7,75 (+ 0,20)
7,81 (+ 0,26)
7,63 (+ 0,08)
Kein positiver Effekt der
PCA vorhanden
Nicht weiter optimierbar
Gradient Boosted
Regression Trees2 :
9,71 (- 0,55)
9,48 (- 0,78)
9,39 (- 0,87)
Positiver Effekt der PCA
Versuch einer Optimierung
durch Anpassung der Lern-
rate (LR)
1) RMSE gemessen an Validierungsset (20 %); ∅ von 5 Werten 2) max_depth = 2, n_estimators = 500, learning_rate = 1.0
- RMSE-Werte1 -
Werte proportional
anonymisiert
10. Dr. Christian Fels | April 2020 | Einsatz von Machine Learning zur Optimierung der Anruferprognosen eines Call Centers
Christian Fels
Vorgehen: Machine Learning II − Versuch einer Noise-Entfernung mittels PCA
Anzahl der entfernten
Dimensionen:
1
2
3
Random Forest
Regressor:
7,75 (+ 0,20)
7,81 (+ 0,26)
7,63 (+ 0,08)
Kein positiver Effekt der
PCA vorhanden
Nicht weiter optimierbar
Gradient Boosted
Regression Trees2 :
9,71 (- 0,55)
9,48 (- 0,78)
9,39 (- 0,87)
Positiver Effekt der PCA
Versuch einer Optimierung
durch Anpassung der Lern-
rate (LR)
- RMSE-Werte1 -
RMSE bei 1, 2 bzw. 3 entfernten
Dimensionen:
LR = 1.0: 9,37 / 9,27 / 9,26
LR = 0,5: 8,76 / 8,55 / 8,54
LR = 0,1: 10,61 / 10,81 / 10,68
Nicht weiter optimierbar
Werte proportional
anonymisiert
1) RMSE gemessen an Validierungsset (20 %); ∅ von 5 Werten 2) max_depth = 2, n_estimators = 500, learning_rate = 1.0
11. Dr. Christian Fels | April 2020 | Einsatz von Machine Learning zur Optimierung der Anruferprognosen eines Call Centers
Christian Fels
Vorgehen: Machine Learning II − Versuch einer Noise-Entfernung mittels PCA
Anzahl der entfernten
Dimensionen:
1
2
3
Random Forest
Regressor:
7,75 (+ 0,20)
7,81 (+ 0,26)
7,63 (+ 0,08)
Kein positiver Effekt der
PCA vorhanden
Nicht weiter optimierbar
Gradient Boosted
Regression Trees2 :
9,71 (- 0,55)
9,48 (- 0,78)
9,39 (- 0,87)
Positiver Effekt der PCA
Versuch einer Optimierung
durch Anpassung der Lern-
rate (LR)
- RMSE-Werte1 -
RMSE bei 1, 2 bzw. 3 entfernten
Dimensionen:
LR = 1.0: 9,37 / 9,27 / 9,26
LR = 0,5: 8,76 / 8,55 / 8,54
LR = 0,1: 10,61 / 10,81 / 10,68
Nicht weiter optimierbar
Bestmögliches Ergebnis:
Random Forest Regressor
keine PCA verwendet
RMSE = 7,55
Werte proportional
anonymisiert
1) RMSE gemessen an Validierungsset (20 %); ∅ von 5 Werten 2) max_depth = 2, n_estimators = 500, learning_rate = 1.0
12. Dr. Christian Fels | April 2020 | Einsatz von Machine Learning zur Optimierung der Anruferprognosen eines Call Centers
Christian Fels
Random Forest
Regressor
Ergebnis: Massiv verbesserte, strikt datenbasierte Anruferprognose mittels Random Forest
Senkung der bisherigen RMSE
um 40,7 %
Daten des Vorjahres
Ferientage
Brückentage
Feiertage
Fokustage
13. Dr. Christian Fels | April 2020 | Einsatz von Machine Learning zur Optimierung der Anruferprognosen eines Call Centers
Christian Fels
Anhang: Ursachen verbliebener RMSE-Werte und mögliche Ansätze zu deren Senkung
Plötzliche Wetteränderungen oder Un-
wetter (mit z.B. Sturmschäden)
nicht prognostizierbar
Plötzliche Krankheitswellen (z.B. Grippe)
nicht prognostizierbar
Werbekampagnen von einzelnen Unter-
nehmen (z.B. Autohändler)
nicht mitgeteilt und Folgen nicht ab-
schätzbar
Veränderungen in der Anzahl der betreu-
ten Unternehmenskunden
Berücksichtigung und entsprechende
Korrektur der Prognose sind Arbeit
Ferien-, Feier-, Brücken- & Fokustage
außerhalb Bayerns
erfolglos geprüft
Zerlegung von Zeit oder Wochentag oder
Monat oder Wochentag & Monat in Dummy-
Variablen
erfolglos geprüft
Verwendung des Median der Anrufe für jede
Kombination aus Zeit, Wochentag, Monat,
Feier-, Ferien-, Brücken- & Fokustag
erfolglos geprüft
Support Vector Machine Regressor mit an-
deren Werten als C = 100 und ε = 0,1
erfolglos geprüft
14. Dr. Christian Fels | April 2020 | Einsatz von Machine Learning zur Optimierung der Anruferprognosen eines Call Centers
Christian Fels
Anhang: Verwendeter Python-Code des Random Forest Regressors