обработка данных с помощью weka PCA

Я хотел бы сделать PCA для моего набора данных, используя PCA weka. Я видел в Интернете код Java:

  1. PrincipalComponents pca = new PrincipalComponents();
  2. pca.setMaximumAttributeNames(300);
  3. pca.setInputFormat(данные);
  4. Экземпляры newData = Filter.useFilter(Data, pca);

Я импортирую в код как import weka.attributeSelection.PrincipalComponents, так и import weka.filters.Filter, но eclipse всегда показывает, что в третьей строке pca нужно привести к Filter. После того, как я применил pca к Filter, он по-прежнему неверен. Четвертая строка также показана неправильно. Я хотел бы знать, какой правильный код для выполнения pca для существующего набора данных?

Спасибо!


person bunny    schedule 22.05.2014    source источник


Ответы (1)


Проблема, с которой вы столкнулись, заключается в том, что в API weka есть два класса с именем PrincipalComponents:

weka.attributeSelection.PrincipalComponents и weka.filters.unsupervised.attribute.PrincipalComponents.

Последний является разновидностью Filter, но вы импортируете первый, а это не так.

Просто измените оператор импорта, и ваш код должен работать.

person azurefrog    schedule 22.05.2014
comment
Да, я видел то же самое, что и вы. Но почему так много онлайн-материалов, использующих эти строки кода для выполнения PCA? weka.8497.n7.nabble.com/ - person bunny; 22.05.2014
comment
Я только что понял это и соответственно обновил свой ответ. - person azurefrog; 22.05.2014