This project has moved. For the latest updates, please go here.

Basic sample

Apr 24, 2009 at 12:36 PM

Hello - thirst of all - great idea, congratulations.

I'm developing data mining applications in vs. Time to time implement new ideas or looking for functions, which help me cutting time of my work. My first suggestion (yesterday I found your project and installed):

1. Poor documentation - it's a mistake.

User needs simply examples in code (c# and vb) - in basic task. On web, you given "calculators" - put this code to help. Easy and elegant.

Or I didn't find it? - in this case, somewhing wrong in help file.

2. What more in projects - don't know the target user of your interest, but you should thing, in my opinion, about the "most necceseries" proc to work (time consumption in implementation):

- simply implementation: distributions fit test (from - Roystone algorithm, Cramer von Misses, simply p-p and q-q proc etc to - ln Maxlikelihood proc to find distribution etc.) ANOVA,

- basic time sersie funct. - acf, pacf, aicc, bicc crit, arima etc.,

- basic eksploration and nonlinear models (pca, fa, logistic regres etc.),

- models (correspondence analysis, glm, grz, grm etc.).

I's my 'first look of your very good work and first impression is good, but this doc and samples...

Coordinator
Apr 25, 2009 at 7:21 PM
Hi, and thanks for taking the time to look and critique.

I entirely concur that a good set of conceptual documentation would add a great deal of value. Our reference documentation is already quite complete, but code examples would be a useful addition. It will become easier to assemble these as more people report their experiences and troubles with Meta.Numerics in these discussion forums and elsewhere on the web.

I also appreciate your suggestions for future features. We are already working on PCA for multivariate data sets and on maximum likelyhood for arbitrary models. (Maximum likelyhood fits to normal and exponential distributions are already there.)
Apr 25, 2009 at 7:25 PM

Thanks for reply.

Will add your libs and check. If find something interesting will send you...

Jul 15, 2009 at 11:29 AM

Actually I am looking for a free math library for dot.net, like polynomial curve fitting. Meta.Numerics is exactly what I want. But without samples, I do not know how to use it. Could you please post a sample on how to use polynomial curve fitting?

Thank you very much!

Coordinator
Jul 15, 2009 at 5:17 PM
Edited Jul 17, 2009 at 7:21 AM

Here's a sample using the DataSet class to fit data with error bars to a 3rd order polynomial. This is copied from an interactive IronPython session, so you Meta.Numerics code typed at the ">>>" prompt and the result printed after; translation into C# or VB should require little to no change.

>>> D = DataSet()
>>> # add data in x, y, dy form
>>> D.Add(2.0,2.5,0.5) >>> D.Add(3.0,2.0,1.0) >>> D.Add(5.0,-1.0,0.5) >>> D.Add(8.0,-4.0,0.5) >>> D.Add(10.0,-1.5,0.5) >>> D.Add(12.0,0.0,1.0) >>> # fit to a 3rd degree polynomial >>> f3 = D.FitToPolynomial(3) >>> # here are the best-fit parameters and the covariance matrix
>>> f3.Parameters() System.Double[](5.49503691406, -1.32065833010, -0.0672707148492, 0.0121404264839)
>>> f3.CovarianceMatrix() { 3.85073651489 -2.23733765469 0.351584301812 -0.0163449197546 } { -2.23733765469 1.39255593529 -0.226898983833 0.0107990048316 } { 0.351584301812 -0.226898983833 0.038090212771 -0.00185585856088 } { -0.0163449197546 0.0107990048316 -0.00185585856088 9.22606081301e-05 }
>>> # here is the chi squared value and the probability of getting a lesser chi squared >>> f3.GoodnessOfFit.Statistic 7.23801853356 >>> f3.GoodnessOfFit.LeftProbability 0.973190775871

For examples like this, see the code project article on using Meta.Numerics interactively within IronPython. Our Tutorial section here on CodePlex is slowly expanding, but I agree it's not anywhere near where it needs to be yet.

Jul 20, 2009 at 1:41 AM

Thank you very much! I have add polynomial fit to my program, it works very well.

Hope you add more functions into meta.numerics, such as FFT.

I like Meta.Numerics.