码迷,mamicode.com
首页 > 其他好文 > 详细

M03 利用Accord 进行机器学习的第一个小例子

时间:2017-12-25 23:19:47      阅读:438      评论:0      收藏:0      [点我收藏+]

标签:hose   alt   data   ram   algo   pen   har   read   cto   

01 安装 Visual studio 2017.

 不具备安装这个的话,也可安装,Microsoft Visual Studio Express (or equivalent)

 

02 创建 C# 的 控制台程序

技术分享图片

 

03 添加 Accord 库

技术分享图片

 

 03  让机器学习『异或』的逻辑

不需要在代码里写出来异或的程序逻辑,告诉机器 异或的输入和输出(其实就是一个监督学习,训练的过程),机器就自己学习会了异或逻辑。

上代码:

 1 using System;
 2 using Accord.Controls;
 3 using Accord.MachineLearning.VectorMachines;
 4 using Accord.MachineLearning.VectorMachines.Learning;
 5 using Accord.Math;
 6 using Accord.Statistics.Kernels;
 7 using Accord.Math.Optimization.Losses;
 8 using Accord.Statistics;
 9 
10 namespace SampleApplication1
11 {
12     class Program
13     {
14         [MTAThread]
15         static void Main(string[] args)
16         {
17             double[][] inputs =
18             {
19                 /* 1.*/ new double[] { 0, 0 },
20                 /* 2.*/ new double[] { 1, 0 }, 
21                 /* 3.*/ new double[] { 0, 1 }, 
22                 /* 4.*/ new double[] { 1, 1 },
23             };
24 
25             int[] outputs =
26             { 
27                 /* 1. 0 xor 0 = 0: */ 0,
28                 /* 2. 1 xor 0 = 1: */ 1,
29                 /* 3. 0 xor 1 = 1: */ 1,
30                 /* 4. 1 xor 1 = 0: */ 0,
31             };
32 
33             // Create the learning algorithm with the chosen kernel
34             var smo = new SequentialMinimalOptimization<Gaussian>()
35             {
36                 Complexity = 100 // Create a hard-margin SVM 
37             };
38 
39             // Use the algorithm to learn the svm
40             var svm = smo.Learn(inputs, outputs);
41 
42             // Compute the machine‘s answers for the given inputs
43             bool[] prediction = svm.Decide(inputs);
44 
45             // Compute the classification error between the expected 
46             // values and the values actually predicted by the machine:
47             double error = new AccuracyLoss(outputs).Loss(prediction);
48 
49             Console.WriteLine("Error: " + error);
50 
51             // Show results on screen 
52             ScatterplotBox.Show("Training data", inputs, outputs);
53             ScatterplotBox.Show("SVM results", inputs, prediction.ToZeroOne());
54 
55             Console.ReadKey();
56         }
57     }
58 }

 

04  运行搞定

技术分享图片

 

 本文的源代码:

 链接:https://pan.baidu.com/s/1gfrQyPX 

密码: 关注微信输入关键字: 异或

 

M03 利用Accord 进行机器学习的第一个小例子

标签:hose   alt   data   ram   algo   pen   har   read   cto   

原文地址:https://www.cnblogs.com/zhixingheyi/p/8111439.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!