自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 机器学习算法面试口述(7):分类小结

这个系列是为了应对找工作面试时面试官问的算法问题,所以只是也谢算法的简要介绍,后期会陆续补充关于此算法的常见面问题。 分类的概念就说了,分类一般分为两个阶段:学习阶段以及分类阶段;  常用的分类方法有:1、决策树  决策树不需要任何领域的知识或者参数的设置,其可以处理高维数据,简单快速。若分类的数据是连续的,则需要插入分裂点将数据离散化;树建立的过程中,需要按照一定

2015-08-27 11:21:02 1736

原创 机器学习算法面试—口述(6):数据的简化(PCA、SVD)

这个系列是为了应对找工作面试时面试官问的算法问题,所以只是也谢算法的简要介绍,后期会陆续补充关于此算法的常见面问题一、PCA(主成分分析) PCA是一种降维技术,其做法是—寻找最小均方意义下,最能代表原始数据的投影方法!在PCA中数据从原来的坐标系转换到新的坐标系中去,新坐标系的选择是由数据决定的。第一个新坐标轴选择的是原始数据中方差最大的方向,第二个新坐标轴的

2015-08-26 16:05:45 3249

原创 机器学习算法面试—口述(5):回归

这个系列是为了应对找工作面试时面试官问的算法问题,所以只是也谢算法的简要介绍,后期会陆续补充关于此算法的常见面问题。一、Logistic回归 先说下logistic回归,它是根据现有数据对分类边界建立回归公式,以此进行分类。其计算代价不高,易于实现与理解,但是容易欠拟合、分类精度不太高;  logistic回归可以看成是一种概率估计,使用的的是sigmioid函数,

2015-08-26 11:26:06 1290

原创 机器学习算法面试—口述(4):决策树

这个系列是为了应对找工作面试时面试官问的算法问题,所以只是也谢算法的简要介绍,后期会陆续补充关于此算法的常见面问题!决策树是一种依托于策略抉择而建立起来的树,是一种依托于分类、训练上的预测树,根据已知,预测和分类未来。决策树的建立是不断的使用数据的特征将数据分类的过程,主要的问题在于如何选择划分的特征;常用的几种决策树算法有ID3、C4.5、CART等;其中ID3使用的是信息熵增益

2015-08-25 17:29:04 4410

原创 机器学习算法面试—口述(3):贝叶斯分类器

这个系列是为了应对找工作面试时面试官问的算法问题,所以只是也谢算法的简要介绍,后期会陆续补充关于此算法的常见面试的问题!贝叶斯分类器的原理其实很简单,知道了贝叶斯公式基本上就知道了贝叶斯分类器的工作原理。对于一个待分类项,求出此项出现的条件下哪个类别的概率大,就判定为哪类,仅次而已。其实贝叶斯分类器是建立在错误的理论上建立起来的分类器,没错就是错误的理论,它假定事物之间是没有联系的

2015-08-25 15:30:51 3231 1

原创 机器学习算法面试—口述(2):Adaboost算法及常见问题

AdaBoost是一种迭代算法,针对同一训练集训练处不同的分类器(弱分类器),将前面训练的分类器以某种方式组合起来,组合成一个强分类器。算法是通过改变数据的分布来实现的。每次训练分类器是参考1、某样本在上个分类器的分类过程中是否被正确分类2、上个分类器的准确率AdaBoost是Adaptive Boosting的缩写,Adaptive在于:前一个分类器分错的样本会得到增强,加强后的全体

2015-08-24 17:19:41 3434

原创 机器学习算法面试—口述(1):SVM介绍及常见问题

首先SVM是支持向量机support vector machine的缩写,它是现在使用比较广泛的一个分类算法(二分类),是一个线性分类器!当数据是线性可分的时候:SVM是在空间找一个分类超平面,将数据分开,下面以二维为例(1) (2)SVM要做的就是找到(1)中间那条线(三维的话是一个面,更高维是一些其他什么的。。。),但是光找到那条线是不够的,因为这样的线是有无数

