Armenian Knowledge Base  

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

Reply
 
LinkBack Thread Tools
Old 13.05.2007, 19:38   #1
Slipstream Traveller
 
Cortana's Avatar
 
Join Date: 01 2007
Location: Pillar of Autumn
Posts: 131
Downloads: 1
Uploads: 0
Reputation: 0 | 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."
Reply With Quote
Old 14.05.2007, 07:57   #2
User
 
ByTheWay's Avatar
 
Join Date: 07 2006
Location: Yerevan
Age: 36
Posts: 916
Downloads: 5
Uploads: 0
Reputation: 35 | 3
Default

have you tried to drain a glass of brandy, it can be helpful
Reply With Quote
Old 14.05.2007, 08:32   #3
Slipstream Traveller
 
Cortana's Avatar
 
Join Date: 01 2007
Location: Pillar of Autumn
Posts: 131
Downloads: 1
Uploads: 0
Reputation: 0 | 0
Default

i have, thank u, and how about smth to the point?
Reply With Quote
Old 15.05.2007, 09:01   #4
Школьник
 
Junior's Avatar
 
Join Date: 08 2004
Location: Armenia
Age: 34
Posts: 246
Downloads: 0
Uploads: 0
Reputation: 4 | 0
Default

Cortana, could you please formulate the problem with more detail? And give 2-3 examples?
Reply With Quote
Old 16.05.2007, 12:00   #5
User
 
ByTheWay's Avatar
 
Join Date: 07 2006
Location: Yerevan
Age: 36
Posts: 916
Downloads: 5
Uploads: 0
Reputation: 35 | 3
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
Reply With Quote
Old 25.05.2007, 06:52   #6
Slipstream Traveller
 
Cortana's Avatar
 
Join Date: 01 2007
Location: Pillar of Autumn
Posts: 131
Downloads: 1
Uploads: 0
Reputation: 0 | 0
Default

Wow, I see a lot of useful suggestions..lol
Junior, what kind of details do u want?
Reply With Quote
Old 26.05.2007, 08:18   #7
User
 
ByTheWay's Avatar
 
Join Date: 07 2006
Location: Yerevan
Age: 36
Posts: 916
Downloads: 5
Uploads: 0
Reputation: 35 | 3
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
Reply With Quote
Old 26.05.2007, 13:25   #8
это надо видеть
 
Satyricon's Avatar
 
Join Date: 03 2006
Location: где то там...
Age: 32
Posts: 3,695
Downloads: 8
Uploads: 1
Blog Entries: 2
Reputation: 746 | 4
Default

Please give an example with real numbers
Reply With Quote
Old 27.05.2007, 06:17   #9
Slipstream Traveller
 
Cortana's Avatar
 
Join Date: 01 2007
Location: Pillar of Autumn
Posts: 131
Downloads: 1
Uploads: 0
Reputation: 0 | 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
Reply With Quote
Old 27.05.2007, 06:44   #10
Slipstream Traveller
 
Cortana's Avatar
 
Join Date: 01 2007
Location: Pillar of Autumn
Posts: 131
Downloads: 1
Uploads: 0
Reputation: 0 | 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.
Reply With Quote
Old 27.05.2007, 11:04   #11
Академик
 
W_z_rd's Avatar
 
Join Date: 08 2002
Location: Yerevan, Armenia
Age: 45
Posts: 4,854
Downloads: 1
Uploads: 0
Reputation: 225 | 4
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 09:45.
Reply With Quote
Old 27.05.2007, 11:23   #12
User
 
ByTheWay's Avatar
 
Join Date: 07 2006
Location: Yerevan
Age: 36
Posts: 916
Downloads: 5
Uploads: 0
Reputation: 35 | 3
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
Reply With Quote
Old 27.05.2007, 19:43   #13
The splendid
 
AvDav's Avatar
 
Join Date: 07 2004
Location: Universe
Age: 36
Posts: 3,413
Downloads: 22
Uploads: 0
Reputation: 222 | 3
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 ?
Reply With Quote
Old 27.05.2007, 19:46   #14
The splendid
 
AvDav's Avatar
 
Join Date: 07 2004
Location: Universe
Age: 36
Posts: 3,413
Downloads: 22
Uploads: 0
Reputation: 222 | 3
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)
Reply With Quote
Old 27.05.2007, 20:03   #15
Дошкольник
 
Join Date: 10 2004
Location: Yerevan
Age: 30
Posts: 116
Downloads: 8
Uploads: 0
Reputation: 2 | 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 With Quote
Sponsored Links
Reply

Thread Tools


На правах рекламы:
реклама

All times are GMT. The time now is 13:59.


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