[jvm-packages][spark]Preserve num classes (#2068)
* add back train method but mark as deprecated * fix scalastyle error * change class to object in examples * fix compilation error * bump spark version to 2.1 * preserve num_class issues * fix failed test cases * rivising * add multi class test
This commit is contained in:
parent
a92093388d
commit
ac30a0aff5
@ -97,7 +97,12 @@ class XGBoostEstimator private[spark](
|
||||
for (param <- params) {
|
||||
xgbParamMap += param.name -> $(param)
|
||||
}
|
||||
xgbParamMap.toMap
|
||||
val r = xgbParamMap.toMap
|
||||
if (!XGBoost.isClassificationTask(r) || $(numClasses) == 2) {
|
||||
r - "num_class"
|
||||
} else {
|
||||
r
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -110,19 +115,13 @@ class XGBoostEstimator private[spark](
|
||||
LabeledPoint(label, feature)
|
||||
}
|
||||
transformSchema(trainingSet.schema, logging = true)
|
||||
val trainedModel = XGBoost.trainWithRDD(instances, fromParamsToXGBParamMap,
|
||||
val derivedXGBoosterParamMap = fromParamsToXGBParamMap
|
||||
val trainedModel = XGBoost.trainWithRDD(instances, derivedXGBoosterParamMap,
|
||||
$(round), $(nWorkers), $(customObj), $(customEval), $(useExternalMemory),
|
||||
$(missing)).setParent(this)
|
||||
val returnedModel = copyValues(trainedModel)
|
||||
if (XGBoost.isClassificationTask(xgboostParams)) {
|
||||
val numClass = {
|
||||
if (xgboostParams.contains("num_class")) {
|
||||
xgboostParams("num_class").asInstanceOf[Int]
|
||||
} else {
|
||||
2
|
||||
}
|
||||
}
|
||||
returnedModel.asInstanceOf[XGBoostClassificationModel].numOfClasses = numClass
|
||||
if (XGBoost.isClassificationTask(derivedXGBoosterParamMap)) {
|
||||
returnedModel.asInstanceOf[XGBoostClassificationModel].numOfClasses = $(numClasses)
|
||||
}
|
||||
returnedModel
|
||||
}
|
||||
|
||||
@ -18,10 +18,15 @@ package ml.dmlc.xgboost4j.scala.spark.params
|
||||
|
||||
import scala.collection.immutable.HashSet
|
||||
|
||||
import org.apache.spark.ml.param.{DoubleParam, Param, Params}
|
||||
import org.apache.spark.ml.param.{DoubleParam, IntParam, Param, Params}
|
||||
|
||||
trait LearningTaskParams extends Params {
|
||||
|
||||
/**
|
||||
* number of tasks to learn
|
||||
*/
|
||||
val numClasses = new IntParam(this, "num_class", "number of classes")
|
||||
|
||||
/**
|
||||
* Specify the learning task and the corresponding learning objective.
|
||||
* options: reg:linear, reg:logistic, binary:logistic, binary:logitraw, count:poisson,
|
||||
@ -48,7 +53,7 @@ trait LearningTaskParams extends Params {
|
||||
s" {${LearningTaskParams.supportedEvalMetrics.mkString(",")}}",
|
||||
(value: String) => LearningTaskParams.supportedEvalMetrics.contains(value))
|
||||
|
||||
setDefault(objective -> "reg:linear", baseScore -> 0.5)
|
||||
setDefault(objective -> "reg:linear", baseScore -> 0.5, numClasses -> 2)
|
||||
}
|
||||
|
||||
private[spark] object LearningTaskParams {
|
||||
|
||||
366
jvm-packages/xgboost4j-spark/src/test/resources/dermatology.data
Normal file
366
jvm-packages/xgboost4j-spark/src/test/resources/dermatology.data
Normal file
@ -0,0 +1,366 @@
|
||||
2,2,0,3,0,0,0,0,1,0,0,0,0,0,0,3,2,0,0,0,0,0,0,0,0,0,0,3,0,0,0,1,0,55,2
|
||||
3,3,3,2,1,0,0,0,1,1,1,0,0,1,0,1,2,0,2,2,2,2,2,1,0,0,0,0,0,0,0,1,0,8,1
|
||||
2,1,2,3,1,3,0,3,0,0,0,1,0,0,0,1,2,0,2,0,0,0,0,0,2,0,2,3,2,0,0,2,3,26,3
|
||||
2,2,2,0,0,0,0,0,3,2,0,0,0,3,0,0,2,0,3,2,2,2,2,0,0,3,0,0,0,0,0,3,0,40,1
|
||||
2,3,2,2,2,2,0,2,0,0,0,1,0,0,0,1,2,0,0,0,0,0,0,0,2,2,3,2,3,0,0,2,3,45,3
|
||||
2,3,2,0,0,0,0,0,0,0,0,0,2,1,0,2,2,0,2,0,0,0,1,0,0,0,0,2,0,0,0,1,0,41,2
|
||||
2,1,0,2,0,0,0,0,0,0,0,0,0,0,3,1,3,0,0,0,2,0,0,0,0,0,0,0,0,0,0,2,0,18,5
|
||||
2,2,3,3,3,3,0,2,0,0,0,2,0,0,0,2,3,0,0,0,0,0,0,0,0,2,2,3,2,0,0,3,3,57,3
|
||||
2,2,1,0,2,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,0,0,0,0,0,2,0,0,0,2,0,22,4
|
||||
2,2,1,0,1,0,0,0,0,0,0,0,0,0,0,3,2,0,2,0,0,0,0,0,0,0,0,2,0,0,0,2,0,30,4
|
||||
3,3,2,1,1,0,0,0,2,2,1,0,0,0,0,0,3,2,3,2,2,2,1,1,0,0,0,0,0,0,0,1,0,20,1
|
||||
2,2,0,3,0,0,0,0,0,0,0,0,0,2,0,2,2,0,0,0,0,0,1,0,0,0,0,3,0,0,0,1,0,21,2
|
||||
3,3,1,2,0,0,0,0,0,1,0,0,0,2,0,3,1,0,1,0,0,0,0,0,0,0,0,2,0,0,0,1,0,22,2
|
||||
2,3,3,0,0,0,0,0,1,1,1,0,0,1,0,0,2,1,2,1,2,3,0,2,0,0,0,0,0,0,0,2,0,10,1
|
||||
2,2,3,3,0,3,0,2,0,0,0,2,0,0,0,1,1,1,1,0,0,0,0,0,2,0,3,0,3,0,0,1,3,65,3
|
||||
1,1,0,1,3,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,2,0,0,0,2,0,40,4
|
||||
2,2,1,3,0,0,0,0,0,0,0,0,0,2,0,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,30,2
|
||||
3,3,3,0,0,0,0,0,3,3,1,0,0,2,0,0,2,0,2,3,3,3,2,3,0,3,0,0,0,0,0,2,0,38,1
|
||||
2,1,3,3,3,3,0,0,2,0,0,3,0,0,0,3,2,0,1,0,0,0,0,0,3,0,2,0,3,0,0,2,3,23,3
|
||||
1,1,0,3,0,0,0,0,0,0,0,0,0,0,3,0,3,2,2,0,3,0,0,0,0,0,0,1,0,0,0,2,0,17,5
|
||||
2,1,1,2,0,0,3,0,1,2,0,0,0,1,0,0,1,2,2,0,1,0,1,0,0,0,0,0,0,1,2,1,0,8,6
|
||||
3,2,2,0,0,0,0,0,0,0,0,0,0,2,0,2,2,1,2,0,2,1,2,0,0,0,0,3,0,0,0,2,0,51,2
|
||||
2,2,0,2,0,0,0,0,0,0,0,0,0,0,1,1,3,1,2,0,2,1,0,0,0,0,0,1,0,1,0,2,0,42,5
|
||||
2,2,2,3,2,2,0,2,0,0,0,3,2,0,0,0,2,1,1,0,0,0,0,0,3,0,3,0,2,0,0,2,3,44,3
|
||||
2,0,0,3,0,0,0,0,0,0,0,0,0,0,2,2,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,2,0,22,5
|
||||
2,1,1,0,1,0,0,0,2,0,0,0,0,0,0,0,2,2,2,2,2,2,1,2,0,2,0,0,0,0,0,2,0,33,1
|
||||
1,1,0,1,0,0,3,0,1,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,0,0,1,0,2,2,1,0,10,6
|
||||
1,2,2,3,0,0,0,0,0,0,0,0,0,0,1,1,2,1,1,0,3,0,0,0,0,0,0,1,0,0,0,3,0,17,5
|
||||
3,2,2,2,0,0,0,0,0,0,0,0,0,2,0,3,3,3,2,0,0,0,0,0,0,0,0,2,0,1,1,2,0,43,2
|
||||
1,1,2,3,2,2,0,3,0,0,0,2,0,0,0,2,2,1,2,0,0,0,0,0,3,0,3,0,3,1,0,2,3,50,3
|
||||
3,2,1,2,0,0,0,0,1,2,0,0,0,1,0,0,2,0,3,2,2,2,1,2,0,2,0,0,0,0,0,1,0,50,1
|
||||
3,2,0,2,0,0,0,0,0,0,0,0,1,2,0,2,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,10,2
|
||||
2,3,3,3,3,0,0,0,3,3,0,0,0,0,0,0,3,2,2,3,3,3,1,3,0,0,0,0,0,0,0,1,0,34,1
|
||||
2,2,1,0,0,0,0,0,1,0,1,0,0,2,0,0,2,1,2,2,1,2,0,1,0,0,0,0,0,0,0,0,0,?,1
|
||||
2,1,0,0,2,0,0,0,0,0,0,0,0,0,0,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,?,4
|
||||
2,2,1,2,0,0,0,0,0,0,0,0,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,?,2
|
||||
2,1,2,3,2,3,0,2,0,0,1,1,0,0,0,2,1,1,2,0,0,0,0,0,1,0,2,0,2,0,0,0,3,?,3
|
||||
2,1,1,1,0,0,0,0,0,0,0,0,0,1,0,3,2,1,0,0,0,0,2,0,0,0,0,2,0,0,0,1,0,15,2
|
||||
2,1,2,3,2,1,0,2,0,0,0,0,0,0,0,2,2,2,1,0,0,0,0,0,2,0,1,0,3,0,0,2,3,26,3
|
||||
3,3,2,0,0,0,0,0,2,2,1,0,0,1,0,0,2,2,3,2,2,1,0,2,0,0,0,0,0,0,0,1,0,46,1
|
||||
1,1,1,0,0,0,1,0,0,0,0,0,1,1,0,2,1,1,1,0,0,0,0,0,0,0,0,3,0,0,0,1,0,51,2
|
||||
1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,2,0,0,0,2,0,62,4
|
||||
3,2,1,1,0,0,0,0,2,1,0,0,0,0,0,0,2,1,1,1,1,1,0,1,0,0,0,0,0,0,0,1,0,15,1
|
||||
2,1,1,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,2,0,0,0,2,0,35,2
|
||||
0,1,0,3,0,0,0,0,0,0,0,0,0,0,2,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,30,5
|
||||
2,1,1,1,1,2,0,1,0,0,0,2,0,0,0,3,2,1,1,0,0,0,0,0,2,0,2,0,2,0,0,3,3,48,3
|
||||
2,1,1,3,3,0,0,0,0,0,0,0,0,0,0,2,2,1,1,0,0,0,0,0,0,0,0,1,0,0,0,2,0,46,4
|
||||
2,1,1,1,0,0,2,0,3,2,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,12,6
|
||||
1,2,1,1,0,0,0,0,0,1,0,0,0,0,0,2,1,0,1,0,0,0,0,0,0,0,0,2,0,0,0,0,2,52,2
|
||||
2,0,1,0,0,2,0,1,0,0,0,3,0,0,0,2,2,2,2,0,0,0,0,0,1,0,3,0,2,0,0,2,2,60,3
|
||||
3,1,1,2,2,2,0,0,0,0,0,2,0,0,0,2,1,0,1,0,0,0,0,0,1,0,2,0,3,0,0,2,3,32,3
|
||||
1,1,1,0,2,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,35,4
|
||||
2,2,1,0,0,0,0,0,2,2,0,0,0,1,0,0,2,1,1,1,2,2,1,2,0,0,0,0,0,0,0,1,0,41,1
|
||||
3,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,1,0,2,2,2,3,0,3,0,0,0,0,0,0,0,2,0,48,1
|
||||
0,1,0,2,0,0,0,0,0,0,0,0,0,0,3,1,2,1,0,0,1,0,0,0,0,0,0,0,0,0,0,3,0,51,5
|
||||
2,2,2,0,0,0,0,0,0,1,0,0,0,0,0,1,2,0,2,1,3,2,0,1,0,0,0,0,0,0,0,1,0,19,1
|
||||
1,1,1,2,0,0,0,0,0,0,0,0,1,1,0,3,1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,22,2
|
||||
2,1,1,3,0,3,0,1,0,0,0,1,0,0,0,2,2,0,1,0,0,0,0,0,1,0,3,0,1,0,0,2,2,29,3
|
||||
1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,1,0,0,0,1,0,25,4
|
||||
3,3,0,3,0,0,0,0,0,0,0,0,1,1,0,3,1,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,33,2
|
||||
2,2,1,1,0,0,1,0,1,1,1,0,0,0,0,1,2,1,1,1,1,0,0,0,0,0,0,1,0,1,1,1,0,8,6
|
||||
2,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,2,2,2,2,2,2,0,1,0,1,0,0,0,0,0,1,0,40,1
|
||||
1,1,0,1,0,0,0,0,0,0,0,0,0,0,2,1,3,0,2,0,2,0,0,0,0,0,0,0,0,0,0,1,0,33,5
|
||||
3,3,2,1,1,0,0,0,2,2,1,0,0,0,0,0,3,2,3,2,2,2,1,1,0,0,0,0,0,0,0,1,0,42,1
|
||||
2,2,0,3,0,0,0,0,0,0,0,0,0,2,0,3,1,0,1,0,0,0,0,0,0,0,0,2,0,0,0,2,0,36,2
|
||||
3,2,2,2,0,2,0,1,0,0,0,2,0,0,0,1,1,1,1,0,0,0,0,0,2,0,2,0,2,0,0,1,3,60,3
|
||||
2,2,2,0,0,0,0,0,2,2,0,0,0,1,0,0,2,0,2,3,3,3,1,3,0,3,0,0,0,0,0,3,0,36,1
|
||||
1,1,0,1,3,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,2,0,0,0,2,0,21,4
|
||||
3,3,3,2,0,0,0,0,0,0,0,0,0,0,3,2,2,2,2,0,2,0,0,0,0,0,0,0,0,0,0,3,0,40,5
|
||||
3,3,3,0,1,0,0,0,2,0,0,0,0,0,0,1,1,2,2,2,2,2,0,0,0,0,0,0,0,0,0,2,0,21,1
|
||||
2,2,2,1,0,0,0,0,0,0,0,0,0,1,0,1,2,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,34,2
|
||||
2,1,2,0,0,0,3,0,3,0,0,0,0,0,0,2,2,1,2,0,0,0,0,0,0,0,0,0,0,3,3,0,0,13,6
|
||||
1,1,1,1,1,0,0,1,0,0,0,2,0,0,0,3,1,0,1,0,0,0,0,0,2,0,2,0,2,0,0,2,3,52,3
|
||||
1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,0,1,0,0,0,0,0,0,0,0,0,0,2,0,48,5
|
||||
2,1,2,2,1,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,2,0,0,0,1,0,17,4
|
||||
3,2,1,2,0,0,0,0,0,0,0,0,0,2,0,2,1,0,2,0,0,0,0,0,0,0,0,2,0,0,0,2,0,25,2
|
||||
2,2,2,1,0,0,0,0,0,0,0,0,0,2,0,1,2,0,3,0,0,0,0,0,0,0,0,3,0,0,0,0,0,33,2
|
||||
2,1,2,2,2,0,0,0,0,0,0,0,1,2,0,2,2,2,2,2,2,1,1,1,0,0,0,0,0,0,0,3,0,62,1
|
||||
0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,3,1,1,1,0,0,0,0,0,2,0,3,3,3,0,0,3,3,52,3
|
||||
2,2,1,2,0,0,0,0,0,0,0,0,0,0,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,27,5
|
||||
3,2,2,2,2,0,0,0,0,0,0,0,0,1,0,0,2,1,1,1,2,1,1,1,0,0,0,0,0,0,0,2,0,40,1
|
||||
3,2,2,2,0,0,0,0,0,0,0,0,0,3,0,2,2,0,3,0,0,0,0,0,0,0,0,2,0,0,0,1,0,31,2
|
||||
2,1,1,2,0,0,0,0,0,0,0,0,0,2,0,3,2,0,2,0,0,0,0,0,0,0,0,3,0,0,0,3,0,27,2
|
||||
3,2,2,1,0,0,0,0,0,0,0,0,0,1,0,2,1,0,2,0,0,0,0,0,0,0,0,2,0,0,0,2,0,10,2
|
||||
1,1,2,3,0,0,0,0,0,0,0,0,0,0,3,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,55,5
|
||||
2,2,2,3,3,0,0,0,0,2,0,0,1,2,0,1,1,1,1,1,1,1,1,2,0,0,0,0,0,0,0,2,0,30,1
|
||||
3,3,2,2,1,0,0,0,0,1,0,0,2,2,0,1,2,1,1,1,2,1,2,1,0,0,0,0,0,0,0,2,0,42,1
|
||||
2,1,2,1,1,0,0,2,0,0,0,2,0,0,0,2,2,0,2,0,0,0,0,0,3,0,3,0,3,0,0,3,3,48,3
|
||||
0,1,2,1,1,0,1,0,2,3,0,0,0,1,0,0,3,1,2,3,3,3,1,1,0,0,0,0,0,0,0,2,0,22,1
|
||||
1,1,1,0,2,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,2,0,0,0,1,0,31,4
|
||||
3,2,1,3,0,0,0,0,0,0,1,0,1,2,0,3,2,0,1,0,1,0,0,0,0,0,0,3,0,0,0,1,0,50,2
|
||||
2,1,0,2,0,0,0,0,0,0,0,0,1,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,43,2
|
||||
1,1,1,3,0,0,1,0,0,0,0,0,0,0,2,1,3,1,1,0,2,0,0,0,0,0,0,1,0,0,0,2,0,30,5
|
||||
3,3,3,3,3,0,0,0,3,3,1,0,0,1,0,0,2,1,2,2,2,2,2,2,0,1,0,0,0,0,0,2,0,42,1
|
||||
2,1,1,3,2,2,0,2,0,0,0,2,0,0,0,2,2,0,1,0,0,0,0,0,2,0,3,0,2,0,0,3,3,22,3
|
||||
2,1,0,2,2,0,0,0,0,0,0,0,0,0,0,3,1,1,1,0,0,0,0,0,0,1,0,2,0,0,0,1,0,18,4
|
||||
2,2,1,2,0,0,0,0,0,0,0,0,0,1,0,3,2,0,1,0,0,0,0,0,0,0,0,3,0,0,0,2,0,35,2
|
||||
1,1,1,0,0,0,0,0,0,0,0,0,0,0,3,0,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,1,0,60,5
|
||||
2,2,2,2,2,0,0,0,2,1,0,0,0,0,0,2,0,2,2,2,2,2,1,1,0,0,0,0,0,0,0,1,0,28,1
|
||||
2,2,1,0,0,0,2,0,2,0,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,13,6
|
||||
2,2,1,1,0,0,0,0,1,0,0,0,1,1,0,2,2,1,1,0,1,0,1,0,0,0,0,2,0,0,0,1,0,20,2
|
||||
1,1,2,0,0,0,0,0,0,0,0,0,0,0,3,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,64,5
|
||||
3,3,3,2,2,0,0,0,2,2,0,0,0,1,0,0,1,0,1,1,1,1,1,1,0,2,0,0,0,0,0,3,0,43,1
|
||||
2,3,1,2,0,0,0,0,0,0,0,0,1,0,0,3,2,0,2,0,2,0,0,0,0,0,0,2,0,0,0,1,0,20,2
|
||||
1,2,2,1,0,0,0,0,0,0,0,0,2,0,0,2,3,0,1,0,1,0,0,0,0,0,0,1,0,0,0,2,0,34,2
|
||||
2,2,2,2,2,0,0,0,2,2,1,0,0,1,0,0,2,1,2,2,2,1,0,2,0,0,1,0,0,0,0,1,0,39,1
|
||||
1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,2,0,0,0,2,0,60,4
|
||||
1,1,1,1,1,0,0,0,1,1,0,0,0,2,0,0,1,2,1,1,1,2,0,3,0,0,0,0,0,0,0,2,0,38,1
|
||||
2,2,3,2,1,3,0,2,0,0,0,2,0,0,0,2,3,0,0,0,0,0,0,0,2,0,3,0,2,0,0,2,3,44,3
|
||||
3,2,1,2,2,0,0,0,2,2,0,0,0,1,0,0,2,3,2,2,2,3,0,3,0,0,0,0,0,0,0,3,1,36,1
|
||||
2,2,2,3,2,0,0,0,3,3,0,0,0,1,0,0,2,0,2,2,2,2,2,2,0,1,0,0,0,0,0,2,0,41,1
|
||||
2,2,2,3,2,2,0,2,0,0,0,3,0,0,0,3,2,0,1,0,0,0,0,0,2,0,3,2,3,0,0,3,3,18,3
|
||||
1,1,2,0,0,0,0,0,0,0,0,0,0,0,3,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,2,0,39,5
|
||||
2,2,3,2,3,3,0,3,0,0,0,2,0,0,0,2,3,0,2,0,0,0,0,0,3,0,2,2,2,0,0,2,2,40,3
|
||||
1,1,1,2,2,2,0,2,0,0,0,2,0,0,0,2,2,0,1,0,0,0,0,0,2,0,2,0,2,0,0,3,3,47,3
|
||||
2,2,2,3,0,0,1,0,0,0,0,0,0,0,3,1,2,2,2,0,2,0,0,0,0,0,0,0,0,0,0,1,0,16,5
|
||||
2,2,1,2,0,0,0,0,0,0,0,0,0,1,0,2,2,0,2,0,0,0,0,0,0,0,0,2,0,0,0,2,0,27,2
|
||||
2,2,3,2,2,2,0,3,0,0,0,2,0,0,2,2,2,0,1,0,0,0,0,0,2,0,3,3,2,0,0,2,2,52,3
|
||||
2,2,0,2,2,0,0,0,0,0,0,0,0,0,0,3,0,0,2,0,0,0,0,0,0,0,0,3,0,0,0,2,0,25,4
|
||||
1,1,1,1,1,0,0,0,2,2,0,0,0,2,0,0,2,1,1,2,2,1,0,2,0,0,0,0,0,0,0,0,2,0,1
|
||||
3,3,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,1,0,0,0,0,0,0,3,0,0,0,2,0,33,2
|
||||
2,2,2,1,0,0,2,0,0,0,0,0,0,0,3,1,3,2,2,0,2,0,0,0,0,0,0,0,0,0,0,2,0,46,5
|
||||
1,1,2,0,0,0,3,0,3,0,1,0,0,0,0,2,1,1,1,1,0,0,0,0,0,0,0,0,0,2,2,2,0,7,6
|
||||
2,3,3,3,3,0,0,0,2,1,0,0,0,0,0,2,2,1,3,3,3,3,0,0,0,0,0,0,0,0,0,2,0,30,1
|
||||
3,2,2,2,2,0,0,0,0,3,0,0,0,2,0,0,3,1,3,3,3,2,0,1,0,0,0,0,0,0,0,2,0,29,1
|
||||
2,2,1,1,0,0,0,0,0,0,0,0,0,1,0,2,3,0,2,0,0,0,0,0,0,0,0,2,0,0,0,1,0,23,2
|
||||
2,2,2,0,0,0,2,0,2,0,0,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2,0,8,6
|
||||
2,2,2,2,3,2,0,3,0,0,0,3,0,0,0,3,2,0,1,0,0,0,0,0,2,0,3,0,3,0,0,3,3,44,3
|
||||
1,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,3,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,17,5
|
||||
2,1,0,2,2,0,0,0,0,0,0,0,0,0,0,2,1,1,1,0,0,0,0,0,0,0,0,2,0,0,0,1,0,16,4
|
||||
1,1,2,2,2,0,2,0,1,2,0,0,0,1,0,0,2,1,2,3,3,3,2,2,0,0,0,0,0,0,0,2,0,55,1
|
||||
2,2,2,3,2,0,0,0,1,1,0,0,0,1,0,0,1,1,1,1,1,1,1,1,0,2,0,0,0,0,0,3,0,40,1
|
||||
3,2,2,1,3,3,0,3,0,0,0,3,0,0,0,3,2,0,3,0,0,0,0,0,2,0,3,3,3,0,0,2,2,34,3
|
||||
2,2,1,0,0,0,0,0,0,0,0,0,0,0,2,0,3,0,0,0,2,0,0,0,0,0,0,0,0,0,0,3,0,29,5
|
||||
3,2,2,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,2,0,34,5
|
||||
1,1,1,1,1,0,1,0,2,3,0,0,0,1,0,0,2,2,1,2,2,2,2,2,0,0,0,0,0,0,0,3,0,25,1
|
||||
2,2,0,2,1,0,0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,3,0,0,0,3,0,70,4
|
||||
3,3,2,1,0,0,0,0,0,0,0,0,2,0,0,2,3,0,2,0,2,0,0,0,0,0,0,2,0,0,0,1,0,37,2
|
||||
2,3,2,3,3,3,0,2,0,0,0,3,0,0,0,3,2,0,3,0,0,0,0,0,3,0,2,2,2,0,0,2,2,41,3
|
||||
3,3,3,3,2,0,0,0,0,0,0,0,0,1,0,0,2,1,1,1,2,1,1,2,0,0,0,0,0,0,0,2,0,32,1
|
||||
2,2,1,2,2,0,0,0,0,0,0,0,0,1,0,1,2,0,1,0,0,0,0,0,0,0,0,2,0,0,0,2,0,20,2
|
||||
2,3,1,2,1,0,0,0,0,0,0,0,0,2,0,0,1,0,0,2,1,2,2,0,0,0,0,0,0,0,0,2,0,19,1
|
||||
3,2,2,3,2,0,0,0,0,2,0,0,0,2,0,2,2,1,2,3,3,3,3,1,0,0,0,0,0,0,0,3,0,61,1
|
||||
2,1,1,3,2,2,0,2,0,0,0,0,0,0,2,3,0,2,0,0,0,0,0,3,0,2,0,2,2,0,0,3,2,27,3
|
||||
1,1,2,3,2,3,0,3,0,0,0,2,0,0,0,2,2,0,2,0,0,0,0,0,2,0,3,2,3,0,0,2,3,36,3
|
||||
2,2,3,3,1,2,0,2,0,0,0,1,0,0,0,3,3,0,2,0,0,0,0,0,3,0,2,1,2,0,0,2,3,40,3
|
||||
3,2,0,3,0,0,0,0,0,0,0,0,1,1,0,3,2,0,1,0,0,0,0,0,0,0,0,3,0,0,0,2,0,52,2
|
||||
1,1,0,3,0,0,0,0,0,0,0,0,1,0,2,0,3,0,1,0,2,0,0,0,0,0,0,0,0,0,0,1,0,27,5
|
||||
2,2,2,0,2,0,0,0,0,0,0,0,0,0,0,2,2,0,2,0,0,0,0,0,0,0,0,2,0,0,0,1,0,30,4
|
||||
2,3,0,2,0,0,0,0,0,0,0,0,0,0,0,3,2,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,45,2
|
||||
1,2,0,3,0,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,34,2
|
||||
2,3,2,1,0,0,0,0,1,2,1,0,0,1,0,2,1,0,1,2,2,1,1,0,0,0,0,0,0,0,0,2,0,27,1
|
||||
3,3,2,2,0,0,0,0,2,0,0,0,0,1,0,2,1,0,2,1,1,1,1,0,0,0,0,0,0,0,0,2,0,46,1
|
||||
2,2,2,0,0,0,0,0,1,0,0,0,0,2,0,1,3,0,1,2,2,1,0,0,0,0,0,0,0,0,0,1,0,52,1
|
||||
1,0,1,2,0,0,0,0,0,0,0,0,0,0,3,0,3,1,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,28,5
|
||||
2,1,1,1,0,2,0,2,0,0,0,2,0,0,0,2,2,0,2,0,0,0,0,0,1,0,2,2,2,0,0,3,3,40,3
|
||||
2,3,0,2,0,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,55,2
|
||||
3,3,2,2,0,3,0,2,0,0,0,2,0,0,0,2,2,0,2,0,0,0,0,0,2,0,2,3,3,0,0,2,3,32,3
|
||||
2,2,1,2,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,33,2
|
||||
3,2,2,1,0,0,0,0,0,0,0,0,0,0,0,1,2,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,47,2
|
||||
2,1,2,0,2,0,0,0,0,0,0,0,0,0,0,2,2,0,1,0,0,0,0,0,0,0,0,2,0,0,0,1,0,35,4
|
||||
2,1,1,2,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,61,2
|
||||
3,2,2,2,0,2,0,2,0,0,0,2,0,0,0,2,2,0,2,0,0,0,0,0,2,0,1,1,1,0,0,2,2,22,3
|
||||
2,2,0,0,0,0,2,0,1,1,1,0,0,0,0,2,2,0,1,0,0,0,0,0,0,0,0,1,0,1,2,1,0,10,6
|
||||
3,2,0,2,0,0,0,0,0,0,0,0,0,1,0,2,2,0,1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,20,2
|
||||
3,2,2,3,1,0,0,0,1,1,1,0,0,2,0,0,2,0,2,2,3,2,1,1,0,0,0,0,0,0,0,1,0,55,1
|
||||
2,3,2,2,1,0,0,0,2,2,0,0,0,2,0,0,2,0,3,3,3,2,2,2,0,0,0,0,0,0,0,2,0,67,1
|
||||
2,2,3,3,1,2,0,2,0,0,0,2,0,0,0,3,2,0,2,0,0,0,0,0,2,0,2,0,0,0,0,2,3,51,3
|
||||
2,2,2,0,2,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,0,0,0,1,0,2,0,0,0,1,0,20,4
|
||||
2,2,3,3,1,3,0,2,0,0,0,3,0,0,0,2,3,0,2,0,0,0,0,0,2,0,3,2,2,0,0,3,3,22,3
|
||||
1,1,2,3,1,2,0,2,0,0,0,1,0,0,0,1,3,0,1,0,0,0,0,0,1,0,2,2,3,0,0,2,3,45,3
|
||||
2,3,2,0,0,0,0,0,2,2,0,0,0,2,0,0,2,0,2,3,2,1,3,0,0,2,0,0,0,0,0,2,0,55,1
|
||||
3,2,3,0,0,0,0,0,3,0,0,0,0,3,0,0,1,0,1,2,2,0,2,0,0,3,0,0,0,0,0,1,0,56,1
|
||||
3,3,3,0,0,0,0,0,2,0,0,0,0,2,0,0,2,0,2,2,3,0,3,0,0,2,0,0,0,0,0,2,0,18,1
|
||||
3,2,2,2,0,2,0,2,0,0,0,2,0,0,0,2,3,0,3,0,0,0,0,0,2,0,2,3,2,0,0,2,3,40,3
|
||||
2,2,2,0,0,0,0,0,3,2,0,0,0,2,0,0,2,0,2,2,3,2,3,0,0,2,0,0,0,0,0,3,0,30,1
|
||||
3,2,3,0,0,0,0,0,2,2,0,0,0,2,0,0,3,0,2,2,2,3,3,0,0,2,0,0,0,0,0,2,0,33,1
|
||||
2,2,0,3,0,0,0,0,0,0,0,0,0,2,0,3,3,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,40,2
|
||||
1,2,2,2,0,3,0,2,0,0,0,2,0,0,0,3,2,0,2,0,0,0,0,0,3,0,2,2,2,0,0,2,2,42,3
|
||||
2,2,2,2,0,2,0,3,0,0,0,3,0,0,0,3,3,0,3,0,0,0,0,0,3,0,3,3,3,0,0,2,2,36,3
|
||||
2,3,2,0,0,0,0,0,2,0,0,0,0,3,0,0,3,0,2,2,2,0,2,0,0,0,0,0,0,0,0,2,0,27,1
|
||||
3,2,2,0,0,0,0,0,0,0,0,0,0,2,0,0,2,0,1,0,2,2,0,0,0,0,0,0,0,0,0,2,0,56,1
|
||||
1,3,1,0,0,0,0,0,0,0,0,0,0,2,0,0,2,0,2,0,3,3,0,0,0,0,0,0,0,0,0,3,0,60,1
|
||||
2,2,2,0,0,0,0,0,0,0,0,0,0,3,0,0,3,0,3,0,3,3,0,0,0,0,0,0,0,0,0,2,0,20,1
|
||||
2,2,1,0,0,0,3,0,2,0,1,0,0,0,0,2,2,1,2,0,0,0,0,0,0,0,0,2,0,3,3,2,0,7,6
|
||||
2,2,0,2,0,0,0,0,0,0,0,0,0,1,0,3,2,0,0,0,0,0,0,0,0,0,0,3,0,0,0,1,0,30,2
|
||||
3,2,0,3,0,0,0,0,0,0,0,0,0,2,0,2,2,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,19,2
|
||||
2,3,0,2,0,0,0,0,0,0,0,0,0,2,0,3,3,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,52,2
|
||||
3,2,0,2,0,0,0,0,0,0,1,0,0,2,0,2,2,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,55,2
|
||||
2,2,2,0,0,0,0,0,3,0,0,0,0,2,0,0,2,0,2,2,2,0,2,0,0,2,0,0,0,0,0,2,0,23,1
|
||||
2,1,2,3,1,2,0,2,0,0,0,2,0,0,0,1,3,0,2,0,0,0,0,0,2,0,2,0,3,0,0,3,2,50,3
|
||||
2,3,3,3,0,3,0,3,0,0,0,2,0,0,0,2,1,0,2,0,0,0,0,0,2,0,2,0,3,0,0,2,2,38,3
|
||||
3,2,2,2,0,2,0,0,0,0,0,2,0,0,0,3,2,0,3,0,0,0,0,0,2,0,3,0,2,0,0,3,3,25,3
|
||||
2,2,2,0,0,0,0,0,2,2,1,0,0,2,0,0,2,0,3,3,2,2,2,1,0,2,0,0,0,0,0,2,0,18,1
|
||||
3,2,2,0,0,0,0,0,3,3,1,0,0,3,0,0,3,0,2,3,2,3,2,0,0,3,0,0,0,0,0,2,0,35,1
|
||||
2,2,1,2,0,0,0,0,0,0,0,0,1,1,0,2,2,0,1,0,0,0,1,0,0,0,0,3,0,0,0,2,0,22,2
|
||||
3,2,3,3,1,2,0,2,0,0,0,3,0,0,0,2,2,0,2,0,0,0,0,0,1,0,2,0,2,0,0,2,3,52,3
|
||||
3,2,2,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,2,0,0,0,1,0,0,0,0,2,0,0,0,2,0,50,2
|
||||
2,2,2,0,0,0,0,0,0,0,0,0,1,2,0,2,0,0,1,0,0,0,0,0,0,0,0,2,0,0,0,1,0,33,2
|
||||
3,2,1,0,0,0,0,0,0,0,0,0,1,1,0,2,0,0,2,0,0,0,0,0,0,0,0,2,0,0,0,1,0,44,2
|
||||
1,1,0,2,0,0,1,0,0,0,0,0,0,0,2,1,2,1,0,0,1,0,0,0,0,0,0,0,0,0,0,2,0,18,5
|
||||
1,1,0,1,0,0,2,0,0,0,0,0,0,0,1,2,1,2,0,0,2,0,0,0,0,0,0,0,0,0,0,2,0,25,5
|
||||
2,2,0,2,0,0,1,0,0,0,0,0,0,0,2,1,2,1,0,0,2,0,0,0,0,0,0,0,0,0,0,3,0,52,5
|
||||
1,1,0,1,0,0,2,0,0,0,0,0,0,0,2,2,1,2,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,35,5
|
||||
2,2,0,2,0,0,1,0,0,0,0,0,0,0,1,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,40,5
|
||||
3,2,2,0,0,0,0,0,2,2,1,0,0,2,0,0,3,2,1,2,2,2,1,1,0,0,0,0,0,0,0,2,0,55,1
|
||||
2,3,2,0,1,0,0,0,2,3,0,0,0,2,0,0,2,3,1,2,2,2,1,1,0,0,0,0,0,0,0,1,0,20,1
|
||||
3,2,2,0,2,0,0,0,3,2,0,0,0,3,0,0,3,2,2,2,2,2,1,0,0,0,0,0,0,0,0,2,0,60,1
|
||||
2,3,2,0,0,0,0,0,2,3,0,0,0,2,0,0,2,2,2,2,2,3,2,1,0,0,0,0,0,0,0,2,0,33,1
|
||||
2,3,2,0,0,0,0,0,3,2,0,0,0,2,0,0,3,2,3,2,2,3,2,1,0,0,0,0,0,0,0,2,0,27,1
|
||||
3,2,2,0,0,0,0,0,2,2,0,0,0,2,0,0,3,1,2,3,3,2,3,0,0,0,0,0,0,0,0,2,0,50,1
|
||||
2,3,2,0,0,0,0,0,3,2,0,0,0,2,0,0,2,1,2,3,3,2,2,0,0,0,0,0,0,0,0,1,0,70,1
|
||||
2,2,2,3,1,2,0,2,0,0,0,2,0,0,0,2,2,0,1,0,0,0,0,0,2,2,2,1,3,0,0,2,3,28,3
|
||||
2,2,2,2,1,3,0,2,0,0,0,2,0,0,0,3,2,0,0,0,0,0,0,0,3,2,2,2,2,0,0,3,3,30,3
|
||||
3,2,3,2,2,2,0,2,0,0,0,3,0,0,0,2,3,0,1,0,0,0,0,0,2,1,2,2,1,0,0,2,3,53,3
|
||||
2,3,2,3,3,2,0,2,0,0,0,2,0,0,0,3,2,0,0,0,0,0,0,0,3,2,2,1,2,0,0,2,2,27,3
|
||||
2,2,3,2,2,2,0,3,0,0,0,3,0,0,0,2,3,0,0,0,0,0,0,0,2,2,3,2,2,0,0,2,3,50,3
|
||||
3,2,2,3,3,3,0,2,0,0,0,2,0,0,0,2,3,0,0,0,0,0,0,0,2,2,2,2,2,0,0,2,2,42,3
|
||||
3,2,1,0,2,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,45,4
|
||||
2,2,1,0,1,0,0,0,0,0,0,0,0,0,0,3,2,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,35,4
|
||||
3,1,1,0,1,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,30,4
|
||||
2,2,2,1,2,0,0,0,0,0,0,0,0,0,0,3,2,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,42,4
|
||||
1,1,1,3,0,0,0,0,0,0,0,0,0,0,2,1,3,0,1,0,2,0,0,0,0,0,0,0,0,0,0,2,0,18,5
|
||||
2,1,2,2,0,0,0,0,0,0,0,0,0,0,3,0,3,0,2,0,2,0,0,0,0,0,0,2,0,0,0,1,0,25,5
|
||||
2,1,3,3,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,0,0,0,0,0,1,0,0,0,1,0,36,5
|
||||
2,1,2,2,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,40,5
|
||||
1,2,1,1,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,2,0,35,5
|
||||
1,1,1,2,0,0,0,0,0,0,0,0,0,0,3,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,2,0,19,5
|
||||
2,1,2,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,1,0,50,5
|
||||
2,2,0,2,0,0,0,0,0,0,0,0,1,1,0,2,2,0,2,0,0,0,0,0,0,0,0,3,0,0,0,2,0,47,2
|
||||
3,2,0,1,0,0,0,0,0,1,0,0,2,2,0,3,2,0,2,0,0,0,0,0,0,0,0,2,0,0,0,3,0,30,2
|
||||
2,3,0,3,0,0,0,0,0,2,0,0,2,2,0,2,3,0,3,0,0,0,0,0,0,0,0,2,0,0,0,2,0,42,2
|
||||
3,2,0,2,0,0,0,0,0,2,0,0,2,2,0,2,2,0,2,0,0,0,0,0,0,0,0,1,0,0,0,2,0,55,2
|
||||
2,2,2,1,1,0,0,0,2,0,1,0,0,2,0,1,2,1,2,2,2,2,1,1,0,1,0,0,0,0,0,2,0,60,1
|
||||
3,2,3,0,1,0,0,0,1,2,0,0,0,2,0,2,1,2,1,1,1,1,1,1,0,2,0,0,0,0,0,2,0,65,1
|
||||
2,2,2,1,0,0,0,0,0,1,1,0,0,1,0,2,1,2,2,2,1,2,0,0,0,1,0,0,0,0,0,2,0,47,1
|
||||
3,2,3,2,0,0,0,0,0,2,1,0,0,0,0,2,1,3,2,2,2,2,0,0,0,3,0,0,0,0,0,3,0,35,1
|
||||
2,2,1,1,0,0,0,0,0,2,1,0,0,0,0,2,2,2,2,1,2,2,0,0,0,2,0,0,0,0,0,2,0,52,1
|
||||
2,2,2,2,0,0,0,0,0,1,0,0,0,0,0,2,2,3,2,2,1,1,0,0,0,2,0,0,0,0,0,1,0,60,1
|
||||
2,2,2,1,0,0,2,0,2,2,1,0,0,0,0,1,2,0,2,0,0,0,0,0,0,0,0,2,0,2,2,2,0,7,6
|
||||
3,2,0,0,0,0,2,0,2,2,0,0,0,0,0,2,1,0,2,0,0,0,0,0,0,0,0,1,0,2,3,3,0,8,6
|
||||
2,2,2,3,0,0,0,0,2,2,1,0,0,1,0,0,2,1,2,3,3,3,0,1,0,2,0,0,0,0,0,1,0,25,1
|
||||
3,2,2,3,0,0,0,0,2,0,0,0,0,2,0,0,2,2,2,2,2,2,0,2,0,2,0,0,0,0,0,1,0,60,1
|
||||
2,2,2,2,0,0,0,0,2,2,1,0,0,1,0,0,3,0,3,2,2,2,0,2,0,2,0,0,0,0,0,2,0,50,1
|
||||
2,1,2,0,0,0,0,0,3,2,1,0,0,2,0,0,2,0,2,3,2,2,0,2,0,3,0,0,0,0,0,2,0,33,1
|
||||
3,3,3,0,0,0,0,0,2,3,0,0,0,1,0,0,3,0,3,3,3,3,0,1,0,3,0,0,0,0,0,3,0,27,1
|
||||
2,2,2,0,0,0,0,0,2,3,0,0,0,2,0,0,2,0,2,3,2,2,0,2,0,2,0,0,0,0,0,2,0,55,1
|
||||
2,2,2,0,0,0,0,0,2,2,0,0,0,2,0,0,2,0,2,2,2,2,0,2,0,2,0,0,0,0,0,2,0,62,1
|
||||
3,2,2,0,0,0,0,0,0,1,1,0,0,2,0,0,2,0,1,1,2,2,1,0,0,2,0,0,0,0,0,2,0,19,1
|
||||
2,1,1,2,2,2,0,2,0,0,0,2,1,0,0,3,2,1,1,0,0,0,0,0,2,0,2,2,3,0,0,2,3,50,3
|
||||
2,2,2,2,3,3,0,2,0,0,0,2,0,0,0,2,3,1,1,0,0,0,0,0,2,0,2,3,2,0,0,3,2,40,3
|
||||
2,2,2,2,1,2,0,2,0,0,0,2,1,0,0,3,2,1,1,0,0,0,0,0,2,0,2,2,3,0,0,2,3,62,3
|
||||
2,2,2,2,1,2,0,2,0,0,0,3,1,0,0,2,2,1,1,0,0,0,0,0,2,0,2,3,2,0,0,2,3,36,3
|
||||
2,1,2,2,0,3,0,2,0,0,0,2,1,0,0,3,2,1,1,0,0,0,0,0,2,0,2,3,2,0,0,3,2,27,3
|
||||
3,1,2,3,0,3,0,0,0,1,0,2,1,0,0,2,3,1,2,0,0,0,0,0,1,0,3,2,3,0,0,2,2,47,3
|
||||
2,1,2,2,0,2,0,0,0,1,0,1,1,0,0,2,3,1,2,0,0,0,0,0,2,0,2,2,2,0,0,2,2,50,3
|
||||
2,1,1,0,1,0,0,0,0,0,0,0,0,0,0,2,2,0,1,0,0,0,0,0,0,1,0,2,0,0,0,1,0,35,4
|
||||
3,2,1,1,0,0,0,0,0,0,0,0,1,0,0,3,2,1,1,0,0,0,0,0,0,1,0,1,0,0,0,2,0,25,4
|
||||
1,2,2,0,1,0,0,0,0,0,0,0,0,1,0,2,2,2,1,0,0,0,0,0,0,1,0,2,0,0,0,1,0,60,4
|
||||
2,2,2,0,1,0,0,0,0,0,0,0,0,0,0,2,2,1,1,0,0,0,0,0,0,0,0,2,0,0,0,2,0,22,4
|
||||
1,2,2,0,1,0,0,0,0,0,0,0,0,0,0,3,2,2,1,0,0,0,0,0,0,1,0,2,0,0,0,2,0,35,4
|
||||
2,2,2,1,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,1,0,0,0,2,0,36,4
|
||||
2,1,0,2,0,0,0,0,0,0,0,0,0,0,2,1,3,2,2,1,3,0,0,0,0,0,0,2,0,0,0,3,0,?,5
|
||||
1,1,1,3,0,0,0,0,0,0,0,0,0,0,3,2,3,1,2,2,2,0,0,0,0,0,0,3,0,0,0,2,0,?,5
|
||||
1,1,0,2,0,0,0,0,1,0,0,0,0,0,3,2,3,2,1,1,3,0,0,0,0,0,0,2,0,0,0,3,0,?,5
|
||||
1,1,0,3,0,0,0,0,0,0,0,0,0,0,2,1,3,1,1,0,2,0,1,0,0,0,0,2,0,0,0,3,0,?,5
|
||||
2,2,1,1,0,0,2,0,2,0,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,2,0,1,2,2,0,10,6
|
||||
3,2,0,1,0,0,2,0,1,0,1,0,0,0,0,1,2,1,2,0,0,0,0,0,0,0,0,3,0,1,2,2,0,12,6
|
||||
2,2,1,1,0,0,2,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,2,0,1,2,2,0,8,6
|
||||
3,2,2,0,0,0,0,0,0,0,0,0,0,0,0,3,2,1,0,0,0,0,0,0,0,1,0,2,0,0,0,2,0,35,4
|
||||
2,2,1,0,1,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,1,0,3,0,0,0,2,0,62,4
|
||||
2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,3,1,0,0,0,0,0,0,0,0,1,0,2,0,0,0,3,0,48,4
|
||||
3,3,2,0,1,0,0,0,2,2,1,0,0,0,0,0,2,1,3,3,3,2,1,0,0,1,0,0,0,0,0,2,0,30,1
|
||||
2,2,3,1,0,0,0,0,3,2,1,0,0,0,0,1,2,0,3,3,3,2,1,1,0,2,0,0,0,0,0,3,0,57,1
|
||||
1,2,2,1,1,0,0,0,2,2,1,0,0,1,0,0,2,0,2,3,3,3,2,1,0,2,0,0,0,0,0,2,0,62,1
|
||||
2,2,3,1,0,0,0,0,1,2,0,0,0,1,0,0,2,0,2,3,3,2,1,1,0,2,0,0,0,0,0,2,0,36,1
|
||||
3,2,2,2,0,0,0,0,2,1,0,0,0,1,0,0,2,0,3,2,3,2,2,1,0,2,0,0,0,0,0,3,0,18,1
|
||||
2,2,2,1,0,0,0,0,0,0,0,0,0,0,0,2,2,1,2,0,0,0,0,0,0,0,0,3,0,0,0,2,0,25,2
|
||||
3,2,2,1,0,0,0,0,1,0,1,0,0,1,0,3,2,0,1,0,0,0,0,0,0,0,0,3,0,0,0,3,0,16,2
|
||||
2,2,1,0,1,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,0,0,0,0,0,2,0,0,0,2,0,50,4
|
||||
1,2,2,0,1,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,1,0,2,0,0,0,1,0,55,4
|
||||
2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,2,2,1,1,0,0,0,0,0,0,0,0,2,0,0,0,2,0,27,4
|
||||
3,3,2,0,0,0,0,0,2,2,0,0,0,0,0,0,2,1,2,2,3,2,1,0,0,1,0,0,0,0,0,2,0,55,1
|
||||
2,3,3,1,0,0,0,0,2,1,0,0,0,0,0,0,3,0,2,2,2,3,0,1,0,2,0,0,0,0,0,2,0,22,1
|
||||
2,2,2,1,0,0,0,0,0,0,0,0,0,0,0,2,2,1,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,70,2
|
||||
3,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,2,1,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,22,2
|
||||
2,3,2,1,0,0,0,0,0,0,0,0,0,0,0,3,2,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,45,2
|
||||
2,1,2,1,0,2,0,2,0,0,0,2,0,0,0,2,2,0,1,0,0,0,0,0,2,0,2,0,2,0,0,3,3,40,3
|
||||
2,2,3,1,0,3,0,2,0,0,0,3,0,0,0,3,3,0,0,0,0,0,0,0,1,0,3,2,3,0,0,3,3,28,3
|
||||
3,2,2,1,0,2,0,3,0,0,0,2,0,0,0,2,2,1,1,0,0,0,0,0,2,0,3,1,2,0,0,3,3,36,3
|
||||
2,2,3,2,1,2,0,2,0,0,0,2,0,0,0,2,3,0,0,0,0,0,0,0,2,0,2,2,2,0,0,3,3,27,3
|
||||
2,2,2,0,1,0,0,0,1,1,0,0,0,0,0,0,2,1,2,3,3,2,0,2,0,1,0,0,0,0,0,2,0,42,1
|
||||
2,3,2,0,1,0,0,0,3,2,1,0,0,1,0,0,3,0,2,2,3,3,0,0,0,2,0,0,0,0,0,2,0,27,1
|
||||
2,2,3,1,0,0,0,0,2,2,0,0,0,0,0,0,3,1,3,3,2,2,2,1,0,3,0,0,0,0,0,2,0,50,1
|
||||
2,1,3,0,1,0,0,0,0,2,0,0,0,0,0,0,3,0,2,2,3,3,0,0,0,2,0,0,0,0,0,2,0,34,1
|
||||
2,1,0,2,0,0,0,0,0,0,0,0,0,0,3,1,2,1,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,8,5
|
||||
2,1,1,3,0,0,1,0,0,0,0,0,0,0,2,0,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,2,0,19,5
|
||||
1,1,2,2,0,0,0,0,1,0,0,0,1,0,3,0,3,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,36,5
|
||||
2,1,0,3,0,0,0,0,0,0,0,0,0,0,3,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,70,5
|
||||
2,2,1,3,0,0,0,0,0,0,0,0,0,0,3,0,2,1,0,0,3,0,0,0,0,0,0,0,0,0,0,2,0,52,5
|
||||
2,2,3,3,1,2,0,1,0,0,0,2,0,0,0,2,2,0,1,0,0,0,0,0,1,0,2,0,2,0,0,2,3,25,3
|
||||
3,2,2,2,0,2,0,2,0,0,0,3,0,0,0,3,2,0,1,0,0,0,0,0,1,0,2,0,3,0,0,3,3,36,3
|
||||
2,2,2,3,1,2,0,1,0,0,0,2,0,0,0,2,2,0,1,0,0,0,0,0,1,0,2,0,3,0,0,1,2,50,3
|
||||
2,1,2,0,1,0,0,0,0,0,0,0,0,0,0,2,2,0,1,0,0,0,0,0,0,0,0,2,0,0,0,2,0,34,4
|
||||
3,1,2,1,0,0,0,0,2,3,0,0,0,0,0,0,2,0,2,3,2,2,0,3,0,2,0,0,0,0,0,2,0,17,1
|
||||
2,2,2,0,1,0,0,0,2,1,0,0,0,0,0,0,3,1,1,3,2,2,0,2,0,0,0,0,0,0,0,2,0,24,1
|
||||
2,1,1,0,1,0,0,0,0,0,0,0,0,0,0,3,1,0,0,0,0,0,0,0,0,1,0,3,0,0,0,2,0,22,4
|
||||
2,1,2,1,1,0,0,0,0,0,0,0,0,0,0,2,2,0,1,0,0,0,0,0,0,1,0,3,0,0,0,2,0,55,4
|
||||
2,1,1,0,1,0,0,0,0,0,0,0,0,0,0,3,2,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,12,4
|
||||
2,3,2,0,1,0,0,0,0,1,0,0,0,0,0,0,2,0,2,3,3,2,0,2,0,2,0,0,0,0,0,2,0,43,1
|
||||
3,2,2,0,0,0,0,0,0,1,1,0,0,0,0,0,3,0,2,2,3,2,0,1,0,2,0,0,0,0,0,2,0,50,1
|
||||
2,2,2,1,0,0,0,0,2,2,0,0,0,0,0,0,2,0,2,2,3,2,0,0,0,2,0,0,0,0,0,2,0,36,1
|
||||
2,2,3,3,2,3,0,1,0,0,0,2,0,0,0,3,2,0,1,0,0,0,0,0,2,0,3,0,3,0,0,2,3,26,3
|
||||
3,1,2,3,2,2,0,2,0,0,0,2,0,0,0,2,2,0,1,0,0,0,0,0,2,0,2,0,2,0,0,3,3,16,3
|
||||
2,2,2,3,2,3,0,2,0,0,0,2,0,0,0,2,2,0,0,0,0,0,0,0,3,0,2,0,2,0,0,2,3,32,3
|
||||
2,1,2,3,3,2,0,2,0,0,0,3,0,0,0,3,1,0,0,0,0,0,0,0,2,0,3,0,2,0,0,2,3,51,3
|
||||
2,2,3,2,2,3,0,1,0,0,0,2,0,0,0,3,3,0,1,0,0,0,0,0,2,0,3,0,3,0,0,3,2,56,3
|
||||
2,2,2,0,1,0,0,0,2,2,0,0,0,0,0,0,2,1,2,3,2,3,1,2,0,2,0,0,0,0,0,2,0,47,1
|
||||
2,2,3,1,0,0,0,0,2,1,0,0,0,0,0,0,2,2,3,3,3,2,0,1,0,2,0,0,0,0,0,2,0,51,1
|
||||
3,2,2,0,0,0,0,0,2,2,0,0,0,0,0,0,3,0,3,2,3,3,0,2,0,3,0,0,0,0,0,3,0,58,1
|
||||
2,2,3,0,0,0,0,0,3,0,0,0,0,0,0,0,3,2,2,2,3,2,0,0,0,1,0,0,0,0,0,2,0,27,1
|
||||
2,2,2,0,1,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,1,0,2,0,0,0,2,0,32,4
|
||||
2,1,1,0,1,0,0,0,0,0,0,0,1,0,0,3,2,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,27,4
|
||||
2,3,3,0,0,0,0,0,1,0,1,0,0,1,0,0,2,2,2,2,2,2,2,2,0,1,0,0,0,0,0,2,0,62,1
|
||||
2,2,3,0,1,0,0,0,3,0,0,0,0,2,0,0,1,1,2,2,2,3,0,2,0,1,0,0,0,0,0,2,0,53,1
|
||||
3,1,1,0,1,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,46,4
|
||||
2,1,2,3,2,2,0,3,0,0,0,2,1,0,0,2,2,0,1,0,0,0,0,0,2,0,2,1,2,0,0,2,3,37,3
|
||||
1,1,2,3,2,3,0,2,0,0,0,2,0,0,0,2,1,0,2,0,0,0,0,0,2,0,2,0,2,0,0,2,3,49,3
|
||||
2,1,0,1,0,0,0,0,0,0,0,0,0,1,0,2,1,0,1,0,0,0,0,0,0,1,0,3,0,0,0,2,0,18,4
|
||||
2,2,2,2,2,0,0,0,0,2,0,0,0,0,0,0,2,0,2,2,3,3,2,2,0,2,0,0,0,0,0,2,0,46,1
|
||||
2,1,2,0,0,0,0,0,2,0,0,0,0,1,0,0,2,1,2,3,2,3,0,0,0,3,0,0,0,0,0,0,0,33,1
|
||||
1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,2,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,22,4
|
||||
2,2,2,0,1,0,0,0,0,0,0,0,0,0,0,2,2,0,1,0,0,0,0,0,0,2,0,2,0,0,0,2,0,44,4
|
||||
1,0,0,3,0,0,0,0,0,0,0,0,1,0,3,2,3,0,0,0,2,0,0,0,0,0,0,0,0,0,0,3,0,36,5
|
||||
2,0,1,3,0,0,0,0,0,0,0,0,0,0,2,2,3,0,1,0,3,0,0,0,0,0,0,0,0,0,0,3,0,63,5
|
||||
3,2,2,0,0,0,0,0,2,2,0,0,0,0,0,0,3,0,3,2,3,2,0,1,0,2,0,0,0,0,0,1,0,56,1
|
||||
2,3,2,1,0,0,0,0,2,2,0,0,0,0,0,0,2,0,2,2,3,2,1,0,0,2,0,0,0,0,0,2,0,60,1
|
||||
2,1,0,0,0,0,0,0,0,0,0,0,1,0,2,2,3,0,0,0,2,0,0,0,0,0,0,1,0,0,0,2,0,42,5
|
||||
3,1,0,1,0,0,0,0,0,0,0,0,0,0,1,2,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,2,0,32,5
|
||||
2,1,2,2,2,3,0,2,0,0,0,2,1,0,0,3,2,0,0,0,0,0,0,0,3,0,2,0,2,0,0,2,3,51,3
|
||||
2,2,3,0,0,0,0,0,2,2,0,0,0,1,0,0,2,0,2,3,2,3,0,2,0,2,0,0,0,0,0,2,0,33,1
|
||||
1,1,0,2,0,0,0,0,0,0,0,0,0,0,3,1,2,0,1,0,3,0,0,0,0,0,0,0,0,0,0,2,0,68,5
|
||||
2,0,1,2,0,0,0,0,0,0,0,0,0,0,2,2,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,2,0,50,5
|
||||
2,2,2,0,0,0,1,0,1,0,1,0,0,0,0,2,2,1,0,0,0,0,0,0,0,0,0,1,0,3,2,2,0,9,6
|
||||
2,2,1,0,0,0,2,0,2,0,0,0,0,0,0,3,2,0,1,0,0,0,0,0,0,0,0,2,0,2,3,1,0,16,6
|
||||
2,2,2,1,1,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,35,4
|
||||
2,2,2,1,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,1,0,2,0,0,0,2,0,40,4
|
||||
2,2,0,1,0,0,2,0,2,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,1,0,2,2,2,0,22,6
|
||||
3,2,2,0,0,0,3,0,1,0,1,0,0,0,0,1,3,1,1,0,0,0,0,0,0,0,0,2,0,3,2,2,0,10,6
|
||||
2,2,1,0,0,0,2,0,2,0,0,0,0,0,0,3,2,0,1,0,0,0,0,0,0,0,0,3,0,2,2,2,0,7,6
|
||||
1,2,2,2,0,0,0,0,2,2,0,0,0,1,0,0,2,1,3,3,3,2,0,2,0,2,0,0,0,0,0,2,0,25,1
|
||||
2,2,2,3,2,0,0,0,2,3,1,0,0,1,0,0,2,2,2,2,2,2,0,2,0,3,0,0,0,0,0,2,0,9,1
|
||||
3,2,2,3,2,0,0,0,2,3,0,0,0,0,0,0,3,0,2,2,3,2,0,3,0,2,0,0,0,0,0,1,0,55,1
|
||||
1,1,1,2,0,0,0,0,0,0,0,0,0,0,3,2,2,0,0,0,2,0,0,0,0,0,0,1,0,0,0,2,0,45,5
|
||||
2,0,1,2,0,0,0,0,0,0,0,0,0,0,3,1,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,2,0,56,5
|
||||
2,3,2,3,2,0,0,0,3,2,0,0,0,1,0,0,3,2,3,2,2,2,0,3,0,3,0,0,0,0,0,0,0,36,1
|
||||
2,2,2,2,2,0,0,0,3,0,1,0,0,0,0,0,2,2,2,2,3,3,0,2,0,3,0,0,0,0,0,0,0,75,1
|
||||
2,2,2,0,1,0,0,0,0,1,0,0,0,1,0,0,2,0,2,3,2,3,2,1,0,1,0,0,0,0,0,2,0,45,1
|
||||
2,3,2,1,0,0,0,0,2,2,0,0,0,1,0,0,2,0,2,2,2,2,0,2,0,2,0,0,0,0,0,3,0,24,1
|
||||
2,2,0,0,0,0,0,0,0,0,0,0,1,0,0,3,2,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,40,2
|
||||
2,2,1,1,0,0,0,0,0,0,0,0,1,1,0,2,2,1,0,0,0,0,0,0,0,0,0,3,0,0,0,1,0,25,2
|
||||
2,1,1,0,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,25,4
|
||||
3,2,1,0,1,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,1,0,1,0,0,0,2,0,36,4
|
||||
3,2,2,2,3,2,0,2,0,0,0,2,2,0,0,3,3,0,0,0,0,0,0,0,3,0,3,0,3,0,0,2,3,28,3
|
||||
2,1,3,1,2,3,0,2,0,0,0,2,0,0,0,3,2,0,0,0,0,0,0,0,3,0,2,0,1,0,0,2,3,50,3
|
||||
3,2,2,0,0,0,0,0,3,3,0,0,0,1,0,0,2,0,2,3,2,3,0,2,0,2,0,0,0,0,0,3,0,35,1
|
||||
@ -16,6 +16,11 @@
|
||||
|
||||
package ml.dmlc.xgboost4j.scala.spark
|
||||
|
||||
import java.io.File
|
||||
|
||||
import scala.collection.mutable.ListBuffer
|
||||
import scala.io.Source
|
||||
|
||||
import ml.dmlc.xgboost4j.java.{DMatrix => JDMatrix}
|
||||
import ml.dmlc.xgboost4j.scala.{DMatrix, XGBoost => ScalaXGBoost}
|
||||
|
||||
@ -60,7 +65,7 @@ class XGBoostDFSuite extends SharedSparkContext with Utils {
|
||||
}
|
||||
val trainingDF = buildTrainingDataframe()
|
||||
val xgBoostModelWithDF = XGBoost.trainWithDataFrame(trainingDF, paramMap,
|
||||
round = round, nWorkers = numWorkers, useExternalMemory = false)
|
||||
round = round, nWorkers = numWorkers)
|
||||
val testDF = trainingDF.sparkSession.createDataFrame(testSetItr.toList).toDF(
|
||||
"id", "features", "label")
|
||||
val predResultsFromDF = xgBoostModelWithDF.setExternalMemory(true).transform(testDF).
|
||||
@ -83,7 +88,7 @@ class XGBoostDFSuite extends SharedSparkContext with Utils {
|
||||
val testItr = loadLabelPoints(getClass.getResource("/agaricus.txt.test").getFile).iterator
|
||||
val trainingDF = buildTrainingDataframe()
|
||||
val xgBoostModelWithDF = XGBoost.trainWithDataFrame(trainingDF, paramMap,
|
||||
round = 5, nWorkers = numWorkers, useExternalMemory = false)
|
||||
round = 5, nWorkers = numWorkers)
|
||||
val testSetItr = testItr.zipWithIndex.map {
|
||||
case (instance: LabeledPoint, id: Int) =>
|
||||
(id, instance.features, instance.label)
|
||||
@ -184,4 +189,38 @@ class XGBoostDFSuite extends SharedSparkContext with Utils {
|
||||
val xgbEstimatorCopy1 = xgbEstimator.copy(sparkParamMap.put(xgbEstimator.evalMetric, "logloss"))
|
||||
assert(xgbEstimatorCopy1.fromParamsToXGBParamMap("eval_metric") === "logloss")
|
||||
}
|
||||
|
||||
private def convertCSVPointToLabelPoint(valueArray: Array[String]): LabeledPoint = {
|
||||
val intValueArray = new Array[Double](valueArray.length)
|
||||
intValueArray(valueArray.length - 2) = {
|
||||
if (valueArray(valueArray.length - 2) == "?") {
|
||||
1
|
||||
} else {
|
||||
0
|
||||
}
|
||||
}
|
||||
intValueArray(valueArray.length - 1) = valueArray(valueArray.length - 1).toDouble - 1
|
||||
for (i <- 0 until intValueArray.length - 2) {
|
||||
intValueArray(i) = valueArray(i).toDouble
|
||||
}
|
||||
LabeledPoint(intValueArray.last, new DenseVector(intValueArray.take(intValueArray.length - 1)))
|
||||
}
|
||||
|
||||
private def loadCSVPoints(filePath: String, zeroBased: Boolean = false): List[LabeledPoint] = {
|
||||
val file = Source.fromFile(new File(filePath))
|
||||
val sampleList = new ListBuffer[LabeledPoint]
|
||||
for (sample <- file.getLines()) {
|
||||
sampleList += convertCSVPointToLabelPoint(sample.split(","))
|
||||
}
|
||||
sampleList.toList
|
||||
}
|
||||
|
||||
test("multi_class classification test") {
|
||||
val paramMap = Map("eta" -> "0.1", "max_depth" -> "6", "silent" -> "1",
|
||||
"objective" -> "multi:softmax", "num_class" -> "6")
|
||||
val testItr = loadCSVPoints(getClass.getResource("/dermatology.data").getFile).iterator
|
||||
val trainingDF = buildTrainingDataframe()
|
||||
XGBoost.trainWithDataFrame(trainingDF, paramMap,
|
||||
round = 5, nWorkers = numWorkers)
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user