/// <summary> /// Computes the feature vector for all points in array /// /// Array version /// </summary> private PointWithFeatures[] ComputeFeaturesForPoints(Point3D[] points, IData d) { PointWithFeatures[] pointsWithFeatures = new PointWithFeatures[points.Count()]; FeatureComputer featureComputer = new FeatureComputer(); for (int i = 0; i < points.Count(); i++) { Point3D point = points[i]; double[] featureVector = featureComputer.ComputeFeatureVector(d, point).Features; pointsWithFeatures[i] = new PointWithFeatures(point, featureVector); } return(pointsWithFeatures); }
/// <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); } }
public PointRated(PointWithFeatures point, double rating) : base(point.X, point.Y, point.Z, point.featureVector) { this.rating = rating; }
private double RatePoint(PointWithFeatures point) { return(RateVector(point.featureVector)); }