【Accord.NET】快速入门机器学习,…

Aforge.NET是一个基于C#框架设计,涵盖计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,模糊系统,机器人控制等库 ,而Accord.NET Framework是在AForge.NET基础上封装和进一步开发来的,相比于前者来说有着更高的针对性,是一个包含常见的SVM,SURF,FAST等算法的类库,能够很方便的建立

 

需要用到的:

VS2015

网络,可能要翻墙

 

 

第一步,环境搭建

 

先打开VS,新建一个c#的控制台程序

 

 

然后 工具---NuGet包管理器---管理器控制台

 

输入下面语句,下载accord相关的文件

 

PM> Install-Package Accord.MachineLearning
   PM> Install-Package Accord.Controls

 

 

 

这里的例子是使用SVM来解决常见的异或问题

 

什么是异或问题?如下所示

 

       将得到的结果

           0

           1

           1

 

 

 

 

 

代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Accord.Controls;
using Accord.MachineLearning.VectorMachines;
using Accord.MachineLearning.VectorMachines.Learning;
using Accord.Math;
using Accord.Statistics.Kernels;
namespace AccordOne
{
    class Program
    {
        [MTAThread]//用于宣告这个程序的线程模型为多线程单元,如果说单线程则是STAThread
        static void Main(string[] args)
        {
            double[][] inputs =
           {//输入的数据
                new double[] { 0, 0 },
                new double[] { 1, 0 },
                new double[] { 0, 1 },
                new double[] { 1, 1 },
            };

            int[] outputs =
            {
                -1,
                +1,
                +1,
                -1,
            };
           
            //创建一个新的机器拥有多项式内核与两个输入
            var ksvm = new KernelSupportVectorMachine(new Gaussian(), 2);

            //创建采用我们所给予的输入与输出的学习算法
            var smo = new SequentialMinimalOptimization(machine: ksvm, inputs: inputs, outputs: outputs)
            {
                Complexity = 100 //创建具有硬性分界的支持向量机SVM
            };


            // Teach the machine
            double error = smo.Run();//出错则返回值
            Console.WriteLine("error:" + error);
            // Show results on screen
            ScatterplotBox.Show("Training data", inputs, outputs);//这个窗口用于显示学习数据

            ScatterplotBox.Show("SVM results", inputs,  //这边这个窗口则显示SVM的返回结果
                inputs.Apply(p => System.Math.Sign(ksvm.Compute(p))));

            Console.ReadKey();

        }
    }
}

得到的结果

 

 

【Accord.NET】快速入门机器学习,之SVM算法C#下应用

 

 

 

一点点解释:

 

 

 

参考原文

https://github.com/accord-net/framework/wiki/Getting-started

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值