#python #jupyter-notebook #data-science #data-mining
Вопрос:
моя цель-скопировать категории, которые существуют в учебном наборе данных и отсутствуют в тестовом наборе данных, из одной в другую. Мой подход состоял в том, чтобы сделать вот так: https://github.com/Deepthi10/Intrusion-Detection-using-Machine-Learning-on-NSL—KDD-dataset/blob/master/IDS.ipynb
К сожалению, когда я пытаюсь выполнить эти шаги, возникает ошибка:
Ошибка значения: Форма переданных значений (82332, 151), индексы подразумевают (82332, 155)
Мой подход: После прочтения набора тестовых и обучающих данных я написал следующий код:
# protocol type
unique_protocol=sorted(df.proto.unique())
string1 = 'proto_'
unique_protocol2=[string1 x for x in unique_protocol]
# service
unique_service=sorted(df.service.unique())
string2 = 'service_'
unique_service2=[string2 x for x in unique_service]
# flag
unique_flag=sorted(df.state.unique())
string3 = 'state_'
unique_flag2=[string3 x for x in unique_flag]
# put together
dumcols=unique_protocol2 unique_service2 unique_flag2
print(dumcols)
#do same for test set
unique_service_test=sorted(df2.service.unique())
unique_service2_test=[string2 x for x in unique_service_test]
testdumcols=unique_protocol2 unique_service2_test unique_flag2
trainservice=df['state'].tolist()
testservice= df2['state'].tolist()
difference=list(set(trainservice) - set(testservice))
string = 'state_'
difference=[string x for x in difference]
difference
dataset_test_cat_data = pd.DataFrame(df,columns=testdumcols)
for col in difference:
dataset_test_cat_data[col] = 0
dataset_test_cat_data.shape
Сообщение об ошибке: Ошибка значения: Форма переданных значений (82332, 151), индексы подразумевают (82332, 155)
Кто-нибудь знает, как это исправить?