自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Little_Fire的博客

致力于大数据分析、机器学习与推荐系统学习与研究的技术小白,但我相信不积跬步无以至千里,不积小流无以成江海

  • 博客(49)
  • 资源 (1)
  • 收藏
  • 关注

原创 贪心算法总结示例与钞票问题的求解

贪心算法通常也会结合其他知识点一并考察(如排序、栈、堆排序等)(预备知识)贪心法求解钞票问题这里有几种不同面额的钞票,1元、5元、10元、20元、100元、200元的钞票无穷多张,现在使用这些钞票去支付X元的面额,问最少需要多少张?例如X=628,我们通常会尝试从面额最大的钞票(200元)开始尝试,此时发现200元的钞票只能使用3张,此时剩余的面额是628-3*200=28元,再依次查...

2018-07-19 11:31:23 1915 1

原创 (算法总结)堆排序的应用:寻找中位数

设计一个数据结构,可动态地维护一组数据,且支持如下操作:(1)添加元素:void addNum(int num)(2)返回这组数据中的中位数 double findMedian()【思考】如何获取一组元素的中位数(1)首先,我们马上想到的方法,最直观的方法就是:添加元素的同时进行排序操作(直插sort)addNum的复杂度是O(n),findMedian的复杂度则是O(1);(...

2018-07-18 16:32:53 7133 1

原创 (算法总结)堆排序的应用:求数组中第k大的元素

(一)预备知识:堆与堆排序二叉堆是一种非线性的数据结构,是一种完全二叉树的结构,分为大顶堆和小顶堆两种,其中大顶堆是指树中各父节点的值总是大于等于任何一个子节点的值;而小顶堆则是定义为树中各父节点的值总是小于等于任何一子节点的值。一般用二叉堆实现优先级队列,其内部调整的时间复杂度为O(logN),C++的标准STL库的优先级队列包括以下5种操作:(1)取堆顶操作:H.top()(2...

2018-07-18 14:30:19 3713

原创 (算法总结)判断一个序列是否为合理的出栈顺序

合理的出栈顺序也是面试算法经常考察的一部分,堆栈(stack)的后进先出性质我们都了解。如果给定了一个入栈的序列,判断一个序列是否为合理的出栈顺序该如何进行呢。例如,我们给定了入栈顺序为 1,2,3,4,5那么【序列1】3,2,5,4,1 是合理的;        【序列2】3,1,2,4,5 就是不合理的出栈顺序我们这里思考几个问题:(1)错误的出栈顺序不会出现的原因;(...

2018-07-17 00:03:22 7350 2

原创 (转载)基于sklearn的iris数据集及简介

(一)iris数据集简介Iris数据集是机器学习任务中常用的分类实验数据集,由Fisher在1936收集整理。Iris中文名是安德森鸢尾花卉数据集,英文全称是Anderson’s Iris data set,是一类多重变量分析的数据集。Iris一共包含150个样本,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,V...

2018-07-16 11:54:38 21287

原创 (算法总结)单链表求环问题:检验单链表是否存在环以及存在环的初始节点

单链表的求环问题也是面试算法中常常考察的问题,链表的求环的问题可通过以下两种方法解决先定义单链表的数据结构:struct ListNode{ int val; struct ListNode* next; ListNode(int x):val(x){}};方法一:使用集合set单链表是否存在环可以转化成一个通过遍历各个节点时是否遇到相同的结点地址的问题,如果遇到,就返回改地址,遍历结束...

2018-07-14 00:31:03 408

原创 (算法总结)求两个单链表的交点问题(leetcode160)

求两个链表的交点问题也是面试算法常常考到的点,这里提供两种方法实现。问题描述:给定两个单链表的头指针ha和hb,若两个链表存在交点,就返回该交点的指针地址,若不存在交点,则返回NULL。这里先定义一下单链表数据结构struct ListNode{ int val; ListNode *next; ListNode(int x): val(x), next(NULL) {}};方法一:使用...

2018-07-12 18:56:58 781

原创 (算法总结)单链表的中间段逆序(leetcode92)

链表的就地逆置我们讲解过了,接下来,关于单链表的中间段逆置,是一个稍有难度的问题。问题描述如下:给定start和end,逆置从start到end的所有节点。思路:这里需要定位逆置段开始节点,逆置段前驱结点,逆置段结束节点,以及逆置段结束节点后继...

2018-07-12 17:55:05 462

原创 (算法总结)单链表的就地逆置(leetcode 206)

单链表是大家非常熟悉的数据结构,单链表的就地逆置是面试算法中常考的问题。“就地”逆置就是要求算法不引入额外的存储空间,即算法的空间复杂度为O(1),换句话讲,算法要求我们只使用指针的移动和变换,来实现逆置的功能。我们这里使用一种典型的方法“头插法”。先定义一个单链表的数据节点:struct ListNode{ int val; ListNode *next; ListNode(int x)...

2018-07-12 16:20:25 4009

原创 (算法总结)寻找组合数,求出从整数1到n中和为m的所有组合

采用背包问题原理,仅考虑具有最大的数字n是否存在与结果集合中,考虑以下两种情形:(1)n在集合中,剩下的n-1个数字需要组成一个和为n-m的组合;(2)n不在集合中,剩下的n-1个数字仍需要组成和为m的组合;由于需要给出所有的组合可能,因此是一个回溯的过程。算法设计思路:由于是个回溯递归的过程,因此需要首先给出递归终止条件:当需要求和的数字小于等于0或所有数字都用完了的时候,就是程序终止的时候。用...

2018-07-12 12:44:15 6206

原创 (算法总结)求最大公共子串

要求:求两个字符串的最长公共子串,如“abcdefg”和“adefgwgeweg”的最长公共子串为“defg”,但是要求子串必须是连续的。思路:动态规划法求解定义二维数组dp[i][j],其中i用于遍历字符串s1的下标,j用于遍历s2的下标,于是dp[i][j]就用于记录当s1和s2分别遍历到i和j下标时,以s1[i]和s2[j]为结尾的最大公共子串长度,而要求最终的最大公共子串,需要用一个max...

2018-07-12 11:35:14 2209

原创 关于pycharm找不到已经安装的module ImportError: No module named问题的解决方案

最近在整理Python和Pycharm相关配置的时候,遇到了一些配置上的问题,这里给大家做一下分享整理。首先,自己安装了一个python3.6(在官网上安装的,当前最新版本是Python 3.7),下载地址如下:https://www.python.org/downloads/windows/然后按照安装向导,一点点安装即可。安装目录选择为:C:\Users\yanyan\AppData\Loca...

2018-07-06 15:05:22 26146 3

转载 (转载)CRF 及CRF++ 的安装、使用与解释

原文章地址:https://blog.csdn.net/u013378306/article/details/54603926CRF简介Conditional Random Field:条件随机场,一种常用的机器学习和NLP技术(模型)CRF由John Lafferty最早用于NLP技术领域,其在NLP技术领域中主要用于文本标注,并有多种应用场景,例如:分词(标注字的词位信息,由字构词)词性标注(...

2018-06-27 09:48:41 766

原创 (算法总结)二叉排序树的节点删除(leetcode 450)

二叉排序树的节点插入和查找已经在本人的上一篇博文中讲解过了,大家可以参考:https://blog.csdn.net/little_fire/article/details/80798663本篇博文将为大家重点讲解一下二叉排序树的节点删除操作,对应的是leetcode的第108题目,希望为大家带来帮助。首先,根据二叉排序树的性质可知,二叉排序树的待删除节点,可能存在以下三种情况:(1)既包含左子树...

2018-06-25 21:13:18 6511 4

原创 (算法整理)排序数组转平行二叉树(leetcode 108)

leetcode 108 排序数组转平行二叉树算法描述:已知一个排序数组,现需要将其转化为一个高度平衡的二叉查找树。(平衡二叉树的定义:二叉树中,任意两个节点的高度差小于等于1)思考:将排序数组转化为高度平衡的二叉查找树,关键在于数据元素插入的二叉树的顺序结论:每次选取数组的“中间元素”插入二叉树,完成选择后,再将数组划分为左右两个数组(类似于二分查找),再递归地处理这两个子数组,继续选择中间元素...

2018-06-25 15:00:08 608

原创 (算法整理)二叉查找树的节点插入与节点查找

二叉查找树(Binary Search Tree)是一种特殊的二叉树,它是一种查找结构,一棵二叉查找树是一棵二叉树,且具有以下性质:(1)若左子树不空:左子树上所有节点值均小于等于该节点的值;(2)若右子树不空,右子树上所有节点值均大于等于该节点的值;(3)左右子树也同样是二叉查找树(递归定义);(4)等于的情况只能出现在二叉查找树的一侧,一般的二叉查找树无重复节点二叉查找树的数据结构定义与普通二...

2018-06-25 10:52:12 1296

转载 (转载)推荐系统与隐语义模型LFM概述

转载一篇再推荐系统领域工程实用性很强的文章:http://www.shuang0420.com/2017/02/17/%E6%8E%A8%E8%8D%90%E7%B3%BB%E7%BB%9F--%E9%9A%90%E8%AF%AD%E4%B9%89%E6%A8%A1%E5%9E%8BLFM/本篇文章主要介绍 隐语义模型 LFM(latent factor model)。隐语义模型最早在文本挖掘领域...

2018-06-21 18:37:52 758

原创 Softmax的通俗讲解

0 前言Softmax在机器学习中应用非常广泛,尤其在处理多分类问题,分类器最后的输出单元需要Softmax 函数进行数值处理。但是刚刚接触机器学习的同学可能对Softmax的特点及好处并不理解,当你了解以后会发现,Softmax计算简单,效果显著。我们先来直观看一下,Softmax究竟是什么意思:我们知道max,假如说我有两个数,a和b,并且a>b,如果取max,那么就直接取a,没有第二种...

2018-06-21 18:22:24 10811 1

原创 通俗理解简单的交叉熵损失函数

说起交叉熵损失函数「Cross Entropy Loss」,我们都不陌生,脑海中会马上浮现出它的公式:我们已经对这个交叉熵函数的形式非常熟悉,多数情况下都是直接拿来使用。那么,它是怎么来的?为什么它能表征真实样本标签和预测概率之间的差值?上面的交叉熵函数是否有其它变种?接下来我将尽可能通俗地回答上面这几个问题。(一)交叉熵损失函数的数学原理我们知道,在二分类问题模型,例如逻辑回Logistic R...

2018-06-21 13:42:00 3525

原创 (通俗理解)机器学习中 L1 和 L2 正则化的直观解释

机器学习中,如果参数过多,造成模型过于复杂,容易造成过拟合(overfiting),即模型在训练样本数据上表现的很好,但在实际测试样本上表现的较差,即不具有很强的泛化能力。为了避免过拟合,最常用的一种方法是使用正则化,例如 L1 和 L2 正则化,分别对应于回归分析中的Lasso回归和Ridge回归。但是,正则化项如何得来?其背后的数学原理是什么?L1 正则化和 L2 正则化之间有何区别?本人在经...

2018-06-21 11:38:29 2403 1

转载 (转载)用Maven构建的Mahout项目实现协同过滤

原文地址:https://blog.csdn.net/jiutianhe/article/details/401117911. 用Mahout实现协同过滤userCFMahout协同过滤UserCF深度算法剖析,请参考文章:用R解析Mahout用户推荐协同过滤算法(UserCF)实现步骤:(1)准备数据文件: item.csv;(2)编写Java程序:UserCF.java;(3)运行程序(1)数...

2018-06-19 11:54:06 516

原创 (工程整理)如何用Maven构建Hadoop项目

本人去年的时候一直对maven项目很头疼,由于在构建hadoop项目时涉及到很多版本冲突方面的问题,但是在今年的开发中将很多问题得以解决。这一次,将本人的经验得以总结,为大家讲解一下用maven构建hadoop项目的具体步骤。(一)hadoop家族简介Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout...

2018-06-19 11:20:04 4483 1

原创 (算法整理)二叉树的递归与非递归遍历算法

树形结构的考察在数据结构预算法中一直占有很重要的地位,二叉树的遍历一直是最基本的算法,众所周知,二叉树的遍历主要分为前序、中序、后序这三种,且三种遍历方式都存在递归与非递归两种形式,这里做一下整理与总结。这里先定义一下二叉树结点的数据结构:struct TreeNode{ int val; struct TreeNode* left = NULL; struct TreeNode* rig...

2018-06-17 18:23:05 338

原创 svd与svd++联系与区别

最近一直在做基于SVD推荐方面的工作,主要使用的是Mahout提供的cf.taste.impl.recommender.svd包下的推荐器,这里有一段参考代码,使用的推荐器是SVDRecommender,如下所示:public class SVDRecommenderEx { private static String input = "/Users/harikrishna_gurram/cus...

2018-06-14 15:45:23 2435

转载 (转载)MapReduce shuffle过程剖详解及参数配置调优

MapReduce简介   在MapReduce中,框架会确保reduce阶段收到的输入数据是根据key排序过的。数据从Mapper输出到Reducer接收,是一个很复杂的过程,框架处理了所有问题,并提供了很多配置项及扩展点。一个MapReduce的大致数据流如下图:更详细的MapReduce介绍参考《Hadoop MapReduce技术内幕》Mapper的输出排序、然后传送到Reducer的过程...

2018-06-07 19:39:07 734

转载 (转载)MapReduce作业配置参数

原文:https://blog.csdn.net/qiezikuaichuan/article/details/46682049Note:以下配置可在服务器的mapred-site.xml中配置,作为MapReduce作业的缺省配置参数。也可以在目标作业提交时,通过configuration个性化指定这些参数。参数名称缺省值说明mapreduce.job.name作业名称mapreduce.job...

2018-06-07 17:36:39 2694

原创 MapReduce的Shuffle过程详解

在前一篇博文,我已经讲解了MapReduce的过程。这一篇文章,我将会就MapReduce最重要的一个环节:Shuffle,来做具体的讲解,这部分内容将帮助你优化你的mapreduce程序,使你的程序更加高效。本文主要引用了http://langyu.iteye.com/blog/992916的内容,并做了一些更改。(一)什么是shuffleShuffle过程是MapReduce的核心(也被称为奇...

2018-06-07 13:38:12 1995

原创 MapReduce的通俗理解与入门

看这篇文章请出去跑两圈,然后泡一壶茶,边喝茶,边看,看完你就对hadoop 与MapReduce的整体有所了解了。【前言】Hadoop是一个实现了Google云计算系统的开源系统,包括并行计算模型Map/Reduce、分布式文件系统HDFS,以及分布式数据库Hbase,同时Hadoop的相关项目也很丰富,包括ZooKeeper,Pig,Chukwa,Hive,Hbase,Mahout,flume等...

2018-06-07 11:10:20 35706 12

原创 用hadoop jar执行包含hbase应用的jar包报NoClassDefFoundError问题的解决

在离线分析任务中,为了在hadoop集群上分布式运行我们的程序,需要在eclipse环境中将需要运行的程序打好jar包,丢到服务器端,用hadoop jar xxx.jar <arg0> <arg1> ...... 命令来执行。在eclipse打包有两种打包形式:普通jar和runable jar若使用runable jar打包,则是将所有与程序相关的依赖jar包全部打包进...

2018-06-06 10:39:10 2459

转载 (转载)一个有关mapreduce全局变量的问题

https://blog.csdn.net/zeqblog/article/details/39006395最近在写mapreduce时,遇到一个问题,在class中定义的全局变量,在用eclipse本地开发运行时,mapreduce函数内部能取到参数变量,但是打包成jar包,用hadoop jar xxx.jar className 运行的时候,发现map或者reduce函数中取不到全局变量!!...

2018-06-05 14:11:01 752

原创 静态成员和非静态成员的区别

Java工程师经常会遇到变量声明的问题,遇到一个变量,经常不知道是否将其声明为static变量或普通变量。这里转载一篇blog,希望为大家带来一些指导性建议。【Generalization】static是一个修饰符,用于修饰成员(成员变量、成员方法)。在类A中被static修饰的变量是一种被A类对象所共享的数据,不仅可以被A类对象调用,也可以通过类名A直接调用。【static 的特点】(1)sta...

2018-06-05 11:58:03 1433

转载 (转载)为什么不能从static方法调用非static的方法或变量?

http://blog.csdn.net/zhouwubin123/article/details/6623308Java开发人员一定遇到过,在eclipse开发环境中,在包括main方法在内的static方法中调用某非静态变量,会编译出错。public class StaticDemo { int x; void fun() { System.out.println("this is f...

2018-06-05 11:21:45 6167 1

原创 面试算法combine sum专题讲解二(动态规划法)

这一部分,我们将讲解DP问题求解combine sum的最优解问题。涉及的代码题目是leetcode 377、322leetcode 377问题描述:整数数组,无重复元素,但每个数字可以被重复使用,给出组合的总数,无须给出所有排列。算法设计思路:创建dp数组,dp[i]表示target为i时,无重复元素组合的总数。算法实现:class Solution(object): def combi...

2018-05-30 09:52:26 477

原创 面试算法combine sum专题讲解一(回溯法)

combine sum是面试算法中最常考的一类题型,其主要思想是应用背包问题的延伸。主要描述为:在一组数字中,寻找子数组,使子数组的元素和为target的所有组合,求罗列所有组合,或求解组合总数,或求解最少使用的组合中元素个数(找零钱问题leetcode322)这里我们就几道经典leetcode题目来做一下综述和讲解。本节的三个题目39、40、216都是回溯法解题。关于回溯法的介绍,可以查看以下博...

2018-05-30 08:59:03 779

转载 机器学习中特征选择的方法综述

本文摘自知乎用户文章的第三章节,源出处地址:作者:城东链接:https://www.zhihu.com/question/28641663/answer/110165221来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。当数据预处理完成后,我们需要从所有特征中选择有意义的特征,并将其输入机器学习算法和模型进行训练。通常来说,从以下两个方面考虑来选择特征:(1)特征是否...

2018-05-29 20:25:22 1623

原创 什么是lambda函数?使用lambda函数有什么好处?

(一)什么是lambda函数:Python支持一种有趣的语法,它允许你快速定义单行的最小函数。这些叫做lambda的函数是从Lisp中借用来的,可以被用在任何需要函数的地方。lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的匿名函数。 (注意:lambda 函数不能包含命令,它们所包含的表达式也不能超过一个)(二)使用lambda函数的好处:1、lambda函数比较...

2018-05-29 18:15:09 19827

转载 (转载)特征工程概述与理解

https://blog.csdn.net/NXHYD/article/details/76787801目录1 特征工程是什么?2 数据预处理  2.1 无量纲化    2.1.1 标准化    2.1.2 区间缩放法    2.1.3 标准化与归一化的区别  2.2 对定量特征二值化  2.3 对定性特征哑编码  2.4 缺失值计算  2.5 数据变换3 特征选择  3.1 Filter    ...

2018-05-29 17:36:46 307

原创 python中lambda函数的理解与使用

Lambda函数,即Lambda 表达式(lambda expression),是一个匿名函数(不存在函数名的函数),Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction)。入门Python的朋友会问,函数没有名字也可以吗?当然可以。有些函数如果只是临时一用,而且它的业务逻辑也很简单(比如做个简单加法、取绝对值、简单过滤等)时,就没必要非...

2018-05-29 17:32:07 37842 2

转载 机器学习中高维数据降维技术的总结与研究

本文有比较多的转载其他研究人员的博客https://blog.csdn.net/u014772862/article/details/52335970作为一名机器学习的科研人员,之前在推荐系统的开发和工作中,学习了PCA(主成分分析)与SVD(奇异值分解)方面的技术,但是还没有写过总结性的文章,此次,本人总结一些关于降维技术的调研,希望大家多多指教。降维方法一般分为线性降维方法和非线性降维方法,如...

2018-05-29 15:09:23 10638 1

原创 LDA(Dirichlet Distribution)主题模型基本知识与理解(二)

在第一部分博客里已经讲解了LDA的一些基本组成,这篇博文将会讲解LDA在NLP方面的应用。望大家继续支持上一篇博文:https://blog.csdn.net/Little_Fire/article/details/80483566(三)Dirichlet分布在NLP中的应用(关于topic生成word的过程)根据上文中提到了的掷硬币的例子,假设自然语言中存在很多奇怪的coin(religion、...

2018-05-28 22:31:51 720

虚拟页式存储管理系统

虚拟页式存储管理系统,支持先进先出算法、最佳值换算法和LRU算法。

2010-12-06

空空如也

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

TA关注的人

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