Little_Fire的博客

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

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

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

2018-07-19 11:31:23

阅读数 416

评论数 0

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

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

2018-07-18 16:32:53

阅读数 1418

评论数 0

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

(一)预备知识:堆与堆排序 二叉堆是一种非线性的数据结构,是一种完全二叉树的结构,分为大顶堆和小顶堆两种,其中大顶堆是指树中各父节点的值总是大于等于任何一个子节点的值;而小顶堆则是定义为树中各父节点的值总是小于等于任何一子节点的值。 一般用二叉堆实现优先级队列,其内部调整的时间复杂度为O(lo...

2018-07-18 14:30:19

阅读数 575

评论数 0

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

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

2018-07-17 00:03:22

阅读数 1467

评论数 0

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

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

2018-07-16 11:54:38

阅读数 1313

评论数 0

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

单链表的求环问题也是面试算法中常常考察的问题,链表的求环的问题可通过以下两种方法解决先定义单链表的数据结构:struct ListNode { int val; struct ListNode* next; ListNode(int x):val(x){} };方法一:使用集合set单链表是...

2018-07-14 00:31:03

阅读数 111

评论数 0

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

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

2018-07-12 18:56:58

阅读数 225

评论数 0

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

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

2018-07-12 17:55:05

阅读数 162

评论数 0

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

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

2018-07-12 16:20:25

阅读数 269

评论数 0

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

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

2018-07-12 12:44:15

阅读数 1923

评论数 0

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

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

2018-07-12 11:35:14

阅读数 224

评论数 0

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

最近在整理Python和Pycharm相关配置的时候,遇到了一些配置上的问题,这里给大家做一下分享整理。首先,自己安装了一个python3.6(在官网上安装的,当前最新版本是Python 3.7),下载地址如下:https://www.python.org/downloads/windows/然后...

2018-07-06 15:05:22

阅读数 6574

评论数 1

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

原文章地址:https://blog.csdn.net/u013378306/article/details/54603926CRF简介Conditional Random Field:条件随机场,一种常用的机器学习和NLP技术(模型)CRF由John Lafferty最早用于NLP技术领域,其在...

2018-06-27 09:48:41

阅读数 291

评论数 0

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

二叉排序树的节点插入和查找已经在本人的上一篇博文中讲解过了,大家可以参考:https://blog.csdn.net/little_fire/article/details/80798663本篇博文将为大家重点讲解一下二叉排序树的节点删除操作,对应的是leetcode的第108题目,希望为大家带来...

2018-06-25 21:13:18

阅读数 872

评论数 1

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

leetcode 108 排序数组转平行二叉树算法描述:已知一个排序数组,现需要将其转化为一个高度平衡的二叉查找树。(平衡二叉树的定义:二叉树中,任意两个节点的高度差小于等于1)思考:将排序数组转化为高度平衡的二叉查找树,关键在于数据元素插入的二叉树的顺序结论:每次选取数组的“中间元素”插入二叉树...

2018-06-25 15:00:08

阅读数 141

评论数 0

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

二叉查找树(Binary Search Tree)是一种特殊的二叉树,它是一种查找结构,一棵二叉查找树是一棵二叉树,且具有以下性质:(1)若左子树不空:左子树上所有节点值均小于等于该节点的值;(2)若右子树不空,右子树上所有节点值均大于等于该节点的值;(3)左右子树也同样是二叉查找树(递归定义);...

2018-06-25 10:52:12

阅读数 317

评论数 0

(转载)推荐系统与隐语义模型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/本篇文...

2018-06-21 18:37:52

阅读数 255

评论数 0

Softmax的通俗讲解

0 前言Softmax在机器学习中应用非常广泛,尤其在处理多分类问题,分类器最后的输出单元需要Softmax 函数进行数值处理。但是刚刚接触机器学习的同学可能对Softmax的特点及好处并不理解,当你了解以后会发现,Softmax计算简单,效果显著。我们先来直观看一下,Softmax究竟是什么意思...

2018-06-21 18:22:24

阅读数 2393

评论数 0

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

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

2018-06-21 13:42:00

阅读数 891

评论数 0

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

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

2018-06-21 11:38:29

阅读数 647

评论数 0

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