.NET数据挖掘与机器学习开源框架StrugglingDave

AForge.Imaging——一些日常的图像处理和过滤器AForge.Vision——计算机视觉应用类库AForge.Neuro——神经网络计算库AForge.Genetic-进化算法编程库AForge.MachineLearning——机器学习类库AForge.Robotics——提供一些机器学习的工具类库AForge.Video——一系列的视频处理类库AForge.Fuzzy——模糊推理系统类库AForge.Controls——图像,三维,图表显示控件

(二)Accord.NETFramework

Accord.NETFramework是在AForge.NET基础上封装和进一步开发来的。功能也很强大,因为AForge.NET更注重与一些底层和广度,而Accord.NETFramework更注重与机器学习这个专业,在其基础上提供了更多统计分析和处理函数,包括图像处理和计算机视觉算法,所以侧重点不同,但都非常有用。

(三)Math.NET

(四)Infer.NET

(五)numl

另外一个小巧的,包含比较多的机器学习算法类库,支持监督式和非监督式学习。支持很多常见的机器学习算法,文档资源还不错。包括Cluster,KMeans,PCA,DecisionTree,KNN,NaiveBayes,NeuralNetwork等学习算法,内容也非常丰富,功能强大,同时也包括一些数值计算的实现。这个组件个人认为没有以上的那么复杂,结构小巧合理,代码也很优雅。看看下面这段代码,很快就可以构建一个决策树学习器进行预测:

vargenerator=newDecisionTreeGenerator();generator.Descriptor=Descriptor.Create();generator.SetHint(false);Tennis[]tennis=TennisData.GetData();varlearned=Learner.Learn(tennis,0.80,1000,generator);IModelmodel=learned.Model;10doubleaccuracy=learned.Accuracy;Tennist=newTennis{Outlook=Outlook.Sunny,Temperature=Temperature.High,Windy=false};TennispredictedVal=model.Predict(t);numl的入门案例和文档比较全面,如果本身对算法比较了解,熟悉C#,那入门应该不是问题。并且可以通过组件本身构建和解决更加复杂的问题。

(六)Alglib

ALGLIB是一个跨平台的数值分析和数据处理函数库,该函数库包括开源版本和商业版本。它支持多种编程语言,如C++,C#,Pascal,VBA等,可以在多个操作系统平台上运行,如:Windows,Linux和Solaris。ALGLIB有以下特点:

(1)线性代数(包括矩阵分析);(2)方程求解(线性和非线性);(3)插值;(4)最优化;(5)快速傅里叶变换;(6)数值积分;(7)线性和非线性最小二乘拟合;(8)常微分方程求解;(9)特殊函数;(10)统计(描述统计、假设检验);(11)数据分析(分类、回归、神经网络);

Accord.NET框架扩展了AForge.NET框架,

提供了一些新功能。

同时为.NET环境下的科学计算提供了一个完整的开发环境。

该框架被分成了多个程序集,

可以直接从官网下载安装文件或者使用NuGet得到。

(一)框架的三大功能模块

Accord.NET框架主要有三个大的功能性模块。

分别为科学技术,

信号与图像处理,

支持组件。

下面将对3个模型的命名空间和功能进行简单介绍。

可以让大家更快的接触和了解其功能是否是自己想要的,

下面是主要的命名空间介绍。

(二)科学计算

(三)信号与图像处理

Accord.Imaging:包含特征点探测器(如Harris,SURF,FASTandFREAK),图像过滤器、图像匹配和图像拼接方法,还有一些特征提取器。

Accord.Audio:包含一些机器学习和统计应用程序说需要的处理、转换过滤器以及处理音频信号的方法。

Accord.Vision:实时人脸检测和跟踪,以及对人流图像中的一般的检测、跟踪和转换方法,还有动态模板匹配追踪器。

(四)支持组件

主要是为上述一些组件提供数据显示,绘图的控件,分为以下几个命名空间:

Accord.Controls:包括科学计算应用程序常见的柱状图、散点图和表格数据浏览。

Accord.Controls.Imaging:包括用来显示和处理的图像的WinForm控件,包含一个方便快速显示图像的对话框。

(五)支持的算法介绍

1、分类(Classification)

SVM(支持向量机,类SupportVectorMachine、类KernelSupportVectorMachine、类SequentialMinimalOptimization—序列最小优化算法)、

K-NN邻近算法(类KNearestNeighbors);

LogisticRegression(逻辑回归)、

