Go Back   Armenian Knowledge Base > Technical sections > Languages, Compilers, Interpreters > Algorithms

Reply
 
Thread Tools

Need help
Old 13.05.2007, 18:38   #1
Slipstream Traveller
 
Cortana's Avatar
 
Join Date: 01 2007
Location: Pillar of Autumn
Posts: 131
Rep Power: 0
Default Need help

So here's the question:

I have a dataset of one-dimensional vectors, each of those has a corresponding N-dimensional vector. The task is: given a one-dimensional vector from outside the dataset, predict the corresponding N-dimensional vector.
In other words, I somehow need to learn a function f(x)->(y1, y2,..., yN) or f(x)->([a1,b1], [a2,b2],..., [aN,bN]), where y1 belongs to [a1,b1] and so on (a and b as close together as possible).
Would really appreciate any suggestions, I'm kinda stuck - the methods I've tried didn't perform well.
__________________
"You are making a mistake.
My logic is undeniable."

Old 14.05.2007, 06:57   #2
User
 
ByTheWay's Avatar
 
Join Date: 07 2006
Location: Yerevan
Age: 42
Posts: 916
Rep Power: 4
Default

have you tried to drain a glass of brandy, it can be helpful

Old 14.05.2007, 07:32   #3
Slipstream Traveller
 
Cortana's Avatar
 
Join Date: 01 2007
Location: Pillar of Autumn
Posts: 131
Rep Power: 0
Default

i have, thank u, and how about smth to the point?

Old 15.05.2007, 08:01   #4
Школьник
 
Junior's Avatar
 
Join Date: 08 2004
Location: Armenia
Age: 41
Posts: 246
Rep Power: 0
Default

Cortana, could you please formulate the problem with more detail? And give 2-3 examples?

Old 16.05.2007, 11:00   #5
User
 
ByTheWay's Avatar
 
Join Date: 07 2006
Location: Yerevan
Age: 42
Posts: 916
Rep Power: 4
Default

Quote:
Originally Posted by Junior View Post
Cortana, could you please formulate the problem with more detail? And give 2-3 examples?
You know, after a glass of brandy, it's not so easy task

Old 25.05.2007, 05:52   #6
Slipstream Traveller
 
Cortana's Avatar
 
Join Date: 01 2007
Location: Pillar of Autumn
Posts: 131
Rep Power: 0
Default

Wow, I see a lot of useful suggestions..lol
Junior, what kind of details do u want?

Old 26.05.2007, 07:18   #7
User
 
ByTheWay's Avatar
 
Join Date: 07 2006
Location: Yerevan
Age: 42
Posts: 916
Rep Power: 4
Default

Quote:
Originally Posted by Cortana View Post
Wow, I see a lot of useful suggestions..
Yeh, no thanks required, you know, you're welcome
can you translate your question into Russian
cause my don't understooding English very wall

Old 26.05.2007, 12:25   #8
это надо видеть
 
Satyricon's Avatar
 
Join Date: 03 2006
Location: где то там...
Age: 38
Posts: 3,695
Blog Entries: 2
Rep Power: 5
Default

Please give an example with real numbers

Old 27.05.2007, 05:17   #9
Slipstream Traveller
 
Cortana's Avatar
 
Join Date: 01 2007
Location: Pillar of Autumn
Posts: 131
Rep Power: 0
Default

Quote:
Originally Posted by ByTheWay View Post
Yeh, no thanks required, you know, you're welcome
can you translate your question into Russian
cause my don't understooding English very wall
Ha, qo asacn a, cavd tanem

Old 27.05.2007, 05:44   #10
Slipstream Traveller
 
Cortana's Avatar
 
Join Date: 01 2007
Location: Pillar of Autumn
Posts: 131
Rep Power: 0
Default

Quote:
Originally Posted by Satyricon View Post
Please give an example with real numbers
Not sure how this will help, but anyways, here's a sample of my data:

1: x = -28.240891 y = (310.747, 3.01, -1.4, -40.58, 0, 4, 5, 8, 1, 3)
2: x = -42.423779 y = (349.184, 3.89, -1.74, -60.42, 0, 3, 7, 8, -1, 5)
3: x = -37.312016 y = (296.355, 2.03, -0.54, -22.76, 0, 0, 5, 2, 0, 5)

