C#のMath.Net Numericsライブラリで奇妙な問題が発生しました。私のコードは最近まで完全に正常に機能していました(何も変わりませんでした)が、重回帰を計算しようとしている行のタイトルからエラーメッセージが表示されています。マトリックスは正定でなければなりません(Math.Net C#ライブラリ)
各リストには493の二重の値があるので、誰も私がこれらの問題を解決するために何ができるのか知っていますか?
Vector<double> vectorArrayBuy = CreateVector.Dense(listMRInfoBuy.ElementAt(0).OutputBuy.ToArray());
var matrixArrayBuy = CreateMatrix.DenseOfColumnArrays(listMRInfoBuy.ElementAt(0).ListValuesBuy.ToArray(), listMRInfoBuy.ElementAt(1).ListValuesBuy.ToArray(), listMRInfoBuy.ElementAt(2).ListValuesBuy.ToArray(),
listMRInfoBuy.ElementAt(3).ListValuesBuy.ToArray(), listMRInfoBuy.ElementAt(4).ListValuesBuy.ToArray(), listMRInfoBuy.ElementAt(5).ListValuesBuy.ToArray(), listMRInfoBuy.ElementAt(6).ListValuesBuy.ToArray(),
listMRInfoBuy.ElementAt(7).ListValuesBuy.ToArray(), listMRInfoBuy.ElementAt(8).ListValuesBuy.ToArray(), listMRInfoBuy.ElementAt(9).ListValuesBuy.ToArray(), listMRInfoBuy.ElementAt(10).ListValuesBuy.ToArray(),
listMRInfoBuy.ElementAt(11).ListValuesBuy.ToArray());
var itemsBuy = MultipleRegression.NormalEquations(matrixArrayBuy, vectorArrayBuy);
NormalEquationsマトリックスはhernitianと正定値であるべき対象のコレスキー分解https://en.m.wikipedia.org/wiki/Cholesky_decomposition https://en.m.wikipedia.org/wiki/Positive-を使用definite_matrix。エラーメッセージによると、あなたの行列はそうではありません。 – Evk
@Evk馬鹿のように聞こえて申し訳ありませんが、私の行列がmath.netの数値で正確であることを確認するにはどうしたらよいですか? – user3610374
システムに問題がある可能性があります。 'matrixArrayBuy.ConditionNumber()'は何を返しますか? 'MultipleRegression.NormalEquations'の代わりに' MultipleRegression.QR'または 'MultipleRegression.Svd'を使用すると、うまく動作しますか? –