[ Foro de Python ]

/MACHINE LEARNING/ problema al adaptar el código de la predicción del Churn Modelling.

09-Jun-2022 09:37
David Magallón Martínez
0 Respuestas

Hola.

Me surge un problema al adaptar el código de la predicción del Churn Modelling.

He cambiado el esquema del OneHotEncoder quitando los parámetros, pero me da error en la línea de ajuste del modelo:
classifier.fit(X_train, y_train, batch_size = 10, epochs = 50)

Te dejo Google Colab para que puedas ver el error: https://colab.research.google.com/drive/1J8idZnNotIna4mkug5JQu04FYHvTy0MR?usp=sharing

Muchisimas gracias


[code]import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# Importar la base de datos
dataset = pd.read_csv('https://raw.githubusercontent.com/AaronWard/Churn-Modelling-Artificial-Neural-Network/master/Churn_Modelling.csv');
X = dataset.iloc[:, 3:13].values
Y = dataset.iloc[:, 13].values

from 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()
X = onehotencoder.fit_transform(X).toarray()
X = X[:, 1:]


#Dividir el dataset en Training set y Test Set
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size = 0.2)

# Feature Scaling
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

# Importar la libreria de Keras y sus paquetes
import keras
from keras.models import Sequential
from keras.layers import Dense

#Inicializar la red neuronal
classifier = Sequential()
classifier.add(Dense(units = 6, kernel_initializer = 'uniform',
activation = 'relu', input_dim = 11))
classifier.add(Dense(units = 6, kernel_initializer = 'uniform',
activation = 'relu'))
classifier.add(Dense(units = 1, kernel_initializer = 'uniform',
activation = 'sigmoid'))

# Compilar red neuronal
classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])
classifier.fit(X_train, y_train, batch_size = 10, epochs = 50)

# Predecir los resultados del Test set
y_pred = classifier.predict(X_test)
y_pred = (y_pred > 0.5)
new_prediction = classifier.predict(sc.transform
(np.array([[0.0, 0, 500, 1, 40, 3, 50000, 2, 1, 1, 40000]])))
new_prediction = (new_prediction > 0.5)

from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)

print('cm: ', cm)
print('New prediction: ', new_prediction) [/code]




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)