假設我向WEKA輸入了一些數據集併爲屬性設置了一個歸一化過濾器,因此這些值在0和1之間。然後假設歸一化通過除以最大值完成,然後建立模型。那麼,如果我部署模型並在新實例中進行分類,則實例的特徵值大於訓練集中的最大值。如何處理這種情況?它只需要1或是否需要超過1?或者它拋出異常?WEKA如何標準化屬性?
2
A
回答
3
該文檔沒有爲通用的過濾器指定此值,所以它必須取決於過濾器。我查看了weka.filters.unsupervised.attribute.Normalize
的源代碼,我假設你正在使用它,並且我沒有看到任何邊界檢查。
的實際比例代碼在Normalize.convertInstance() method:
value = (vals[j] - m_MinArray[j])/(m_MaxArray[j] - m_MinArray[j])
* m_Scale + m_Translation;
除非任何(不太可能),額外的檢查,這種方法之外我會說,它會擴展到大於1的值,在你所描述的情況。要100%確定你最好的選擇是編寫一個測試用例,自己調用過濾器,並找出答案。由於沒有在Javadoc中指定它們的庫,你永遠不知道下一個版本會做什麼。因此,如果您非常依賴特定的行爲,那麼編寫一個自動化測試來回歸測試庫的行爲並不是一個壞主意。
0
我有和你說的一樣的問題。我做了如下,並可能這種方法可以幫助你:
我想你使用weka.filters.unsupervised.attribute.Normalize
規範化你的數據。
爲歐文Bolwidt說,WEKA使用
value = (vals[j] - m_MinArray[j])/(m_MaxArray[j] - m_MinArray[j])
* m_Scale + m_Translation;
一定要規範你的屬性。
不要忘記,規範化類有這兩方法:
public double[] getMinArray()
public double[] getMaxArray()
返回計算出的最小值/最大值在數據的屬性。
而且您可以存儲最小/最大值。然後使用該公式來自己標準化數據。
記住,你可以設置屬性,Instance
類,你可以通過Evaluation.evaluationForSingleInstance
您的結果進行分類我會稍後給你的鏈接,這可能會幫助你。 謝謝
相關問題
- 1. Weka標準化列
- 2. 防止標準屬性的序列化
- 3. Weka屬性選擇
- 4. 如何在java weka中複製屬性?
- 5. 如何在Weka中創建屬性
- 6. Java,Weka:如何預測數字屬性?
- 7. WEKA如何處理名義屬性v/s數字屬性?
- 8. WEKA:問題屬性scale
- 9. 用Weka過濾屬性
- 10. Weka屬性的預測值
- 11. Weka中的ID屬性
- 12. 屬性 - 標準明智
- 13. 使用非標準屬性
- 14. Chrome的性能:「標準」屬性名稱與非標準
- 15. 如何做標準化?
- 16. 如何使R中的數據標準化和非標準化?
- 17. 添加非標準標記屬性
- 18. 如何指定抑制消息屬性檢查標準的.NET標準類庫?
- 19. 如何標準化動態創建的TextView中的填充和其他屬性?
- 20. 使用Weka進行參數優化和屬性選擇
- 21. 標準化數據集屬性跨項目
- 22. 實體特殊屬性和數據庫標準化
- 23. 爲什麼Hibernate忽略persistence.xml中的JPA2標準化屬性?
- 24. 標準化和非標準化的值
- 25. 標準化/標準化numpy recarray
- 26. 如何在Weka中使用非目標屬性進行時間序列預測?
- 27. 我的Weka Java代碼結果* WEKA * DUMMY * STRING * FOR * STRING *屬性*
- 28. 將標準加入另一個標準的兩個屬性
- 29. WooCommerce變化屬性標籤
- 30. URL標準化和標準化的標準工具?
此回答有用嗎? –