目录 十字链表法,十字链表压缩存储稀疏矩阵详解 矩阵(稀疏矩阵)的转置算法(C语言)详解 十字链表法,十字链表压缩存储稀疏矩阵详解 对于压缩存储稀疏矩阵,无论是使用三元组顺序表,还是使用行逻辑链接的顺序表,归根结底是使用数组存储稀疏矩阵。介于数组"不利于插入和删除数据"的特点,以上两种压缩存储方式都不适合解决类似"向矩阵中添加或删除非0元素"的问题。例如,A和B分别为两个矩阵,在实现"将矩阵B加到矩阵A上"的操作时,矩阵A中的元素会发生很大的变化,之前的非0元素可能变为0,而0元素也可能变为非0元素。对于此操作的实现,之前所学的压缩存储方法就显得力不从心。本节将学习用十字链表存储稀疏矩阵,该...

目录 深度优先搜索(DFS、深搜)和广度优先搜索(BFS、广搜) 深度优先搜索(简称“深搜”或DFS) 广度优先搜索 总结 深度优先生成树和广度优先生成树 非连通图的生成森林 深度优先生成森林 广度优先生成森林 深度优先搜索(DFS、深搜)和广度优先搜索(BFS、广搜) 深度优先搜索(简称“深搜”或DFS) 图1无向图 深度优先搜索的过程类似于树的先序遍历,首先从例子中体会深度优先搜索。例如图1是一个无向图,采用深度优先算法遍历这个图的过程为: 首先任意找一个未被遍历过的顶点,例如从V1开始,由于V1率先访问过了,所以,需要标记V1的状态为访问过; 然后遍历V1的邻接点,例如访问V2,并...

目录 SVM,KNN区别 一、KNN算法概述   算法的描述: 二、关于K的取值   K的取法: 三、关于距离的选取   EuclideanDistance定义: 四、总结 SVM,KNN区别 SVM:先在训练集上训练一个模型,然后用这个模型直接对测试集进行分类。 KNN:没有训练过程,只是将训练数据与训练数据进行距离度量来实现分类。 SVM:训练完直接得到超平面函数,根据超平面函数直接判定预测点的label,预测效率很高 KNN:预测过程需要挨个计算每个训练样本和测试样本的距离,当训练集和测试集很大时,预测效率低。 SVM:SVM是要去找一个函数把达到样本可分。 KNN:KNN对每个样本...

目录 [梯度下降求极值] [导数] [偏导数] [梯度下降] [机器学习&深度学习] [学习形式分类 [1)有监督学习] [2)无监督学习][预测结果分类] [1)回归&分类] [2)聚类] 梯度下降求极值 导数 导数也叫导函数,或者微商,它是微积分中的重要基础概念,从物理学角度来看,导数是研究物体某一时刻的瞬时速度,比如你开车从家8:00出发到公司上班,9:00到到达公司,这一个小时内的平均车速是80km/h,而途中8:15:30这一时刻的速度,就被称为瞬时速度,此刻的速度可能是100km/h,也可能是20km/h。而从几何意义上来讲,你可以把它理解为该函数曲线在一点上的...

目录 决策树算法关键 特征维度&判别条件 决策树算法:选择决策条件 纯度的概念 信息增益 增益率: 基尼指数: 纯度度量方法 1)纯度函数%20%E7%BA%AF%E5%BA%A6%E5%87%BD%E6%95%B0) 2)纯度度量函数%20%E7%BA%AF%E5%BA%A6%E5%BA%A6%E9%87%8F%E5%87%BD%E6%95%B0) 编辑 决策树算法关键 了解了“if-else”原理,下面我们进一步认识决策树算法。决策树算法涉及了几个重要的知识点:“决策树的分类方法”,“分支节点划分问题”以及“纯度的概念”。当然在学习过程中还会涉及到“信息熵”、“信息增益”、“...

目录 K-means聚类算法 聚类和分类的区别 找相似 簇是什么 K-means和KNN中理解K的含义 如何量化“相似” 1)随机选择质心%20%E9%9A%8F%E6%9C%BA%E9%80%89%E6%8B%A9%E8%B4%A8%E5%BF%83) 2)求出新质心点%20%E6%B1%82%E5%87%BA%E6%96%B0%E8%B4%A8%E5%BF%83%E7%82%B9) 总结 Sklearn使用K-means算法 K-means聚类算法 机器学习算法主要分为两大类:有监督学习和无监督学习,它们在算法思想上存在本质的区别。 有监督学习,主要对有标签的数据集(即有“参考答案”)...

目录 [人工神经网络是什么] [MP神经元模型] [1)生物神经元 [2)M-P神经元] [3)M-P模型解析] [4)信息处理单元] [感知机模型] [1)感知器模型] [2)激活函数] [3)多层感知器模型] [反向传播算法] [总结] 人工神经网络是什么 深度学习(DeepLearning)这一概念是由 GeoffreyHinton(深度学习之父)于2006年提出,但它的起源时间要早得多,可追溯至20世纪四五十年代,也就是人类刚刚发明出电子计算机时就已经提出来了,但当时并非叫做深度学习,而是人工神经网络(artificialneuralnetwork,ANN),简称神经网络...

