Esempio n. 1
0
        public static double slopeOne(int userId, int productId)
        {
            var        data     = DataParser.write2DArray("./userData.data", ",");
            List <int> products = DataParser.getProducts(data);

            products.Remove(productId);
            Dictionary <int, double> deviations = new Dictionary <int, double>();

            foreach (var item in products)
            {
                deviations.Add(item, ItemItem.deviations(productId, item));
            }

            //double averageDeviation = deviations.Average((item) => item.Value);
            //Console.WriteLine(averageDeviation);

            int    counter = 0;
            double result  = 0;

            foreach (var deviation in deviations)
            {
                if (data[userId].ContainsKey(deviation.Key) == true)
                {
                    counter++;
                    result += data[userId][deviation.Key] + deviation.Value;
                }
            }
            return(result / counter);
        }