and so on, about 4M of them.
What I need is a function, which given, say, x = -28.240891 (first data point), will give me back some y very close to y = (310.747, 3.01, -1.4, -40.58, 0, 4, 5, 8, 1, 3).
In other words, the points in the database r not random, so I need to find a rule that describes them.

Old 27.05.2007, 10:04   #11
Академик
 
W_z_rd's Avatar
 
Join Date: 08 2002
Location: Yerevan, Armenia
Age: 52
Posts: 4,854
Rep Power: 5
Default

Did I understand it right that, based on a dataset you have, you need to calculate set of functions Y1(x)...YN(x), which, for any given X, will return you all the Y1-Yn-s closely matching those in dataset ?

There are numbers of interpolation methods (polinomial, b-spline, etc.), every one is good for a specific type of data/task. Which one of those have you tried and why the result was not satisfactory ?

One thing is clear that you can consider the problem as N intependednt x-y relationships, so we have to calculate N functions independently.
__________________
Женщин не надо понимать, их надо любить!

Last edited by W_z_rd; 04.06.2007 at 08:45.

Old 27.05.2007, 10:23   #12
User
 
ByTheWay's Avatar
 
Join Date: 07 2006
Location: Yerevan
Age: 42
Posts: 916
Rep Power: 4
Default

Quote:
Originally Posted by Cortana View Post
What I need is a function, which given, say, x = -28.240891 (first data point), will give me back some y very close to y = (310.747, 3.01, -1.4, -40.58, 0, 4, 5, 8, 1, 3).
public static void main(String[] args) {
double x = -28.240891;
double y[] = {310.747, 3.01, -1.4, -40.58, 0, 4, 5, 8, 1, 3};

System.out.println( getMoreCloseElement(x, y) );
}

static double getMoreCloseElement(double x, double y[]) {
double ret = y[0];
double dif = Math.abs(x - y[0]);

for (int i = 1; i < y.length; i++) {
double temp = Math.abs(x - y[i]);
if( temp < dif ) {
dif = temp;
ret = y[i];
}
}
return ret;
}
__________________
stop your eyes from flowing out

Old 27.05.2007, 18:43   #13
Ego coder
 
AvDav's Avatar
 
Join Date: 07 2004
Location: Yerevan, Armenia
Age: 43
Posts: 3,738
Rep Power: 4
Default

Quote:
Originally Posted by Cortana View Post
Not sure how this will help, but anyways, here's a sample of my data:

1: x = -28.240891 y = (310.747, 3.01, -1.4, -40.58, 0, 4, 5, 8, 1, 3)
2: x = -42.423779 y = (349.184, 3.89, -1.74, -60.42, 0, 3, 7, 8, -1, 5)
3: x = -37.312016 y = (296.355, 2.03, -0.54, -22.76, 0, 0, 5, 2, 0, 5)

and so on, about 4M of them.
What I need is a function, which given, say, x = -28.240891 (first data point), will give me back some y very close to y = (310.747, 3.01, -1.4, -40.58, 0, 4, 5, 8, 1, 3).
In other words, the points in the database r not random, so I need to find a rule that describes them.
Hmm.. what you need is just 2 arrays, 1-st one is one dimensional, second one - two, just use linear search by given x value and take the corresponding y[i]-th vector, what's the problem ?

Old 27.05.2007, 18:46   #14
Ego coder
 
AvDav's Avatar
 
Join Date: 07 2004
Location: Yerevan, Armenia
Age: 43
Posts: 3,738
Rep Power: 4
Default

Ooops, didn't mention 4M data stuff ... well pre-sort the array to use binary search so will be somewhat O(log(n)) instead of O(N)

Old 27.05.2007, 19:03   #15
Дошкольник
 
Join Date: 10 2004
Location: Yerevan
Age: 36
Posts: 116
Rep Power: 0
Default

Theoretical, we can manage to have just 1 number, instead of Y1, Y2, ..., Yn. And after that all we have to do is to find a function that supplies a single(and also correct) Y value corresponding to a single X, thats much more easier cuz, as it was mentioned before by W_z_rd, there are several methods available for that case, and it doesn't require separate calculations for each Y value.
Reply




Реклама:
реклама

All times are GMT. The time now is 12:17.
Top

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.