目录 [什么是集成学习算法] [集成学习发展史] [集成学习组织方式] [1)并联组织关系] [2)串联组织关系] [预测结果的方式][1)平均法] [2)投票法] [集成学习实现方法] [1)Bagging算法] [2)Boosting算法][3)Stacking算法] [集成学习应用:随机森林算法] [决策树和随机森林] [1)决策树] [2)随机森林] [算法应用及其实现] [总结] 什么是集成学习算法 经过前面的学习,我们认识了机器学习中的常用回归算法、分类算法和聚类算法,在众多的算法中,除神经网络算法之外,没有一款算法模型预测准确率达到100%,因此如何提高预测模型的准确率成为业...

目录 神经网络分类算法的应用及其实现 神经网络算法特点 1)黑盒算法 2)数据量 3)算力和开发成本高 神经网络算法应用 神经网络分类算法的应用及其实现 神经网络算法特点 我们知道,深度学习的本质就是神经网络算法(深度学习是神经网络算法的一个分支)。理论上来说,在数据量和隐藏层足够多的情况下,神经网络算法能够拟合任何方程(函数)。神经网络算法是一种具有网络结构的算法模型,这决定了它具有非常好的延展性,通过调节神经网络中各个节点的权值参数使得分类效果明显提升。总的来说,神经网络算法具有以下特点: 1)黑盒算法 神经网络算法,也被称为“黑盒算法”,这是因为人们无法从外部得知神经网络模型究竟是如何...

目录 什么是线性表(线性存储结构) 顺序存储结构和链式存储结构 前驱和后继 顺序表(顺序存储结构)及初始化详解 顺序表的初始化 双向链表及创建(C语言)详解 双向链表的创建 静态链表及其创建(C语言实现) 静态链表中的节点 备用链表 静态链表的创建 循环链表(约瑟夫环)的建立及C语言实现 循环链表实现约瑟夫环 总结 什么是线性表(线性存储结构) 通过前面的学习我们知道,具有“一对一”逻辑关系的数据,最佳的存储方式是使用线性表。那么,什么是线性表呢?线性表,全名为线性存储结构。使用线性表存储数据的方式可以这样理解,即“把所有数据用一根线儿串起来,再存储到物理空间中”。   图1"一...

目录 [数据结构中公式前中后缀表达式-二叉树应用] 数据结构中公式前中后缀表达式-二叉树应用 什么是前缀表达式、中缀表达式、后缀表达式 前缀表达式、中缀表达式、后缀表达式,是通过树来存储和计算表达式的三种不同方式 以如下公式为例   通过树来存储该公式,可以表示为 那么问题就来了,树只是一种抽象的数据结构,它必须要通过某个形式的文本来才能存储和输入   此时,就有了三种表示方法:前缀表达式、中缀表达式、后缀表达式 它们分别相当于树的前序遍历、中序遍历、后序遍历,前中后指的是遍历时符号的遍历顺序 前序遍历:符号左操作数右操作数 中序遍历:左操作数符号右操作数 后序遍历...

目录 栈存储结构详解 进栈和出栈 栈的具体实现 栈的应用 什么是队列(队列存储结构) 栈存储结构详解 同顺序表和链表一样,栈也是用来存储逻辑关系为"一对一"数据的线性存储结构,如图1所示。 图1栈存储结构示意图 从图1我们看到,栈存储结构与之前所学的线性存储结构有所差异,这缘于栈对数据"存"和"取"的过程有特殊的要求: 栈只能从表的一端存取数据,另一端是封闭的,如图1所示; 在栈中,无论是存数据还是取数据,都必须遵循"先进后出"的原则,即最先进栈的元素最后出栈。拿图1的栈来说,从图中数据的存储状态可判断出,元素1是最先进的栈。因此,当需要从栈中取出元素1时,根据"先进后出"的原则,需提...

目录 什么是数组存储结构 数组的顺序存储(C语言版) 多维数组查找指定元素 对称矩阵 上(下)三角矩阵 稀疏矩阵 矩阵压缩存储的3种方式 什么是数组存储结构 前面学习数据结构的过程中,总是使用数组作为顺序表的底层实现,给我们一种"数据结构中,数组的作用就是实现顺序表"的错误认识。其实,数组的作用远不止于此。本节将从数据结构的角度讲解数组存储结构。 本节所讲的数组,要将其视为一种存储结构,与平时使用的数组基本数据类型区分开。 一说起数组,我们的印象中数组往往是某一门编程语言中包含的具体数据类型,其实不然。从本质上讲,数组与顺序表、链表、栈和队列一样,都用来存储具有"一对一"逻辑关系数据的线性存...

