xgboost

Catalogue
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<dependency>
<groupId>ml.dmlc</groupId>
<artifactId>xgboost4j_2.12</artifactId>
<version>1.0.0</version>
<exclusions>
<exclusion>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-actor_2.11</artifactId>
</exclusion>
<exclusion>
<artifactId>scala-library</artifactId>
<groupId>org.scala-lang</groupId>
</exclusion>
<exclusion>
<artifactId>scala-compiler</artifactId>
<groupId>org.scala-lang</groupId>
</exclusion>
<exclusion>
<artifactId>asm</artifactId>
<groupId>org.ow2.asm</groupId>
</exclusion>
<exclusion>
<artifactId>objenesis</artifactId>
<groupId>org.objenesis</groupId>
</exclusion>
</exclusions>
</dependency>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
private Booster model = null;
// load
model = XGBoost.loadModel(rerankProperties.getModelPath());


// calScore
private float[][] calScore(float[] featureValues, int size, int featureTotalDim) throws XGBoostError {
DMatrix mat = new DMatrix(featureValues, size, featureTotalDim);

if (!rerankProperties.isRankOff() && model == null) {
load();
}

return model.predict(mat);
}

// predict
int samples = recalls.size();
float[] features = new float[samples * dimSize];
for (int i = 0; i < samples; i++) {
String id = recalls.get(i).getId();
String uid = recalls.get(i).getAId();
Feature feature = features.get(jobId);
CFeature cFeature = cFeatures.get(uid);
float[] b = ModelFeature.transform(searchReq, queryFeature, aFeature, bFeature, cFeature, dimSize);
System.arraycopy(b, 0, features, i * dimSize, b.length);
}
float[][] result = calScore(features, samples, dimSize);

模式流、模式、
Guardian Baize of Bot-flow Detection

FlowSentryZ 流量哨兵白泽(Baize)