簡體   English   中英

隨機刪除數據點

[英]Removing data points at random

我正在生成一個模型列表,以模擬每天每分鍾收集一次的數據。 我想創建一些其他模型,並隨機刪除一些數據點。 有沒有辦法實現這種行為? 下面是我的代碼

   using System;
   using System.Collections.Generic;
   using System.Linq;
   using System.Text;
   using System.Threading.Tasks;
   using MathNet.Numerics;
   using MathNet.Numerics.Statistics;
  public void dataGenerator()
    {
        int hrs = 24;
        int minutes = 60;
        int samplesize = hrs * minutes; // this is one day worth of data, with data created every minute
        double mean = 50;
        double stdev = 1;
        int maxmodel = 10;

        List<double[]> models = new List<double[]>();
        List<double> modelaverage = new List<double>();
        List<double> modelvariance = new List<double>();

        // generating normal models with different mean / deviations 
        for (int i = 1; i <= maxmodel; i++)
        {
            //deviations are incremented by i, to create modles of different deviations, with every model having a different center by 2*i
            double[] model = Generate.Normal(samplesize, mean + 2*i, stdev * i);

            models.Add(model);
            modelaverage.Add(model.Average());
            modelvariance.Add(model.Variance());



        }
    }

只需添加以下代碼(我認為這很容易解釋):

Random rnd = new Random();
int RandomRemoveCount = 10;
for (int i = 0; i < Math.Min(models.Count, RandomRemoveCount); i++)
{
    models.RemoveAt(rnd.Next(models.Count));
}

並將RandomRemoveCount更改為要刪除的值。 Math.Min是為了確保您刪除的內容不會超過實際數量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM