private void outputError(ClassificationAlgorithmBase <double[][, ]> alg) { Console.WriteLine("Errors:"); var sample = new ClassifiedSample <double[][, ]>(); foreach (var obj in Data.Data) { var data = obj.Key; var key = new double[data.Length][, ]; for (int i = 0; i < data.Length; i++) { key[i] = new double[1, 1]; } for (int i = 0; i < data.Length; i++) { key[i][0, 0] = data[i]; } sample[key] = obj.Value; } var errors = alg.GetErrors(sample, 0, true); var ec = errors.Count(); var dc = Data.Data.Count; var pct = Math.Round(100.0F * ec / dc, 2); Console.WriteLine("{0} of {1} ({2}%)", ec, dc, pct); }
private void outputError(ClassificationAlgorithmBase <double[]> alg) { Console.WriteLine("Errors:"); var errors = alg.GetErrors(Data.Data, 0, true); var ec = errors.Count(); var dc = Data.Data.Count; var pct = Math.Round(100.0F * ec / dc, 2); Console.WriteLine("{0} of {1} ({2}%)", ec, dc, pct); }
public void Run(ClassificationAlgorithmBase <double[]> algorithm, int xidx = 0, int yidx = 1, double[] shear = null) { m_XIdx = xidx; m_YIdx = yidx; m_Shear = shear; m_InputDim = algorithm.TrainingSample.First().Key.Length; var fn = string.Format("data/{0}-{1:yyyyMMdd-hhmmss}.csv", algorithm.Name, DateTime.Now); var dir = Path.GetDirectoryName(fn); Directory.CreateDirectory(dir); using (var file = File.Create(fn)) using (var writer = new StreamWriter(file)) { prepareCanvas(); doCalc(algorithm, writer); } }
private void init() { using (var spam = Assembly.GetExecutingAssembly().GetManifestResourceStream("ML.TextDemo.data.SPAM_p2.42.mld")) { var proc = new TextPreprocessor(new EnglishSimpleTokenizer(), new EnglishStopwords(), new EnglishSimpleNormalizer(), new EnglishPorterStemmer()); m_SpamAlgorithm = new ComplementNaiveBayesianAlgorithm() { Preprocessor = proc }; m_SpamAlgorithm.Deserialize(spam); } using (var r8 = Assembly.GetExecutingAssembly().GetManifestResourceStream("ML.TextDemo.data.RR8_p4.37.mld")) { var proc = new TextPreprocessor(new EnglishSimpleTokenizer(), new EnglishStopwords(), new EnglishSimpleNormalizer(), new EnglishPorterStemmer()); m_ReutersR8Algorithm = new MultinomialNaiveBayesianAlgorithm() { Preprocessor = proc }; m_ReutersR8Algorithm.Deserialize(r8); } using (var n20 = Assembly.GetExecutingAssembly().GetManifestResourceStream("ML.TextDemo.data.N20_p17.35.mld")) { var proc = new TextPreprocessor(new EnglishSimpleTokenizer(), new EnglishStopwords(), new EnglishSimpleNormalizer(), new EnglishPorterStemmer()); m_Newsgroups20Algorithm = new TFIDFNaiveBayesianAlgorithm() { Preprocessor = proc }; m_Newsgroups20Algorithm.Deserialize(n20); } }
private void doCalc(ClassificationAlgorithmBase <double[]> algorithm, StreamWriter writer) { for (var k = 0; k < Math.Max(m_XCnt, m_YCnt); k++) { var px = (k < m_XCnt) ? getProjPoint(k, 0)[0].ToString(CultureInfo.InvariantCulture) : string.Empty; var py = (k < m_YCnt) ? getProjPoint(0, k)[1].ToString(CultureInfo.InvariantCulture) : string.Empty; var pd = string.Empty; if (k < m_YCnt) { var data = new double[m_XCnt]; for (int i = 0; i < m_XCnt; i++) { var point = getPoint(i, k); var cls = algorithm.Predict(point); data[i] = cls.Value; } pd = string.Join(COMMA, data); } writer.WriteLine("{0},{1},{2}", px, py, pd); } }