这里编译参考前面的博文,比较详细,依次编译完成。http://blog.csdn.net/eddy_zheng/article/details/50184563 ;4个,依次都生成一下,这里记得在工程里面选 release X64 Or X32 ~
进入以下路径:D:\xgboost-master\java\xgboost4j-demo\src\main\java\org\dmlc\xgboost4j ;复制 demo 整个文件夹,到以下文件夹中:
D:\xgboost-master\java\xgboost4j\src\main\java\org\dmlc\xgboost4j; 将 demo 文件夹 copy 进来;完成之后如下:
将以下代码,添加进pom.xml 文件:
<dependency>
<groupId>org.apache.commonsgroupId>
<artifactId>commons-lang3artifactId>
<version>3.4version>
dependency>
以下为添加完成之后的文件,可以对比下添加的位置,以后能自行添加。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<groupId>org.dmlcgroupId>
<artifactId>xgboost4jartifactId>
<version>1.1version>
<packaging>jarpackaging>
<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<maven.compiler.source>1.7maven.compiler.source>
<maven.compiler.target>1.7maven.compiler.target>
properties>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-javadoc-pluginartifactId>
<version>2.10.3version>
plugin>
plugins>
reporting>
<dependencies>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.11version>
<scope>testscope>
dependency>
<dependency>
<groupId>org.apache.commonsgroupId>
<artifactId>commons-lang3artifactId>
<version>3.4version>
dependency>
<dependency>
<groupId>commons-logginggroupId>
<artifactId>commons-loggingartifactId>
<version>1.2version>
dependency>
dependencies>
project>
进入到以下路径 :D:\xgboost-master\java (以自己的安装路径为准),双击:create_wrap.bat 。成功之后,就会将你之前编译生成的 xgboostjavawrapper.dll 文件拷贝到 D:\xgboost-master\java\xgboost4j\src\main\resources\lib 下,如果刚才那个 .bat 文件没有执行成功,可手动将文件拷贝进去,自己根据路径创建文件夹就可以了。(– ,应该是不需要的)
cmd 命令行,切换到以下路径,D:\xgboost-master\java\xgboost4j ,执行命令:mvn package
打包成功就会在 D:\xgboost-master\java\xgboost4j\target 处生成 : xgboost4j-1.1.jar 导入你的工程就可以工作了。这里还要提一下,xgboost 还依赖了两个 jar 包,在下面的工程里可以看到,自行下载添加。
具体测试步骤:找时间再写吧,眼花了,贴几个图,大家对照着看下应该没问题(图片有点大,看不清的可以 Ctri + 鼠标滑轮,放大点看,^_^!)。
测试代码在下面贴着:
import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.dmlc.xgboost4j.Booster;
import org.dmlc.xgboost4j.DMatrix;
import org.dmlc.xgboost4j.util.Trainer;
import org.dmlc.xgboost4j.demo.util.CustomEval;
import org.dmlc.xgboost4j.demo.util.Params;
import org.dmlc.xgboost4j.util.XGBoostError;
public class PredictFirstNtree {
public static void main(String[] args) throws XGBoostError {
// load file from text file, also binary buffer generated by xgboost4j
DMatrix trainMat = new DMatrix("D:/xgboost-master/demo/data/agaricus.txt.train");
DMatrix testMat = new DMatrix("D:/xgboost-master/demo/data/agaricus.txt.test");
//specify parameters
Params param = new Params() {
{
put("eta", 0.001);
put("max_depth", 3);
put("eval_metric","auc");
put("silent", 1);
put("objective", "binary:logistic");
}
};
//specify watchList
List