摘要: 在机器学习中需要运用到许多数据结构,掌握它们是非常重要的。希望本文能有所帮助
拥有机器学习技能是不够的。你还需要良好的数据结构的工作知识。学习更多,并解决一些问题。
因此,你已经决定不再使用固定的算法并开始编写自己的机器学习方法。也许你已经有了一种新的集群数据的新方法,或者你可能对你最喜欢的统计分类包的局限性感到失望。
无论哪种情况,你对数据结构和算法的了解越多,在代码编写时就越容易。
我不认为机器学习中使用的数据结构与其他软件开发领域的数据结构有很大的不同。然而,由于许多问题的规模和难度,对基础知识的掌握非常重要。
另外,由于机器学习是一个数学性非常强的领域,我们应该记住,数据结构是如何被用来解决数学问题的,以及它们是如何以自己的方式来处理数学问题的。
有两种方法可以对数据结构进行分类:通过它们的实现和它们的操作。
通过实现,我指的是它们的编程方式和实际存储模式的具体细节。它们的外观并没有如何实现更重要。对于按操作或抽象数据类型分类的数据结构来说,情况恰恰相反——它们的外观和操作比实现方式更重要,事实上,它们通常可以使用许多不同的内部表示来实现。
数组当我说基本数组是机器学习中最重要的数据结构时,我并不是在开玩笑。这个实用的类型比你想象的要多。数组非常重要,因为它们被用于线性代数——这是你可以使用的最有用和最强大的数学工具。
因此,最常见的类型分别是一个和二维的类型,分别对应于向量和矩阵,但偶尔会遇到三个或四维的数组,它们要么用于更高级别的张量,要么为前者的组示例。
在进行矩阵运算时,你将不得不从令人眼花缭乱的各种库、数据类型、甚至语言中进行选择。许多科学编程语言,如Matlab,交互式数据语言(IDL),以及带有Numpy扩展的Python,主要是为处理向量和矩阵而设计的。
但这些数据结构的优点是,即使在更通用的编程语言中,实现向量和矩阵在metal很简单,假设语言中有任何Fortran DNA。考虑矩阵向量乘法的平移:
使用C++:
for (int i=0; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?


微信扫码登录