DecisionTrees(决策树,类DecisionTree、ID3Learning、C45Learning)、

NeuralNetworks(神经网络)、

DeepLearning(深度学习)

(DeepNeuralNetworks深层神经网络)、

Levenberg-MarquardtwithBayesianRegularization、

RestrictedBoltzmannMachines(限制玻耳兹曼机)、

Sequenceclassification(序列分类),

HiddenMarkovClassifiersandHiddenConditionalRandomFields(隐马尔科夫分类器和隐藏条件随机域)。

2、回归(Regression)

Multiplelinearregression(多元线性回归-单因变量多自变量)、

SimpleLinearRegression(线性回归,类SimpleLinearRegression)、

Multivariatelinearregression(多元线性回归-多因变量多自变量)、polynomialregression(多项式回归)、logarithmicregression(对数回归)、Logisticregression(逻辑回归)、multinomiallogisticregression(多项式逻辑回归)(softmax)andgeneralizedlinearmodels(广义线性模型)、L2-regularizedL2-losslogisticregression,L2-regularizedlogisticregression,L1-regularizedlogisticregression,L2-regularizedlogisticregressioninthedualformandregressionsupportvectormachines。

3、聚类(Clustering)

K-Means、K-Modes、Mean-Shift(均值漂移)、GaussianMixtureModels(高斯混合模型)、BinarySplit(二元分裂)、DeepBeliefNetworks(深层的信念网络)、RestrictedBoltzmannMachines(限制玻耳兹曼机)。聚类算法可以应用于任意数据,包括图像、数据表、视频和音频。

4、概率分布(Distributions)

包括40多个分布的参数和非参数估计。包括一些常见的分布如正态分布、柯西分布、超几何分布、泊松分布、伯努利;也包括一些特殊的分布如Kolmogorov-Smirnov,Nakagami、Weibull、andVon-Misesdistributions。也包括多元分布如多元正态分布、Multinomial、Independent、JointandMixturedistributions。

5、假设检验(HypothesisTests)

超过35统计假设测试,包括单向和双向方差分析测试、非参数测试如Kolmogorov-Smirnov测试和媒体中的信号测试。contingencytabletestssuchastheKappatest,withvariationsformultipletables,aswellastheBhapkarandBowkertests;andthemoretraditionalChi-Square,Z,F,TandWaldtests.

6、核方法(KernelMethods)

内核支持向量机,多类和多标签向量机、序列最小优化、最小二乘学习、概率学习。IncludingspecialmethodsforlinearmachinessuchasLIBLINEAR'smethodsforLinearCoordinateDescent,LinearNewtonMethod,ProbabilisticCoordinateDescent,ProbabilisticCoordinateDescentintheDual,ProbabilisticNewtonMethodforL1andL2machinesinboththedualandprimalformulations.

7、图像(Imaging)

兴趣和特征点探测器如Harris,FREAK,SURF,FAST。灰度共生矩阵,Borderfollowing,Bag-of-Visual-Words(BoW),RANSAC-basedhomographyestimation,integralimages,haralicktexturalfeatureextraction,anddensedescriptorssuchashistogramoforientedgradients(HOG)andLocalBinaryPattern(LBP).SeveralimagefiltersforimageprocessingapplicationssuchasdifferenceofGaussians,Gabor,NiblackandSauvolathresholding。还有几个图像处理中经常用到的图像过滤器。

8、音频信号(AudioandSignal)

音频信号的加载、解析、保存、过滤和转换,如在空间域和频域应用音频过滤器。WAV文件、音频捕捉、时域滤波器,高通,低通,波整流过滤器。Frequency-domainoperatorssuchasdifferentialrectificationfilterandcombfilterwithDirac'sdeltafunctions.SignalgeneratorsforCosine,Impulse,Squaresignals.

9、视觉(Vision)

实时人脸检测和跟踪,以及图像流中检测、跟踪、转换的一般的检测方法。Containscascadedefinitions,CamshiftandDynamicTemplateMatchingtrackers.Includespre-createdclassifiersforhumanfacesandsomefacialfeaturessuchasnoses。

10、降维技术

SVD奇异值分解(OctaveEnvironment.svd方法);

PCA主成分分析(类PrincipalComponent);

ICA独立成份分析(类IndependentComponetAnalysis)

11、算法精度测算

混淆矩阵(类ConfusionMatrix);

ROC曲线评估(类ReceiverOperatingCharacteristic);

Bootstrap算法(自助算法;类(Bootstrap));

