自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mr.Phoebe的专栏

退役后还是一个弱渣

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

原创 位运算趣题

一个CMU的同学问了我几道题。/* * divpwr2 - Computer x/(2^n). for 0<= n <=30 * Legel ops: ! ~ & ^ | + << >> * Max ops: 15 */int divpwr(int x, int n){ int tmp = ((x^(x>>31))) + !!(x>>31))>>n; return (tmp

2017-09-04 23:07:11 1796

转载 介绍——基于类的视图(class-based view)

介绍——基于类的视图(class-based view)本文转自此处​刚开始的时候,django只有基于函数的视图(Function-based views)。为了解决开发视图中繁杂的重复代码,基于函数的通用视图( Class-based generic views)出现了,但是不久它的弊端就显示出来:无法扩展、无法定制。基于函数的通用视图的不灵活导致它在现实世界中的应用受限。基于类的通用视图也是出

2017-09-04 07:53:10 1055

原创 Leetcode 99. Recover Binary Search Tree O(1)

题目中要求用constant space去结题,那就不能使用中序遍历类似的递归写法,因为这些的空间复杂度平均水平是O(logN)O(logN)。那么只有使用一种(新的)遍历算法Morris Traversal。然后结合中序遍历的结题思路,左子树的最大值要小于根节点和右子树的值。/** * Definition for a binary tree node. * struct TreeNode {

2017-08-29 22:00:38 385

转载 Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)

本文转载于此处。本文主要解决一个问题,如何实现二叉树的前中后序遍历,有两个要求:O(1)空间复杂度,即只能使用常数空间;二叉树的形状不能被破坏(中间过程允许改变其形状)。通常,实现二叉树的前序(preorder)、中序(inorder)、后序(postorder)遍历有两个常用的方法:一是递归(recursive),二是使用栈实现的迭代版本(stack+iterative)。这两种方法都是O(

2017-08-29 09:23:50 1368

原创 机器学习和数据挖掘(9):线性模型

线性模型非线性变换的代价非线性变换回顾在之前的文章中我们说过了非线性变换,我们有一个输入x=(x0,…,xd){\bf x}=(x_0,\dots,x_d),通过一个Φ\Phi变化,我们将之投影到一个新的平面上去,得到z=(z0,……,zd~){\bf z}=(z_0,\dots\dots,z_{\tilde d})。例如,z=(1,x1,x2,x1x2,x21,x22){\bf z}=(1,x_1

2017-08-08 21:26:09 977

转载 RESTful 架构风格概述

本文转载自此处 在移动互联网的大潮下,随着docker等技术的兴起,『微服务』的概念也越来越被大家接受并应用于实践,日益增多的web service逐渐统一于RESTful 架构风格,如果开发者对RESTful 架构风格不甚了解,则开发出的所谓RESTful API总会貌合神

2017-08-08 11:19:08 380

原创 机器学习和数据挖掘(8):偏见方差权衡

偏见方差权衡偏见和方差我们一直试图在近似和泛化之间找到一个平衡。我们的目标是得到一个较小的EoutE_{out},也希望在样例之外也表现得非常棒的EoutE_{out}。复杂的假设集H\mathcal H将有机会得到一个接近目标函数的结果。VC维分析使用的是泛化边界来进行泛化。根据公式Eout≤Ein+ΩE_{out}\leq E_{in}+\Omega,其中EinE_{in}是我们在算法中需要去减

2017-08-06 21:48:55 1117

原创 机器学习和数据挖掘(7):VC维

VC维回顾与说明如果一个假设空间存在突破点,则一定存在成长函数mH(N)m_{\mathcal H}(N)被某个上限函数B(N,k)B(N,k)所约束,而上限函数等于一个组合的求和形式∑k−1i=0CiN\sum_{i=0}^{k-1}C_N^i,易知该形式的最高次项是Nk−1N^{k-1}。图左和右分别是以上限函数为上限的情况和以为Nk−1N_{k-1}上限的情况。可以看得出来:mH(N)≤B(N

2017-07-24 11:49:07 15807 1

原创 机器学习和数据挖掘(6):雷蒙保罗MAPA泛化理论

泛化理论上一章中提到的生长函数mH(N)m_{\mathcal H}(N)的定义:假设空间在NN个样本点上能产生的最大二分(dichotomy)数量,其中二分是样本点在二元分类情况下的排列组合。上一章还介绍了突破点(break point)的概念,即不能满足完全分类情形的样本点个数。不存在kk个样本点能够满足完全分类情形,完全二分类情形(shattered)是可分出2N2^N种二分类(dichoto

2017-07-22 20:45:11 1922 5

原创 机器学习和数据挖掘(5):训练与测试

回顾与说明不像上一章的学习流程图,我们这里假设可学习的数据来自于一个统一的分布(不考虑噪声的情况),且假设空间中的假设函数为有限个的情况下,其学习流程图如图所示。我们这里假设训练样本和测试样本本来自同一的分布,并且假设空间的假设是有限的,即|H|=M|\mathcal H| = M,MM是有限的值。在这种情况下,在训练样本N足够大,假设空间中的所有的假设都会遵循PAC准则,确保Ein(h)≈Eout

2017-07-21 11:05:03 2568

原创 机器学习和数据挖掘(4):噪声与误差

机器学习中的噪声与误差噪音(Noise)实际应用中的数据基本都是有干扰的,还是用信用卡发放问题举例子:噪声产生原因:标记错误:应该发卡的客户标记成不发卡,或者两个数据相同的客户一个发卡一个不发卡;输入错误:用户的数据本身就有错误,例如年收入少写一个0、性别写反了什么的。目标分布(Target Distribution)上述两个原因导致数据信息不精准,产生噪声数据。那机器学习算法应该如何处理噪声

2017-07-20 16:08:45 17026

原创 机器学习和数据挖掘(3):线性模型

感知器模型基本概念线性可分:在特征空间中可以用一个线性分界面正确无误地分开两类样本;采用增广样本向量,即存 在合适的增广权向量 a 使得:则称样本是线性可分的。如下图中左图线性可分,右图不可分。所有满足条件的权向量称为解向量。权值空间中所有解向量组成的区域称为解区。通常对解区限制:引入阈值threshold,要求解向量满足:aTy′i≥threshold>0,i∈[1,…,N]a^Ty_i^\pri

2017-07-12 10:28:22 1266 2

原创 机器学习与数据挖掘(2):学习的可能性

① 偏倚(bias)和方差(variance)在讨论线性回归时,我们用一次线性函数对训练样本进行拟合(如图1所示);然而,我们可以通过二次多项式函数对训练样本进行拟合(如图2所示),函数对样本的拟合程序看上去更“好”;当我们利用五次多项式函数对样本进行拟合(如图3所示),函数通过了所有样本,成为了一次“完美”的拟合。

2017-07-08 20:31:44 1462

转载 计算图上的微积分:Backpropagation

计算图上的微积分:Backpropagation引言Backpropagation (BP) 是使得训练深度模型在计算上可行的关键算法。对现代神经网络,这个算法相较于无脑的实现可以使梯度下降的训练速度提升千万倍。而对于模型的训练来说,这其实是 7 天和 20 万年的天壤之别。 除了在深度学习中的使用,BP 本身在其他的领域中也是一种强大的计算工具,例如从天气预报到分析数值的稳定性——只是同一种思想

2017-07-03 10:33:26 842

转载 梯度检验与高级优化

本文转载自此众所周知,反向传播算法很难调试得到正确结果,尤其是当实现程序存在很多难于发现的bug时。举例来说,索引的缺位错误(off-by-one error)会导致只有部分层的权重得到训练,再比如忘记计算偏置项。这些错误会使你得到一个看似十分合理的结果(但实际上比正确代码的结果要差)。因此,但从计算结果上来看,我们很难发现代码中有什么东西遗漏了。本节中,我们将介绍一种对求导结果进行数值检验的方法,

2017-05-30 20:01:16 464

转载 Spark性能优化指南

前言在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围与前景非常广泛。在美团•大众点评,已经有很多同学在各种项目中尝试使用Spark。大多数同学(包括笔者在内),最初开始尝试使用Spark的原因很简单,主要就是为了让大数据计算作业的执行速度更快、性

2017-04-19 15:44:17 559

原创 Logistic回归:牛顿迭代法

Logistic回归与牛顿迭代法很早之前介绍过《无约束的最优方法》里面介绍了梯度下降法和牛顿迭代法等优化算法。同时大家对于Logistic回归中的梯度下降法更为熟悉,而牛顿迭代法对数学要求更高,所以这里介绍如何在Logistic回归问题中使用牛顿迭代法。似然函数与代价函数似然函数则是 L(ω)=Πmi=1[g(xi)]yi[1−g(xi)]1−yiL(\omega) = \Pi_{i=1}^m[g

2017-03-23 17:05:47 8962 2

原创 java 线程的基础

java中建立线程可以有两种方式,分别是继承Thread类和实现Runnable接口。继承Threadpublic class MyThread extends Thread{ public MyThread(String name){ super(name); } int i; public void run(){ for(i

2017-03-17 20:11:37 570

原创 Python3 中文文件读写

字符串在Python内部的表示是Unicode编码,因此,在做编码转换时,通常需要以Unicode作为中间编码,即先将其他编码的字符串解码(decode)成Unicode,再从Unicode编码(encode)成另一种编码。在新版本的python3中,取消了unicode类型,代替它的是使用unicode字符的字符串类型(str),字符串类型(str)成为基础类型如下所示,而编码后的变为了字节类型(

2017-03-15 12:23:12 15614 1

原创 docker核心功能介绍与使用

docker核心功能介绍与使用Docker 是什么Docker 这个单词英文原意是码头工人,搬运工的意思,这个搬运工搬运的是各种应用的容器。官方的说法是,Docker 是提供给开发者和系统管理员一个分布式应用的开放平台。在更多人的理解中,Docker 是一种把你的应用或者服务打包后放在容器中运行的技术。Docker 可以说有三个关键点:构建,运输,运行。这三个词可以对应我上述提到的那句话,构建即为打

2017-03-15 12:17:49 5024

原创 Leetcode 523. Continuous Subarray Sum

有趣的dp我们要求的是num[L] + num[L+1] + … + num[R] mod k 是否等于零。所以我求一个前缀和A[L] + A[L+1] + … + A[R] = P[R+1] - P[L]则我们要求 P[R+1] - P[L] mod k = 0 那么我们现在对每一个P[i] mod k,则只需要判断p[R+1] - P[L]是否为零,也就是是否存在两个相同的P[i]且距离相差2以

2017-03-06 21:14:45 502

原创 755C - PolandBall and Forest

题意有n个结点,分布在数量未知的树上,也就是说这些树可能是一个森林。 现在给出每个点在各自树上的最远点,如果有多个最远点的话,那就给出id编号最小的那一个点。思路1直接无脑并查集#include<iostream>using namespace std;int parent[100005];int find(int x) { return x==parent[x]?x:f

2017-03-02 10:48:50 475

原创 779C - Dishonest Sellers

C. Dishonest SellersIgor found out discounts in a shop and decided to buy n items. Discounts at the store will last for a week and Igor knows about each item that its price now is ai, and after a week

2017-02-26 20:09:08 1020

原创 面试经典动态规划问题

经典动态规划问题三角数塔问题设有一个三角形的数塔,顶点为根结点,每个结点有一个整数值。从顶点出发,可以向左走或向右走,如图所示:要求从根结点开始,请找出一条路径,使路径之和最大,只要输出路径的和。思路从叶节点倒推回根,因为每个节点只可能向左或者向右,所以转移方程为dp[i][j] = num[i][j] + max(dp[i+1][j],dp[i+1][j+1])代码#include <stdio.

2017-02-21 20:25:51 9239 1

原创 Python中itertools的用法

iterator循环器(iterator)是对象的容器,包含有多个对象。通过调用循环器的next()方法 (next()方法,在Python 3.x中),循环器将依次返回一个对象。直到所有的对象遍历穷尽,循环器将举出StopIteration错误。在for i in iterator结构中,循环器每次返回的对象将赋予给i,直到循环结束。使用iter()内置函数,我们可以将诸如表、字典等容器变为循环器

2017-02-17 10:34:58 7577

转载 Python中collections的用法

collectionscollections是Python内建的一个集合模块,提供了许多有用的集合类。namedtuple我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成:p = (1, 2)但是,看到(1, 2),很难看出这个tuple是用来表示一个坐标的。定义一个class又小题大做了,这时,namedtuple就派上了用场:from collections import

2017-02-16 20:19:40 4944

原创 Python中enumerate的用法

enumerate()说明enumerate()是python的内置函数enumerate在字典上是枚举、列举的意思对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。enumerate多用于在for循环中得到计数例如对于一个seq,得到:# (0, seq[0]), (1, seq[1]), (2, s

2017-02-16 16:51:16 865

原创 Leetcode 68. Text Justification

简单贪心题注意:如果一行只有一个单词的话,那所有的空格放在单词右边。尽可能地平均分配空格(题目中说了)python代码,非常优美class Solution(object): def fullJustify(self, words, maxWidth): """ :type words: List[str] :type maxWidth:

2017-02-15 10:29:44 499

原创 Python中可变对象和不可变对象

之前写了FPGrowth的代码,写得非常恶心,觉得和C语言、C++的工程文件很不相同。其中就有关于传引用、传值的疑问。截一段Leetcode的代码这题好像是Leetcode 93附近的一道 获得二叉树最大深度的题目。我使用了dfs,本来以为python是传对象引用的,所以在dfs中更新了ans,那么返回的ans也会改变,但是最后得到的结果保持1。经过查看资料我就知道这和命名域以及可变对象和不可变对象

2017-02-13 12:56:21 4904

原创 大数据导论(二) Hadoop简介

基本介绍Google(自称)为云计算概念的提出者,在自身多年的搜索引擎业务中构建了突破性的GFS(Google File System),从此文件系统进入分布式时代。除此之外,Google在GFS上如何快速分析和处理数据方面开创了MapReduce并行计算框架,让以往的高端服务器计算变为廉价的x86集群计算,也让许多互联网公司能够从IOE(IBM小型机、Oracle数据库以及EMC存储)中解脱出来,

2017-02-12 10:57:53 4404

原创 数据挖掘中的模式发现(八)轨迹模式挖掘、空间模式挖掘

这是模式挖掘、数据挖掘的一部分应用。空间模式挖掘(Mining Spatiotemporal Patterns)两个空间实体之间存在若干拓扑关系,这些关系基于两个实体的位置:分离相交包含如图所示地表示位置信息,可以提取类似下面的规则:is_a(x,large_town)⋀intersect(x,highway)→adjacent_to(x,water)[7%,85%]is\_a(x, lar

2017-02-08 17:01:16 13161

原创 数据挖掘中的模式发现(七)GSP算法、SPADE算法、PrefixSpan算法

这前两个算法真是出人意料地好理解GSP算法GSP算法是AprioriAll算法的扩展算法,其算法的执行过程和AprioriAll类似。其核心思想是:在每一次扫描(pass)数据库时,利用上一次扫描时产生的大序列生成候选序列,并在扫描的同时计算它们的支持度(support),满足支持度的候选序列作为下次扫描的大序列。第1次扫描时,长度为1的频繁序列模式作为初始的大1—序列。接下来会演示一下GSP如何产

2017-02-06 11:09:25 19423 4

原创 数据挖掘中的模式发现(六)挖掘序列模式

序列模式挖掘序列模式挖掘(sequence pattern mining)是数据挖掘的内容之一,指挖掘相对时间或其他模式出现频率高的模式,典型的应用还是限于离散型的序列。。其涉及在数据示例之间找到统计上相关的模式,其中数据值以序列被递送。通常假设这些值是离散的,因此与时间序列挖掘是密切相关的,但时间通常被认为是不同的活动。序列模式挖掘是结构化数据挖掘的一种特殊情况。基础概念为了帮助大家理解,我这里讲

2017-02-05 16:32:35 12305 5

原创 数据挖掘中的模式发现(五)挖掘多样频繁模式

挖掘多层次的关联规则(Mining Multi-Level Associations)定义项经常形成层次。如图所示那么我们可以根据项的细化分类得到更多有趣的模式,发现更多细节的特性。Level-reduced min-support使用的是Level-reduced min-support方法来设置最低支持度,即,越低的层有着越低的支持度。假设我们使用的是统一的最低支持度,那么如果支持度过低,低层的

2017-02-04 15:40:18 5980

原创 数据挖掘中的模式发现(四)模式评估(Pattern Evaluation)

Pattern Evaluation简介模式评估指的是根据某种兴趣度度量,识别代表知识的真正有趣的模式。 我们之前通过support-confidence association rule mining framework得到的强规则不一定是有趣的,所以它不足以进行模式评估,甚至在一些情况下,甚至常用的lift和chi-square measures也没有很好的效果。 这里将介绍模式或规则评估

2017-02-03 10:39:40 9957

原创 数据挖掘中的模式发现(三)FpGrowth算法

简介前两篇介绍了关联规则挖掘的一些基本概念和经典的Apriori算法,Aprori算法利用频繁集的两个特性,过滤了很多无关的集合,效率提高不少,但是我们发现Apriori算法是一个候选消除算法,每一次消除都需要扫描一次所有数据记录,造成整个算法在面临大数据集时显得无能为力。今天我们介绍一个新的算法,FpGrowth算法,来挖掘频繁项集,它的效率比Aprori算法高很多。FpGrowth算法通过构造一

2017-02-01 11:24:50 4331 7

原创 大数据导论(一) 6V

大数据有几个特性,最著名的是数据量(volume),速度(velocity),多样性(variety)。除此以外,还有就是准确性(veracity),连通性(valence), 和价值(value) 。Volume这就是大数据本身的本质,有很多数据,很大数据量。而数据量本身并不使数据变得有用,所以我们需要对它进行再次的处理。计算机的运行速度决定了没法迅速处理如此大的数据规模,所以在大量数据领域,还有

2017-01-31 20:54:06 14026

原创 数据挖掘中的模式发现(二)Apriori算法

基本概念对于A→BA\rightarrow B支持度(support):P(A∩B)P(A ∩ B),既有A又有B的概率置信度(Confidence Strength):conf(A→B)=sup(A∪B)sup(A)=P(B|A)conf(A\rightarrow B) = {sup(A ∪ B) \over sup(A)} = P(B|A)即,在A发生的事件中同时发生B的概率 例如购物篮

2017-01-27 14:51:38 5343 2

原创 数据挖掘中的模式发现(一)频繁项集、频繁闭项集、最大频繁项集

Frequent Itemset(频繁项集)称I={i1,i2,...,im}I=\{i_1, i_2, ..., i_m\}为项(Item)的集合,D={T1,T2,...,Tn}D=\{T_1, T_2, ...,T_n\},i∈[1,n]i∈[1,n]为事务数据集(Transaction Data Itemsets),事务TiT_i由II中若干项组成。设SS为由项组成的一个集合,S={i|i∈

2017-01-26 10:17:33 47877 11

原创 Python爬虫包 BeautifulSoup 学习(十一) CSS 选择器

BeautifulSoup支持最常用的CSS选择器,在 Tag 或 BeautifulSoup 对象的 .select() 方法中传入字符串参数,即可使用CSS选择器的语法找到tag。CSS选择器CSS选择器是一种单独的文档搜索语法。 详情请见此链接BS4中的CSS选择器本篇所使用的html为:html_doc = """<html><head><title>The Dormouse's sto

2017-01-25 09:29:50 14541 1

poj第1200题

北京大学在线测评网站POJ第1200题的解答,已经AC通过

2013-11-30

空空如也

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

TA关注的人

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