static void Main(string[] args) { int segmentCount = 5; int dimensions = 6; int neighborCount = 5; Matrix <double> data = ReadData(); PrintAttributeNames(); int totalDimensions = ATTRIBUTE_NAMES.Count; int segmentSize = data.RowCount / segmentCount; Console.WriteLine("Duomenys iš failo: \n" + data.ToMatrixString()); Matrix <double> normalizedData = NormalizeData(data); Console.WriteLine("Normalizuoti duomenys: \n" + normalizedData.ToMatrixString()); Matrix <double> covarienceMatrix = GetCovarianceMatrix(normalizedData); Console.WriteLine("Kovariacijos matrica: \n" + covarienceMatrix.ToMatrixString()); List <KeyValuePair <double, double> > ftrSortedCovarianceList = GetSortedFullTimeResultCovariance(covarienceMatrix); PrintCovarianceList(ftrSortedCovarianceList); Counts totals = CalculateFullTimeResultsTotals(normalizedData); PrintFullTimeResultsTotals(totals); kMeansClustering clustering = new kMeansClustering(normalizedData, 3); clustering.Cluster(); /* while (dimensions <= totalDimensions) * {*/ Console.WriteLine("Dimensijų kiekis: {0}", dimensions); Matrix <double> reducedData = GetReducedMatrix(ftrSortedCovarianceList, normalizedData, dimensions); Console.WriteLine("Po dimensijų sumažinimo: \n", reducedData.ToMatrixString()); Console.WriteLine("Duomenys po dimensijų sumažinimo: \n" + reducedData.ToMatrixString()); // Kryžminė patikra for (int i = 0; i < 5; i++) { Matrix <double> trainingData = GetTrainingData(reducedData, segmentSize, i); Matrix <double> testingData = GetTestingData(reducedData, segmentSize, i); Bayes bayes = new Bayes(trainingData); bayes.Learn(i + 1); bayes.TestList(testingData); /* KNN kNN = new KNN(trainingData, neighborCount); * kNN.ClassifyList(trainingData, "Apmokymo duomenys", i + 1); * kNN.ClassifyList(testingData, "Testavimo duomenys");*/ } /* dimensions += 6; * }*/ }
public static Counts CalculateFullTimeResultsTotals(Matrix <double> data) { Counts totals = new Counts(); for (int i = 0; i < data.RowCount; i++) { if (data[i, FTR_COLUMN] == AWAY) { totals.awayWinCount++; } else if (data[i, FTR_COLUMN] == DRAW) { totals.drawCount++; } else if (data[i, FTR_COLUMN] == HOME) { totals.homeWinCount++; } } return(totals); }
static void PrintFullTimeResultsTotals(Counts totals) { Console.WriteLine("Namų komandos pergalės: {0}", totals.homeWinCount); Console.WriteLine("Lygiosios: {0}", totals.drawCount); Console.WriteLine("Išvykos komandos pergalės: {0}", totals.awayWinCount); }