针对其他博客运行streamDM的补充

./spark.sh "EvaluatePrequential -l (SGDLearner -l 0.01 -p .001 -o LogisticLoss -r ZeroRegularizer)
 –s (FileReader –k 100 –d 60 –f ../data/mydata)" 1> ../log 2>../result

上面的例子中是在streamDM程序的scripts下运行的,linux系统终端cd进去这个目录就可以,然后执行上面代码,streamDM自己去github下载。
下面说明一下这些参数:
-l -s这两个参数是EvaluatePrequential 类中的,当然还有其他参数 如下:

/**
 * Task for evaluating a classifier on a stream by testing then training with
 * each example in sequence.
 *
 * <p>It uses the following options:
 * <ul>
 *  <li> Learner (<b>-l</b>), an object of type <tt>Classifier</tt>
 *  <li> Evaluator (<b>-e</b>), an object of type <tt>Evaluator</tt>
 *  <li> Reader (<b>-s</b>), a reader object of type <tt>StreamReader</tt>
 *  <li> Writer (<b>-w</b>), a writer object of type <tt>StreamWriter</tt>
 * </ul>
 */

-l对应的为所用的算法,这里调用了SGD算法;
SGDLearner后面跟着SGD算法的参数:
1. -1对应学习参数(Learning parameter),
2. -o 对应损失函数(Loss function parameter),可以是LogisticLoss,Squaredloss,HingeLoss或者PerceptronLoss,
3. -r对应正则方法(Regularizer parameter),可以是ZeroRegularizer, L1Regularizer或者L2Regularizer;
当然还有其他的参数如下:

/**
 * The SGDLearner trains a LinearModel using the stochastic gradient descent
 * algorithm. The type of loss function, the lambda learning
 * reate parameter, and the number of features need to be specified in the
 * associated Task configuration file.
 *
 * <p>It uses the following options:
 * <ul>
 *  <li> Number of features (<b>-f</b>)
 *  <li> Rate of learning parameter (<b>-l</b>)
 *  <li> Loss function (<b>-o</b>), an object of type <tt>Loss</tt>-o 对应损失函数(Loss function parameter),可以是LogisticLoss,Squaredloss,HingeLoss或者PerceptronLoss
 *  <li> Regularizer (<b>-r</b>), an object of type <tt>Regularizer</tt>-r对应正则方法(Regularizer parameter)ZeroRegularizer, L1Regularizer或者L2Regularizer
 *  <li> Regularization parameter (<b>-p</b>)-p对应正则化参数(Regularization parameter)
 * </ul>
 */

-s对应数据的来源:
例子中通过从文件mydata读取数据生成DStream,周期为60秒,每一个RDD包含100个数据;
参数列表如下:


/**
 * FileReader is used to read data from one file of full data to simulate a stream data.
 *
 * <p>It uses the following options:
 * <ul>
 *  <li> Chunk size (<b>-k</b>)
 *  <li> Slide duration in milliseconds (<b>-d</b>)
 *  <li> Type of the instance to use, it should be "dense" or "sparse" (<b>-t</b>)
 *  <li> Data File Name (<b>-f</b>)
 *  <li> Data Header Format,uses weka's arff as default.(<b>-h</b>)
 * </ul>
 */

1>将log重定向到log文件,
2>将结果重定向到result文件。

之前博客运行的数据是mydata,我自己运行的是hyperplanesampledata,都在源码中data里面存在。

 ./spark.sh "EvaluatePrequential -l (SGDLearner -l 0.01 -p .001 -o LogisticLoss -r ZeroRegularizer -f 10) 
-s (FileReader -k 100 -d 60 -f ../data/hyperplanesampledata)" 1> ../log 2>../result

这是我跑程序的代码,其中比上面的多了一个-f 因为源码里面默认的是
特征个数默认是3 所以会经常报错误提示:java.lang.ArrayIndexOutOfBoundsException:4

val numFeaturesOption: IntOption = new IntOption("numFeatures", 'f',
  "Number of Features", 3, 1, Integer.MAX_VALUE)

当你数据特征大于3时候,因此非常有必要加上-f,这是我初步用-f解决的这个异常的错误,如有不正确希望提出。

其次就是官方文档中的写的感觉不好,可能是格式问题吧,我直接赋值粘贴过来跟源代码应该匹配的是不一样的。
这里写图片描述
上面的黄色圈起来的是官方文档的,下面的黄色圈起来是看源码得到的,有没有发现两个横杠不一样长呢?????下面那个短的是对的,如果写成上面的会报错的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值