[英]Deeplearning4J MultiLayerConfiguration settings for a two class logistic regression model
我正在嘗試構建一個二類邏輯回歸模型,但不確定二類模型的最佳方法。
我正在處理如下所示的數據:
特色一 | 功能 b | 功能 c | ... | 標簽 |
---|---|---|---|---|
0.85 | 0.2 | 0.4 | 1.0 | |
0.05 | 0.3 | 0.1 | 0.0 |
具有范圍 0-1 的特征和 0 或 1 的標簽。
我目前正在使用這個 MultiLayerConfiguration:
private static final int FEATURES_COUNT = 30;
private static final int CLASSES_COUNT = 2;
...
MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder().seed(12345)
.updater(new Sgd(0.01))
.seed(1)
.biasInit(0)
.list()
.layer(new DenseLayer.Builder()
.nIn(FEATURES_COUNT)
.nOut(50)
.activation(Activation.SIGMOID)
.weightInit(new UniformDistribution(0, 1))
.build())
.layer(new DenseLayer.Builder()
.nIn(50)
.nOut(50)
.activation(Activation.SIGMOID)
.weightInit(new UniformDistribution(0, 1))
.build())
.layer(new OutputLayer.Builder(LossFunctions.LossFunction.NEGATIVELOGLIKELIHOOD)
.nOut(2)
.activation(Activation.SOFTMAX)
.weightInit(new UniformDistribution(0, 1))
.build())
這是構建模型的最佳方式嗎?
此外,當運行幾分鍾時,模型只預測標簽 0。
0 1
---------
247 0 | 0 = 0
253 0 | 1 = 1
我也可以根據需要生成盡可能多的數據,並且目前正在使用 6,000 的數據集,批量大小為 500。
你會如何建議我改進我的設置/模型?
預先感謝您的任何建議。
除非您有特定目標,否則我會避免為您的模型設置分布。 這會極大地影響模型的性能。 默認 XAVIER 適用於大多數用例。
您通常也不希望模型權重初始化在 0 和 1 之間。這太大了,會阻止模型學習。
邏輯回歸也不是您在此處介紹的內容。 您創建了一個 3 層 MLP。 如果您只想進行邏輯回歸,那將是帶有 softmax 或 sigmoid 的 1 層神經網絡。 這應該會大大簡化您的調整。
值得注意的是,當您進一步深入時,數據的規范化也很重要。
最后,對於您的數據設置,請確保您的標簽分別為 0 和 1。 如果輸出有 sigmoid,則需要 1 個輸出為 0 或 1。如果有 2,則需要 2 列 0/1,其中 1 是標簽。 1 的列索引將是您想要的目標標簽。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.