/// <summary> /// Computes the rating for all points in input array based on RateVector() /// /// Array version /// </summary> /// <param name="pointsWithFeatures"></param> /// <returns></returns> private PointRated[] RatePoints(PointWithFeatures[] pointsWithFeatures) { PointRated[] ratedPoints = new PointRated[pointsWithFeatures.Count()]; double rating; for (int i = 0; i < ratedPoints.Count(); i++) { rating = RateVector(pointsWithFeatures[i].featureVector); ratedPoints[i] = new PointRated(pointsWithFeatures[i], rating); } return(ratedPoints); }
/// <summary> /// Adds random RatedPoints to list until ratedPoints.Count() == count /// </summary> /// <param name="ratedPoints"></param> /// <param name="d"></param> /// <param name="count"></param> /// <param name="border"></param> /// <param name="measures"></param> /// <param name="rnd"></param> private void AddPointsToList(List <PointRated> ratedPoints, IData d, int count, int border, int[] measures, Random rnd) { FeatureComputer featureComputer = new FeatureComputer(); while (ratedPoints.Count() < count) { Point3D point = GenerateRandomPoint(border, measures, rnd); PointWithFeatures pointWithFeatures = new PointWithFeatures(point, featureComputer.ComputeFeatureVector(d, point).Features); PointRated ratedPoint = new PointRated(pointWithFeatures, RatePoint(pointWithFeatures)); ratedPoints.Add(ratedPoint); } }