Ошибка значения: ошибка при проверке ввода: ожидалось, что dens_1_input будет иметь форму (118,), но получил массив с формой (2068,) - PullRequest
0 голосов
/ 11 октября 2019

enter code here

 import numpy as np
 import matplotlib.pyplot as plt
 import pandas as pd

 #importing the dataset
 dataset = pd.read_csv('C:/Users/Student/Desktop/PG Project/Dataset/Probe.csv')
 #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.model_selection 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 = 'sgd', 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 > 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 Alarm 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)))`enter code here'''
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...