1

您好,我正在使用 KDD 1999 数据集,我正在寻找在 matlab 中应用朴素贝叶斯的方法。我想知道的是 kdd 数据集是一个 494021x42 的数据数组,如果您在下面的朴素贝叶斯代码中注意到“training”和“target_class”:

training = [1;0;-1;-2;4;0]; % this is the sample data.
target_class = ['posi';'zero';'negi';'negi';'posi';'zero'];
    % This should have the same number of rows as training data but why?

% Training and Testing the classifier (between positive and negative)
test = 10*randn(10,1) % this is for testing. I am generating random numbers.
class  = classify(test,training, target_class, 'diaglinear')  
% This command classifies the test data depening on the given training data using a       Naive Bayes classifier

% diaglinear is for naive bayes classifier; there is also diagquadratic

我想知道的是与 kdd 数据集攻击类型相关的“Target_class”?

back dos
buffer_overflow u2r
ftp_write r2l
guess_passwd r2l
imap r2l
ipsweep probe
land dos
loadmodule u2r
multihop r2l
neptune dos
nmap probe
perl u2r
phf r2l
pod dos
portsweep probe
rootkit u2r
satan probe
smurf dos
spy r2l
teardrop dos
warezclient r2l
warezmaster r2l

还是目标类是“测试”集中包含的列标题?IE

protocol_type: symbolic.
service: symbolic.
flag: symbolic.
src_bytes: continuous.
dst_bytes: continuous.
land: symbolic.
wrong_fragment: continuous.
4

1 回答 1

3

如果您阅读此处的任务定义,您会发现目标类确实是攻击类型。然而,训练集包含的攻击类型少于测试集。

这样做是为了现实主义,因为在您训练入侵检测算法之后,它必须能够处理与现有攻击类型接近但不同的新攻击类型。

于 2012-01-29T14:21:39.503 回答