数据结构的树存储结构 之前介绍的所有的数据结构都是线性存储结构。本章所介绍的树结构是一种非线性存储结构,存储的是具有“一对多”关系的数据元素的集合。                                       (...

目录 什么是广义表 广义表的原子和子表 广义表的表头和表尾 广义表的存储结构详解(包含2种存储方案) 广义表的另一种存储结构 广义表的复制详解(含C语言代码实现) 总结 什么是广义表 广义表(Lists,又称列表)是一种非线性的数据结构,是线性表的一种推广。即广义表中放松对表元素的原子限制,容许它们具有其自身结构(即可以有子表)。它被广泛的应用于人工智能等领域的表处理语言LISP语言中。在LISP语言中,广义表是一种最基本的数据结构,就连LISP语言的程序也表示为一系列的广义表 前面讲过,数组即可以存储不可再分的数据元素(如数字5、字符'a'),也可以继续存储数组(即n维数组)。但需要注意的...

目录 回溯算法详解 回溯VS递归 回溯算法的实现过程 n个结点构造多本节要讨论的是当给定n(n>=0)个结点时,可以构建多少种形态不同的树。 回溯算法详解 回溯算法,又称为“试探法”。解决问题时,每进行一步,都是抱着试试看的态度,如果发现当前选择并不是最好的,或者这么走下去肯定达不到目标,立刻做回退操作重新选择。这种走不通就回退再走的方法就是回溯算法。例如,在解决列举集合{1,2,3}中所有子集的问题中,就可以使用回溯算法。从集合的开头元素开始,对每个元素都有两种选择:取还是舍。当确定了一个元素的取舍之后,再进行下一个元素,直到集合最后一个元素。其中的每个操作都可以看作是一次尝试,每次...

目录 数据结构的图存储结构 图存储结构基本常识 弧头和弧尾 入度和出度 (V1,V2)和的区别,v2> 集合VR的含义 路径和回路 权和网的含义 图存储结构的分类 什么是连通图,(强)连通图详解 强连通图 什么是生成树,生成树(生成森林)详解 生成森林 数据结构的图存储结构 我们知道,数据之间的关系有3种,分别是"一对一"、"一对多"和"多对多",前两种关系的数据可分别用线性表和树结构存储,本节学习存储具有"多对多"逻辑关系数据的结构——图存储结构。 图1图存储结构示意图 图1所示为存储V1、V2、V3、V4的图结构,从图中可以清楚的看出数据之间具有的"多对多"关系。例如,V1与V...

目录 图的顺序存储结构 图的顺序存储结构C语言实现 图的邻接表存储结构详解 邻接表计算顶点的出度和入度 图的十字链表存储结构 图的邻接多重表存储结构 图的顺序存储结构 使用图结构表示的数据元素之间虽然具有“多对多”的关系,但是同样可以采用顺序存储,也就是使用数组有效地存储图。使用数组存储图时,需要使用两个数组,一个数组存放图中顶点本身的数据(一维数组),另外一个数组用于存储各顶点之间的关系(二维数组)。 存储图中各顶点本身数据,使用一维数组就足够了;存储顶点之间的关系时,要记录每个顶点和其它所有顶点之间的关系,所以需要使用二维数组。 不同类型的图,存储的方式略有不同,根据图有无权,可以将图划...

  目录 数据结构之动态内存管理机制 占用块和空闲块 系统的内存管理 可利用空间表 分配存储空间的方式 空间分配与回收过程产生的问题 边界标识法管理动态内存 分配算法 回收算法 伙伴系统管理动态内存 可利用空间表中结点构成 分配算法 回收算法 总结 无用单元收集(垃圾回收机制) 总结 内存紧缩(内存碎片化处理) 分配内存空间 回收算法 总结 数据结构之动态内存管理机制 通过前面的学习,介绍很多具体的数据结构的存储以及遍历的方式,过程中只是很表面地介绍了数据的存储,而没有涉及到更底层的有关的存储空间的分配与回收,从本节开始将做更深入地介绍。 在使用早期的计算机上编写程序时,有关数据...

目录 NLP自然语言处理的RNN、Seq2Seq与attention注意力机制 RNN循环神经网络 前馈网络入门 前馈网络 循环网络 多层感知器架构示例 循环神经网络的运作原理 展开RNN seq2seq模型 Attention(注意力机制) 总结 引用 NLP自然语言处理的RNN、Seq2Seq与attention注意力机制 RNN循环神经网络 我们为什么需要RNN? 也许你现在想的是,已经有像卷积网络这样表现非常出色的网络了,为什么还需要其他类型的网络呢?有一个需要用到RNN的特殊例子。为了解释RNN,你首先需要了解序列的相关知识,我们先来讲一下序列。 序列是相互依赖的(有限或无限)数据...

关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~