此代码可以正常工作,但不是很好,因为它无法解释某些非线性例如函数极值的二次行为
LinearRegression finalClassifier = new LinearRegression();
finalClassifier.buildClassifier(adjInstances);
double predictedValue = finalClassifier.classifyInstance(finalInstance);
并且此代码产生完全虚假的结果
MultilayerPerceptron finalClassifier = new MultilayerPerceptron();
finalClassifier.buildClassifier(adjInstances);
double predictedValue = finalClassifier.classifyInstance(finalInstance);
我相信MultilayerPerceptron应该总是优于LinearRegression。只有某些函数形状是LinearRegression无法处理的(例如f(x)= x ^ 2),这对于MultilayerPerceptron神经网络来说是一块蛋糕。
所以我可能错误地使用了API,或者对MultilayerPerceptron
的可接受输入有一些未记录的要求。它可能是什么?
我的数据实例包含20个数字和名义属性的组合,例如:
A01 750
A02 1
A03 1
A04 true
A05 false
A06 false
A07 false
A08 false
A09 true
A10 false
A11 true
A12 false
A13 false
A14 false
A15 true
A16 false
A17 false
A18 false
A19 Yes
A20 34
答案 0 :(得分:4)
您可以回答的问题的唯一部分是
我相信MultilayerPerceptron应该总是优于LinearRegression。只有某些函数形状是LinearRegression无法处理的(例如f(x)= x ^ 2),这对于MultilayerPerceptron神经网络来说是一块蛋糕。
这简直是假的。为什么LR可以更好?
如果提供的代码是您的实际代码,那么结果的最可能原因是上面的第二点 - 您不能简单地说'#34;为我构建一个神经网络!"并期望它运作良好,它不会这样工作:)