Общ преглед на проекта

В силно конкурентния пазар на привличане и задържане на клиенти компаниите непрекъснато се стремят да разберат по-добре своята клиентска база. Анализирането на демографските данни и моделите на поведение на съществуващи клиенти може да предостави ценна информация за потенциалните целеви групи и да помогне за адаптиране на маркетингови стратегии за максимално привличане и задържане на клиенти. Този проект има за цел да анализира демографски данни за компания за продажби по пощата, за да идентифицира потенциални нови клиенти сред общото население.

Произходът на проекта се крие в необходимостта от ефективен и базиран на данни подход към сегментирането на клиентите, който може да помогне на компанията да фокусира маркетинговите си усилия върху най-обещаващите сегменти от населението. Проектът ще използва два набора от данни: един, съдържащ демографска информация за съществуващите клиенти на компанията, и друг, съдържащ демографска информация за общото население. Като сравняваме характеристиките на клиентите на компанията с тези на общото население, ние се стремим да идентифицираме ключови разлики и прилики, които могат да бъдат използвани за по-ефективно насочване към нови клиенти.

В обобщение наборите от данни, използвани в този проект, включват:

  • Udacity_AZDIAS_052018.csv: Този файл съдържа демографска информация за общото население на Германия, включваща 891 211 лица и 366 характеристики.
  • Udacity_CUSTOMERS_052018.csv: Този набор от данни предоставя демографски данни за 191 652 клиенти на компания за поръчки по пощата с 369 функции.
  • Attributes.csv: Този набор от данни съдържа списък с характеристики и неизвестни стойности.
  • Udacity_MAILOUT_052018_TRAIN.csv: Този файл съдържа демографски данни за 42 982 лица, насочени към маркетингова кампания, състоящ се от 367 колони.
  • Udacity_MAILOUT_052018_TEST.csv: По подобен начин този набор от данни включва демографска информация за 42 833 цели на маркетингови кампании с 366 функции.

Изявление на проблема

Проблемът, който трябва да бъде решен, е да се идентифицират потенциални нови клиенти за компанията за продажби по пощата чрез анализиране и сравняване на демографските характеристики на съществуващите клиенти на компанията с тези на общото население. Това ще помогне на компанията да разбере по-добре своята клиентска база, да фокусира маркетинговите си усилия върху най-обещаващите сегменти от населението и в крайна сметка да увеличи придобиването и задържането на клиенти.

За да разреша този проблем, първо ще обработя предварително и ще изчистя предоставените набори от данни, за да се уверя, че са подходящи за анализ. След това ще използвам техники за намаляване на размерността като PCA, за да намаля сложността на данните и да ускоря анализа. След това ще приложа алгоритми за групиране като K-средни, за да сегментирам общото население в отделни групи въз основа на техните демографски характеристики. Чрез сравняване на разпределението на клъстерите в набора от данни за клиентите с тези в набора от данни за общото население, ще идентифицирам свръхпредставените и недостатъчно представените клъстери в клиентската база. Тази информация ще се използва за извличане на представа за клиентската база спрямо общата популация и за по-ефективно насочване към нови клиенти.

Очакваното решение е ясно и приложимо сегментиране на общата съвкупност, подчертаващо най-обещаващите сегменти за привличане на клиенти. Това ще позволи на компанията да съсредоточи маркетинговите си усилия върху идентифицираните целеви групи, което ще доведе до по-ефективно използване на ресурсите и подобрени нива на придобиване и задържане на клиенти.

Предварителна обработка

Първо данните трябва да бъдат почистени. Бяха предприети следните стъпки:

  1. Колоните, които не са намерени както в наборите от данни за клиенти, така и за населението, бяха премахнати
  2. Атрибутите, които не са намерени в метаданните, бяха премахнати
  3. Стойностите, които съответстват на неизвестни, бяха променени на NaN
  4. Бяха разработени нови функции
  5. Беше извършен анализ, за ​​да се разгледа дела на колоните, които са нулеви, след което колоните, които са повече от 30% нулеви, бяха премахнати
  6. Редове с повече от 50% нулеви стойности също бяха премахнати
  7. Колоните само с една уникална стойност бяха премахнати

Проучвателен анализ на данни

След това беше извършен проучвателен анализ на данните. За да идентифицирам атрибутите, които представляват интерес, сравних разгледаните различни характеристики и сравних дела на стойностите в рамките на тази характеристика между клиентите и общата популация.

Функцията YOUTH_DECADE показва, че клиентите обикновено са по-възрастни от общото население.

Освен това функцията HH_EINKOMMEN_SCORE показва, че клиентите са склонни да имат по-високи доходи от общото население

Функцията CAMEO_INTL_FAM_COMPOSITION показва, че е по-вероятно клиентите да бъдат по-възрастни двойки и възрастни в пенсия, отколкото млади необвързани.

Допълнителен проучвателен анализ на данни е включен в тетрадката.

Методология

За да се справи с голям брой функции, беше извършен PCA, за да се намали размерът на размерите, като същевременно се запази 95% от обяснената вариация. PCA се вписва в общия набор от данни за населението и след това трансформира и двата набора от данни. След това, използвайки нишки, клъстерирането на KMeans беше извършено с различни k стойности, за да се намери оптималният брой клъстери. Резултатите за инерция и силует бяха записани и начертани.

Въз основа на тези констатации бяха използвани пет клъстера в компонента за обучение без надзор на този проект.

Клъстерирането на KMeans беше подходящо за общия набор от данни за населението и трансформира и двата набора от данни. След това сравних дела на всеки набор от данни, който попада във всеки клъстер.

