Lisys = LAPACK wrapper for C# + Matrix/Vector + Some well-known statistical techniques
- Vector, RowVector, ColumnVector
- Matrix
- Eigenvalues/vectors
- Singular Value Decomposition
- LU Decomposition
- Solver
- Linear Discriminant Analysis
- ...etc
LAPACK と Mingw の lib/dll を取得
次のサイトを参考に Windows 用の lib/dll をダウンロード
http://icl.cs.utk.edu/lapack-for-windows/lapack/#librairies
(Section: "Prebuilt dynamic libraries using Mingw")
"law" プロジェクトを以下のように設定
http://icl.cs.utk.edu/lapack-for-windows/lapack/#librairies
Section: "Prebuilt dynamic libraries using Mingw" の Instructions に従って設定する.
"law" -> "lisys" の順番でプロジェクトをビルド
自身のプロジェクトにおける「参照の追加」で以下のファイルを設定
lisys.dlllaw.dll
一緒に
*.xmlがコピーされ,Visual Studio 上でパラメータヒントが出るようになります.Windows のルールに従って LAPACK 関連の DLL を配置
liblapack.dlllibblas.dlllibgcc_s_dw2-1.dlllibgfortran-3.dlllibquadmath-0.dll
NUnit を利用しています.
- NUnit をインストール
- test プロジェクトをビルド
- test/data フォルダを test/bin/Debug 以下にコピー
- NUnit から test/bin/Debug/test.dll を実行
constintC=3;vardata=newMatrix[C];// inputfor(inti=0;i<C;++i){data[i]=File.ReadAllLines(String.Format("data/iris/data_{0}.csv",i),Encoding.UTF8).Select(line =>line.Split(',').Select(s =>Double.Parse(s)).ToRow()).ToMatrix();}Ldaresult=Func.Lda(data);// Coefficients of linear discriminantsvarldc1=newColumnVector(result.Eigenvectors[0]);varldc2=newColumnVector(result.Eigenvectors[1]);varcoef=newMatrix(ldc1,ldc2);for(inti=0;i<C;++i){varm=data[i]*coef;// calculate scores// outputFile.WriteAllText(String.Format("result_{0}.csv",i),Matrix.ToCsv(m),Encoding.UTF8);}varm=newMatrix(new[,]{{86.0,67.0},// ...{96.0,61.0}});// correlation matrixvarcor1=Func.Correlate(m,Func.Target.EachColumn);MatrixVisualizer.TestShowVisualizer(cor1);// test method of DebuggerVisualizer// normalization -> correlation matrixvarn=newMatrix(m);n.Columns.ForEach((ci,cv)=>{varavg=cv.Average;varstd=Math.Sqrt(cv.UnbiasedVariance);cv.Apply((i,val)=>(val-avg)/std);});varcor2=Matrix.T(n)*n/(n.RowSize-1);MatrixVisualizer.TestShowVisualizer(cor2);その他細かな利用方法は test や sample プロジェクトを参照してください.
MIT License
Copyright (C) 2007- KrdLab All Rights Reserved.
- 64bit 対応