sand15

807 Reputation

11 Badges

10 years, 77 days

MaplePrimes Activity


These are replies submitted by sand15

@tjxkdcl 

There is no such things in Maple (Ridge, LASSO, LARS, ...).
I've written my own code for Ridge regression (which is the simplest method, just look to the formula in my first reply).

Simple Ridge regression algorithms generally proceed this way:

  1. Define a range D of prior values for lambda.
  2. Take a value of from D.
    1. For this value of lambda compute the minimizer w(lambda) according to the formula I sent you.
    2. Assess the "quality" of this lambda (see below).
  3. Return to point 2.

Assessing the "quality" of lambda:
This is usually done by using some resampling method (often cross-validation or Leave-k-out) which, all take the following form:

  1. Split, randomly or not, your data base in two disjoint sub-bases (let's say L and T).
  2. Using subase L: compute w(lambda) for a given value of lambda (alg. above) (previous algorithm).
  3. Compute the prediction error w(lambda) gives on sub-base T.

This pseudo-code is to be executed a large number of times to reduce the splitting effect,
(note that the w's you get at point (2) are all different, thus are the prediction errors you get: but they all are a realization of the prediction error associated to the particular value of lambda you used).

So, to be clear, if you take 100 lambda values within the domain D and assess the prediction error through 100 (L, T)-splitings, you have to run 10^4 computations.
The best lambda is the one which minimizes some criterion, for instance the mean of all the replicates of the prediction error.

Let me know if you need more help.
(I'm going to sleep right now).

@ecterrab 

Thank you Edgardo for this detailed answer.

I really feel that Physics is a world within Maple.
For instance, why are there so many updates and why are they not synchronized with the version changes of Maple?
Why is Physics such a special package?

@C_R

Maybe I didn't explain myself correctly but your example is not relevent.
So, to be clearer and answer your  "Otherwise, please send a link to the example"

  • Physics, example
  • Second section Mechanics
  • First subsection Static: reactions of planes and tensions on cables
  • "and the solution is eq 2.1.17
    {abs(R[A]) = cos(alpha)*abs(w)*sin(beta)/(2*sin(alpha)), abs(R[B]) = abs(w), abs(T[A]) = cos(alpha)*abs(w)*cos(beta)/(2*sin(alpha)), abs(T[B]) = cos(alpha)*abs(w)/(2*sin(alpha))}
  • Obviously abs(T[A]) is not necessarily positive (take beta=0 and alpha=3*Pi/4 for instance).
    Then: what does abs(...) mean in the Physics package notation?

@Carl Love 

Thanks Carl, sorry for the inconvenience

@permanoon123 

Still a lot of errors:

  • As you perform an integration over x, C is a function of t alone.
     
  • You missed many " * " symbols (a common error for people using 2D input mode).
    For instance tou wrote `n πx` instead n*Pi*x (copy paste your expression into a 1D input mode worksheet).
     
  • It's quite simple to see (after having corrected the previous error) that the value of the integral is
    3250 * f(t) * exp(-lambda^2*t)

    (just put the terms containing t out of the integral and even out of the Sum])
    Thus C, which is an infinite sum of this value is infinite too.

    HINT: You probably wanted to write

    sin(n*Pi*x/L)*sin(m*Pi*x/L)

    ? But even in this case 

    sum(int(sin(n*Pi*x/L)*sin(m*Pi*x/L), x=0..L), m=1..+infinity) = 3250  # whatever the value of n


I can't do anything more for you;
Correct your own equations and come back if you still have a problem.

 

None of what you are looking for (PLS, PCR, KNN [see your previous question]) is avaliable in Maple.

Concerning KNN: if I'm not mistaken I think @Carl Love posted an implementation of it, let's say less than a year ago.
Try and search this within the "Posts".

Concerning PLS and PCR I will provide you two codes in a few hours (I need to extract them from a larger project I'm working on and make them work in an autonomous way... so it takes time).
See you soon.

Does it makes sense to have negative weights?

If you want to copy together, what don't you generate a single image ?
Something like this

ttt1 := textplot([0, 1, "3  +  5  =  __", color = "black", font = ["Arial", "bold", 120]]);
ttt2 := textplot([0, -1, "1  +  3  =  __", color = "black", font = ["Arial", "bold", 120]]);
display(ttt1, tt2, size = [1000, 400], axes = none);

@acer 

Thank you acer for your comments and improvements.

@sursumCorda 

I tried to avoid typos but I missed this one, thanks.

With  optionsimplicit=[grid=[50, 50]] in inequal(...) the boundary is, IMO, smoother an more correct than the one you get with Mathematica.
As I have edited my answer you can see that the boundary is indeed very smooth (zoom on the figure to verify this).

Refining this grid gives an even smoother boundary but increases the computational time too.

Nevertheless, what I have done is only a workaround that we should not have to use if the visualization procedures were more efficient.
I'm  not even sure that my "trick" still works for other feasibility domains and/or mappings

Defining H this way

H := `#mrow(mo("["),msup(mo("H"),mo("+")),mo("]"))`

will make the equality

 V__b=V__a*(( C__a/(1+H/K__a)-H+K__w/H)/(C__b/(1+K__w/H/K__b)+H-K__w/H))

to appear exactly as in pour post.


H is an atomic variable you can manipulate in all the ways you want, for instance tomleslie's

@nm 

Thank you nm, I vote up.

Here is a simplified version of the previous answer I gave as mmcdara.
More of this I corrected an error due to the fact that the maximum values of the PDF are not equal to 1;
so please disregard my answer as mmcdara
 

restart:
	
Projector := proc(f, R, N, k)
  local a := op(1, R):
  local b := op(2, R):
  local T, S:
  uses Statistics:

  if k > 0 and k < N then
    T := RandomVariable(Triangular(a+(b-a)*(k-1)/N, a+(b-a)*(k+1)/N, a+(b-a)*k/N)):
    return Mean(f(T)) * ((b-a)/N)
  elif k=0 then
    T := RandomVariable(Triangular(a, a+(b-a)/N, a)):
    return Mean(f(T)) * ((b-a)/N/2)
  elif  k=N then
    T := RandomVariable(Triangular(b-(b-a)/N, b, b)):
    return Mean(f(T)) * ((b-a)/N/2):
  else
    error cat("k must be an integer between 0 and ", N, " (given value ", k, ")")
  end if:
end proc:
  	
Array(0..6, k -> Projector(x -> sin(Pi*x), 0..1, 6, k))

 

@tomleslie 

Thank you Tom for this detailed answer.

I will indeed stick to your last advice.

@Thomas Richard 

Using strict inequalities is indeed a good advice.

Converning your last remark "The help file (?convert,Heaviside) indicates that proper conversion is not always possible." :
yes, @acer has recently told me something about this recently.
But his advice was about using And/Or/Not instead of and/or/not (thus my code), but it seems we must be even more careful.

First 8 9 10 11 12 13 14 Last Page 10 of 25