摘要:1 ## {{{ http://code.activestate.com/recipes/577361/ (r1) 2 import collections 3 class peekable(object): 4 """ An iterator that supports a peek operation. 5 6 this is a merge of example 19.18 of python cookbook part 2, peek ahead more steps 7 and the simpler example 16.7, w...
阅读全文
摘要:# -*- coding: utf-8 -*-def merge(*sequences): import heapq heap = [(seq[0],seq) for seq in sequences] heapq.heapify(heap) while heap: x, seq = heapq.heappop(heap) yield seq.pop(0) if seq: heapq.heappush(heap, (seq[0], seq))A = [[1,2,3,4], [5,6,8], [1,3,5,...
阅读全文
摘要:http://zhukunguang.blog.163.com/blog/static/214307201201211484523831/KKT条件是非线性规划的重要成果之一,把拉格朗日乘子理论关于等式约束极值问题扩展到了等式约束和不等式约束的情形。考虑以下约束条件下的非线性优化问题:\begin{align}\min & f(x),\: x\in E^{n}\label{eq:prob1}\\s.t. & g_{i}(x)\le0,\: i=1,2,\cdots,m\nonumber \\ & h_{j}(x)=0,\: j=1,2,\cdots,p\nonumber
阅读全文
摘要:head 及tail 命令介绍当需要查看一个文本文件的头部或尾部时,head 命令及tail 命令可以非常方便的完成该操作。head 命令用于查看一个文本文件的开头部分;而tail 命令则用于显示文本文件的末尾几行。这两个命令举例如下:head example.txt 显示文件 example.txt 的前十行内容;head -n 20 example.txt 显示文件 example.txt 的前二十行内容;tail example.txt 显示文件 example.txt 的后十行内容;tail -n 20 example.txt 显示文件 example.txt 的后二十行内容;tail
阅读全文
摘要:在线广告的核心计算问题定义:设$\mathcal{A}$为广告集合,有$T$次浏览行为, $c_{i}$为第$i$次浏览的上下文, $u_{i}$为用户特征, $a_{i}\in\mathcal{A}$为给第$i$次浏览投放的广告. 广告中的计算问题是寻求一组广告展示$a_{1},a_{2},\cdots,a_{T}$, 使得ROI之和最大, 即求\[\{a_{1},\cdots, a_{T}\}^{*}=\underset{a_{1},\cdots,a_{T}\in\mathcal{A}}{\arg\max}\sum_{i=1}^{T}ROI(a_{i},u_{i},c_{i})\]上式中,
阅读全文
摘要:# -*- coding: utf-8 -*-# 下载网页import urllib2def get_page(url): try: print "Downloading: %s" % url fp = urllib2.urlopen(url) except: print "Failed!" return None return fp
阅读全文
摘要:1 # -*- coding: utf-8 -*- 2 # 将字符串按照段落分开, 这里认为段落与段落之间间隔一个空行(类似Latex) 3 # 用itertools.groupby() 函数, 列表中具有相同key的函数会被group到一起 4 s = 'aaaaaaaaaa\n \nbbbbbbbbb\nccccccccc' 5 lines = s.split('\n') 6 print lines 7 8 from itertools import groupby 9 def paragraphs(lines, is_seperator=lambda s:
阅读全文
摘要:# -*- coding: utf-8 -*-# [1] Python Cookbook 5.7 增加元素时候保持序列顺序# [2] http://s99f.blog.163.com/blog/static/351183652010111602517298/import heapqimport randomrand = random.sample(range(10), 10) # 生成随机整数列表print rand# >>> [7, 4, 1, 3, 8, 5, 9, 0, 2, 6]heap = []for x in rand: heapq.heappush(heap,
阅读全文
摘要:1 # -*- coding: utf-8 -*- 2 # 在排序时, 可以用lambda表达式将对象map成keys 3 # 亦可以使用operator包中的attrgetter和itemgetter函数以提高效率 4 # 参考 http://wiki.python.org/moin/HowTo/Sorting 5 6 # 考虑 Student 对象 7 class Student: 8 def __init__(self, name, grade, age): 9 self.name = name10 self.grade = g...
阅读全文
摘要:Python默认字符串排序是基于字母的。更好的方法是把文件按数字分解成一个list,并把数字项替换成int型,最后按分解后的list进行排序。 1 import re 2 3 filenames = [ 'file10.txt', 'file1.txt', 'file2.txt',\ 4 'file04.txt', 'afile12.txt'] 5 6 rx_digit = re.compile(r'(\d+)') 7 8 def mapper(filename): 9 aux = rx_digit
阅读全文
摘要:1. 很全的电子书下载网站http://www.ppurl.com2.Koller教授的概率图模型https://class.coursera.org/pgm/lecture/previewhttp://openclassroom.stanford.edu/MainFolder/VideoPage.php?course=ProbabilisticGraphicalModels3. 中科院模式识别博士课程http://liama.ia.ac.cn/wiki/projects:pal:course:pr4. 刘鹏老师计算广告学http://sheetoo.com/app/course/overvi
阅读全文
摘要:见程序: 1 import win32com.client 2 import os 3 4 5 class easyword: 6 def __init__(self, filename = None): 7 self.wordapp = win32com.client.gencache.EnsureDispatch("Word.Application") 8 self.wordapp.Visible = 1 9 if filename: 10 self.filename = os.p...
阅读全文
摘要:求最优估计$x^{*}$,使得误差(残差)向量的$\epsilon=f(x^{*})-z$的平方和$S(x)=\epsilon^{T}\epsilon$最小,即求\begin{equation}x^{*}=\arg\min_{x}\epsilon^{T}\epsilon=\arg\min_{x}S(x)=\arg\min_{x}\|f(x)-z\|_{2}^{2}\label{eq:gen_opt}\end{equation} 最理想的情况,误差$\epsilon=0$,此时$f(x^{*})=z$,故最优化问题\eqref{eq:gen_opt}等价于“解方程”问题:\begin{eq...
阅读全文
摘要:考虑最优化问题:\begin{equation}x^{*}=\arg\min_{x}S(x)=\arg\min_{x}\|f(x)-z\|_{2}^{2}\label{eq:gen_opt-2}\end{equation}其中,$S(x)=\epsilon^{T}\epsilon$,$\epsilon=f(x)-z$。二次型函数$S(x)$的梯度为\[\nabla S(x)=\frac{\partial S(x)}{\partial x}=-2\left[\frac{\partial f(x)}{\partial x}\right]^{T}[f(x)-z]=-2J^{T}\epsilon\]沿
阅读全文