[Test()] public void TestSetRowToOneValue() { var matrix = new Matrix<int>(5, 5); int[] row = { 1, 2, 3, 4, 5 }; for (int i = 0; i < 5; i++) matrix.SetRow(i, row); matrix.SetRowToOneValue(3, 10); int[] testrow = { 10, 10, 10, 10, 10 }; Assert.AreEqual(testrow, matrix.GetRow(3)); }
/// protected internal override void InitModel() { base.InitModel(); x = new Matrix<float>(item_attributes.NumberOfColumns, NumFactors); x.InitNormal(InitMean, InitStdDev); q = new Matrix<float>(MaxItemID + 1, NumFactors); q.InitNormal(InitMean, InitStdDev); // set factors to zero for items without training examples for (int i = 0; i < ratings.CountByItem.Count; i++) if (ratings.CountByItem[i] == 0) q.SetRowToOneValue(i, 0); }
/// protected internal override void InitModel() { base.InitModel(); p = new Matrix<float>(MaxUserID + 1, NumFactors); p.InitNormal(InitMean, InitStdDev); y = new Matrix<float>(MaxItemID + 1, NumFactors); y.InitNormal(InitMean, InitStdDev); // set factors to zero for items without training examples for (int i = 0; i < ratings.CountByItem.Count; i++) if (ratings.CountByItem[i] == 0) y.SetRowToOneValue(i, 0); for (int i = ratings.CountByItem.Count; i <= MaxItemID; i++) { y.SetRowToOneValue(i, 0); item_factors.SetRowToOneValue(i, 0); } // set factors to zero for users without training examples (rest is done in MatrixFactorization.cs) for (int u = ratings.CountByUser.Count; u <= MaxUserID; u++) p.SetRowToOneValue(u, 0); user_bias = new float[MaxUserID + 1]; item_bias = new float[MaxItemID + 1]; }
/// protected override void InitModel() { x = new Matrix<float>(MaxUserID + 1, NumFactors); x.InitNormal(InitMean, InitStdDev); // set factors to zero for users without training examples for (int user_id = 0; user_id < x.NumberOfRows; user_id++) if (user_id > ratings.MaxUserID || ratings.CountByUser[user_id] == 0) x.SetRowToOneValue(user_id, 0); base.InitModel(); }
/// protected internal override void InitModel() { y = new Matrix<float>(MaxItemID + 1, NumFactors); y.InitNormal(InitMean, InitStdDev); // set factors to zero for items without training examples for (int item_id = 0; item_id < y.NumberOfRows; item_id++) if (item_id > ratings.MaxItemID || ratings.CountByItem[item_id] == 0) y.SetRowToOneValue(item_id, 0); base.InitModel(); }
/// <summary>Initialize the model data structure</summary> protected virtual void InitModel() { // init factor matrices user_factors = new Matrix<float>(MaxUserID + 1, NumFactors); item_factors = new Matrix<float>(MaxItemID + 1, NumFactors); user_factors.InitNormal(InitMean, InitStdDev); item_factors.InitNormal(InitMean, InitStdDev); // set factors to zero for users and items without training examples for (int u = 0; u < ratings.CountByUser.Count; u++) if (ratings.CountByUser[u] == 0) user_factors.SetRowToOneValue(u, 0); for (int i = 0; i < ratings.CountByItem.Count; i++) if (ratings.CountByItem[i] == 0) item_factors.SetRowToOneValue(i, 0); }
/// protected internal override void InitModel() { base.InitModel (); p = new Matrix<float> (MaxUserID + 1, NumFactors); p.InitNormal (InitMean, InitStdDev); y = new Matrix<float> (MaxItemID + 1, NumFactors); y.InitNormal (InitMean, InitStdDev); // set factors to zero for items without training examples for (int i = 0; i < ratings.CountByItem.Count; i++) if (ratings.CountByItem [i] == 0) y.SetRowToOneValue (i, 0); for (int i = ratings.CountByItem.Count; i <= MaxItemID; i++) { y.SetRowToOneValue (i, 0); item_factors.SetRowToOneValue (i, 0); } // set factors to zero for users without training examples (rest is done in MatrixFactorization.cs) for (int u = ratings.CountByUser.Count; u <= MaxUserID; u++) { p.SetRowToOneValue (u, 0); } user_bias = new float[MaxUserID + 1]; item_bias = new float[MaxItemID + 1]; h = new Matrix<float>[AdditionalUserAttributes.Count + 1]; h [0] = new Matrix<float> (UserAttributes.NumberOfColumns, ItemAttributes.NumberOfColumns); h [0].InitNormal (InitMean, InitStdDev); for (int d = 0; d < AdditionalUserAttributes.Count; d++) { h [d + 1] = new Matrix<float> (AdditionalUserAttributes [d].NumberOfColumns, ItemAttributes.NumberOfColumns); h [d + 1].InitNormal (InitMean, InitStdDev); } }
/// protected override void InitModel() { base.InitModel(); p = new Matrix<float>(MaxUserID + 1, NumFactors); p.InitNormal(InitMean, InitStdDev); y = new Matrix<float>(MaxItemID + 1, NumFactors); y.InitNormal(InitMean, InitStdDev); // set factors to zero for items without training examples for (int i = 0; i <= MaxItemID; i++) if (ratings.CountByItem[i] == 0) y.SetRowToOneValue(i, 0); user_bias = new float[MaxUserID + 1]; item_bias = new float[MaxItemID + 1]; }