Answers.Body: <p>Impossible to solve until you define an error measurement ( by example <span class="math-container">$|R-R'|$</span> or <span class="math-container">$(R-R')^2$</span> ) and how this error changes when A, B and C change.</p>
  <p>Extreme example: assume <span class="math-container">$R()$</span> is random (unrelated to A, B, C values) but static (always same <span class="math-container">$R(A,B,C)$</span> for same values of A,B,C). Given some values of A, B, C, you can only answer the value of <span class="math-container">$R(A,B,C)$</span> when A,B,C was in the training set. <span class="math-container">$R(A,B,C)$</span> is undefined and no predictable when A,B,C was not in the training set.</p>
  <p>Moreover, improvements can be done if <span class="math-container">$R()$</span> has some properties, by example, if it is possible to state that <span class="math-container">$R(A,B,C)=R(B,A,C)$</span> or that <span class="math-container">$R(A1,B1,C1)=R(A2,B2,C2)$</span> if <span class="math-container">$A1+B1+C1=A2+B2+C2$</span>.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-02-13T11:01:47.047Z
Answers.LastActivityDate: 2020-11-14T12:08:47.533Z
Answers.LastEditDate: 2020-11-14T12:08:47.533Z
Answers.UserDisplayName: pasaba por aqui
Answers.Body: <p>Yes, you are trying to predict a real number output, so this is a regression problem. To know what kind of algorithm would be best I think you have to ask how much data you have and what you know already about the relationships of the numbers. If you try simple linear regression, what kind of error will you get?</p>
  <p>If you were to try linear regression and you get an error that is acceptable, then it may be a very simple problem. Beyond linear regression you can look to more advanced things such as Gaussian processes and neural networks which will all make the kinds of predictions you are seeking.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-11-14T12:44:35.547Z
Answers.LastActivityDate: 2020-11-14T12:44:35.547Z
Answers.UserDisplayName: Joff
Answers.Body: <p>Without seeing more data it's hard to say for sure.  Superficially, this looks like a regression type problem.  As you mention, there is a lot of spread on the input values, but that doesn't <em>necessarily</em> mean that something like linear regression wouldn't work. Try it and see what kind of coefficient of correlation you get.  If it's really low, you probably need a different approach, OR the data might actually not have any (or much) predictive power in this scenario.  </p>
  
  <p>Beyond linear regression, you might find that there's a more complicated mathematical relationship between the inputs and outputs, that could be determined using <a href="https://en.wikipedia.org/wiki/Symbolic_regression" rel="nofollow noreferrer">symbolic regression</a>.  Another possibility, if there is a complex non-linear relationship in play, is that an <a href="https://en.wikipedia.org/wiki/Artificial_neural_network" rel="nofollow noreferrer">artificial neural network</a> approach might work well.  </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-08-17T02:03:20.067Z
Answers.LastActivityDate: 2017-08-17T02:03:20.067Z
Answers.UserDisplayName: mindcrime
Body: <p>I am currently searching for a supervised learning algorithm that can be used to predict the output given a large enough training set.</p>
  
  <p>Here's a simple example. Suppose the training dataset is <code>{[A=1, B=330, C=1358.238902], result=234.244378}</code> and the test dataset <code>{[A=893, B=34, C=293], result=?}</code></p>
  
  <p>My intention is to predict <code>?</code> using the input values and result given in the training dataset. </p>
  
  <p>What algorithm would be effective for this problem given the wide range of my input/output values? Would this require some sort of regression algorithm?</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-08-15T16:56:53.183Z
Comments.Text: 1. You need more training data, ideally 10000+. 2 From my experience xgboost shows good results for such kind of data
Comments.UserDisplayName: Stepan Novikov
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-08-15T17:00:08.573Z
Comments.Text: @StepanNovikov thank you for the recommendation - I do have a fairly large training set already (roughly 4000+). I will also check-out xgboost. Thanks
Comments.UserDisplayName: Cryptonaut
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-08-16T16:36:43.197Z
Comments.Text: @DukeZhou I think textual classification algorithm..can work in that scenario.
Comments.UserDisplayName: quintumnia
Tags: <machine-learning><ai-design><prediction><regression>
Title: Which predictive algorithm can be used to predict a number given other numbers?
UserDisplayName: Cryptonaut
ThreadText: # Which predictive algorithm can be used to predict a number given other numbers?
  
  (Asked by: username_0 on 2017-08-15)
  
  I am currently searching for a supervised learning algorithm that can be used to predict the output given a large enough training set.
  
  Here's a simple example. Suppose the training dataset is `{[A=1, B=330, C=1358.238902], result=234.244378}` and the test dataset `{[A=893, B=34, C=293], result=?}`
  
  My intention is to predict `?` using the input values and result given in the training dataset.
  
  What algorithm would be effective for this problem given the wide range of my input/output values? Would this require some sort of regression algorithm?
  
  **Tags:** machine-learning, ai-design, prediction, regression
  > **Comments:**
  > **username_1**: 1. You need more training data, ideally 10000+. 2 From my experience xgboost shows good results for such kind of data  
  > **username_0**: @StepanNovikov thank you for the recommendation - I do have a fairly large training set already (roughly 4000+). I will also check-out xgboost. Thanks  
  > **username_2**: @DukeZhou I think textual classification algorithm..can work in that scenario.  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_3 on 2018-02-13. Score: 1
  
  Impossible to solve until you define an error measurement ( by example $|R-R'|$ or $(R-R')^2$ ) and how this error changes when A, B and C change.
  
  Extreme example: assume $R()$ is random (unrelated to A, B, C values) but static (always same $R(A,B,C)$ for same values of A,B,C). Given some values of A, B, C, you can only answer the value of $R(A,B,C)$ when A,B,C was in the training set. $R(A,B,C)$ is undefined and no predictable when A,B,C was not in the training set.
  
  Moreover, improvements can be done if $R()$ has some properties, by example, if it is possible to state that $R(A,B,C)=R(B,A,C)$ or that $R(A1,B1,C1)=R(A2,B2,C2)$ if $A1+B1+C1=A2+B2+C2$.
  
  
  ---
  
  ### Answer by username_4 on 2020-11-14. Score: 0
  
  Yes, you are trying to predict a real number output, so this is a regression problem. To know what kind of algorithm would be best I think you have to ask how much data you have and what you know already about the relationships of the numbers. If you try simple linear regression, what kind of error will you get?
  
  If you were to try linear regression and you get an error that is acceptable, then it may be a very simple problem. Beyond linear regression you can look to more advanced things such as Gaussian processes and neural networks which will all make the kinds of predictions you are seeking.
  
  
  ---
  
  ### Answer by username_5 on 2017-08-17. Score: -1
  
  Without seeing more data it's hard to say for sure. Superficially, this looks like a regression type problem. As you mention, there is a lot of spread on the input values, but that doesn't *necessarily* mean that something like linear regression wouldn't work. Try it and see what kind of coefficient of correlation you get. If it's really low, you probably need a different approach, OR the data might actually not have any (or much) predictive power in this scenario.
  
  Beyond linear regression, you might find that there's a more complicated mathematical relationship between the inputs and outputs, that could be determined using [symbolic regression](https://en.wikipedia.org/wiki/Symbolic_regression). Another possibility, if there is a complex non-linear relationship in play, is that an [artificial neural network](https://en.wikipedia.org/wiki/Artificial_neural_network) approach might work well.
  
  
  ---
  
  