CrossValidation算法(交叉检验;类(CrossValidation));

Debug是一些用于调试的程序集,Docs是帮助文档,Externals是一些辅助的组件,Release是不同.NET环境的Dll程序集版本,Samples是案例源代码,Setup是安装的程序,Sources是项目的源代码,UnitTests是单元测试代码。

(一)Math.NET基本介绍

Math.NET初衷是开源建立一个稳定并持续维护的先进的基础数学工具箱,以满足.NET开发者的日常需求。目前该组件主要分为以下几个子项目,该组件同时也支持Mono,而且支持的平台也非常广泛(PCLPortableProfile47:Windows8,Silverlight5,Xamarin:Android,iOS)。

(二)Math.NETNumerics

支持概率分布:离散型、连续型和多元

伪随机数生成器

支持稀疏矩阵和向量的复杂的线性代数解决方法

LU,QR,SVD,EVD,Cholesky分解

矩阵读写功能,支持Matlab和一些分开的文件

复数计算

特殊函数:Gamma,Beta,Erf,Bessel,Struve等等

插值,线性回归,曲线拟合

数值积分,方程求解

马尔可夫链蒙特卡罗抽样

基本的财务统计数据

傅里叶变换(FFT)

重载的数学操作符来简化复杂的表达式

Mono平台支持,可选支持英特尔数学内核库(MicrosoftWindows和Linux)

可选更多的的F#扩展用法

(三)Math.NETSymbolics

(四)Math.NETFiltering

(五)Math.NETSpatial

是Math.NET下的一个几何处理工具箱。

(六)其他

Math.NET在发展过程中的一些其他项目如Math.NETIridium,Math.NETClassic,Math.NETLinqAlgebra,Math.NETYttrium等都是历史(有一些是实验性的),现在都已经合并到上述几个子项目中。

