Расчет Оттока Клиентов Банка (Решение Задачи С Помощью Python)

Хочу поделиться своим опытом решения задачи по машинному обучению и анализу данных от Kaggle. Данная статья позиционируется как руководство для начинающих пользователей на примере не совсем простой задачи.



Выборка данных

Выборка данных содержит около 10 000 строк и 15 столбцов.

Вот некоторые параметры:

  • Возраст
  • Пол
  • Сумма средств на счету


Задача

  1. Найдите параметры, которые оказывают наибольшее влияние на отток клиентов.

  2. Создание гипотезы, прогнозирующей отток клиентов банка.



Инструменты

  • панды
  • запоминать
  • matplotlib
  • бестолковый


Импорт библиотек

  
  
  
  
  
   

import pandas as pd from sklearn.cross_validation import train_test_split from sklearn import svm import seaborn as sns import matplotlib.pyplot as plt from sklearn.metrics import mean_squared_error import numpy as np from sklearn.naive_bayes import GaussianNB



Загрузка и просмотр данных



dataframe = pd.read_csv(".

/input/Churn_Modelling.csv") dataframe.head()



Расчет оттока клиентов банка (решение задачи с помощью Python)



Конверсия данных

Для корректной работы классификатора необходимо преобразовать категориальный признак в числовой.

В представленных выше данных сразу бросаются в глаза две колонки: «Пол» и «Географическое положение».

Проведем преобразования:

dataframe['Geography'].

replace("France",1,inplace= True) dataframe['Geography'].

replace("Spain",2,inplace = True) dataframe['Geography'].

replace("Germany",3,inplace=True) dataframe['Gender'].

replace("Female",0,inplace = True) dataframe['Gender'].

replace("Male",1,inplace=True)



Создание корреляционной матрицы



correlation = dataframe.corr() plt.figure(figsize=(15,15)) sns.heatmap(correlation, vmax=1, square=True,annot=True,cmap='cubehelix') plt.title('Correlation between different fearures') plt.show()



Расчет оттока клиентов банка (решение задачи с помощью Python)

Корреляция показывает, какие параметры будут влиять на результат. Сразу можно выделить 3 положительные корреляции: «Баланс счета», «Возраст», «Географическое положение».



Перекрестная проверка

Чтобы избежать проблем с переоснащением, давайте разделим наш набор данных:

X_train, X_test, y_train, y_test = train_test_split( X, Y, test_size=0.4, random_state=0)



Прогноз



clf = GaussianNB() clf = clf.fit(X_train ,y_train) clf.score(X_test, y_test)



Расчет оттока клиентов банка (решение задачи с помощью Python)

Точность прогноза составила ~78%, что является хорошим результатом.

Теги: #pandas #sklearn #kaggle #Развлекательные головоломки #python

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.