<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>

CC BY-SA 4.0
2018-02-13T11:01:47.047Z
2020-11-14T12:08:47.533Z
2020-11-14T12:08:47.533Z
pasaba por aqui
<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>

CC BY-SA 4.0
2020-11-14T12:44:35.547Z
2020-11-14T12:44:35.547Z
Joff
<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>

CC BY-SA 3.0
2017-08-17T02:03:20.067Z
2017-08-17T02:03:20.067Z
mindcrime
<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>

CC BY-SA 3.0
2017-08-15T16:56:53.183Z
1. You need more training data, ideally 10000+. 2 From my experience xgboost shows good results for such kind of data
Stepan Novikov
CC BY-SA 3.0
2017-08-15T17:00:08.573Z
@StepanNovikov thank you for the recommendation - I do have a fairly large training set already (roughly 4000+). I will also check-out xgboost. Thanks
Cryptonaut
CC BY-SA 3.0
2017-08-16T16:36:43.197Z
@DukeZhou I think textual classification algorithm..can work in that scenario.
quintumnia
<machine-learning><ai-design><prediction><regression>
Which predictive algorithm can be used to predict a number given other numbers?
Cryptonaut
# 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.


---

