2017-04-05 1 views
1

내가 판별 분석 패키지에 MultiClassFLDA를 사용하기 위해 노력하고있어하지만 난 항상 코드를 실행에 오류가 발생하고 MultiClassFLDA 클래스의 새 인스턴스를 정의웨카 DiscriminantAnalysis 않는 NoClassDefFoundError는

Exception in thread "main" java.lang.NoClassDefFoundError: no/uib/cipr/matrix/Vector 
    at assignment2.face.tryLDA(face.java:141) 
    at assignment2.Assignment2.main(Assignment2.java:106) 
Caused by: java.lang.ClassNotFoundException: no.uib.cipr.matrix.Vector 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 

답변

1

일부에 링크 될 것으로 보인다 Weka Package Manager의 새로운 버전의 Weka에서 동적 클래스 로딩 :이 클래스는 에 정의되어 있으며 번 안에weka.jar 번으로 묶여 있습니다. that other question에는 의 압축을 풀고 클래스 경로에 추가하라는 메시지가 an answer에 있습니다. 나는 다른 필터와이 문제를 가지고 있지 않은 것처럼

, 내 생각 MultiClassFLDA가 제대로 구현되지 않는 것입니다 : 당신이 이전에 다른 필터를 사용하는 경우, 특정 클래스가로드되는 것입니다 발견 :

// Run a dummy Filter for correct initialization 
Filter f = new Standardize(); 
f.setInputFormat(data); 
Filter.useFilter(new Instances("", params, 0), f); // Dummy run on empty dataset 
// Now run the MultiClassFLDA 
f = new MultiClassFLDA(); 
f.setInputFormat(data); 
data = Filter.useFilter(data, f); 

NB 그건 정말 못생긴 해킹입니다! 나는 일할 수 있기 위해 그것을 사용했다. 나는 적절한 방법을 찾을 때 (Weka itslef에서 항아리를 추출하는 것 외에는) 내 대답을 편집 할 것입니다.

관련 문제