![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
BUPT-WT
不积硅步无以至千里,不积小流无以成江海
展开
-
栈的基本原理及实现
原理栈是一个有序集合,其中添加和删除元素都是发生在同一端,通常称作发生操作的这一端为顶部,对应的端为底部例子说明:一个桶里面装很多东西,后放进里面的,先拿出来(也叫后进先出LIFO)栈的操作:代码实现:代码实现如下:自己定义一个类,也可以使用封装好的类from pythonds.basic.stack import Stack用栈实现的例子(括号匹配)出现的...原创 2018-08-14 09:38:19 · 10483 阅读 · 2 评论 -
模型评估(笔记)
模型评估主要分为离线评估和在线评估两个阶段针对分类、排序、回归、序列预测等不同类型的机器学习问题,评估指标的选择也有所不同一、评估指标的局限性1、准确率的局限性当不同类别的样本比例非常不均衡时,占比大的类别往往成为影响准确率的最主要因素2、准确率与召回率权衡精确率:指分类正确的正样本个数占分类器判定为正样本的样本个数比例召回率:分类正确的正样本个数占真正的正样本个数的比...原创 2019-01-05 17:03:22 · 2086 阅读 · 0 评论 -
特征工程(笔记)
常用的两种数据类型:1、结构化数据。结构化数据类型可以看作关系型数据库的一张表,每一列都有清晰的定义,包含数值型、类别型两种基本类型,每一行数据代表一个样本信息2、非机构化数据。非结构化数据主要包括文本、图像、音频、视频数据,其包含的信息无法用一个简单的数值表示,也没有清晰的类别定义,并且每条数据的大小各不相同一、特征归一化为了消除数据特征之间的量纲影响,我们需要对特征进行归一化处...原创 2018-10-28 10:43:41 · 1460 阅读 · 0 评论 -
二叉堆的优先队列基本原理及实现
原理:传统的队列是先进先出的数据结构,队列的重要变种称为优先级队列二叉堆常见的遍体:最小堆(其中最小的键在前面)和最大堆(其中最大的键值总是在前面) 代码实现 ...原创 2018-08-24 09:35:18 · 233 阅读 · 1 评论 -
树的基本原理及实现
原理:树的词汇:1、节点节点是树的基本部分,可以有附加信息。2、边连接两个节点显示它们之间存在的关系3、根树的根是树中唯一没有传入边的节点4、路径路径是边连接节点额有序列表5、子节点具有来自相同传入边的节点c的集合称为该节点的子节点6、父节点具有和它相同传入边的所连接的节点称为父节点7、兄弟树中同一父节点的节点被称为兄弟节点8、子树...原创 2018-08-24 08:46:37 · 2752 阅读 · 0 评论 -
插入排序的基本原理及实现
原理:插入排序始终在列表的较低位置维护一个排序的子列表,遇到新的项将它插入到原来的子列表,使得排序的子列表称为一个较大的项例子如下:代码实现:复杂度:O(n^2) ...原创 2018-08-21 09:12:07 · 5010 阅读 · 0 评论 -
选择排序的基本原理及实现
原理:选择排序改进了冒泡排序,每次遍历列表只做一次交换,为了做到这一点,一个选择排序在遍历时寻找最大的值,并在完成遍历后,将其放到正确的地方。第二次遍历,找出下一个最大的值。遍历n-1次排序n个项,最终项必须在n-1次遍历之后例子如下:代码实现:时间复杂度:O(n^2)...原创 2018-08-21 08:54:15 · 7750 阅读 · 0 评论 -
冒泡排序的原理及实现
原理:冒泡排序需要多次遍历列表,比较相邻的项并交换那些无序的项,每次遍历列表将下一个最大的值放在正确的位置。如果在列表中有n个项目,则第一遍需要比较n-1个项例子如下:第一次遍历过程代码实现:时间复杂度为O(n^2)冒泡排序存在缺点:如果发现列表已排序,可以修改冒泡排序提前终止,这意味对于只需要遍历几次列表,冒泡排序具有识别排序列表和停止的优点,这种方法称为:短冒泡...原创 2018-08-21 08:39:23 · 5628 阅读 · 0 评论 -
Hash查找的基本原理及实现
理论:很多查找算法是通过利用关于项在集合中相对余彼此存储的位置的信息,改进搜索算法建立一个可以在O(1)时间内被搜索的数据结构--> Hash查找哈希表是以一种容易找到它们的方式存储项的集合,哈希表的每个位置,通常称为一个槽,可以容纳一个项,并且由从0开始的整数值命名,例如有名为0的槽,名为1的槽......,最初,哈希表不包含项,因此每个槽为空,我们可以通过一个列表来实现哈希表...原创 2018-08-21 08:07:26 · 24592 阅读 · 2 评论 -
搜索排序算法小结
1、对于有序和无序列表,顺序搜索是O(n)2、在最坏的情况下,有序列表的二分查找是O(logn)3、哈希表可以提供恒定时间搜素4、冒泡排序,选择排序和插入排序是 O(n^2)5、shell排序通过排序增量子列表来改进插入排序,落在O(n)和O(n^2)之间6、归并排序是O(nlogn),但是合并过程需要额外的空间7、快速排序是O(nlogn),但如果分割点不在列表中间附近,...原创 2018-08-23 08:58:45 · 1073 阅读 · 0 评论 -
快速排序的基本原理及实现
原理:快速排序使用分而治之来获得与归并排序相同的优点,而不使用额外的存储。快速排序首先选择一个值,称为枢轴值,一般选择使用列表的第一项作为枢轴值。它的作用是帮助拆分列表。枢轴值属于最终排序列表的实际位置,将用于将列表划分为快速排序的后续调用。分区从通过列表中剩余项目的开始和结束处定位两个位置标记。代码实现:...原创 2018-08-23 08:52:17 · 510 阅读 · 0 评论 -
归并排序的基本原理及实现
原理:归并排序是一种递归算法,不断将列表拆分为一半,如果列表为空或有一个项,则按定义进行排序。如果列表有多个项,我们分割列表,并递归调用两个半部分的合并排序。一旦对两半排序完成,获取两个较小的排序列表并将它们组合成单个排序的新列表的过程代码实现:时间复杂度O(nlogn)...原创 2018-08-23 08:28:17 · 6276 阅读 · 3 评论 -
希尔排序的基本原理及实现
原理:希尔排序通过将原始列表分解为多个较小的子列表来改进插入排序,每个子列表使用插入排序进行排序。选择这些子列表的方式是希尔排序的关键。不是将列表分为连续项的子列表,希尔排序使用增量i,通过选择i 个项的所有项来创建子列表代码实现: ...原创 2018-08-23 08:08:42 · 3308 阅读 · 0 评论 -
顺序查找的基本原理及实现
原理:按照基本的顺序排序,简单地从一个项移动到另一项,知道找到目标项或遍历完整个列表,如果遍历完整个列表,则说明正在搜索的项不存在。代码实现:无序列表顺序查找分析:最快1次找到,最差n次找到,平均n/2次找到 复杂度:O(n)有序列表顺序查找列表是按顺序排列的(以升序为例)复杂度:O(n) ...原创 2018-08-20 08:49:39 · 2002 阅读 · 0 评论 -
队列的基本原理及实现
基本原理:队列是有序集合,新添加的一端为队尾,另一端为队头,当一个元素从队尾进入队列时,一直向队首移动,直到它成为移除的元素为止。这种排序是先进先出FIFO,生活中常见的例子就是去学校食堂打饭,人多时候需要排队,排队在前面的同学先打饭,新来的同学在后面排队,知道前面同学都打完饭,才轮到它代码实现:1、小游戏:小时候大家玩过一个游戏,大家围成一个圈,从某一个人开始报数,知道某个人报数...原创 2018-08-15 09:18:44 · 14356 阅读 · 1 评论 -
梯度下降法原理及实现
梯度下降代表函数值减少速度最快的方向。当设定目标函数最小值时,只要朝着梯度下降的方向前进,就可以不断的逼近最优值#encoding=utf-8 """ created on 2018-08-12 @author wt """ """ 利用随机梯度法,首先需要有一个函数,随便找一个函数f(x) = x^2-4*x+4,则f'(x...原创 2018-08-12 13:24:36 · 2043 阅读 · 0 评论 -
信息熵原理及实现
理论:通过信息论的学习,可知如果信息的随机性越大,那么把它确定下来的价值也越大,信息论通过定义一种定量的学习方法“熵”来比较任意两个随机变量的信息价值离散变量的熵定义:连续变量的熵定义:假设有一枚硬币,正面朝上的概率为p,反面朝上的概率为1-p,所以问题的信息熵公式例子实现:# encoding=utf-8 import numpy as np ...原创 2018-08-12 11:39:03 · 5055 阅读 · 0 评论 -
重要性采样原理及实现
原理:重要性采样主要用于难以直接采样的数据分布上,采样是指从已知的某个分布采样一些数据进行后续运算,但是数据分布比较复杂不容易进行采样,针对这种问题使用蒙特卡罗法,例如:复杂的概率密度函数p(x),求解随机变量基于此概率下的某个数学期望,根据蒙特卡罗法转换为虽然p(x)比较复杂,但是我们可以对上面的公式进行一些变换,使用常见的分布采样,复杂的采样分布为p(x),另一个简单的可采样且定义...原创 2018-08-12 11:22:03 · 14342 阅读 · 5 评论 -
Bandit算法
在生活中,每个人都会面临各种各样的选择问题,简单的来说中午吃什么有很多种可能性,怎么样能提供一种比较好的办法来解决选择难的问题,那就是Bandit算法 说到Bandit算法,我起初刚看到这个算法的时候是出现在强化学习里面,这个算法主要来源于赌博的问题,主要是这么回事,一个人去赌场摇老虎机,你不知道老虎机是什么可以理解为就是一台机器你摇它的手臂它会往出吐钱,赌场有一排老虎...原创 2019-04-05 10:48:08 · 4031 阅读 · 0 评论