由係數()返回的double [] []具有與傳入Logistic的Instances對象不同的一組屬性。我不得不仔細閱讀Weka code以瞭解如何應對這種情況。我找不到通過Logistic方法獲取信息的方法,但是您可以輕鬆地複製它使用的過濾器並獲取相同的一組屬性以進行操作。
我使用Weka作爲JRuby中的庫,因此這裏的代碼是Ruby語法。
import 'weka.filters.unsupervised.attribute.RemoveUseless'
logit_filter = RemoveUseless.new
logit_filter.setInputFormat train_filtered
logit_filtered = Filter.useFilter(train_filtered, logit_filter)
的logit_filtered變量是一個實例集,反映什麼是物流創建的,但有一個最終難題。物流的內部保持截距的雙重[] []是與係數返回,所以我們必須忽略第一個元素映射屬性設置正確......
java_array = logit.coefficients.to_a #converting java array to ruby
coeffs = java_array.map(&:to_a) #converting second level of java array to ruby
coeffs.each_with_index do |arr, index|
next if index == 0 #this is the Intercept
puts "#{logit_filtered.attribute(index-1).name.to_s}: #{coeffs}"
end
這東西映射的第一要素一起對我來說很好。