2015-08-24 16:36:54 10082

原创 字符串中连续出现最多的子串 & 字符串中最长重复子串

字符串中连续出现最多的子串 & 字符串中最长重复子串    字符串中连续出现最多的子串 & 字符串中最长重复子串,这两个问题都可以用后缀数组来表示,至于后缀数组可以参考编程珠玑P156;后缀数组就是定义一个数组指针,分别指向字符串中的对应位置,如下:a b c a b c a b c d e .substr[0]b c a b c a b c d e ....subst

2015-08-18 21:20:10 4089

原创 leetcode_171 Excel Sheet Column Number & leetcode_28 Implement strStr()

leetcode_171 Excel Sheet Column Number题目:Related to question Excel Sheet Column TitleGiven a column title as appear in an Excel sheet, return its corresponding column number.解法:c

2015-08-18 09:33:40 627

原创 leetcode 21_Merge Two Sorted Lists & leetcode_258 Add Digits & leetcode_66plus one

l leetcode 21_Merge Two Sorted Lists题目:Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.解法:#includ

2015-08-16 23:05:28 755

原创 各种常见的排序,冒泡排序,选择排序,插入排序,希尔排序,堆排序,快速排序,基数排序,桶排序

各种常见的排序要开始找工作了,把以前学的各种小知识复习一遍,以下是各种常见的排序的简单实现(冒泡排序,选择排序,插入排序,希尔排序,堆排序,快速排序,基数排序,桶排序),至于原理就不写出来了,代码比较简单,看一下就懂,再不行可以随意找本书或百度!#include using namespace std;// 冒泡void BubbleSort(int data[], int l

2015-08-04 16:41:16 1697

原创 LeetCode 5_Longest Palindromic Substring

LeetCode 5_Longest Palindromic Substring 题目描述:Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique

2015-07-29 15:18:29 469

原创 LeetCode 4_Median of Two Sorted Arrays

LeetCode 4_Median of Two Sorted Arrays题目描述:There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity sho

2015-07-28 09:03:26 656

原创 LeetCode 3_Longest Substring Without Repeating Characters

LeetCode 3_Longest Substring Without Repeating Characters题目描述:Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without re

2015-07-27 21:15:39 550

原创 LeetCode 2_Add Two Numbers

LeetCode 2_Add Two Numbers题目描述:You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Ad

2015-07-26 01:01:31 845

原创 LeetCode_1 TwoSum

看书虽然有必要,但是光看书大家斗志到是没用的,但是没办法,科研项目和互联网没关,只能找点题目来刷了!不多说,开始!LeetCode_1   TwoSum题目说明:Given an array of integers, find two numbers such that they add up to a specific target number.The fu

2015-07-25 21:09:44 601

原创 数据结构之最短路径(Dijkstra 和 Floyed)

原理直接百度,这里只给出c++实现#include using namespace std;#define MAXVEX 6#define INF 10000void Dijkstra(int cost[][MAXVEX], int numsOfNode, int sourceNode);void Folyed( int cost[][MAXVEX], int numsOfNode)

2015-07-01 20:10:23 1181

原创 数据结构—栈和队列的相互模拟

1、两个栈模拟一个队列栈是LILO,而队列是FIFO,所以可以:入队,直接进A号栈;出队,先判断B号栈是否有元素,有元素就直接弹出栈顶即队首,如果B号栈没有元素,则将A号栈的元素顺序弹出并进B号栈。

2015-05-18 16:00:20 519

原创 数据结构—处理对列的上溢和下益问题

对应于算法导论中的P131,重写ENQUEUE和DEQUEUE,使之能够处理队列的上溢和下益#include #include using namespace std;#define MaxSize 100typedef struct queue{ int data[MaxSize]; int head,tail;}SqQueue;/*两个假定,队尾指针指示队尾元素在数组中的

