math.net

.NET数据挖掘与机器学习开源框架

◇◆丶佛笑我妖孽 提交于 2020-11-26 14:15:40
1. 数据挖掘与机器学习开源框架 1.1 框架概述 1.1.1 AForge.NET    AForge.NET 是一个专门为开发者和研究者基于C#框架设计的,他包括计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,模糊系统,机器人控制等领域。这个框架由一系列的类库组成。主要包括有: AForge.Imaging —— 一些日常的图像处理和过滤器 AForge.Vision —— 计算机视觉应用类库 AForge.Neuro —— 神经网络计算库AForge.Genetic -进化算法编程库 AForge.MachineLearning —— 机器学习类库 AForge.Robotics —— 提供一些机器学习的工具类库 AForge.Video —— 一系列的视频处理类库 AForge.Fuzzy —— 模糊推理系统类库 AForge.Controls—— 图像,三维,图表显示控件 来自: http://baike.haosou.com/doc/1786119-1888850.html 官方网站 : http://www.aforgenet.com/ 1.1.2 Accord.NET Framework    Accord.NET Framework是在AForge.NET基础上封装和进一步开发来的。功能也很强大,因为AForge.NET更注重与一些底层和广度

NumSharp  - Numerical .NET

二次信任 提交于 2020-03-01 14:52:19
NumPy是在python中处理数据的最基本和最强大的包。 如果您打算从事数据分析或机器学习项目,那么对numpy的充分理解几乎是必须的。 其他用于数据分析的软件包(如pandas)是建立在numpy之上,用于构建机器学习应用的scikit-learn软件包也在numpy上运行。 但对于.NET开发人员来说,却没有这样的强大工具库。 虽然有像Deedle和Math.NET这样的开源库,但它们不是很容易使用,也不能借用很多现有的python代码。 NumSharp(Numerical .NET)可以说是C#中的线性代数库。 它是用C#编写的,符合.netstandard 2.0库标准。 它的目标是让.NET开发人员使用NumPy的语法编写机器学习代码,从而最大限度地借鉴现有大量在python代码的转译成本。 NumSharp使用最新的Span技术安全高效地访问内存,优化每个模拟API的性能,确保最底层的NDArray达到最佳性能状态。NumSharp对于在数组上执行数学和逻辑运算非常有用。 它为.NET中的n阵列和矩阵的操作提供了大量有用的功能。 让我们给出一个代码片段来说明如何使用NumSharp。 // 初始化一个NumSharp实例,类名故意叫NumPy var np = new NumPy<int>(); // 产生一个数字0到9的向量 np.arange(10) //

How to create a submatrix skipping a row and a column using Mathnet.numerics library?

妖精的绣舞 提交于 2020-01-06 06:43:46
问题 I am trying to code to obtain minors of different elements in a matrix. I am using Mathnet.numerics library. I see the library has submatrix method where I need to input rowindex and rowcount. But for my case I need to create submatrix by skipping rows and columns (for example, for a 3x3 matrix, for element (1,2), I need to skip the first row and second column to create my submatrix). Any idea how to use the existing functionality of the Mathnet.numerics? 回答1: You can use RemoveRow and

How to create a submatrix skipping a row and a column using Mathnet.numerics library?

大憨熊 提交于 2020-01-06 06:42:05
问题 I am trying to code to obtain minors of different elements in a matrix. I am using Mathnet.numerics library. I see the library has submatrix method where I need to input rowindex and rowcount. But for my case I need to create submatrix by skipping rows and columns (for example, for a 3x3 matrix, for element (1,2), I need to skip the first row and second column to create my submatrix). Any idea how to use the existing functionality of the Mathnet.numerics? 回答1: You can use RemoveRow and

How to apply a Zero-Phase filter using MathDotNet library?

﹥>﹥吖頭↗ 提交于 2020-01-01 19:43:09
问题 Is there a specific function or class in the Math.NET library to obtain a Zero-Phase (non causal) IIR filter? If not, how can this be achieved using current functions? I believe this can be obtained by filtering the signal and then filtering the reverse, but I'm not sure the result is correct. 回答1: The following sample shows how to obtain a Zero-Phase filter by using the reverse-filtering technique and it also compares the result with that of a conventional lowpass filter. The signal being

Linear fit with Math.NET: error in data and error in fit parameters?

孤街浪徒 提交于 2019-12-24 14:31:55
问题 I am trying to use Math.NET to perform a simple linear fit through a small set of datapoints. Using Fit.Line I am very easily able to perform the linear fit and obtain the slope and intercept: Tuple<double, double> result = Fit.Line(xdata, ydata); var intercept = result.Item1; var slope = result.Item2; This is very simple, but what about errors? Errors in y-data My y-data might contain error bars, can Math.NET take these errors into account? There are no errors in x-data, just in y-data.

Svd recomposition with Mathnet numerics library seems wrong

折月煮酒 提交于 2019-12-24 03:08:28
问题 I'm looking for non regression between Mathnet.Iridium and Mathnet.Numerics. Here is my code, using Mathnet.Numerics : double[][] symJaggedArray = new double[5][]; symJaggedArray[0] = new double[] { 3, 0, 0, 0, 0 }; symJaggedArray[1] = new double[] { 0, 2, 4, 0, 0 }; symJaggedArray[2] = new double[] { 0, 4, 5, -4, 5 }; symJaggedArray[3] = new double[] { 0, 0, -4, -8, 12 }; symJaggedArray[4] = new double[] { 0, 0, 5, 12, -5 }; symDenseMatrix = DenseMatrix.OfArray(new Matrix(symJaggedArray)

How to refactor code to make it functional style?

▼魔方 西西 提交于 2019-12-19 09:46:54
问题 Playing with F#, I'm trying to think of code in a more functional way. A large part of my work happens to be numerical in nature so I'm thinking whether this re-education makes sense. Is writing numerical code in a functional way like trying to fit a square peg in a round hole or is it simply a matter of a steep learning curve irrespective of the application? For example, lets take a snippet which demonstrates the weak law of large numbers: open System open System.IO open System.Windows.Forms

Multiple Regression with math.net

自作多情 提交于 2019-12-12 01:29:29
问题 Hello I am trying to get multiple regression with math.net and I am a little confused. var xdata = new DenseMatrix( new double[,]{{1, 36, 66, 45, 32}, {1, 37, 68, 12, 2}, {1, 47, 64, 78, 34}, {1, 32, 53, 56, 32}, {1, 1, 101, 24, 90}}); var ydata = new double[] { 15, 20, 25, 55, 95 }; var X = DenseMatrix.CreateFromColumns(new[] { new DenseVector(xdata.Length, 1), new DenseVector(xdata) }); var y = new DenseVector(ydata); var p = X.QR().Solve(y); var a = p[0]; var b = p[1]; I guess I don't

Math.Net Numerics - how to run examples

孤街醉人 提交于 2019-12-11 02:28:46
问题 First trial with Math.Net and moving from C++\Cli to C# to use Math.Net, so everything is new today. How do I set-up and run the examples such as this one Matrix Transpose. Should I create a class and copy this code into it? I notice the interface is missing (Error: namespace IExample could not be found), but I also notice this may be provided here Interface. Where do I put this? This is what I have Program.cs (left out basic details): namespace Examples.LinearAlgebraExamples { /// Defines