Przewiduj najlepszy czas połączenia

10

Mam zestaw danych obejmujący zestaw klientów w różnych miastach Kalifornii, czas dzwonienia dla każdego klienta oraz status połączenia (Prawda, jeśli klient odbierze połączenie i False, jeśli klient nie odbierze).

Muszę znaleźć odpowiedni czas na dzwonienie do przyszłych klientów, aby prawdopodobieństwo odebrania połączenia było wysokie. Jaka jest najlepsza strategia dla tego problemu? Czy powinienem uznać to za problem klasyfikacyjny, którym godziny (0,1,2, ... 23) są klasami? A może powinienem uznać to za zadanie regresji, którego czas jest zmienną ciągłą? Jak mogę się upewnić, że prawdopodobieństwo odebrania połączenia będzie wysokie?

Każda pomoc będzie mile widziana. Byłoby również świetnie, gdybyś odniósł mnie do podobnych problemów.

Poniżej znajduje się migawka danych.

Hamid Mahdavian
źródło
Sean Owen, jak poszło zadanie? Próbuję teraz rozwiązać podobny problem i chciałbym usłyszeć Twoje wrażenia - niewiele zasobów w tym temacie w Internecie. Z góry dziękuję!
Dominika

Odpowiedzi:

5

Możesz napotkać problemy, jeśli modelujesz to jako problem regresji bez odpowiedniej transformacji. Na przykład wiemy, że większość połączeń jest prawdopodobnie odbieranych w ciągu dnia, a mniej w nocy i wczesnym rankiem. Regresja liniowa miałaby trudności, ponieważ związek jest prawdopodobnie krzywoliniowy, a nie liniowy. Z tego samego powodu problematyczne byłoby również potraktowanie tego jako zadania klasyfikacyjnego z regresją logistyczną.

Jak sugerują inni respondenci, przeklasyfikowanie danych do przedziałów czasowych pomoże. Sugeruję, aby najpierw spróbować czegoś w rodzaju drzewa decyzyjnego lub losowego lasu.

To powiedziawszy, może to dotyczyć prostych statystyk opisowych. Jeśli spiszesz odsetek odebranych połączeń według pory dnia (w podziale na miasta lub inne dane demograficzne), czy jest to najlepszy najlepszy moment? Jeśli tak, to po co komplikować model?

HEITZ
źródło
1

Możesz spróbować:

  1. Podziel dzień na różne części - wcześnie rano, rano, południe, popołudnie, wieczór, późny wieczór, noc itp.
  2. Przypisuj granice czasu do każdej części dnia, np. Południe może trwać od 12:00 do 13:00.
  3. Utwórz 3 nowe etykiety - „część dnia, aby zadzwonić do klienta”, dla każdego pozytywnego przypadku (status połączenia = prawda) przypisz mu odpowiednią etykietę (rano / południe / wieczór). Etykiety te będą miały jeden zakodowany format, np. Prefer_morning = 0/1, prefer_noon, prefer_evening itp.
  4. Zbuduj 3 modele, aby przewidzieć, czy potencjalny klient preferuje poranek / południe / wieczór wieczorem, aby połączenie zakończyło się powodzeniem.

Ponadto zalecam dodanie dodatkowych funkcji, takich jak zawód, płeć itp., Ponieważ funkcje wymienione w tabeli (miasto itp.) Są zbyt niejednoznaczne i nie dostarczają zbyt wielu informacji do rozróżnienia wśród klientów.

ZMIENIONO zgodnie z sugestią w komentarzach:

Podczas korzystania z modelu każda potencjalna szansa zostanie sklasyfikowana jako preferowany poranek = tak / nie, preferowany popołudnie = tak / nie i preferowany wieczór = tak / nie. Na podstawie pory dnia, na przykład rano, agent call center (lub oprogramowanie) może odbierać i prowadzić kontakty sklasyfikowane w zestawie preferencji porannych. Po południu oprogramowanie wywołujące podnosi się z listy preferowanych w południe i tak dalej.

Sandeep S. Sandhu
źródło
@ sandeep-s-sandhu Jest to prosty sposób na przekształcenie problemu w problem klasyfikacji danych naukowych. Wydaje się jednak, że takie podejście może mieć pewne wady: 1. informacja na etykiecie zawiera tylko pozytywny przypadek, utrata informacji na negatywnej sprawie 2. Klient może mieć tylko jedną z etykiet. W praktyce klient może mieć więcej niż jedną etykietę (tzn. Wolę, aby ludzie dzwonili do mnie późnym wieczorem lub wieczorem). Co myślisz?
nkhuyu
@nkhuyu, 1) etykieta zawiera również literę ujemną. Myślę, że źle zrozumiałeś stwierdzenie „Utwórz nową etykietę -„ część dnia, aby zadzwonić do klienta ”, dla każdego pozytywnego przypadku (status call = true)”. Ten krok ma na celu utworzenie dodatkowej etykiety. Oryginalna etykieta informująca, czy połączenie zakończyło się powodzeniem, czy nie, pozostaje niezmieniona. 2) Tak, masz rację, zredagowałem odpowiedź, aby to odzwierciedlić.
Sandeep S. Sandhu
@ sandeep-s-sabdhu Dziękuję za odpowiedź. Tak, źle to zrozumiałem. OK. Następnie będziesz mieć dwie etykiety (status połączenia, nowa etykieta). Jak więc rozwiązać ten problem? To nie jest zwykły problem z klasyfikacją.
nkhuyu
@nkhuyu, dziękuję za zwrócenie uwagi na to, że edytowałem i wyjaśniłem to w kroku # 4. Każdy z trzech modeli poda zestaw potencjalnych klientów, którzy wybiorą połączenie na określoną porę dnia, a call center wykorzystuje je do ustalenia priorytetów swoich połączeń.
Sandeep S. Sandhu
1
Po kroku 1 następuje krok 3 i zasugerowałem, aby stworzyć odpowiednie etykiety do szkolenia. Główne zapytanie brzmiało: „Muszę znaleźć odpowiedni czas na dzwonienie ...”. To PO musi zdecydować, czy powinny to być poranek / południe / wieczór, czy bardziej szczegółowe, na przykład przez godzinę.
Sandeep S. Sandhu
0

Użyłbym regresji logistycznej - będziesz potrzebować próbek, których nie wykryli. Następnie potraktowałbym godzinę jako sezonowy manekin regresor (23 godziny jako zmienne fikcyjne i pozwoliłbym przejść do przechwytywania).

Jeśli nie traktujesz go jako sezonowego manekina regresora, będziesz musiał przeprowadzić jakąś transformację, ponieważ związek nie będzie liniowy.

Ktoś wcześniej sugerował zastąpienie popołudnia itp. Zmienną kategorialną. To zły pomysł, ponieważ masz szczegóły i gubisz je. Miałoby to podobny efekt jak użycie optymalnego binowania, aby uczynić relację liniową, ale nadal nie sądzę, żeby to działało. Wypróbuj sezonowe atrapy regresorów.

Michael Corley MBA LSSBB
źródło