2015-05-18 15:50:46 1179

原创 数据结构—数组实现两个栈,不上溢

问题描述:说明如何用一个数组A[1..n]来实现两个栈,使得两个栈中的元素总数不到n时,两者都不会发生上溢,注意PUSH和POP操作的时间应为O(1)。(算法导论第三版P131)思路:stack1,stack2的base分别在数组的两端。stack1每次push的时候top + 1,stack2每次push时top-1,初始时top1=base1,top2=base2,判断是否用空余空间可以用

2015-05-18 10:45:29 744

原创 数据结构—单链表的插入

数据结构—单链表的插入关于单链表的概念以及一些基本的知识就不说明了,直接上代码!整个链表有一个根节点,用以指向第一个元素,在插入的过程中要考虑几个问题:1、插入的位置是不是第一个节点与根节点之间2、插入的位置是否是在最后(要考虑当前链表是否为空)代码1:#include #include typedef struct NODE{ struct NODE *lin

2015-05-13 21:52:29 983

原创 数组元素的访问方式—指针与下标

数组元素的访问方式—指针与下标《c和指针》中有一句话:下标绝对不会比指针更有效率,但指针有时会比下标更有效率!在解释这句话之前说上一句自己的想法:效率很重要,但是不能仅仅为了提高点效率而牺牲某些比较重要的优势,比如可读性,很显然,在数组访问时,使用下标的的访问方式比指针的可读性更强,而有时指针正是程序错误的根源!下面解释下这句话:下面的例子中将数组中的所有元素都设置为0:例

2015-05-10 22:29:25 4705

原创 斐波那契数列C实现