Както можете да видите, клиентите бяха свръхпредставени в клъстери 0 и 3 и недостатъчно представени в клъстери 1, 2 и 4. Клъстер 3 беше от особен интерес, тъй като този имаше най-голямата разлика между клиентите и общото население. Чрез изчисляване на разликата между центроида и средните стойности на набора от данни, открих петте най-важни характеристики за всеки клъстер. За клъстер 3 тези характеристики и техните разлики бяха:

Разглеждайки тези променливи по-отблизо, изглежда, че клиентите са много по-склонни да бъдат авангардни и екологични. Освен това те са много по-склонни да притежават BMW, спортни автомобили и автомобили с мощни двигатели. Това са изключително ценни прозрения за компанията в техния маркетинг. Възможно е компанията дори да си партнира с автокъщи от висок клас, за да намери потенциални клиенти. Това също съвпада с EDA, тъй като клиентите са по-възрастни и по-богати.

Модел за контролирано обучение

Влакът за изпращане и тестовите набори от данни бяха заредени и подготвени чрез същите стъпки, описани по-горе. Някои първоначални анализи показаха, че имаме работа със силно небалансиран набор от данни:

Така бяха направени два тръбопровода за предварителна обработка. Един за справяне с нули и едно горещо кодиране и друг за мащабиране и повторно балансиране:

След това, за да се намали прекомерното оборудване, беше извършено кръстосано валидиране. Освен това беше дефинирано пространство за хиперпараметри за търсене в мрежа, за да се тестват различни хиперпараметри за различни модели на машинно обучение:

Показатели

Много показатели бяха използвани за оценка на ефективността на модела, както се вижда по-долу:

Резултатът за точност от 0,709 показва, че най-добрият модел правилно класифицира приблизително 70,9% от пробите. Това е проста мярка за това колко добре се представя моделът, но може да не е най-добрият показател при работа с небалансирани набори от данни, тъй като не предоставя информация за ефективността на отделни класове.

Резултатът ROC-AUC от 0,759 представлява площта под кривата на работните характеристики на приемника. Този резултат варира от 0 до 1, като стойност от 0,5 показва случаен класификатор и 1 показва перфектен класификатор. Резултат от 0,759 предполага, че моделът има разумна способност да прави разлика между положителните и отрицателните класове. Все още обаче има място за подобрение.

Докладът за класификация предоставя допълнителни показатели като прецизност, припомняне и F1-резултат. Прецизността измерва дела на истинските положителни прогнози сред всички положителни прогнози, направени от модела, докато припомнянето измерва дела на истинските положителни прогнози сред всички действителни положителни случаи. F1-резултатът е хармоничната средна стойност на прецизност и припомняне, осигуряваща един показател, който балансира компромиса между тях. Тези показатели са от решаващо значение, когато се работи с небалансирани набори от данни, тъй като те предоставят представа за ефективността на модела за отделни класове.

Среднопретегленият F1-резултат от 0,82 е единствен показател, който обобщава представянето на модела във всички класове, като взема предвид броя на пробите във всеки клас. Изчислява се чрез умножаване на F1-резултата на всеки клас по дела на пробите в този клас и след това сумиране на резултатите.

След това беше използван най-добрият оценител, за да се направят прогнози върху данните от теста и да се намерят вероятностите, свързани с прогнозите. Около 29% от данните от теста се предвижда да имат отговор „1“.

Заключение

Отражение

В този проект се заех с проблема за идентифициране на потенциални нови клиенти за компания за продажби по пощата чрез анализиране и сравняване на демографските характеристики на съществуващите клиенти на компанията с тези на общото население. Използвах различни техники за предварителна обработка на данни, за да почистя и подготвя наборите от данни за анализ. Намаляването на размерността с помощта на PCA ни помогна да намалим сложността на данните и бяха приложени алгоритми за клъстериране, като K-средни стойности, за да сегментира общата популация в отделни групи въз основа на техните демографски характеристики.

Чрез сравняване на разпределението на клъстерите в набора от данни за клиенти с тези в набора от данни за общото население, идентифицирах свръхпредставени и недостатъчно представени клъстери в клиентската база. Тази информация ни позволи да извлечем представа за клиентската база спрямо общата популация и ни помогна да насочваме по-ефективно нови клиенти.

Подобрение

Въпреки че настоящото решение предоставя ценна информация за сегментирането на клиентите, има няколко аспекта, които могат да бъдат подобрени. Една потенциална област за подобрение е изборът на алгоритъм за групиране. В този проект използвах клъстериране с K-средства, което е чувствително към първоначалното разположение на центроидите на клъстера и предполага, че клъстерите са сферични и имат сходни размери. Изследването на други алгоритми за клъстериране, като DBSCAN или йерархично клъстериране, може да ни помогне да открием по-сложни и естествени групировки в данните.

Друга област за подобрение е процесът на избор на функции. В настоящия подход използвах PCA, за да намаля размерността на данните. PCA обаче е линейна техника и може да не улови сложни нелинейни връзки между характеристиките. Могат да бъдат проучени алтернативни техники за намаляване на размерността, като t-SNE или UMAP, за по-добро запазване на структурата на данните в пространството с намалени размери.

И накрая, бях малко ограничен в изчислителните си ресурси. Може да е полезно да опитате по-широко търсене на параметри или да използвате библиотека като Optuna за оптимизиране на хиперпараметри. Бих могъл да опитам и други модели за машинно обучение като XGBoost.

Сравняването и противопоставянето на тези потенциални подобрения с настоящото решение би ни помогнало да оценим тяхната ефективност и допълнително да подобрим разбирането на клиентската база и процеса на сегментиране.

Референции

Наборите от данни, предоставени от Arvato Financial Solution Company съгласно условията и споразумението за данните.

Моля, вижте Github Repository за преносимите компютри и повече информация във файла README.