Welcome

Fragment of a discussion from User talk:Jmb
Jump to navigation Jump to search

Better than straight averaging/fitting would be something like RANSAC. It would find trends in the data even if there is a lot of noise.

Skilgannon09:59, 15 June 2012

Funny you mention RANSAC... a few months back during a computer vision class I was thinking about using multiple separate runs of RANSAC to identify multiple moving planes, by running the RANSAC algorithm again over the points discarded by the first runs of it...

Which I am now amused by because even though I didn't know of RANSAC at the time, I now realize that the algorithm I proposed on oldwiki:Rednaxela/MultiplePlaneRegressionClustering would at a superficial level behave similarly to detecting multiple planes with RANSAC. I'm now suddenly tempted to try to incorporate something like that into a robot...

Rednaxela15:31, 15 June 2012
 

I looked at some higher-dimensional RANSAC algorithms a while back for my masters, and it seems that RANSAC gets really slow and much less accurate as the dimensions go up. So if you give it a try, keep your dimensions down =)

Skilgannon12:22, 16 June 2012
 

Hmm, sounds like a job for principal component analysis to me... I'm curious, did you ever consider trying something like that that with it?

Rednaxela19:44, 16 June 2012
 

No, I never tried it with Robocode. I think using PCA has all the disadvantages of regular regression - it uses all of the noise, which is what RANSAC specifically avoids. Especially in a robocode targeting environment, where the noise is typically greater than 50%.

Skilgannon04:24, 17 June 2012
 

Hmm, good point. Interestingly, upon doing a google search for PCA and RANSAC in the same context, I found some cases of a generalized PCA being performed using a RANSAC-style algorithm.

Maybe a good approach for dimensionality reduction would be doing offline processing on some large data sets, using a RANSAC-style algortihm to find principal components to use for the online algorithm with the tighter speed requirements...

Rednaxela08:45, 17 June 2012
 

I'm looking forward to seeing where this idea might go. Are you still thinking of it in a robocode context? I was thinking, even if you correctly identified several movement patterns, would it have any advantages over a pattern matcher?

Jmb11:18, 17 June 2012
 

My thoughts with this actually went more in a process-after-extracting-cluster type algorithm for KNN in order to accurately interpolate what value to shoot at given a set of adjacent-in-n-space values. I think it would be much better than weighting scans by 1/distance or whatever other weighting scheme gets used, as the noise could be eliminated based on location instead of distance and only the trends would be chosen, much like how a histogram allows one to select the highest peak rather than just taking the mean of all the scans. I think it would require fairly large clusters (200 or so points at least), but it could net fairly large gains against the right data patterns.

Skilgannon14:32, 17 June 2012

That way of using is exactly what I was proposing years ago in the last major paragraph of oldwiki:Rednaxela/MultiplePlaneRegressionClustering, though I think you word it much more elegantly than I did :-)

("To use this data of the lines, you simply take every data point, shift it's GuessFactor by however much the formula for the plane it is clustered with says it should be shifted, and then use a kernel density algorithm on these shifted values....")

Rednaxela17:04, 17 June 2012