THE END
1..NET下的机器学习入门篇dotnet机器学习ML.NET 使你能够在联机或脱机场景中将机器学习添加到 .NET 应用程序中。 借助此功能,可以使用应用程序的可用数据进行自动预测。 机器学习应用程序利用数据中的模式来进行预测,而不需要进行显式编程。 ML.NET能做什么 分类/类别划分 自动将客户反馈分为积极和消极两类 https://blog.csdn.net/iml6yu/article/details/121229836
2.让我们了解.NET让我们来了解 .NET 2021年10月12日 我们将一起演练使用 .NET 生成机器学习或“ML”模型的基本原理。 ML.NET 是一种适合 .NET 开发人员的开源跨平台机器学习,支持将自定义机器学习集成到 .NET 应用中。 有了 ML.NET,无需离开 .NET 生态系统,即可使用 C# 或 F# 创建自定义 ML 模型。 一起学习新内容、https://docs.microsoft.com/zh-cn/shows/lets-learn-dotnet/Machine-Learning?view=sql-server-ver15
3..NET中使用ML.NET进行机器学习模型训练与预测.NET 中使用 ML.NET 进行机器学习模型训练与预测 一、引言 在.NET 开发中,实现机器学习模型的训练与预测是一项重要且受到广泛关注的工作。ML.NET 是一个开源https://www.jianshu.com/p/bd590ad778df
4.使用.NET5体验大数据和机器学习微软发布了与 .NET 协作的大数据(.NET for Spark)和机器学习(http://ML.NET)工具,这些工具共同提供了富有成效的端到端体验。在本文中,我们将介绍 .NET for Spark、大数据、http://ML.NET和机器学习的基础知识,我们将研究其 API 和功能,向你展示如何开始构建和消费你自己的 Spark 作业和http://ML.NET模型https://zhuanlan.zhihu.com/p/425451952
5.Python机器学习从ResNet到DenseNet示例详解pythonPython机器学习从ResNet到DenseNet示例详解更新时间:2021年10月11日 10:42:33 作者:Supre_yuan ResNet极大地改变了如何参数化深层网络中函数的观点。稠密连接网络(DenseNet)在某种程度上是ResNet的逻辑扩展。让我们先从数学上了解下+ 目录 从ResNet到DenseNet 上图中,左边是ResNet,右边是DenseNet,它们在跨层上的https://www.jb51.net/article/224978.htm
6.跨平台机器学习:ML.NET架构及应用编程(跨平台机器学习:ML.NET架构《跨平台机器学习:ML.NET架构及应用编程》这本书以.NET开发者的视角,深入浅出地探讨了如何利用ML.NET这一强大的工具集,在.NET生态系统中实现跨平台的机器学习应用。而且就书中的内容案例来看,真的是深入浅出,很容易上手。书中首先系统地介绍了ML.NET的基本概念、架构优势以及它如何支持跨平台开发,这为读者建立https://book.douban.com/review/16092870/
7.C#也能做机器学习?基于.NET的AI智能应用市场还是一片“处女地在这样的背景下,SciSharp AI 开源社区应运而生,它打造一个基于 .NET 的机器学习生态,推出并开源了多个颇受欢迎的基于 .NET 的机器学习项目和工具,比如 TensorFlow.NET 就被谷歌列入 TensorFlow 官网,推荐给全球开发者。 SciSharp 是怎样的一个社区?它是如何构建一个基于 .NET 的机器学习生态?它在做的事情对开发https://cloud.tencent.com/developer/article/1528208
8.《跨平台机器学习:ML.NET架构及应用编程》简介书评当当四季图书专营店在线销售正版《跨平台机器学习:ML.NET架构及应用编程》。最新《跨平台机器学习:ML.NET架构及应用编程》简介、书评、试读、价格、图片等相关信息,尽在DangDang.com,网购《跨平台机器学习:ML.NET架构及应用编程》,就上当当四季图书专营店。http://product.dangdang.com/11603676284.html
9.机器学习框架ML.NET学习笔记9自动学习机器学习框架ML.NET学习笔记【9】自动学习 一、概述 本篇我们首先通过回归算法实现一个葡萄酒品质预测的程序,然后通过AutoML的方法再重新实现,通过对比两种实现方式来学习AutoML的应用。 首先数据集来自于竞赛网站kaggle.com的UCI Wine Quality Dataset数据集,http://shanyou.blog.51cto.com/363653/3267771
10.有哪些c#机器学习库–PingCode机器学习在当今的软件开发中扮演了重要的角色,而C#作为一门广泛使用的编程语言,在这一领域也有着不少的库来支持这种类型的技术实现。常见的C#机器学习库包括ML.NET、Accord.NET、AForge.NET、Encog、Numl等。这些库提供了丰富多样的算法和工具,使得开发者能够在.NET环境下进行复杂的机器学习任务。其中,ML.NET是由https://docs.pingcode.com/ask/188312.html
11.机器学习本课程作为人工智能专业方向的基础课程,介绍机器学习的基础知识,包括机器学习概述、模型的评估与选择,和机器学习的经典算法,主要包括KNN算法、线性回归、逻辑回归、决策树、朴素贝叶斯、支持向量机、集成学习等。本课程的算法介绍部分,采用统一的介绍流程,让学员对机器学习的各个算法有清晰的对比和了解更快的掌握算法知识https://www.educoder.net/paths/ijeknthr
12.2020年最值得收藏的60个AI开源工具语言&开发李冬梅Metaflow 是 Netflix 机器学习基础架构的关键部件,主要用于加速数据科学工作流的构建和部署,Netflix 希望通过开源 Metaflow 简化机器学习项目从原型阶段到生产阶段的过程,进而提高数据科学家的工作效率。在过去两年中,Metaflow 已在 Netflix 内部用于构建和管理从自然语言处理到运营研究的数百个数据科学项目。 https://www.infoq.cn/article/2uabiqaxicqifhqikeqw
13.写给程序员的机器学习入门(九)对象识别RCNN与Fast对象识别的应用范围比较广,例如人脸识别,车牌识别,自动驾驶等等都用到了对象识别的技术。对象识别是当今机器学习领域的一个前沿,2017 年研发出来的 Mask-RCNN 模型还可以检测对象的轮廓。 因为看上去越神奇的东西实现起来越难,对象识别模型相对于之前介绍的模型难度会高很多,请做好心理准备?。 对象https://www.flyai.com/article/879
14.Accord.NETMachineLearningFrameworkAccord.NET is a .NET machine learning framework combined with audio and image processing libraries completely written in C# ready to be used in commercial applications.http://www.accord-framework.net/
15.机器学习《机器学习》是计算机科学与人工智能的重要分支领域。本课程面向硕士研究生,系统性地教授机器学习(ML)的发展背景、主要理论、技术及其最新发展趋势,并开展课堂研讨充分调动学生学习主动性,使学生深入了解该领域的研究对未来社会发展的重要影响, 掌握机器学习的最新理论、方法的基本原理和初步应用,激发人工智能领域创新创业的https://i.study.uestc.edu.cn/06ML/menu/home