聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> Java机器学习常用三方库

Java机器学习常用三方库

时间:2017-03-28 20:17:30    下载该word文档

Java机器学习常用三方库

weka.jar

Weka是一个能处理cvs和arff数据文件格式的三方库。并带有各种分类,聚类等机器学习算法。

核心类:weka.core.Instances, weka.core.Instance, weka.core.Attribute

常用方法:

Instances instances = new Instances(new FileReader(new File(“src/data/test.arff”)));

int n = instances.numInstances(); 获取实例个数。

int m = instances.numAttributes(); 获取属性个数。

Instance iInstance = Instances.instance(int i), 获取第i行实例;

double d = iInstance.value(int j), 获取iInstance的第j个属性上的取值;

Note:如果数据集的属性是实数(real, numeric)数据类型的话,上式是获取值。如果是Symbolic,Nominal数据类型的话,上式是获取值在属性取值集合中的下标(double类型)。

String s = iInstance.stringValue(int j); 获取iInstance的第j个属性上的取值(字符串类型), 一般只有对于Symbolic类型的数据集,才这样用。

Attribute kAttr = instances.attribute(int k), 获取数据集的第k个属性

kAttr.numValues(), 获取第k个属性的取值个数。

String s = kAttr.value(int q), 获取属性的第q个值,只有对Symbolic数据集有效。

instances.setClassIndex(int m). 设置类别(决策)属性,一般地,决策属性是最后一个属性,有instances.setClassIndex(instances.numAttributes() - 1)

举例:

src/test.arff

@relation hungarian-14-heart-disease

@attribute 'age' real

@attribute 'sex' { female, male}

@attribute 'chest_pain' { typ_angina, asympt, non_anginal, atyp_angina}

@data

28,male,atyp_angina

30,female,typ_angina

Instances instances = new Instances(new FileReader(new File(“src/data/test.arff”)));

instances.numInstances(); // 2

instances.numAttributes(); // 3

instances.instance(0).value(2); // 3.0, 注意这里是第0个实例的第2个属性,为atyp_angina, atyp_angina对应在属性chest_pain中的下标是3.

instances.instance(0).stringValue(2); //atyp_angina.

Instances.instance(1).value(0); // 30.0

instances.attribute(2).numValues(); //4. 第2个属性的取值个数

instances.attribute(2).value(1); //asympt

instances.attribute(1).name(); //sex

UJMP.jar

UJMP是统一Java矩阵处理包。 处理方式与Python Numpy三方库类似,其中的核心是org.ujmp.core.Matrix类。

Matrix类的常用方法:

Matrix m = Matrix.Factory.zeros(n, m); // 产生一个n行m列的0矩阵

Matrix m = Matrix.Factory.eye(n, m); // 产生一个n行m列的主对角线为1的矩阵

matrix = matrix.appendVertically(Ret.LINK, Matrix m); //在垂直方向添加一个矩阵

matrix = matrix.appendVertically(Ret.LINK, Matrix m); //在水平方向添加一个矩阵

matrix = matrix.times(double value); //点乘一个浮点数

matrix = matrix.times(Matrix another); //点乘一个相同规模的矩阵

matrix = matrix.mtimes(Matrix another); //矩阵乘法

matrix = matrix.plus(Matrix another); //矩阵加法

matrix = matrix.minus(Matrix another); //矩阵减法

matrix = matrix.inv(); //矩阵的逆矩阵

matrix.getRowCount(); //获取矩阵行数

matrix.getColumnCount(); //获取矩阵列数

matrix.setAsDouble(value, n, m); //矩阵的第n行m列设置为value。

matrix.transpose(); // 矩阵的转置

matrix.selectRows(Ret.LINK, long[] indices); //选择矩阵中所有i∈indices行构成的子矩阵。

matrix.selectColumns(Ret.LINK, long[] indices); //选择矩阵中所有i∈indices列构成的子矩阵。

matrix.Factory.randn(n, m); //产生n行m列的随机数矩阵。

Matrix.Factory.emptyMatrix(); //产生一个空矩阵

matrix.norm2(); // 获取L1 norm

matrix.normInf(); // 获取无穷norm

Matrix X = org.ujmp.jmatio.ImportMatrixMAT.fromFile(new File(“src/test.mat”), “X”); // 从matlab数据文件中读取名称为X的矩阵

免费下载 Word文档免费下载: Java机器学习常用三方库

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服