title: Modeling using Neural Network
body: <p>I am doing my task to modeling kdd cup 99 dataset using Neural Network. I've tried to modeling it using this code:</p>
  
  <pre><code>#data preprocessing
  
  #importing the libraries
  import numpy as np
  import matplotlib.pyplot as plt
  import pandas as pd
  
  #importing the dataset
  dataset = pd.read_csv('kddcupdata.gz')
  
  #change Multi-class to binary-class
  dataset['normal.'] = dataset['normal.'].replace(['back.', 'buffer_overflow.', 'ftp_write.', 'guess_passwd.', 'imap.', 'ipsweep.', 'land.', 'loadmodule.', 'multihop.', 'neptune.', 'nmap.', 'perl.', 'phf.', 'pod.', 'portsweep.', 'rootkit.', 'satan.', 'smurf.', 'spy.', 'teardrop.', 'warezclient.', 'warezmaster.'], 'attack')
  
  x = dataset.iloc[:, :-1].values
  y = dataset.iloc[:, 41].values
  
  #encoding categorical data
  from sklearn.preprocessing import LabelEncoder, OneHotEncoder
  labelencoder_x_1 = LabelEncoder()
  labelencoder_x_2 = LabelEncoder()
  labelencoder_x_3 = LabelEncoder()
  x[:, 1] = labelencoder_x_1.fit_transform(x[:, 1])
  x[:, 2] = labelencoder_x_2.fit_transform(x[:, 2])
  x[:, 3] = labelencoder_x_3.fit_transform(x[:, 3])
  onehotencoder_1 = OneHotEncoder(categorical_features = [1])
  x = onehotencoder_1.fit_transform(x).toarray()
  onehotencoder_2 = OneHotEncoder(categorical_features = [4])
  x = onehotencoder_2.fit_transform(x).toarray()
  onehotencoder_3 = OneHotEncoder(categorical_features = [70])
  x = onehotencoder_3.fit_transform(x).toarray()
  labelencoder_y = LabelEncoder()
  y = labelencoder_y.fit_transform(y)
  
  #splitting the dataset into the training set and test set
  from sklearn.cross_validation import train_test_split
  x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.3, random_state = 0)
  
  #feature scaling
  from sklearn.preprocessing import StandardScaler
  sc_x = StandardScaler()
  x_train = sc_x.fit_transform(x_train)
  x_test = sc_x.transform(x_test)
  
  # Importing the Keras libraries and packages
  import keras
  from keras.models import Sequential
  from keras.layers import Dense
  
  # Initialising the ANN
  classifier = Sequential()
  
  # Adding the input layer and the first hidden layer
  classifier.add(Dense(output_dim = 60, init = 'uniform', activation = 'relu', input_dim = 118))
  
  #Adding a second hidden layer
  classifier.add(Dense(output_dim = 60, init = 'uniform', activation = 'relu'))
  
  #Adding a third hidden layer
  classifier.add(Dense(output_dim = 60, init = 'uniform', activation = 'relu'))
  
  # Adding the output layer
  classifier.add(Dense(output_dim = 1, init = 'uniform', activation = 'sigmoid'))
  
  # Compiling the ANN
  classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])
  
  # Fitting the ANN to the Training set
  classifier.fit(x_train, y_train, batch_size = 10, nb_epoch = 20)
  
  # Predicting the Test set results
  y_pred = classifier.predict(x_test)
  y_pred = (y_pred &gt; 0.5)
  
  # Making the Confusion Matrix
  from sklearn.metrics import confusion_matrix
  cm = confusion_matrix(y_test, y_pred)
  
  #the performance of the classification model
  print("the Accuracy is: "+ str((cm[0,0]+cm[1,1])/(cm[0,0]+cm[0,1]+cm[1,0]+cm[1,1])))
  recall = cm[1,1]/(cm[0,1]+cm[1,1])
  print("Recall is : "+ str(recall))
  print("False Positive rate: "+ str(cm[1,0]/(cm[0,0]+cm[1,0])))
  precision = cm[1,1]/(cm[1,0]+cm[1,1])
  print("Precision is: "+ str(precision))
  print("F-measure is: "+ str(2*((precision*recall)/(precision+recall))))
  from math import log
  print("Entropy is: "+ str(-precision*log(precision)))
  </code></pre>
  
  <p>But i have got error like this picture below
  <a href="https://i.stack.imgur.com/XYxyI.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/XYxyI.png" alt="enter image description here"></a></p>
  
  <p>I hope someone can help me to fix this code, or by give me the new code, so i can use it to modeling KDD Cup 99 Dataset easily. I really need your help to finish my task.</p>
  
  <p>Thank you.</p>