我正在为我的人工智能课程制作一个项目,该课程基于一些财务数据来预测公司的破产。
对于可以使用Java或C ++的项目,有人建议我们使用框架,更具体地说是Neuroph。
现在,我已经编写了部分代码来读取数据并将其放入训练集中,但我没有得到我希望的结果。
例如,我读取的数据有64个数据值,输出值为0
(公司未进入破产状态)或1
(破产公司)。我有6000家公司没有破产,大约700家公司在我的数据集上。
当我输入公司数据时,无论该公司是否已经破产,Neuroph给我的值总是接近1 。但我注意到这只发生在我将破产公司数据插入训练集时。只有一家破产公司足以让NN给我的价值高于0.9。
这就是我创建网络时所拥有的:
//create new network
ArrayList<Integer> layers = new ArrayList<>();
layers.add(64); // input data
layers.add(10); // intermediate neurons
layers.add(1); // output data
NeuralNetwork neuralNetwork = new MultiLayerPerceptron(layers);
//create training set
DataSet trainingSet = new DataSet(64, 1);
//add training data of all years to training set
for(ArrfReader reader : readerArray) {
for (int i = 0; i < reader.getFullDataSet().size(); i++) {
trainingSet.addRow(new DataSetRow(reader.getCompanyData(i), reader.getBankruptcyOfCompany(i)));
}
}
//learn the training set
neuralNetwork.learn(trainingSet);
现在,我很确定我搞砸了新的MultiLayerPerceptron构造函数,但我不知道为什么。任何帮助或建议都会很棒。感谢。