- 浏览: 1307413 次
- 性别:
- 来自: 江苏
最新评论
-
honey_fansy:
的确,不要自己的支持就说完美支持,我的就不行,别说我的不是fi ...
无js实现text-overflow: ellipsis; 完美支持Firefox -
fanchengfei:
事件长微博,欢迎转发:http://weibo.com/332 ...
《在路上 …》 写代码也需要一点演技 – python2.6 的 class decorator -
blued:
没有报错,但排版效果一点都没有 咋回事。请指教
python排版工具 -
szxiaoli:
耍人呀,效果在哪儿呀
滑动效果 -
accaolei:
这个能监到控子目录吗?,我测试了一下,发现子目录里的文件监控不 ...
windows监控目录改动
封装的是附件这篇paper的count
因为对比发现这个的综合性能比较好
xxx@ooo ~/zspal/zfeq/frequent-items/src $ cat Release/pyzlcl.py
#coding:utf-8
from pyzlcl import Lcl
#0.001 是要统计的频率下限
lcl = Lcl(0.001)
for i in xrange(200):
for j in xrange(100):
for k in xrange(j):
lcl.update(j, 1)
for i in xrange(1,100,30):
print i
print "出现的次数(估计值)",lcl.est(i)
print "estimate the worst case error in the estimate of a
particular item :" ,lcl.err(i)
print "---"*20
result = lcl.output(1000)
result.sort(key=lambda x:-x[1])
print result
print lcl.capacity()
xxx@ooo ~/zspal/zfeq/frequent-items/src $ python Release/pyzlcl.py
1
出现的次数(估计值) 200
estimate the worst case error in the estimate of a particular item : 0
------------------------------------------------------------
31
出现的次数(估计值) 6200
estimate the worst case error in the estimate of a particular item : 0
------------------------------------------------------------
61
出现的次数(估计值) 12200
estimate the worst case error in the estimate of a particular item : 0
------------------------------------------------------------
91
出现的次数(估计值) 18200
estimate the worst case error in the estimate of a particular item : 0
------------------------------------------------------------
[(99, 19800), (98, 19600), (97, 19400), (96, 19200), (95, 19000), (94,
18800), (93, 18600), (92, 18400), (91, 18200), (90, 18000), (89,
17800), (88, 17600), (87, 17400), (86, 17200), (85, 17000), (84,
16800), (83, 16600), (82, 16400), (81, 16200), (80, 16000), (79,
15800), (78, 15600), (77, 15400), (76, 15200), (75, 15000), (74,
14800), (73, 14600), (72, 14400), (71, 14200), (70, 14000), (69,
13800), (68, 13600), (67, 13400), (66, 13200), (65, 13000), (64,
12800), (63, 12600), (62, 12400), (61, 12200), (60, 12000), (59,
11800), (58, 11600), (57, 11400), (56, 11200), (55, 11000), (54,
10800), (53, 10600), (52, 10400), (51, 10200), (50, 10000), (49,
9800), (48, 9600), (47, 9400), (46, 9200), (45, 9000), (44, 8800),
(43, 8600), (42, 8400), (41, 8200), (40, 8000), (39, 7800), (38,
7600), (37, 7400), (36, 7200), (35, 7000), (34, 6800), (33, 6600),
(32, 6400), (31, 6200), (30, 6000), (29, 5800), (28, 5600), (27,
5400), (26, 5200), (25, 5000), (24, 4800), (23, 4600), (22, 4400),
(21, 4200), (20, 4000), (19, 3800), (18, 3600), (17, 3400), (16,
3200), (15, 3000), (14, 2800), (13, 2600), (12, 2400), (11, 2200),
(10, 2000), (9, 1800), (8, 1600), (7, 1400), (6, 1200), (5, 1000)]
44092
c中的用法演示
xxx@ooo ~/zspal/zfeq/frequent-items/src $ cat zlcl.cc
#include "prng.h"
#include "lossycount.h"
#include <iostream>
size_t RunExact(uint32_t thresh, std::vector<uint32_t>& exact);
template<class T>
void generate_data(T* data,size_t number,uint32_t u32DomainSize,double dSkew);
int main(int argc, char **argv) {
size_t stNumberOfPackets = 10000000; // 样本数
double dPhi = 0.0001; //统计频率大于dPhi的元素,这里取万分之一
uint32_t u32DomainSize = 1048575; //样本取值范围
std::vector<uint32_t> exact(u32DomainSize + 1, 0);//精确统计,以便于做对比
//生成 Zipf 分布的数据
std::vector<uint32_t> data;
generate_data(&data,stNumberOfPackets,u32DomainSize,1.0);
//将测试数据分为20段运行 每运行一段 输出一次统计数据
size_t stRuns = 20;
size_t stRunSize = data.size() / stRuns;
size_t stStreamPos = 0;
LCL_type* lcl = LCL_Init(dPhi);
for (size_t run = 1; run <= stRuns; ++run) {
for (size_t i = stStreamPos; i < stStreamPos + stRunSize; ++i) {
exact[data[i]]+=1;
}
for (size_t i = stStreamPos; i < stStreamPos + stRunSize; ++i) {
LCL_Update(lcl,data[i],1);
}
uint32_t thresh = static_cast<uint32_t>(floor(dPhi * run * stRunSize));
if (thresh == 0) thresh = 1;
std::cout<<"Thresh is "<<thresh<<std::endl;
size_t hh = RunExact(thresh, exact);
std::cout << "Run: " << run << ", Exact: " << hh << std::endl;
std::map<uint32_t, uint32_t> res;
res = LCL_Output(lcl,thresh);
std::cout << "LCL: " << run << ", Count: " << res.size() << std::endl;
stStreamPos += stRunSize;
}
LCL_Destroy(lcl);
printf("\n");
return 0;
}
size_t RunExact(uint32_t thresh, std::vector<uint32_t>& exact)
{
size_t hh = 0;
for (size_t i = 0; i < exact.size(); ++i)
if (exact[i] >= thresh) ++hh;
return hh;
}
template<class T>
void generate_data(T* data,size_t number,uint32_t u32DomainSize,double dSkew){
prng_type * prng;
prng=prng_Init(44545,2);
int64_t a = (int64_t) (prng_int(prng)% MOD);
int64_t b = (int64_t) (prng_int(prng)% MOD);
prng_Destroy(prng);
Tools::Random r = Tools::Random(0xF4A54B);
Tools::PRGZipf zipf = Tools::PRGZipf(0, u32DomainSize, dSkew, &r);
size_t stCount = 0;
for (int i = 0; i < number; ++i)
{
++stCount;
if (stCount % 500000 == 0)
std::cout <<"Generate Data " << stCount << std::endl;
uint32_t v = zipf.nextLong();
uint32_t value = hash31(a, b, v) & u32DomainSize;
data->push_back(value);
}
}
--
弓长
孝文
、
王
http://zsp.iteye.com/
因为对比发现这个的综合性能比较好
xxx@ooo ~/zspal/zfeq/frequent-items/src $ cat Release/pyzlcl.py
#coding:utf-8
from pyzlcl import Lcl
#0.001 是要统计的频率下限
lcl = Lcl(0.001)
for i in xrange(200):
for j in xrange(100):
for k in xrange(j):
lcl.update(j, 1)
for i in xrange(1,100,30):
print i
print "出现的次数(估计值)",lcl.est(i)
print "estimate the worst case error in the estimate of a
particular item :" ,lcl.err(i)
print "---"*20
result = lcl.output(1000)
result.sort(key=lambda x:-x[1])
print result
print lcl.capacity()
xxx@ooo ~/zspal/zfeq/frequent-items/src $ python Release/pyzlcl.py
1
出现的次数(估计值) 200
estimate the worst case error in the estimate of a particular item : 0
------------------------------------------------------------
31
出现的次数(估计值) 6200
estimate the worst case error in the estimate of a particular item : 0
------------------------------------------------------------
61
出现的次数(估计值) 12200
estimate the worst case error in the estimate of a particular item : 0
------------------------------------------------------------
91
出现的次数(估计值) 18200
estimate the worst case error in the estimate of a particular item : 0
------------------------------------------------------------
[(99, 19800), (98, 19600), (97, 19400), (96, 19200), (95, 19000), (94,
18800), (93, 18600), (92, 18400), (91, 18200), (90, 18000), (89,
17800), (88, 17600), (87, 17400), (86, 17200), (85, 17000), (84,
16800), (83, 16600), (82, 16400), (81, 16200), (80, 16000), (79,
15800), (78, 15600), (77, 15400), (76, 15200), (75, 15000), (74,
14800), (73, 14600), (72, 14400), (71, 14200), (70, 14000), (69,
13800), (68, 13600), (67, 13400), (66, 13200), (65, 13000), (64,
12800), (63, 12600), (62, 12400), (61, 12200), (60, 12000), (59,
11800), (58, 11600), (57, 11400), (56, 11200), (55, 11000), (54,
10800), (53, 10600), (52, 10400), (51, 10200), (50, 10000), (49,
9800), (48, 9600), (47, 9400), (46, 9200), (45, 9000), (44, 8800),
(43, 8600), (42, 8400), (41, 8200), (40, 8000), (39, 7800), (38,
7600), (37, 7400), (36, 7200), (35, 7000), (34, 6800), (33, 6600),
(32, 6400), (31, 6200), (30, 6000), (29, 5800), (28, 5600), (27,
5400), (26, 5200), (25, 5000), (24, 4800), (23, 4600), (22, 4400),
(21, 4200), (20, 4000), (19, 3800), (18, 3600), (17, 3400), (16,
3200), (15, 3000), (14, 2800), (13, 2600), (12, 2400), (11, 2200),
(10, 2000), (9, 1800), (8, 1600), (7, 1400), (6, 1200), (5, 1000)]
44092
c中的用法演示
xxx@ooo ~/zspal/zfeq/frequent-items/src $ cat zlcl.cc
#include "prng.h"
#include "lossycount.h"
#include <iostream>
size_t RunExact(uint32_t thresh, std::vector<uint32_t>& exact);
template<class T>
void generate_data(T* data,size_t number,uint32_t u32DomainSize,double dSkew);
int main(int argc, char **argv) {
size_t stNumberOfPackets = 10000000; // 样本数
double dPhi = 0.0001; //统计频率大于dPhi的元素,这里取万分之一
uint32_t u32DomainSize = 1048575; //样本取值范围
std::vector<uint32_t> exact(u32DomainSize + 1, 0);//精确统计,以便于做对比
//生成 Zipf 分布的数据
std::vector<uint32_t> data;
generate_data(&data,stNumberOfPackets,u32DomainSize,1.0);
//将测试数据分为20段运行 每运行一段 输出一次统计数据
size_t stRuns = 20;
size_t stRunSize = data.size() / stRuns;
size_t stStreamPos = 0;
LCL_type* lcl = LCL_Init(dPhi);
for (size_t run = 1; run <= stRuns; ++run) {
for (size_t i = stStreamPos; i < stStreamPos + stRunSize; ++i) {
exact[data[i]]+=1;
}
for (size_t i = stStreamPos; i < stStreamPos + stRunSize; ++i) {
LCL_Update(lcl,data[i],1);
}
uint32_t thresh = static_cast<uint32_t>(floor(dPhi * run * stRunSize));
if (thresh == 0) thresh = 1;
std::cout<<"Thresh is "<<thresh<<std::endl;
size_t hh = RunExact(thresh, exact);
std::cout << "Run: " << run << ", Exact: " << hh << std::endl;
std::map<uint32_t, uint32_t> res;
res = LCL_Output(lcl,thresh);
std::cout << "LCL: " << run << ", Count: " << res.size() << std::endl;
stStreamPos += stRunSize;
}
LCL_Destroy(lcl);
printf("\n");
return 0;
}
size_t RunExact(uint32_t thresh, std::vector<uint32_t>& exact)
{
size_t hh = 0;
for (size_t i = 0; i < exact.size(); ++i)
if (exact[i] >= thresh) ++hh;
return hh;
}
template<class T>
void generate_data(T* data,size_t number,uint32_t u32DomainSize,double dSkew){
prng_type * prng;
prng=prng_Init(44545,2);
int64_t a = (int64_t) (prng_int(prng)% MOD);
int64_t b = (int64_t) (prng_int(prng)% MOD);
prng_Destroy(prng);
Tools::Random r = Tools::Random(0xF4A54B);
Tools::PRGZipf zipf = Tools::PRGZipf(0, u32DomainSize, dSkew, &r);
size_t stCount = 0;
for (int i = 0; i < number; ++i)
{
++stCount;
if (stCount % 500000 == 0)
std::cout <<"Generate Data " << stCount << std::endl;
uint32_t v = zipf.nextLong();
uint32_t value = hash31(a, b, v) & u32DomainSize;
data->push_back(value);
}
}
--
弓长
孝文
、
王
http://zsp.iteye.com/
- frequent-items.7z.zip (172.2 KB)
- 下载次数: 21
- AE._Efficient_computation_of_frequent_and__top-k_elements_in_data_streams..pdf.zip (193.6 KB)
- 下载次数: 20
- 频繁集合算法一览.zip (163 KB)
- 下载次数: 29
- 频繁统计图解.zip (337.5 KB)
- 下载次数: 14
发表评论
-
关于"Google限制Python"事件我的看法
2009-11-17 15:11 8389本来做一个勤勤恳恳的 ... -
python排版工具
2009-10-15 14:22 3511http://pypi.python.org/pypi/pyt ... -
Fast Asynchronous Python Web Server (Fapws is short)
2009-08-15 12:12 1864http://github.com/william-os4y/ ... -
python奇技淫巧
2009-07-23 22:27 2514http://wiki.python.org/moin/By ... -
跨平台 获取系统信息的python库 http://support.hyperic.com/disp
2009-06-12 11:49 3648The Sigar API provides a portab ... -
libsvm (python封装) 学习笔记 1
2009-05-19 14:28 42432009-05-19 14:10:38 #!/usr/bin ... -
lcs.py 最长公共子串算法
2009-05-05 15:50 2980感觉用来匹配相似文件比最短编辑距离更靠谱,最短编辑应该是用来纠 ... -
lrucache.py 最近最少使用算法
2009-05-04 13:23 2918lrucache.py 最近最少使用算法 2009-05-04 ... -
史上最快 异步消息队列zeromq 简介
2009-04-30 21:40 27277是的,我喜欢Z开头的东西. http://www.zer ... -
相似单词
2009-03-18 00:54 1774给你一个单词a,如果通过交换单词中字母的顺序可以得到另外的单词 ... -
is_cn_char
2009-03-14 13:39 1350unicode码 def is_cn_char(i): ... -
写一个python的urldecode
2009-03-03 10:57 5127from urllib import unquote def ... -
今天才发现python的sort有个key参数,我好圡...
2009-02-28 20:59 3105>>> a=range(10) >& ... -
发一个山寨版python的Orm
2009-02-24 23:49 2244发一个山寨版的Orm 大概用法见 http://docs. ... -
pyrex学习笔记
2009-02-24 03:36 17030. easy_install pyrex 1.写pyrex ... -
python的一个有趣的细节
2009-02-24 02:00 1374python3.0一个有趣的细节 2009-02-24 01: ... -
python备玩候选者
2009-02-24 00:34 1709* 张沈鹏 推荐网址当然要有一个部署的东西 Exs ... -
python读取mp3 ID3信息
2009-02-18 16:57 2652pyid3不好用,常常有不认识的. mutagen不错,不过 ... -
又写了一个python的route模块
2009-01-14 01:18 2103是的 我很无聊 -
mxTidy - HTML Tidy for Python
2009-01-05 10:50 5229抓取的html不处理一下很容易破坏页面的布局 官网的py ...
相关推荐
显然,对于自动化测试和频繁发送邮件的需求来说,使用Python脚本更为高效便捷。 #### Python邮件发送原理 Python发送邮件主要依赖于`smtplib`和`email`两个核心模块: - **smtplib**:提供了一套用于发送邮件的...
Python库“riot-games-api-1.0.3”就是用来封装这个API,简化了调用过程,使得Python开发者能更方便地使用这些数据。 安装此库通常需要先将下载的tar.gz文件解压,然后使用Python的包管理器pip进行安装。在终端中,...
这个库可能提供了方便的方法来获取、解析和处理CBR发布的经济数据,比如汇率、统计数据或者其他金融信息。 在Python生态系统中,whl文件是一种预编译的Python分发包格式,用于简化安装过程。这种文件可以直接通过...
这个脚本可能用于数据分析、统计或自动化监控等用途。 在描述中,我们同样看到“Python实现的B站直播间获取粉丝勋章亲密度脚本”,这进一步确认了该脚本的功能和实现方式。尽管描述较为简洁,但我们可以推测该脚本...
在本项目中,“基于python+Java的疫情爬虫数据分类统计分析的设计与实现”是一个结合了两种编程语言的综合应用,旨在从网络上抓取疫情相关的数据,进行处理、分类和统计分析。该项目的核心目标是利用Python的爬虫...
这些算法能够找出频繁项集和支持度、置信度等统计量,帮助我们发现潜在的购买模式。 **Python库的应用**: 在Python中,我们可以使用像pandas这样的数据处理库来加载和处理数据,使用mlxtend或apyori等库来进行关联...
`Rocksdict`是一个基于`RocksDB`的Python封装库,它允许Python开发者能够方便地在Python应用程序中利用`RocksDB`的强大功能。`RocksDB`是由Facebook开发的一个高性能、可嵌入式、持久化的键值存储系统,广泛用于...
10. **工具封装**:对于频繁的日志分析任务,可以将Python脚本封装为一个命令行工具或GUI应用,方便重复使用和分享。 总的来说,Python提供了丰富的库和工具,使得日志分析变得高效且易于实现。通过阅读和学习这篇...
2. **数据分析**:对于数据爱好者,python-wowapi可以帮助他们收集和分析游戏数据,比如服务器人口统计、热门职业分布、拍卖行价格走势等,用于研究和可视化。 3. **社区应用**:社区网站或论坛可以借助此库,提供...
最后,这个项目还可能包含了数据分析和可视化部分,例如使用`pandas`对抓取的评论数据进行统计分析,或用`matplotlib`和`seaborn`进行数据可视化,展示用户评分分布、评论情感分析结果等。 总的来说,这个项目涵盖...
新浪财经提供了一个API服务,可以获取股票的实时报价、历史数据以及各种统计数据。在Python中,我们通常会使用requests库来发送HTTP请求获取数据。例如,要获取某只股票的实时tick数据,我们需要构造相应的URL,并...
今天我们要探讨的是一个名为“Reader Toolbox”的Python库,具体版本为0.0.8,封装在一个名为“reader-toolbox-0.0.8.tar.gz”的压缩包中。这个库是Python开发环境中的一个重要工具,它提供了丰富的功能,旨在帮助...
今天我们要聚焦的便是名为"EcanDbParams"的Python库,版本号为0.0.2,它是一个压缩包文件,以`.tar.gz`格式封装。这个库主要应用于后端开发,为数据处理和数据库操作提供便利。让我们一起深入探索这个库的功能、用法...
在Python库的开发中,instatool可能会遵循模块化的设计原则,将不同功能封装成独立的类或函数,例如: 1. **数据抓取模块**:这个模块可能包含用于爬取Instagram公开数据的函数,通过Instagram的API接口或者网络...
stravalib库的核心功能在于它封装了Strava的RESTful API,使Python开发者能够轻松地进行各种操作,包括但不限于: 1. **获取运动员信息**:通过运动员ID,可以获取运动员的基本信息,如姓名、性别、年龄、头像等。 ...
今天我们要讨论的是`openhub-api-0.0.276`,一个Python库的版本,它封装了OpenHub的数据接口,为开发者提供了方便的API来获取和分析开源项目的信息。让我们一起深入探讨这个库的功能、用法以及其在实际项目中的应用...
1. **API调用**:HypixelIO库可能封装了Hypixel API的接口,允许开发者通过Python代码获取服务器上的各种数据,如玩家信息、排行榜、成就、好友系统等。 2. **数据解析**:Hypixel服务器返回的数据通常是以JSON格式...
比如,它可以与Python的数据分析库如Pandas或NumPy无缝集成,方便数据预处理和统计分析。同时,可能还支持将查询结果直接转换为图形,便于直观理解数据。 在实际应用中,picard_metrics_sqlite库可以广泛应用于各种...
1. **数据获取**:EVE_Gnosis提供了对EVE Online API的封装,允许开发者通过简单的调用获取游戏中的各种数据。例如,你可以通过这个库获取最新的星图信息,查询市场上的商品价格,甚至追踪玩家的战斗记录。 2. **...