0

我对 R 的 RWeka 包有一些问题,更准确地说是规则学习算法。我自己创建了一个 .arff 文件,您可以在下面看到。现在我已经用 .arff 文件的数据运行了 RWeka 包的 JRip 和 J48 算法,得到了以下规则:

> JRip(Failure ~., data=date)
JRIP rules:
===========

 => Failure=no (35.0/11.0)

Number of Rules : 1

> J48(Failure ~., data=date)
J48 pruned tree
------------------
: no (35.0/11.0)

Number of Leaves  :     1

Size of the tree :      1

所以现在我的问题是为什么算法找不到基于生产日期的规则?原因很明显,2013-04-01生产的所有产品都有缺陷。

我的错误是什么?

提前致谢!提多24

@RELATION dataset

@ATTRIBUTE Date-of-Production			DATE "yyyy-MM-dd HH:mm:ss"
@ATTRIBUTE Location				{Frankfurt, Cologne, Hamburg, Munich, Berlin}
@ATTRIBUTE Failure				{yes, no}

@DATA
"2013-04-01 00:00:00",Frankfurt,yes
"2013-04-01 00:00:00",Cologne,yes
"2013-04-01 00:00:00",Munich,yes
"2013-04-01 00:00:00",Hamburg,yes
"2013-04-01 00:00:00",Berlin,yes
"2013-04-01 00:00:00",Frankfurt,yes
"2013-04-01 00:00:00",Cologne,yes
"2013-04-01 00:00:00",Munich,yes
"2013-04-01 00:00:00",Hamburg,yes
"2013-04-01 00:00:00",Berlin,yes
"2013-04-01 00:00:00",Frankfurt,yes
"2012-05-01 00:00:00",Cologne,no
"2012-05-02 00:00:00",Munich,no
"2012-05-03 00:00:00",Hamburg,no
"2012-05-04 00:00:00",Berlin,no
"2012-05-05 00:00:00",Frankfurt,no
"2012-05-06 00:00:00",Cologne,no
"2012-05-07 00:00:00",Munich,no
"2012-05-08 00:00:00",Hamburg,no
"2012-05-09 00:00:00",Berlin,no
"2012-05-10 00:00:00",Frankfurt,no
"2012-05-11 00:00:00",Cologne,no
"2012-05-12 00:00:00",Munich,no
"2012-05-13 00:00:00",Hamburg,no
"2012-05-14 00:00:00",Berlin,no
"2012-05-15 00:00:00",Frankfurt,no
"2012-05-16 00:00:00",Cologne,no
"2012-05-17 00:00:00",Munich,no
"2012-05-18 00:00:00",Hamburg,no
"2012-05-19 00:00:00",Berlin,no
"2012-05-20 00:00:00",Frankfurt,no
"2012-05-21 00:00:00",Cologne,no
"2012-05-22 00:00:00",Munich,no
"2012-05-23 00:00:00",Hamburg,no
"2012-05-24 00:00:00",Berlin,no

4

1 回答 1

0

解释

WEKA 中属性日期的内部表示是存储自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数的浮点数。如weka.core.Attribute文档中所述。在 RWeka 中从 POSIXct/POSIXt 转换为浮点数时存在某种问题。

解决方案

手动转换日期并运行分类:

dataset <- read.arff("date.arff")
dataset[,1] <- unclass(dataset[, 1])   # get internal representation
J48(Failure ~ ., data = dataset)

输出与 WEKA Explorer 3.7.12 中的相同:

Date-of-Production <= 1337810400: no (24.0)
Date-of-Production > 1337810400: yes (11.0)

Number of Leaves  :     2

Size of the tree :  3
于 2015-04-27T23:57:48.513 回答