コード例 #1
0
        /// <summary>
        /// Exports the training data that was used to train the current tree.
        /// </summary>
        /// <param name="observations">
        /// The genome.
        /// </param>
        /// <param name="ranks">
        /// The target performance.
        /// </param>
        /// <param name="path">
        /// The path and file name. Add '{0}' in path, if you want an auto-incremented counter in the file name.
        /// </param>
        internal static void WriteAggregatedTrainingData(F64Matrix observations, double[] ranks, string path)
        {
            var filePath = new FileInfo(path);

            if (filePath.DirectoryName != null)
            {
                Directory.CreateDirectory(filePath.DirectoryName);
            }

            var csvBuilder = new StringBuilder(
                string.Concat(string.Join(";", Enumerable.Range(1, observations.ColumnCount).Select(r => $"Feature_{r}")), ";Rank")).AppendLine();

            for (var row = 0; row < observations.RowCount; row++)
            {
                var rowString = observations.GetRowAsCsv(row, ";");
                csvBuilder.Append(rowString);
                csvBuilder.AppendFormat(CultureInfo.InvariantCulture, ";{0}", ranks[row]).AppendLine();
            }

            File.WriteAllText(filePath.FullName, csvBuilder.ToString(), Encoding.UTF8);
        }