現在我有一個問題。我需要使用weka fiter來處理Instances類的對象的數據。代碼在這裏。如何使用數字來使用fiter替換Weka中的字符串值?
CSVLoader loader=new CSVLoader();
loader.setSource(new File(path to file.csv));
Instances data=loader.getDataSet();
data.setClassIndex(data.numAttributes()-1);
LibSVM classifier=new LibSVM();
Evaluation eval=new Evaluation(data);
classifier.setOptions(LIBSVM_OPTIONS);
eval.crossValidateModel(classifier,data,10,new Random(1));
當我運行的代碼,它給的信息:weka.classifer.functions.LibSVM:不能處理字符串的屬性!
某些屬性是字符串類型。
我想使用weka過濾器來處理數據對象。數據中有一些字符串元素。原始csv文件數據是這樣的。
title1,title2,title3,title4,title5,title6
123, 122, 112, 121, 121, 123
121, 123, 121, 123, inf, 121
123, inf, 123, 123, 123, 123
當然,csv文件保存在excel中。它的名字就像abc.csv。 csv文件中有很多數字。但是有一些字符串類型的元素,例如inf。現在我必須使用weka過濾器來使用大數來替換csv文件中的字符串inf。我不需要首先使用OPENcsv包處理csv文件,然後使用CSVLoader加載包含數字的新csv文件。在使用CSVLoader並創建Instances對象之後,我需要使用weka過濾器來處理這個問題。
我搜索了很多關於它,但我找不到答案。那麼我可以使用weka過濾器來使用大數字替換csv文件中的字符串inf嗎?那麼所有屬性都是數字類型。 謝謝!
你是否真的想將'inf'的值視爲非常大的數值用於建模目的,還是忽略它們會更好? – nekomatic
我只想用大數字來替換字符串inf。然後該列可以轉換爲數字類型。所以我可以使用LibSVM處理數據。因爲那麼數據列將是全部數字類型。 – LYY