C#でMath.NET Numericsを使用する(統計計算編)

Math.NET Numericsは.NET Framework向けのオープンソースな数値計算用のライブラリです。基本的にはSystem.MathクラスなどのCLRが標準で用意している計算用ライブラリにない物やその拡張で、特殊関数、線形代数、確率モデル、乱数、補間、積分変換(FFT)を対象にしています。

Math.NET Numericsは.NET Framework 4.0, Mono 2.0, Silverlightで使用することが出来ます。

Math.NET NumericsのソースコードはGitHubでホストされ、MITライセンスの元公開されています。
git://github.com/mathnet/mathnet-numerics.git
(https://github.com/mathnet/mathnet-numerics)

詳しくは、Math.NET Numericsのサイトでご確認ください。
http://numerics.mathdotnet.com/

Math.NET Numericsの入手

一番手軽な入手方法はNuGetを使用する方法です。

GUIのNuGetパッケージの管理からMath.NETを検索する方法とパッケージマネージャーコンソールを使用する方法があります。

NuGetパッケージの管理を使用する方法

ソリューションエクスプローラーで参照設定を右クリックし、NuGetパッケージの管理を選択します。

①オンラインを選択

②検索ボックスに「Math.NET」と入力

③検索結果からMath.NET Numericsを選択し、表示されるInstallボタンをクリック。

※上図はインストール後の表示

パッケージマネージャーコンソールからのインストール

以下のように入力して、インストールします。

統計計算

C#でMath.NETを使用した統計計算関数の使用方法です。

使用方法としてはこれといって難しいところは無いので、以下のサンプルと、ヘルプを見ていただければ、だいたいわかると思います。

標準偏差計算といった統計計算のライブラリはMathNet.Numerics.StatisticsネームスペースのStatisticsクラスにまとめられています。(オンラインのヘルプ)

以下はそのサンプルコードです。

※通常本サイトで公開されるソースコードライセンスはApache License v2.0ですが、上コードについてはMITライセンスとします。

コンパイルして実行してみていただきたいのですが、1000万件ぐらいだと標本標準偏差と、母標準偏差とではあまり計算時間に違いが無いというか、完全の誤差の範囲ですね。速いです。(さすがにメディアンの計算はちょっとかかります。)

ということで、Math.NETはF#との組み合わせで紹介される事が多いのですが、C#でもそれなりに使いやすく、高速な数値計算ライブラリです。

上のサンプルコードはGitHubにて公開しています。
https://github.com/ishisaka/MathNetSample

「C#でMath.NET Numericsを使用する(統計計算編)」への1件のフィードバック

コメントを残す