here에서 힌트를 얻으십시오! Ruby에서 RJB를 통해 weka의 분류 프로그램 라이브러리를 활용하고 있습니다.weika가 Ruby에서 분류 자의 유효성을 검사하는 방법
.arc 파일에서 분류자를 생성하고 십진 교차 유효성 검사를 실행하여 설명 된대로 혼성 행렬을 만들 수 있기를 원합니다. in the Weka wiki.
아래 필수 코드가 있습니다.
# creating the classifier
Rjb::load("./weka.jar", jvmargs=["-Xmx2000M"])
classifier = Rjb::import("weka.classifiers.bayes.NaiveBayes").new
# importing the data
data_src = Rjb::import("java.io.FileReader").new("./the_data.arff")
data = Rjb::import("weka.core.Instances").new(data_src)
evaluation = Rjb::import("weka.classifiers.Evaluation").new(data)
folds = Rjb::import('java.lang.Integer').new(10)
rand = Rjb::import("java.util.Random").new(1)
evaluation.crossValidateModel(classifier,
data,
folds,
rand)
print evaluation.toMatrixString()
위의 weka 위키 링크에서 알 수 있습니다. 하지만 ...
Fail: unknown method name `crossValidateModel' (RuntimeError)
어느 제가 일반적으로 이해하는 것은 문제의 방법은 올바른 인수와 함께 제공되지 않은,하지만이 경우 것이 얼마나 볼 수 있다는 것을 의미에서.
는
evaluation.java_methods의 출력은 내가 해석하는 방법을 잘 모르겠어요있는 crossValidateModel([Ljava.lang.String;Lweka.core.Instances;I[Ljava.lang.String;Ljava.util.Random;, Lweka.classifiers.Classifier;Lweka.core.Instances;ILjava.util.Random;[Ljava.lang.Object;])
이 포함되어 있습니다.
누구든지 내가해야 할 일을 알고 있습니까?
편집 : 나는 여기에 제기으로 문제를 해결할 수 아니었지만, 그것은 내가 here을 설명 JRuby를 넘어서 시작하여 원하는 것을 달성 할 수 있었던 것으로 나타났다. 덕분에 팁 :
"분류 자"의 클래스를 인쇄 할 수 있습니까? print classifier.getClass()와 같습니다. 자바에 대한 과부하가 예상대로 작동하지 않는 것 같습니다. 답장을 보내 주셔서 감사합니다. –
'p classifier.getClass() # => # ' 그 도움이 되나요? –
Nat
RJB를 사용해야하는 이유가 있는지 모르겠지만 JRuby의 Weka를 사용하여 큰 효과를 얻었습니다. – michaeltwofish