ИНС: построение ИНС
Построим модель ИНС. В этой статье используется набор данных о клиенте банка, нам нужно предсказать, кто останется, а кто останется.
Вот наши данные, они включают несколько независимых входных переменных, но некоторые входные данные не влияют на результат или решение клиента. Во-первых, нам нужно импортировать набор данных и разделить наши данные на 2 группы; информация о клиенте (входные данные, X) и выход (выходные данные, y)
# Часть 1 - Предварительная обработка данных
# Импорт библиотек
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# Импорт набора данных
dataset = pd.read_csv ('Churn_Modelling.csv')
X = dataset.iloc [:, 3:13] .values
y = dataset.iloc [:, 13] .values
Затем закодируйте категориальные данные и текстовые данные в числа.
# Кодирование категориальных данных
из sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_X_1 = LabelEncoder ()
X [:, 1] = labelencoder_X_1.fit_transform (X [:, 1])
labelencoder_X_2 = LabelEncoder ()
X [:, 2] = labelencoder_X_2.fit_transform (X [:, 2])
onehotencoder = OneHotEncoder (category_features = [1])
X = onehotencoder. fit_transform (X) .toarray ()
X = X [:, 1:]
Затем разбиваем набор данных на обучающий набор и тестовый набор.
# Разделение набора данных на обучающий набор и набор тестов
из sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.2, random_state = 0)
Далее нам нужно применить масштабирование функций. Потому что предстоит много вычислений с очень ресурсоемкими вычислениями. Поэтому нам нужно применить масштабирование функций, чтобы упростить все эти вычисления.
# Масштабирование функций
из sklearn.preprocessing import StandardScaler
sc = StandardScaler ()
X_train = sc.fit_transform (X_train)
X_test = sc.transform (X_test)
Затем построим модель ИНС; инициализация ИНС, добавление входного слоя, добавление скрытого слоя, добавление выходного слоя, компиляция и подгонка ИНС.
# Импорт библиотек и пакетов Keras
import keras
from keras.models import Sequential
from keras.layers import Dense
# Инициализация ИНС
classifier = Sequential ()
# Добавление входного слоя и первого скрытого слоя
classifier.add (Dense (units = 6, kernel_initializer = ‘uniform’, activate = ‘relu’, input_dim = 11))
# Добавление второго скрытого слоя
classifier.add (Dense (units = 6, kernel_initializer = ‘uniform’, activate = ‘relu’))
# Добавление выходного слоя
classifier.add (Dense (units = 1, kernel_initializer = ‘uniform’, activate = ‘sigmoid’))
# Компиляция ANN
classifier.compile (optimizer = ‘adam’, loss = ‘binary_crossentropy’, metrics = [‘precision’])
# Подгонка ИНС к обучающему набору
classifier.fit (X_train, y_train, batch_size = 10, epochs = 100)
А теперь давайте предскажем результаты набора тестов…
# Прогнозирование результатов набора тестов
y_pred = classifier.predict (X_test)
y_pred = (y_pred ›0,5)
Чтобы описать производительность модели классификации, нам нужно вычислить матрицу неточностей.
# Создание матрицы путаницы
из sklearn.metrics import confusion_matrix
cm = confusion_matrix (y_test, y_pred)
Теперь используйте нашу модель ИНС, чтобы предсказать, покинет ли банк клиент со следующей информацией:
- География: Франция
- Кредитный рейтинг: 600
- Мужской пол
- Возраст: 40 лет
- Срок полномочий: 3 года
- Баланс: 60000 $
- Количество продуктов: 2
- У этого покупателя есть кредитная карта? да
- Является ли этот клиент активным участником: Да
- Ориентировочная зарплата: 50000 долларов
Так стоит ли нам попрощаться с этим клиентом?
«» »Предсказать, есть ли у клиента следующая информация
Кредитный рейтинг: 600
География: Франция
Пол: Мужской
Возраст: 40
Срок владения: 3
Баланс: 60000
Количество продуктов: 2
HasCrCard: Да
IsactiveMemver: Да
EstimateSalary: 50000 ””
# Создать новый прогноз
new_prediction = classifier.predict (np.array ([[0,600,0,1,40,3,60000,2,1,1,50000]]))
new_prediction = ( new_prediction ›0,5)
Согласно информации о клиенте, клиент будет оставаться здесь с нами.
Надеюсь, тебе понравится!