简单神经网络是一个 Java 项目,允许用户轻松创建异步简单神经网络。
该项目可用于根据初始学习预测输出。
使用结果实体回调
可定制的神经元数量
从外部文件读取数据
简单的预测器使用
这是默认配置的简单用法:
1.首先,加载输入和输出数据。您可以从外部文本文件中读取它:
float[][] x = DataUtils.readInputsFromFile("data/x.txt"); int[] t = DataUtils.readOutputsFromFile("data/t.txt");
2.
Instantiate new NeuralNetwork and create a new callback to receive response:java NeuralNetwork neuralNetwork = new NeuralNetwork(x, t, new INeuralNetworkCallback() { @Override public void success(Result result) { }
@Override
public void failure(Error error) {
}
});
```
3.使用来自成功响应的 Result 实体预测一个值:
@Override
public void success(Result result) {
float[] valueToPredict = new float[] {-1.2f, 0.796f};
System.out.println("Predicted result: " + result.predictValue(valueToPredict));
}
4.最后,运行神经网络的学习:
神经网络.startLearning(); ```
完整示例:
float[][] x = DataUtils.readInputsFromFile("data/x.txt");
int[] t = DataUtils.readOutputsFromFile("data/t.txt");
NeuralNetwork neuralNetwork = new NeuralNetwork(x, t, new INeuralNetworkCallback() {
@Override
public void success(Result result) {
float[] valueToPredict = new float[] {-0.205f, 0.780f};
System.out.println("Success percentage: " + result.getSuccessPercentage());
System.out.println("Predicted result: " + result.predictValue(valueToPredict));
}
@Override
public void failure(Error error) {
System.out.println("Error: " + error.getDescription());
}
});
neuralNetwork.startLearning();
输出:
Success percentage: 88.4
Predicted result: 1
您可以自定义一些值作为神经元的数量、bucle 迭代限制、传递函数和结果解析器。
该项目有一个包含真实数据的示例,其中包含 250 名患者的列表,其中两个分析结果作为输入,0 或 1(取决于是否患有疾病)作为输出:
Inputs Output
------------------------ --------------------
Result 1 Result 2 Disease
----------------------- --------------------
-0.5982 0.9870 1
-0.2019 0.6210 1
0.1797 0.4518 0
-0.0982 0.5876 1
... ... ...
使用神经网络中的这些数据,该项目能够以88%的最小成功率预测不在数据列表中的患者的输出(疾病结果)。
Copyright 2014 José Luis Martín
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习