微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将缺少的类别从火车添加到测试数据集?

如何解决如何将缺少的类别从火车添加到测试数据集?

我的目标是将训练数据集中存在的类别和测试数据集中缺失的类别从一个复制到另一个。 我的方法是像这里一样:https://github.com/Deepthi10/Intrusion-Detection-using-Machine-Learning-on-NSL--KDD-dataset/blob/master/IDS.ipynb

不幸的是,当我尝试这些步骤时出现错误

ValueError: 传递值的形状为 (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

错误信息:ValueError:传递的值的形状是 (82332,151),索引意味着 (82332,155)

有人知道怎么解决吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。