Machine learning Weka分类器不接受字符串值
我正在使用Weka对数据集进行分类。.arrf数据文件如下所示。分类时我面临的问题是,许多分类器(如NaiveBayes等)不会使用string属性对其进行分类。这两个字符串属性是分类的重要特征。我尝试使用过滤器将字符串转换为标称类型,但它没有将其转换为标称类型。考虑到我拥有的数据集,我应该如何着手Machine learning Weka分类器不接受字符串值,machine-learning,classification,weka,Machine Learning,Classification,Weka,我正在使用Weka对数据集进行分类。.arrf数据文件如下所示。分类时我面临的问题是,许多分类器(如NaiveBayes等)不会使用string属性对其进行分类。这两个字符串属性是分类的重要特征。我尝试使用过滤器将字符串转换为标称类型,但它没有将其转换为标称类型。考虑到我拥有的数据集,我应该如何着手 @RELATION transaction @ATTRIBUTE transactionType {'CC Credit',Trans,Exp,Dep,Check} @ATTRIBUTE num
@RELATION transaction
@ATTRIBUTE transactionType {'CC Credit',Trans,Exp,Dep,Check}
@ATTRIBUTE number numeric
@ATTRIBUTE posting {Yes,No}
@ATTRIBUTE String1 string
@ATTRIBUTE String2 string
@ATTRIBUTE amount real
@ATTRIBUTE class {1,2}
@DATA
'CC Credit',?,Yes,'XYZ Bank','ONLINE PYMT Aug',-1582100.38,1
Trans,?,Yes,?,'ACH DEBIT XYZ CREDIT CRD-EPAY',-59219.40,2
Exp,?,Yes,'First Nolastname','ACH DEBIT First Nolastname-RECEIVER',-176011.56,2
您没有说您正在使用什么接口。我假设您正在使用GUI 在“预处理”选项卡上的“过滤器”下,选择 向下滚动以查找
StringToNominal
。默认情况下,它将只转换最后一个属性。您需要将其更改为转换所有字符串
以防万一:
如果您使用的是R和RWeka,则可以通过运行
Str2Nom = make_Weka_filter("weka/filters/unsupervised/attribute/StringToNominal")
Str2Nom(transactionType ~ ., data=Transaction, control=Weka_control(R=4:5))
您没有说您正在使用什么接口。我假设您正在使用GUI 在“预处理”选项卡上的“过滤器”下,选择 向下滚动以查找
StringToNominal
。默认情况下,它将只转换最后一个属性。您需要将其更改为转换所有字符串
以防万一:
如果您使用的是R和RWeka,则可以通过运行
Str2Nom = make_Weka_filter("weka/filters/unsupervised/attribute/StringToNominal")
Str2Nom(transactionType ~ ., data=Transaction, control=Weka_control(R=4:5))
应该可以,但是如果您自己构建ARFF文件,那么另一个选项是在ARFF文件中将这些属性定义为标称属性,方法与您已经对交易类型
和过账
属性所做的相同
要手动构建介于@属性
行中的{
和}
之间的标称值列表,例如,您可以使用Excel中的数据>删除重复项功能。应该可以工作,但是,如果您自己构建ARFF文件,那么另一个选项是将这些属性定义为ARFF文件中的标称属性,方法与您对交易类型
和过账
属性所做的相同
要手动构建介于
@属性
行中的{
和}
之间的标称值列表,例如,您可以使用Excel中的数据>删除重复项功能。您是如何生成数据集/arff文件的?我使用示例文件作为参考手动创建了它。您是如何生成数据集/arff文件的?我使用示例文件作为参考手动创建了它。