Return to search

Churn Prediction

Churn analysis is an important tool for companies as it can reduce the costs that are related to customer churn. Churn prediction is the process of identifying users before they churn, this is done by implementing methods on collected data in order to find patterns that can be helpful when predicting new churners in the future.The objective of this report is to identify churners with the use of surveys collected from different golfclubs, their members and guests. This was accomplished by testing several different supervised machine learning algorithms in order to find the different classes and to see which supervised algorithms are most suitable for this kind of data.The margin of success was to have a greater accuracy than the percentage of major class in the datasetThe data was processed using label encoding, ONE-hot encoding and principal component analysis and was split into 10 folds, 9 training folds and 1 testing fold ensuring cross validation when iterated 10 times rearranging the test and training folds. Each algorithm processed the training data to create a classifier which was tested on the test data.The classifiers used for the project was K nearest neighbours, Support vector machine, multi-layer perceptron, decision trees and random forest.The different classifiers generally had an accuracy of around 72% and the best classifier which was random forest had an accuracy of 75%. All the classifiers had an accuracy above the margin of success.K-folding, confusion-matrices, classification report and other internal crossvalidation techniques were performed on the the data to ensure the quality of the classifier.The project was a success although there is a strong belief that the bottleneck for the project was the quality of the data in terms of new legislation when collecting and storing data that results in redundant and faulty data. / Churn analys är ett viktigt verktyg för företag då det kan reducera kostnaderna som är relaterade till kund churn. Churn prognoser är processen av att identifiera användare innan de churnas, detta är gjort med implementering av metoder på samlad data för att hitta mönster som är hjälpsamma när framtida användare ska prognoseras. Objektivet med denna rapport är att identifiera churnare med användning av enkäter samlade från golfklubbar och deras kunder och gäster. Det är uppnå att igenom att testa flera olika kontrollerade maskinlärnings algoritmer för att jämföra vilken algoritm som passar bäst. Felmarginalen uppgick till att ha en större träffsäkerhet än procenthalten av den dominanta klassen i datasetet. Datan behandlades med label encoding, ONE-hot encoding och principial komponent analys och delades upp i 10 delar, 9 träning och 1 test del för att säkerställa korsvalidering. Varje algoritm behandlade träningsdatan för att skapa att klassifierare som sedan testades på test datan. Klassifierarna som användes för projekted innefattar K nearest neighbours, Support vector machine, multi-layer perceptron, decision trees och random forest. De olika klassifierarna hade en generell träffssäkerhet omkring 72%, där den bästa var random forest med en träffssäkerhet på 75%. Alla klassifierare hade en träffsäkerhet än den felmarginal som st¨alldes. K-folding, confusion matrices, classification report och andra interna korsvaliderings tekniker användes för att säkerställa kvaliteten på klassifieraren. Projektet var lyckat, men det finns misstanke om att flaskhalsen för projektet låg inom kvaliteten på datan med hänsyn på villkor för ny lagstiftning vid insamling och lagring av data som leder till överflödiga och felaktiga uppgifter.

Identiferoai:union.ndltd.org:UPSALLA1/oai:DiVA.org:hh-41236
Date January 2019
CreatorsÅkermark, Alexander, Hallefält, Mattias
PublisherHögskolan i Halmstad, Akademin för informationsteknologi, Högskolan i Halmstad, Akademin för informationsteknologi
Source SetsDiVA Archive at Upsalla University
LanguageEnglish
Detected LanguageSwedish
TypeStudent thesis, info:eu-repo/semantics/bachelorThesis, text
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess

Page generated in 0.0022 seconds