【问题标题】:Creating a string attribute in Weka Java API在 Weka Java API 中创建字符串属性
【发布时间】:2011-10-02 03:49:58
【问题描述】:

我正在尝试使用 Weka 的 Java API 创建一个新的字符串属性...

通读API javadocs,看来这样做的方法是使用这个构造函数:

Attribute

public Attribute(java.lang.String attributeName,
                 FastVector attributeValues)

    Constructor for nominal attributes and string attributes. If a null vector of attribute values is passed to the method, the attribute is assumed to be a string.

    Parameters:
        attributeName - the name for the attribute
        attributeValues - a vector of strings denoting the attribute values. Null if the attribute is a string attribute.

但我不知道应该将什么传递给 attributeValues 参数...

当我输入 null 时,Java 抱怨受保护对象
当我输入 Null 时,是语法错误
当我输入new FastVector() 时,它变成了一个空的名义属性而不是字符串属性...
当我创建一个新对象时:

FastVector fv = new FastVector();
fv.addElement(null);

然后将fv传入参数,它返回一个空指针异常...

我究竟应该在attributeValues 参数中添加什么以使其成为字符串属性?

【问题讨论】:

    标签: java api machine-learning weka


    【解决方案1】:

    您必须将 null 转换为 FastVector。否则更多方法将应用于方法签名:

        FastVector attributes = new FastVector();
        attributes.addElement(new Attribute("attr", (FastVector) null));
    

    这是动态创建实例的好资源:http://weka.wikispaces.com/Creating+an+ARFF+file

    【讨论】:

      【解决方案2】:

      在 WEKA 中构建 STRING 属性的简单方法是:

       new Attribute("Distribution_weight",(FastVector) null);
      

      主要问题是WEKA对NULL值的定义,或者在带有导入weka.jar和抛出异常模式的新型Java编辑器中的NULL向量。

      【讨论】:

        猜你喜欢
        • 2012-11-24
        • 1970-01-01
        • 2018-08-15
        • 2017-01-16
        • 1970-01-01
        • 2013-03-16
        • 2012-07-21
        • 2011-08-26
        • 1970-01-01
        相关资源
        最近更新 更多