缺少驗證行的神經網路錯誤訊息-建議解決方法?大家好,
我正在 JMP 16 中作為 JSL 循環的一部分測試幾個模型,使用不同的驗證列來確定 R2 值如何根據所使用的資料而變化。每個驗證列包含資料的子集,在列的開頭和/或結尾處有一些缺少的資料。
其他模型,例如 Bootstrap,只需忽略缺失值就能運作良好,但神經網路卻不斷拋出錯誤訊息(在 JMP 範例資料集 CrimeData 上重現)。


我可以透過新增一個過濾列、將所有缺失值設為 0 並且不運行它們來解決該問題。但這將需要每個驗證列都有一個過濾列(或每次迭代動態建立/刪除一個列)。

Neural(
Y( :Murder Rate ),
X(
:Robbery Rate, :"Agg-Aslt Rate"n, :Burglary Rate, :Larceny Rate,
:MVTheft Rate
),
Validation( :Validation ),
Informative Missing( 0 ),
Fit( NTanH( 3 ) ),
Where( :Filter == 1 )
)
還有其他人遇到過這個問題並找到解決方案嗎?謝謝!
資料混合與清理預測模型和機器學習回复:缺少驗證行的神經網絡的錯誤消息 - 建議解決方法?你好@c_blanken ,
您的驗證列似乎沒有填滿所有行,因為您將驗證列分層到其他一些缺少數據的列上。 我的猜測是 JMP 不知道如何處理驗證列中的那些行,因為缺少數據。
您是否計劃在缺少數據的情況下對結果進行建模? 如果不是,那麼您可以考慮排除那些缺少數據的行——這實際上是您對過濾列所做的,但是通過排除這些行,您不需要為您測試的每個驗證列創建一個新的過濾列. 您還可以在 JSL 中輕鬆地將行狀態設置為 Exclude,以便它是自動的,您不必手動執行。
如果您仍然需要對缺少數據的數據建模,那麼您可能會考慮不對任何列進行分層,而只是隨機生成訓練/驗證列。 即使存在缺失數據,JMP 也會將每一行分配給正確的數據集。
希望這可以幫助!,
DS
回复:缺少驗證行的神經網絡的錯誤消息 - 建議解決方法?你好@c_blanken ,
只是為來自的出色答案添加一些評論/評論@SDF1 .
- 為什麼有些行的驗證列缺少值? 它們是在創建列之後添加的嗎?
- 看到“Bootstrap Forest”平台能夠處理驗證列中的缺失值,我並不感到驚訝,因為該模型使用訓練數據的引導樣本來擬合許多決策樹。 神經網絡和其他方法“按原樣”使用數據,因此您可能會遇到收到的警告消息。
與其創建多個驗證列來評估訓練集可變性對模型性能的影響,可能(至少)有 2 個其他有趣的選項供您選擇:
1. 創建一個“公式”驗證列 (jmp.com)而不是“固定”驗證列:

這種方法有兩個好處:
- 即使在分層/分組驗證的情況下,它也可以在驗證列中為添加的新行自動添加訓練/驗證或測試標籤,具體取決於分層/分組方法以及您使用的這些集合之間的比率。
- 在建模中,您還可以更輕鬆地嘗試訓練集和驗證集之間的不同重採樣,方法是右鍵單擊您想要使用各種訓練集和驗證集評估的性能指標,單擊“模擬”,您將在此處選擇切換進出驗證列:

通過這樣做,您將獲得一個數據表,其中包含在各種訓練和驗證集上完成的所有模擬,並且您可以繪製通過這些模擬獲得的性能可變性(此處為玩具數據集“Boston Housing”和隨機森林中的 R²):

2. 使用模型篩選平台 (jmp.com)僅包含您想要選擇的模型和您想要的驗證方法(K 折、嵌套 K 折,以及重複它們的選項或驗證列)的平台,然後啟動它。 您將可以訪問結果摘要,還可以訪問單個折疊結果:

例如,當選擇一個折疊來運行模型時(這裡我嘗試使用 fold3),一個新列也會出現在您的數據表中,以便知道該折疊中的哪些行被用作訓練或驗證(0:訓練,1:驗證) :

我認為這些方法可能對您有用,手動工作更少,靈活性更大。