斐波那契数列的描述:斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)(百度百科)。递归实现(效率特低,建议不使用)long fibonacci(int n){ if(n<2) return 1; ret

2015-05-10 16:52:10 3047

转载 面试题1——栈的最大值问题

面试题——栈的最大值问题常数时间求栈的最大值问题描述:一个栈stack,具有push和pop操作,其时间复杂度皆为O(1)。设计算法max操作,求栈中的最大值,该操作的时间复杂度也要求为O(1)。可以修改栈的存储方式,push,pop的操作,但是要保证O(1)的时间复杂度,空间时间复杂度无要求。算法描述:一个存储所有最大值

2015-05-06 22:04:39 1274

原创 数据结构—希尔排序

希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序,是非稳定排序算法。基本思想:将无序数组分割为若干个子序列,子序列不是逐段分割的,而是相隔特定的增量的子序列,对各个子序列进行插入排序;然后再选择一个更小的增量,再将数组分割为多个子序列进行排序......最后选择增量为1,即使用直接插入排序,使最终数组成为有序。代

2015-05-06 10:21:16 549

原创 约瑟夫问题c++

问题描述:一堆猴子都有编号,编号是1,2,3 ...m,这群猴子(n个)按照1-m的顺序围坐一圈,从第1开始数,每数到第m个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。解决1:使用数组存放#define  Maxsize 100void jose(int n,int m){  int mon[Maxsize];int i,d,count;

2015-05-05 20:36:53 589

原创 数据结构—单链表的排序以及逆置

1、单链表排序:单链表的排序中,只需要交换两个节点的值即可,不需要改变指向typedef struct student{int data;struct student *next;}node;//head指向表头,head->next才是第一个节点void sort(node *head){node *p=head->next;int len=len

2015-05-05 08:36:33 797

转载 机器学习导论

在本篇文章中,我将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。这篇文档也算是 EasyPR开发的番外篇,从这里开始,必须对机器学习了解才能进一步介绍EasyPR的内核。当然,本文也面对一般读者,不会对阅读有相关的前提要求。在进入正题前,我想读者心中可能会有一个疑惑:机器学习有什么重要性,以至于要阅读完这篇非常长的文章呢?

2015-05-04 16:07:31 1403

转载 基数排序与桶排序C实现

一. 算法描述基数排序(以整形为例),将整形10进制按每位拆分,然后从低位到高位依次比较各个位。主要分为两个过程:(1)分配,先从个位开始,根据位值(0-9)分别放到0~9号桶中(比如53,个位为3,则放入3号桶中)(2)收集,再将放置在0~9号桶中的数据按顺序放到数组中重复(1)(2)过程,从个位到最高位(比如32位无符号整形最大数4294967296,最高位10位)以【52

2015-04-01 11:05:05 3257

原创 算法导论—最大子数组C/C++实现

原理实见算法导论第三版P39—P42:C代码实现:#include #include #include "limits.h"#define INT_MIN (-INT_MAX - 1)int *Find_Max_Subarray(int *A,int low,int high);int *Find_Max_Crossing_Subarray(int *A,int

2015-03-24 21:22:18 541

原创 算法导论—矩阵链乘C/C++实现

原理见算法导论第三版P211—P215代码实现:#include using namespace std;const int Max=100;int m[Max][Max],s[Max][Max],p[Max+1];void Print_Optimal_Parnes(int i,int j);void main(){int n;coutcin>>

2015-03-24 21:13:24 726

原创 算法导论—堆排序C++实现

原理见算法导论第三版第六章:以下是c++版本:#include #include using namespace std;#define uint unsigned intvoid MaxHeapify(vector &Array,int i);void main(){int num;vector Array;vector AfterSort;

2015-03-24 20:55:33 445

转载 高斯混合模型

这篇讨论使用期望最大化算法(Expectation-Maximization)来进行密度估计(density estimation)。      与k-means一样,给定的训练样本是,我们将隐含类别标签用表示。与k-means的硬指定不同,我们首先认为是满足一定的概率分布的,这里我们认为满足多项式分布,,其中,有k个值{1,…,k}可以选取。而且我们认为在给定后,满足多值高斯分布,即。由此可

2015-03-23 16:09:04 1036

转载 EM算法

(EM算法)The EM Algorithm在使用高斯混合模型时需要用到EM算法,故在此处转载一篇写的比较好的文章。      EM是我一直想深入学习的算法之一,第一次听说是在NLP课中的HMM那一节,为了解决HMM的参数估计问题,使用了EM算法。在之后的MT中的词对齐中也用到了。在Mitchell的书中也提到EM可以用于贝叶斯网络中。下面主要介绍EM的整个推导过程。1.

2015-03-23 14:25:27 637

原创 算法导论—动态规划之钢条切割

动态规划和分治策略相似,不同的是,它针对的问题所分解出的小问题数量很多且很多是重复的。动态规划就是使得这些重复的小问题只需要计算一次,避免重复计算。  钢条切割问题:给定一段长度为n英寸的钢条和一个价格表pi(i=1,2,...,n)求切割钢条方案,使得销售收益rn最大。   注意,如果长度为n英寸的钢条的价格pn足够大,最优解可能就是完全不需要切割(具体问题描述见算法导论第三版第15

2015-03-18 19:43:03 614

转载 算法员而非程序员

作为第四届图灵奖得主,AI奠基人之一的Marvin,他发表的演讲主题是关于形式和内容的讨论。他的主论调就是内容要强于形式,而且我们目前过分关注了形式而导致计算机的发展轨迹产生了偏差。他的观点一经发出就引来了诸多的争论,有支持也有批判。本着辩证唯物的观点,我的看法是,有选择的接受。我的观点是:计算机理论的发展需要形式化,然而计算机软件应用则应该更加关注它的内容实质而非形式。论文中他主要从计算

2015-03-13 10:43:08 444

EM算法

EM是我一直想深入学习的算法之一,第一次听说是在NLP课中的HMM那一节,为了解决HMM的参数估计问题,使用了EM算法

2014-10-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除