Talk:Perceptron: Difference between revisions

From Rosetta Code
Content added Content deleted
m (typo)
Line 14: Line 14:
It would be helpful to know how long the java implementation had to "cook" before that screenshot was taken... --[[User:Rdm|Rdm]] ([[User talk:Rdm|talk]]) 04:10, 16 July 2016 (UTC)
It would be helpful to know how long the java implementation had to "cook" before that screenshot was taken... --[[User:Rdm|Rdm]] ([[User talk:Rdm|talk]]) 04:10, 16 July 2016 (UTC)
: Not very long, maybe a few minutes, I can't remember exactly, but it wasn't very long. It stabilizes after about half a minute on my system, but I almost never get a perfect split (I believe the text at natureofcode also says that), so I got a bit lucky with the screenshot. I tried making it run longer but it doesn't seem to improve. [[User:Fwend|Fwend]] ([[User talk:Fwend|talk]]) 07:13, 16 July 2016 (UTC)
: Not very long, maybe a few minutes, I can't remember exactly, but it wasn't very long. It stabilizes after about half a minute on my system, but I almost never get a perfect split (I believe the text at natureofcode also says that), so I got a bit lucky with the screenshot. I tried making it run longer but it doesn't seem to improve. [[User:Fwend|Fwend]] ([[User talk:Fwend|talk]]) 07:13, 16 July 2016 (UTC)

== Is the line on Java correct? ==

The line drawn here is from (0,0) to (x,f(x)). Should it not be from (0,f(0)) to (x, f(x))? This is the line we're partitioning acress? Surely?

<lang java>
int x = getWidth();
int y = (int) f(x);
//. [...]
// g.drawLine(0, 0, x, y);
g.drawLine(0, (int)f(0), x, y);
</lang>

--[[User:Tim-brown|Tim-brown]] ([[User talk:Tim-brown|talk]]) 16:59, 16 January 2017 (UTC)

Revision as of 17:00, 16 January 2017

How long does that java implementation need?

Looking at the current java implementation, I see, in the paint event:

<lang java> train(training[count].inputs, training[count].answer);

       count = (count + 1) % training.length;

       g.setStroke(new BasicStroke(1));
       g.setColor(Color.black);
       for (int i = 0; i < count; i++) {</lang>

So, I believe count is initially zero, and it looks like each time through the paint event there's training against one element of the training set. And, it's got a timer doing a repaint every 30 milliseconds. So it's a bit over a minute to do one pass against the training set of 2000 elements, and then it will keep training indefinitely.

It would be helpful to know how long the java implementation had to "cook" before that screenshot was taken... --Rdm (talk) 04:10, 16 July 2016 (UTC)

Not very long, maybe a few minutes, I can't remember exactly, but it wasn't very long. It stabilizes after about half a minute on my system, but I almost never get a perfect split (I believe the text at natureofcode also says that), so I got a bit lucky with the screenshot. I tried making it run longer but it doesn't seem to improve. Fwend (talk) 07:13, 16 July 2016 (UTC)

Is the line on Java correct?

The line drawn here is from (0,0) to (x,f(x)). Should it not be from (0,f(0)) to (x, f(x))? This is the line we're partitioning acress? Surely?

<lang java> int x = getWidth(); int y = (int) f(x); //. [...] // g.drawLine(0, 0, x, y); g.drawLine(0, (int)f(0), x, y);

</lang>

--Tim-brown (talk) 16:59, 16 January 2017 (UTC)