Хочу поделиться своим опытом решения задачи по машинному обучению и анализу данных от Kaggle. Данная статья позиционируется как руководство для начинающих пользователей на примере не совсем простой задачи.
Выборка данных
Выборка данных содержит около 10 000 строк и 15 столбцов.Вот некоторые параметры:
- Возраст
- Пол
- Сумма средств на счету
Задача
- Найдите параметры, которые оказывают наибольшее влияние на отток клиентов.
- Создание гипотезы, прогнозирующей отток клиентов банка.
Инструменты
- панды
- запоминать
- 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()
Конверсия данных
Для корректной работы классификатора необходимо преобразовать категориальный признак в числовой.В представленных выше данных сразу бросаются в глаза две колонки: «Пол» и «Географическое положение».
Проведем преобразования: 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()
Корреляция показывает, какие параметры будут влиять на результат. Сразу можно выделить 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)
Точность прогноза составила ~78%, что является хорошим результатом.
Теги: #pandas #sklearn #kaggle #Развлекательные головоломки #python
-
Найти В Excel Стало Проще
19 Oct, 24 -
Безопасно Ли Хранить Пароль В Виде Хеша?
19 Oct, 24 -
Rss И Помощь В Комнате
19 Oct, 24 -
Знаете Ли Вы, Как Готовить Чаты?
19 Oct, 24