text: # How to scale this expression
  
  1. Feb 10, 2012
  
  ### pamparana
  
  Hello everyone,
  
  I have a bit of an issue regarding scaling of an expression. So, the scenario is as follows.
  
  I have a confidence value that can be associated with the solution given by an optimization routine and it is as follows:
  
  C = exp(-A)/(exp(-A) + exp(-B))
  
  where A, B and C are some energy values returned by the optimization routine and C represents the confidence or the probability assigned to the solution A. Also, B is always greater than A.
  
  After some simple manipulation, the expression becomes:
  
  C = 1.0 / (1 + exp(A-B))
  
  Now, in the beginning my issue was that the values A, B and C were usually quite large (in tens of thousands). So this expression was giving values of 0.5 when A and B were very close and when the difference was something a bit larger (in absolute numbers), then the expression would basically become 1.
  
  So, I realized I needed to do some normalization and the first thing I tried was divide everything by A. So, now the expression becomes:
  
  C = 1.0 / (1 + exp(1-B/A))
  
  Now typically B/A is something from 1 to 1.01. So, now I have a similar problem: As exp(1-B/A) will basically be 0.5.
  
  So, what I would like to do is introduce some scaling, normalization on this expression that would help me basically capture the changes in my data range. I would be grateful for any suggestions that anyone might have.
  
  Thanks,
  Luca
  
  2. Feb 10, 2012
  
  ### coelho
  
  For some reason, for me this formula resembles Statistical Mechanics, more exactly the Partition Function.
  
  If this formula didnt come directly from it, maybe you could read about it, see if it applies to your problem, and see if there is already some technique for doing what you want.
  
  3. Feb 11, 2012
  
  ### pamparana
  
  Hello,
  
  it is sort of derived from the Ising model but actually it is just a coincidence that it looks like the partition function.
  
  My problem is actually much simpler:
  
  So, ok.
  
  C= 1 / (1 + e^(B/A)) for the moment assume B >= A, So C can range from 0.5 to 1.
  
  Typically, B/A ranges from 1 to 1.01. What I would like to do is have some sort of scaling so when B/A is "close" to 1, then C is close to 0.5 but when it starts to diverge, then C starts to get closer to 1. However, I do not want a linear scale as I want to exaggerate the differences.
  
  I can now a priori what the maximum B and A values will be. I was wondering what suitable function can I use. One thing that comes to mind is to actually use the exponential:
  
  So,
  
  C = 1 / (1 + e^(e^(factor)*B/A)).
  
  However, I am not sure how I can derive this "factor" term in a suitable way from B and A values that would make sense.
  
  Thanks,
  
  Luca
  
  4. Feb 11, 2012
  
  ### chiro
  
  Hey pamparana.
  
  Have you considered modelling your variables on derivative information?
  
  Basically what I am getting at is using derivative information to work backwards to get an empirical value for your 'factor' variable. So if you specify specific derivative behaviour at some given point, then you can use that to get equations for 'factor' and hence evaluate it for those given conditions.
explanation: The document is a discussion thread from a forum where a user named pamparana is seeking advice on how to scale a mathematical expression to better capture the changes in their data range. The expression in question is a confidence value derived from an optimization routine. The user describes the problem and provides context, and other users offer suggestions. The document contains a question but does not include an answer to the question.
distilabel_metadata.content: Evaluate the user given text extract and determine if it contains a math question and optionally and answer to this question.
  
  Output rules:
  
  1. Briefly describe the document and mention if it contains a question or a question and answer.
  2. Finalize the output with: Label: no-question,question,question-and-answer,multiple-question,multiple-question-and-answer
distilabel_metadata.role: system
distilabel_metadata.content: # How to scale this expression
  
  1. Feb 10, 2012
  
  ### pamparana
  
  Hello everyone,
  
  I have a bit of an issue regarding scaling of an expression. So, the scenario is as follows.
  
  I have a confidence value that can be associated with the solution given by an optimization routine and it is as follows:
  
  C = exp(-A)/(exp(-A) + exp(-B))
  
  where A, B and C are some energy values returned by the optimization routine and C represents the confidence or the probability assigned to the solution A. Also, B is always greater than A.
  
  After some simple manipulation, the expression becomes:
  
  C = 1.0 / (1 + exp(A-B))
  
  Now, in the beginning my issue was that the values A, B and C were usually quite large (in tens of thousands). So this expression was giving values of 0.5 when A and B were very close and when the difference was something a bit larger (in absolute numbers), then the expression would basically become 1.
  
  So, I realized I needed to do some normalization and the first thing I tried was divide everything by A. So, now the expression becomes:
  
  C = 1.0 / (1 + exp(1-B/A))
  
  Now typically B/A is something from 1 to 1.01. So, now I have a similar problem: As exp(1-B/A) will basically be 0.5.
  
  So, what I would like to do is introduce some scaling, normalization on this expression that would help me basically capture the changes in my data range. I would be grateful for any suggestions that anyone might have.
  
  Thanks,
  Luca
  
  2. Feb 10, 2012
  
  ### coelho
  
  For some reason, for me this formula resembles Statistical Mechanics, more exactly the Partition Function.
  
  If this formula didnt come directly from it, maybe you could read about it, see if it applies to your problem, and see if there is already some technique for doing what you want.
  
  3. Feb 11, 2012
  
  ### pamparana
  
  Hello,
  
  it is sort of derived from the Ising model but actually it is just a coincidence that it looks like the partition function.
  
  My problem is actually much simpler:
  
  So, ok.
  
  C= 1 / (1 + e^(B/A)) for the moment assume B >= A, So C can range from 0.5 to 1.
  
  Typically, B/A ranges from 1 to 1.01. What I would like to do is have some sort of scaling so when B/A is "close" to 1, then C is close to 0.5 but when it starts to diverge, then C starts to get closer to 1. However, I do not want a linear scale as I want to exaggerate the differences.
  
  I can now a priori what the maximum B and A values will be. I was wondering what suitable function can I use. One thing that comes to mind is to actually use the exponential:
  
  So,
  
  C = 1 / (1 + e^(e^(factor)*B/A)).
  
  However, I am not sure how I can derive this "factor" term in a suitable way from B and A values that would make sense.
  
  Thanks,
  
  Luca
  
  4. Feb 11, 2012
  
  ### chiro
  
  Hey pamparana.
  
  Have you considered modelling your variables on derivative information?
  
  Basically what I am getting at is using derivative information to work backwards to get an empirical value for your 'factor' variable. So if you specify specific derivative behaviour at some given point, then you can use that to get equations for 'factor' and hence evaluate it for those given conditions.
distilabel_metadata.role: user
distilabel_metadata.raw_output_q_a_detector_0: The document is a discussion thread from a forum where a user named pamparana is seeking advice on how to scale a mathematical expression to better capture the changes in their data range. The expression in question is a confidence value derived from an optimization routine. The user describes the problem and provides context, and other users offer suggestions. The document contains a question but does not include an answer to the question.
  
  Label: question