推荐系统错误中的svd代码

时间:2017-06-24 20:09:18

标签: c# svd csvde

我正在使用svd算法,我在我的数据集(book crosing)中的建议系统中使用coldstart表单。

在我的表单中使用svD来利用MathNet.Numeric的稀疏度,我在评级表中使用此代码,但我的代码没有读取数据集。

这是我的代码

var arrayOfDoubles = DenseMatrix.OfArray(To2D<double>
(dt1_rating.AsEnumerable().Select(x => new[] { 
 Convert.ToDouble(x[0]) }).ToArray()));
        //Select(x => new[] { Convert.ToDouble(x[0]), 
      Convert.ToDouble(x[1]) }).ToArray()));

        var S = arrayOfDoubles.Svd();
        DataTable dt = new DataTable();
        dt.Clear();
        dt.Columns.Add("USERID");
        dt.Columns.Add("ISBn");
        dt.Columns.Add("BOOKRATING");

        double[,] U = S.VT.ToArray();

        for (int outerIndex = 0; outerIndex < S.VT.RowCount; outerIndex++)
        {


            for (int innerIndex = 0; innerIndex < S.VT.ColumnCount; innerIndex++)
            {
                DataRow newRow = dt.NewRow();
                newRow["USERID"] = U[outerIndex, innerIndex];
                newRow["ISBN"] = U[outerIndex, innerIndex];
                newRow["BOOKRATING"] = U[outerIndex, innerIndex];
                dt.Rows.Add(newRow);

            }

        }
        dt1_rating = dt;///////////////////تا این جا

这是我的错误

无法将对象从dbNull转换为其他类型 或系统无效的CastExceptions

0 个答案:

没有答案