Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class PerceptronTrainingImpl implements PerceptronTraining {
- public static final Random RANDOM = new Random();
- @Override
- public Perceptron train(final double trainingSpeed, final Iterable<TrainingData> trainingDataSet) {
- List<Double> weight = new ArrayList<>();
- for (int i = 0; i < trainingDataSet.iterator().next().getInput().size(); i++) {
- weight.add(RANDOM.nextDouble());
- }
- Perceptron perceptron = new ru.ifmo.enf.panina.t13.Perceptron(weight);
- boolean weightChanged = true;
- while (weightChanged) {
- weightChanged = false;
- for (TrainingData trainingData : trainingDataSet) {
- double o = perceptron.getOutput(trainingData.getInput());
- if (o != trainingData.retResult()) {
- weight = new ArrayList<>();
- weightChanged = true;
- for (int i = 0; i < trainingDataSet.iterator().next().getInput().size(); i++) {
- weight.add(perceptron.getWeights().get(i) + trainingSpeed * (trainingData.retResult() - o) * trainingData.getInput().get(i));
- }
- perceptron = new ru.ifmo.enf.panina.t13.Perceptron(weight);
- }
- }
- }
- return perceptron;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement