所以,我在下一步该怎么做一个十字路口,我开始学习和应用上的复杂数据集的一些机器学习算法,现在我已经做到了这一点。 我从一开始的计划是两个可能的分类,企图使多分类系统结合起来。
但这里是我在哪里卡住了。 我选择的聚类算法(模糊C均值)和朴素贝叶斯为两位候选人的MCS(多分类系统)(学习一些样品的K-means东西后)。
我可以单独使用两个来对数据进行分类,但我奋力两个以有意义的方式结合起来。
例如模糊聚类捕捉除了通常是一个几乎所有的“蓝精灵”的攻击,我不知道为什么它不抓住这个奇怪的球 ,但我所知道的是它不。 其中的一个群集将由Smurf攻击为主,并usualy我会发现,在其他集群只是一个蓝精灵。 这里是我遇到的问题的情况下,如果我训练上所有不同的攻击类型(蓝精灵,正常,海王星...等)的贝叶斯分类器并应用到集群的剩余部分,试图找到最后剩下的蓝精灵将具有较高的误报率。
我不知道该如何处理,我不想采取其他攻击了训练集,但我只想训练贝叶斯分类器被发现“蓝精灵”的攻击。 目前,它是训练有素的尝试和发现的一切,并在这个过程中,我认为(不知道),其精度下降。
所以这是我的问题,使用朴素贝叶斯分类器时,你会怎么得到它只能寻找蓝精灵和分类,一切为“其他”。
rows = 1000;
columns = 6;
indX = randperm( size(fulldata,1) );
indX = indX(1:rows)';
data = fulldata(indX, indY)
indX1 = randperm( size(fulldata,1) );
indX1 = indX1(1:rows)';
%% apply normalization method to every cell
%data = zscore(data);
training_data = data;
target_class = labels(indX,:)
class = classify(test_data,training_data, target_class, 'diaglinear')
confusionmat(target_class,class)
我在想什么是手动更改target_class
所有正常流量的arent蓝精灵到其他和攻击。 然后,因为我已经知道,FCM正确分类所有,但一个smurf攻击,我只是用朴素贝叶斯分类器在剩余的集群。
例如:
簇1 = 500 Smurf攻击 (重复此步骤可能会在从1000个样本Smurf攻击“多数”转移到一个不同的簇,所以我必须检查或通过簇的最大尺寸迭代,一旦发现我可以从删除它朴素贝叶斯分类器阶段)
然后,我测试每个其余集群的分类(不知道该怎么做循环等尚未在MATLAB),所以此刻我在加工过程中手动选择他们。
clusters = 4;
CM = colormap(jet(clusters));
options(1) = 12.0;
options(2) = 1000;
options(3) = 1e-10;
options(4) = 0;
[~,y] = max(U);
[centers, U, objFun] = fcm(data, clusters, options); % cluster 1000 sample data rows
training_data = newTrainingData(indX1,indY); % this is the numeric data
test_data = fulldata(indX(y==2),:); % this is cluster 2 from the FCM phase which will be classified.
test_class = labels(indX(y==2),:); % thanks to amro this helps the confusion matrix give an unbiased error detection rate in the confusion matrix.
target_class = labels(indX,:) % this is labels for the training_data, it only contains the smurf attacks while everything else is classed as other
class = classify(test_data,training_data, target_class, 'diaglinear')
confusionmat(test_class,class)
然后我重复贝叶斯分类剩下的每个集群,寻找一个smurf攻击。
我的问题是,如果它misclassifies“其他”攻击的蓝精灵还是没有找到一个蓝精灵的剩余会发生什么。
我觉得有点失去了做一个更好的方式。 我在试图挑Smurf攻击一个很好的比例为“其他”,因为我不想过拟合这在以前的问题被解释的过程在这里 。
但是这将需要我,我不还不知道怎么改/海王星,背部,通过IPSweep,wareclient攻击“其他”在MATLAB,所以我还不能验证这一理论进行替换现有标签(会到达那里)一段时间。
所以我的问题是:
1)是否有在发现一个难以捉摸的Smurf攻击一个更好的方法。
2)我如何可以grep target_class(标签),以取代不与蓝精灵一切“ 其它 ”