基于多种开源机器学习库的比较及实现

 2022-08-28 11:08

论文总字数:24171字

摘 要

当今社会关于机器学习的研究在各行各业同步开展,机器学习在人们的生活中占据着越来越重要的地位,而同时,如何在开发企业级产品的时候对机器学习算法进行更深层次的优化,而新开发的产品相对于市面上的其他产品的优势和劣势又在哪里,都需要进行研究分析。

为了在企业开发机器学习套件AML的过程中提供意见和建议,本文就针对DAAL, scikit-learn, OpenCV等机器学习库及他们的算法进行了研究分析,并针对不同的算法进行不同的评估比较。主要的工作包括研究市面上主流机器学习库对于各个算法开放的接口,研究不同机器学习库实现同一种算法的方式,测试他们之间准确度和时间并一一比较,并在最后给AML的开发提供意见,反馈性能的优劣。

论文则基于研究过程出发,介绍了如何在LabVIEW中使用C 和Python的接口,设计了在LabVIEW,C ,Python之间数据转换的函数,详细设计了对比比较试验的评估方法,并在研究学习的过程中为AML的开发提供了一些经验和意见。

关键词:机器学习,神经网络,机器学习库,聚类,分类

Abstract

Nowadays, the study of machine learning is carried out simultaneously in all aspacts of life. Machine learning occupies an increasingly important position in people's lives. At the same time, how to optimize the machine learning algorithm in the development of enterprise products? What’s the advantages and disadvantages of the newly developed software compared to other open source library? In order to get the precise answers to these questions, we need to research and analysis deeply.

In order to provide suggestions in the process of developing machine learning suite AML, this paper studies the machine learning libraries such as DAAL, scikit-learn and OpenCV and their algorithms, and makes different evaluation and comparison for different algorithms. The main work includes studying the interfaces of the mainstream machine learning library on the market for each algorithm and and how do these libraries achieve the same algorithm, testing the accuracy and time between these algorithms and structures, and finally, give advices which contains the research on the development of AML.

Based on the research process, this paper introduces how to use C and Python interfaces in LabVIEW, how to design the function of data conversion between LabVIEW, C and Python, and how to design the evaluation method of comparative comparison experiment in detail. This research provides some experience and advice for the development of AML.

Keywords: Machine Learning, neural network, clustering, classification

目 录

第一章 绪论 1

1.1 引言 1

1.2 机器学习发展现状 1

1.3 对不同机器学习开源库比较实现优劣采用的手段方法 2

1.4 本文的研究目的、内容及方法 2

第二章 相关机器学习算法及开源库 4

2.1 Intel Data Analytics Acceleration Library(DAAL) (C ) 介绍 4

2.1.1 DAAL总体架构 4

2.1.2 DAAL主要模块介绍 4

2.1.3 DAAL主要数据结构及API 4

2.2 scikit-learn (Python) 介绍 8

2.2.1 scikit-learn总体架构 8

2.2.2 scikit-learn主要模块介绍 9

2.2.3 scikit-learn主要数据结构及API 9

2.3 OpenCV (C ) 介绍 9

2.3.1 OpenCV总体架构 9

2.3.2 OpenCV主要模块介绍 9

2.3.3 OpenCV主要数据结构及API 10

第三章 系统设计 12

3.1 系统整体设计 12

3.1.1 数据收集 12

3.1.2 特征提取 13

3.1.3 机器学习 13

3.1.4 模型验证 14

3.1.5 模型部署 14

3.2 DAAL部分系统设计 15

3.3 OpenCV部分系统设计 16

3.4 scikit-learn部分系统设计 17

3.5 LabVIEW部分系统设计 17

3.5.1 数据处理 17

3.5.2 通过DLL编写C 接口 18

3.5.3 使用Python Integration Toolkit for LabVIEW编写Python接口 18

第四章 系统实现 20

4.1 特征提取算法 20

4.1.1 PCA 20

4.1.2 Kernel PCA 21

4.1.3 Normalize 22

4.1.4 Fisher 23

4.2 聚类算法 23

4.2.1 高斯混合模型 23

4.2.2 K-Means 24

4.2.3 DBSCAN 26

4.3 分类算法(BP神经网络) 27

第五章 结论 32

5.1 系统测试环境 32

5.2 DAAL相关结论 32

5.2.1 K-Means算法 32

5.2.2 BP神经网络算法 33

5.3 OpenCV相关结论 33

5.4 scikit-learn相关结论 34

总结和展望 36

致 谢 38

参考文献 39

第一章 绪论

1.1 引言

如今物联网和智能控制正在工业领域中逐渐占有一席之地,而有效实现这二者的最大挑战,则是如何在茫茫多获取的数据之中,获得你想要得到的有价值的信息,并借此来进行预测和有效的反应。这些信息常常蕴藏在一系列复杂变量之间的关系之中,如何通过特定的算法来找到这些复杂变量之间的关联则成了物联网和智能控制走向成熟的重中之重。通过历史数据进行分析得出模型,分析历史数据不同情况形成的原因,并根据模型对实时监控数据进行分析,得出预测结果。

机器学习,顾名思义,是一种不通过严格编程,就可以通过电脑发现并对数据之间模式进行相应回应的机制。在机器学习领域,人们往往研究的问题往往分为三类,即有监督学习(通常为分类问题)、半监督学习、无监督学习(通常为聚类问题),而研究问题的过程中,有许多学者都会提出适应的算法,而开源的机器学习库就往往使用不同的算法来完成相同的工作,而又使用不同的数据结构来实现相同的算法,而同时语言的特性也决定了数据结构相同时对于算法在底层的实现上也有一定区别。这些区别会导致衡量指标的不同。

剩余内容已隐藏,请支付后下载全文,论文总字数:24171字

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;