1. 数据下载与准备
1.1 下载地址为http://nsl.cs.unb.ca/NSL-KDD/
1.2打开下载的数据,删除其中以@开头的数据
1.3 将数据上传到hdfs
# $HADOOP_HOME/bin/hadoop fs -mkdir /testdata
# $HADOOP_HOME/bin/hadoop fs -put /usr/local/mahout/data/KDD* /testdata
2. 生成数据集描述文件
# $HADOOP_HOME/bin/hadoop jar /usr/local/mahout/mahout0.9/mahout-core-0.9-job.jar org.apache.mahout.classifier.df.tools.Describe -p /testdata/KDDTrain+.arff -f /testdata/KDDTrain+.info -d N 3 C 2 N C 4 N C 8 N 2 C 19 N L
-p:训练数据路径
-f:输出描述文件路径
-d:数据属性描述,具体如下
N: NUMERICAL
C: CATEGORICAL
L: LABEL
I: IGNORED
3. 生成决策森林
# $HADOOP_HOME/bin/hadoop jar /usr/local/mahout/mahout0.9/mahout-examples-0.9-job.jar org.apache.mahout.classifier.df.mapreduce.BuildForest -Dmapred.max.split.size=1874231 -d /testdata/KDDTrain+.arff -ds /testdata/KDDTrain+.info -sl 5 -p -t 100 -o /nsl-forest
-d:训练数据文件路径
-ds:数据描述文件路径
-sl:每个数的每个节点随机选多少个属性
-p:代表使用部分执行
-t:创建树的数量
-o:输出决策森林文件路径
4. 使用决策森林分类新数据
# $HADOOP_HOME/bin/hadoop jar /usr/local/mahout/mahout0.9/mahout-examples-0.9-job.jar org.apache.mahout.classifier.df.mapreduce.TestForest -i /testdata/KDDTest+.arff -ds /testdata/KDDTrain+.info -m /nsl-forest -a -mr -o /predictions
-i:测试文件路径
-ds:数据描述文件路径
-m:决策森林文件所在路径
-mr:使用Hadoop分布计算
-o:输出文件路径
备注:
2. mahout随机森林官网:http://mahout.apache.org/users/classification/partial-implementation.html