- 博客(17)
- 收藏
- 关注
原创 降维算法概述
引言在现实世界中,大部分数据是冗余的,以多个低维空间联合分布的形式存在。例如,我们每个人在不同的光和移动模式下的面部图像存在于大约9个子空间维中。手写数字集合MNIST中的单个数字近似存在于一个简单的子空间中,但在三维空间中表示。同时,当今的传感器以及各类移动终端不断地获取数据,数据量和维数都非常大,如何从高维数据中提取和分析数据就显得非常重要。凡是都具有两面,数据维度高(大量特征)既是优点——数据量越大,特征越多,分析的结果按道理越可信;但是也是缺点——造成“维度灾难”,可能无从下手,同时计算处理时耗
2020-09-15 21:06:48 2615
原创 模拟退火(Simulate Anneal)算法
算法介绍模拟退火算法(Simulate Anneal,SA)是一种通用概率演算法,用来在一个大的搜寻空间内找寻命题的最优解。美国物理学家 N.Metropolis 和同仁在1953年发表研究复杂系统、计算其中能量分布的文章,他们使用蒙特卡罗模拟法计算多分子系统中分子的能量分布。模拟退火的出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。模拟退火算法是一种通用的优化算法,其物理...
2019-04-17 22:24:51 1740
原创 激活函数(Activation Functions)概述
layout: posttitle: Activation Functionssubtitle: 激活函数(activation functions)概述date: 2019-04-03author: steven gaoheader-img: img/activation_function_bg.jpgcatalog: true ...
2019-04-04 11:05:38 1576
转载 Python利器——Pipenv
本文章仅方便学习使用,一切版权和解释权归原作者所有,转载地址:https://blog.csdn.net/vevenlcf/article/details/82470003 pipenv是请求库作者Kenneth Reitz编写的一个用于创建和管理Python虚拟环境的工具。Pipenv是Python的官方机构推荐的Python的包工具。我们知道,为了管理...
2018-12-19 21:06:43 342
原创 机器学习简介及主要分类
机器学习机器学习是一种能从数据中学习的算法。然而,所谓的“学习”如何理解?即机器学习的具体定义是什么?1997年,Mitchell给出了一个简洁的定义:A computer program is said to LEARN from experience E with respect to some class of tasks T and performance measure P, if...
2018-12-13 14:48:15 6109 1
转载 Latex命令符号
本文章仅方便学习使用,一切版权和解释权归原作者所有,转载地址:https://blog.csdn.net/garfielder007/article/details/51646604 函数、符号及特殊字符声调语法效果语法效果语法效果\bar{x}\acute{\eta}\check{\alpha}...
2018-12-09 19:57:19 7688
原创 Timsort——自适应、稳定、高效排序算法
当在使用python中自带的排序算法、或者Java中的排序算法时,产生了一些好奇,他们本身运用的是什么高端的排序算法,深究、探索、查阅资料后得到了如下的认识。Timsort介绍Timsort是一种混合、稳定高效的排序算法,源自合并排序和插入排序,旨在很好地处理多种真实数据。它由Tim Peters于2002年实施使用在Python编程语言中。该算法查找已经排序的数据的子序列,并使用该知识更有效...
2018-10-08 22:10:12 32525 7
原创 分治——最近点对问题
利用分治方法的经典问题——最近点对问题(Closest pair of points problem)问题描述n个点在公共空间中,求出所有点对的欧几里得距离最小的点对。问题分析该题直观的解决方法便是Brute Force(暴力求解)。时间复杂度为O(n2)O(n^2)O(n2)。minDist = infinityfor i = 1 to length(P) - 1 for j...
2018-09-28 15:55:04 42761 10
原创 分治——不无聊序列
问题描述一个序列为不无聊序列,则必须满足划分任意长度的连续子序列(包括其本身),其中至少存在一个元素仅仅出现一次,即至少有一个元素不重复。例子:123321 ——无聊序列,子序列33中没有独特元素。12321 ——不无聊序列,任意子序列都有独特元素。分析分治方法适用条件:问题规模缩小到一定程度很容易求解。问题可以分解为若干规模较小的相同问题,具有最优子结构性质。基于子问题的...
2018-09-27 15:46:12 1155 1
原创 C++之lambda函数(匿名函数)
相信使用过python的人都知道lambda函数,一种简单的无需定义标识符即函数名的函数或者子程序。C++11新标准引入后,也同样的添加了Lambda函数,下面来具体介绍C++匿名函数的概念和使用。Lambda函数Lambda表达式的声明:[capturelist](paramslist)mutableexception→returntype{functionbody}[capture\qu...
2018-09-21 16:10:08 5593 1
原创 sqrt函数实现——二分法、牛顿迭代法
在leetcode练习时,碰到一道经典的面试题,如何实现sqrt()开平方函数。当然,很简单的是调用系统函数,但是难道不能自己实现这个函数的功能吗?于是一番思索和查阅资料,看到下面的方法。二分法求解二分法这个应该很熟悉,在二分查找算法中就有具体的体现。应用在此题上,也是合适不过的。首先分析一下这道题:实现sqrt函数功能,求一个数的开平方,即求f(x)=x2−Nf(x) = x^2 - N...
2018-09-18 22:01:00 2248 1
原创 经典排序算法——快速排序、归并排序、堆排序
之前两篇关于排序算法的综述以及平方阶复杂度的3种具体类型的排序算法,这一篇将具体介绍其中平均时间复杂度在平方阶O(nlog2n)O(nlog_2n)O(nlog2n)的三个排序算法,以及各种算法的代码实现(亲测正确)。快速排序快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要 O(nlogn)O(nlogn)O(nlogn)次比较。在最坏状况下则需要O(n2)O(n...
2018-09-18 19:39:13 3173
原创 经典排序算法——冒泡、选择、插入排序
之前总体介绍了经典算法的分类、各类排序算法的比较特点,这一篇将具体介绍其中基础的、时间复杂度在平方阶O(n2)O(n2)O(n^2)的三个排序算法,以及各种算法的代码实现(亲测正确)。冒泡排序冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访...
2018-09-14 14:49:01 277
原创 经典排序算法
概述排序算法是算法中最基本的算法。其包含了多种具体的排序方法,其作用是将给定的一个序列按照某种顺序进行序列的排序。其包括:冒泡排序、插入排序、选择排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序这些常见的排序算法,以及一些衍生的其他排序算法,如:鸡尾酒排序、二叉排序树排序、侏儒排序、块排序、图书馆排序等等。分类 根据排序需要的存储位置分为内部排序、外部排序。内部排...
2018-09-13 20:36:05 186
原创 算法基础——算法优劣的衡量
针对一个问题可以有多种的算法方法来解决问题,当然我们最喜欢的还是简单的、高效的方法。如何衡量算法的好坏,是学习算法的重要基础。最初,用所需要的计算时间来衡量一个算法的好坏但不同的机器相互之间无法比较 需要用独立于具体计算机的客观衡量标准 1.问题的规模 2.基本运算 3.算法的计算量函数问题的规模输入数据量的测度(一般是n来表示)基本运算解决给定问题时占支...
2018-09-13 13:25:33 7855
原创 C++输入、输出优化
相信有人遇到这样的情况:bool isPalindrome(int x) { if (x < 0) return false; int reverse = 0, temp = x; while (x) { reverse = reverse * 10 + x % 10; x /= 10; } return...
2018-09-07 15:32:02 1238
原创 C++浅谈NULL and nullptr
C++之NULL and nullptrC++11标准之前: 1. int * ptr = NULL;然而存在一个小问题,上代码:#include <iostream>#include <string>using namespace std;void func(int* num){ cout << "this is the ...
2018-09-04 22:13:36 1970
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人