CWYAlpha

Just another WordPress.com site

Archive for 十二月 2011

Thought this was cool: 几篇Data Mining Research in 2011的文章

leave a comment »

关于数据挖掘的,英文的,挺有意思。

  1. Top 10 challenging problems in data mining
  2. List of blogs
  3. Top five articles in data mining
  4. Standardization versus normalization
  5. Data miners on twitter
您可能也喜欢:


首届全国大学生数据挖掘邀请赛


通过WSDM2011论文录用情况分析目前信息检索趋势


Call for Papers: ACM SIGKDD Conference on Knowledge Discovery and Data Mining (KDD-2010)


看看Facebook数据小组关于SNS的论文


英语-高铁-论文-idea

无觅

相关文章

from 丕子: http://www.zhizhihu.com/html/y2011/3642.html

Advertisements

Written by cwyalpha

十二月 28, 2011 at 7:23 上午

发表在 Uncategorized

Thought this was cool: C 语言新标准——C11

leave a comment »

12月8号,ISO 发布了新的 C 语言的新标准——C11,之前被称为C1X,官方名称 ISO/IEC 9899:2011。新的标准可以这里下载。这个标准是基于今年4月发布的名为 N1570 的草稿,但据说并未做任何改动。

根据 wikipedia 记载,相比 C99,C11 做了以下重要的更新:

1. 对齐处理操作符 alignof,函数 aligned_alloc(),以及 头文件 <stdalign.h>。见 7.15 节。

2. _Noreturn 函数标记,类似于 gcc 的 __attribute__((noreturn))。例子:

	_Noreturn void thrd_exit(int res);

3. _Generic 关键词,有点儿类似于 gcc 的 typeof。例子:

#define cbrt(X) _Generic((X), long double: cbrtl, \
                              default: cbrt, \
                              float: cbrtf)(X)

4. 静态断言( static assertions),_Static_assert(),在解释 #if 和 #error 之后被处理。例子:

	_Static_assert(FOO > 0, "FOO has a wrong value");

5. 删除了 gets() 函数,C99中已经将此函数被标记为过时,推荐新的替代函数 gets_s()。

6. 新的 fopen() 模式,(“…x”)。类似 POSIX 中的 O_CREAT|O_EXCL,在文件锁中比较常用。

7. 匿名结构体/联合体,这个早已经在 gcc 中了,我们并不陌生,定义在 6.7.2.1 p13。

8. 多线程支持,包括:_Thread_local,头文件 <threads.h>,里面包含线程的创建和管理函数(比如 thrd_create(),thrd_exit()),mutex (比如 mtx_lock(),mtx_unlock())等等,更多内容清参考 7.26 节。

9. _Atomic类型修饰符和 头文件 <stdatomic.h>,见 7.17 节。

10. 带边界检查(Bounds-checking)的函数接口,定义了新的安全的函数,例如 fopen_s(),strcat_s() 等等。更多参考 Annex K。

11. 改进的 Unicode 支持,新的头文件 <uchar.h> 等。

12. 新增 quick_exit() 函数,作为第三种终止程序的方式,当 exit() 失败时可以做最少的清理工作(deinitializition),具体见 7.22.4.7。

13. 创建复数的宏, CMPLX(),见 7.3.9.3。

14. 更多浮点数处理的宏 (More macros for querying the characteristics of floating point types, concerning subnormal floating point numbers and the number of decimal digits the type is able to store)。

15. struct timespec 成为 time.h 的一部分,以及宏 TIME_UTC,函数 timespec_get()。

gcc 4.6 中新增了新的选项 -std=c1x 来支持这一标准,更多支持参考这里。但是 glibc 相关的部分尚未实现,所以你还不能马上在 Linux 上体验最新的 C11 特性。

from A Geek's Page: http://wangcong.org/blog/archives/1843

Written by cwyalpha

十二月 27, 2011 at 4:09 下午

发表在 Uncategorized

Thought this was cool: R语言多元分析系列之四:判别分析

leave a comment »

判别分析(discriminant analysis)是一种分类技术。它通过一个已知类别的“训练样本”来建立判别准则,并通过预测变量来为未知类别的数据进行分类。
判别分析的方法大体上有三类,即Fisher判别、Bayes判别和距离判别。Fisher判别思想是投影降维,使多维问题简化为一维问题来处理。选择一个适当的投影轴,使所有的样品点都投影到这个轴上得到一个投影值。对这个投影轴的方向的要求是:使每一组内的投影值所形成的组内离差尽可能小,而不同组间的投影值所形成的类间离差尽可能大。Bayes判别思想是根据先验概率求出后验概率,并依据后验概率分布作出统计推断。距离判别思想是根据已知分类的数据计算各类别的重心,对未知分类的数据,计算它与各类重心的距离,与某个重心距离最近则归于该类。
1.线性判别
当不同类样本的协方差矩阵相同时,我们可以在R中使用MASS包的lda函数实现线性判别。lda函数以Bayes判别思想为基础。当分类只有两种且总体服从多元正态分布条件下,Bayes判别与Fisher判别、距离判别是等价的。本例使用iris数据集来对花的品种进行分类。首先载入MASS包,建立判别模型,其中的prior参数表示先验概率。然后利用table函数建立混淆矩阵,比对真实类别和预测类别。
library(MASS)
model1=lda(Species~.,data=iris,prior=c(1,1,1)/3)
table(Species,predict(model1)$class)

Species setosa versicolor virginica
setosa 50 0 0
versicolor 0 48 2
virginica 0 1 49
从以上结果可观察到判断错误的样本只有三个。在判别函数建立后,还可以类似主成分分析那样对判别得分进行绘图
ld=predict(model1)$x
p=ggplot(cbind(iris,as.data.frame(ld))
,aes(x=LD1,y=LD2))
p+geom_point(aes(colour=Species),alpha=0.8,size=3)

2.二次判别
当不同类样本的协方差矩阵不同时,则应该使用二次判别。
model2=qda(Species~.,data=iris,cv=T)
这里将CV参数设置为T,是使用留一交叉检验(leave-one-out cross-validation),并自动生成预测值。这种条件下生成的混淆矩阵较为可靠。此外还可以使用predict(model)$posterior提取后验概率。

在使用lda和qda函数时注意:其假设是总体服从多元正态分布,若不满足的话则谨慎使用。

参考资料:
Modern Applied Statistics With S
Data_Analysis_and_Graphics_Using_R__An_Example_Based_Approach

from 数据科学与R语言: http://xccds1977.blogspot.com/2011/12/r_27.html

Written by cwyalpha

十二月 27, 2011 at 2:23 下午

发表在 Uncategorized

Thought this was cool: vibe

leave a comment »

– a powerful technique for background detection and subtraction in video sequences

Executive summary

Description

ViBe is a powerful pixel-based technique that detects the background in video sequences. Many experiments have shown that it performs better than the state-of-the-art techniques known in the scientific literature. In addition the computational load is lower than simple background techniques implemented in commercial products. ViBe is the perfect solution for both software and hardware implementations.

Code and program for Windows and Linux
  • A program for Windows and Linux. Download an archive zip archive [10 MB – updated on May 19, 2011] to use ViBe on Windows (or under Wine in Linux). Details on this page.
    The program allows you to: (1) save the result for your own images, (2) change the few parameters of ViBe to experiment with, and (3) reproduce our results.
  • Linux: link a C/C++ object file to your own code. We provide the object (compiled) code of ViBe for non-commercial applications. Under Linux, download the 32 bits zip or compressed tar file, or the 64 bits zip or compressed tar file. Details on this page.

 

Licensing opportunities

ViBe is protected by several patents (patent track: WO2009007198 / Publication date: 2009-01-15; Priority number(s): EP20070112011 20070708) / US (granted): US 8009918 B2 (pdf) / Japan (granted): JP 2011 4699564 B2
The University of Liege holds all the rights on the technology and the innovations have been validated during the patent track.
For licensing the technology, please contact Prof. Van Droogenbroeck.

Major advantages:
  • Very low computational load. Operations are limited to subtractions and operations on memory blocks. A downscaled version only needs one comparison per pixel and one byte of memory per pixel (see illustration below).
  • Parameter-free method. There is no need to adapt parameter values to the content. Absolutely all the experiments have been led with the same set of values.
  • Ready for direct inclusion in commercial products. Suited both for software and hardware inclusions.
  • Faster and improved performances in comparison with state-the-art techniques (Mixture of Gaussians, Parametric methods, Sacon, etc).
  • Pixel-based technique, ideal for any pre-processing step. ViBe allows you to model the objects in the videos as you like.
  • Instantaneous initialization of the background model. ViBe is ready to operate from the second frame of any video sequence.
  • Robust to noise.
References
Performance

An independant evaluation is available in S. Brutzer, B. Hoferlin, and G. Heidemann. Evaluation of background subtraction techniques for video surveillance. In IEEE International Conference on Computer Vision and Pattern Recognition (CVPR), pages 1937-1944, Colorado Spring, USA, June 2011.
In their conclusions, they claim: “Considering these aspects, Barnich is a strong favorite, since it is simple and almost parameterless.”

Contacts

For any question, please contact Prof. Van Droogenbroeck .
See also the site of the Interface, in charge of the partnerships between companies and the University of Liege.

    感谢wushuangseu的投递

    Tags: , , ,

    from 增强视觉 | 计算机视觉 增强现实: http://www.cvchina.info/2011/12/25/vibe/

    Written by cwyalpha

    十二月 26, 2011 at 4:24 上午

    发表在 Uncategorized

    Thought this was cool: GAE程序优化最佳实践(一)-处理工作最小化

    leave a comment »

    原文:http://code.google.com/appengine/articles/scaling/minimize.html

    App Engine 允许您使用Google提供的高性能的Web服务运行环境. 虽然环境本身已经提供了良好的性能可扩展性,但我们仍然可以使用一些方法来优化我们的应用程序,以提供用户体验减少系统资源的消耗,当然也节约了你的钞票。

    这篇文章提供了一些技巧,帮助你优化代码,提高性能。使用key, key name,或 ID来检索实体数据

    App Engine的数据存储依赖于BigTable,BitTable是为分布式计算所设计的,所以它的一些实现与传统的面向对象的数据库系统有所不同。比如, App Engine数据库直接读取数据非常高效,  System Status page 显示直接读取数据要比使用查询平均快四到五倍. 这就要求我们认真的考虑如何根据这个情况来设计我们的应用程序,以获取更好的性能。

    为了能够直接读取数据, 我们需要用到实体的keys. 当一个实体第一次创建的时候,您可以选择一个字符串作为实体的主键名(key name). 如果你知道这个实体的某个属性是唯一的(比如email地址),那么你就可以用这个属性值来作为主键的名字。如果你没有指定主键名.存储系统会为这个实体创建一个唯一的ID,并使用这个ID来关联实体的主键(Key).

    不过如何指定主键,存储系统都允许你通过主键(key)简单并高效的来检索数据。

     

    • Python
    # To retrieve an entity given its corresponding Key object, pass it into get
    # directly:

    e
    = db.get(key)

    # You can fetch an entity given its key name using the Model class'
    # get_by_key_name class method:

    key_name
    = 'Alfred.Smith@example.com';
    e
    = Employee.get_by_key_name(key_name);

    # To fetch an entity given its numeric ID, use the Model class'
    # get_by_id class method:

    id
    = 52234;
    e
    = Employee.get_by_id(id);
         

    您甚至可以使用一个列表来批量获取实体数据

    # The return value is a corresponding list of model instances, with None values
    # when no entity exists for a corresponding Key.

    #...
    entities
    = db.get([key1, key2, key3]);
         

    Note: 现在还无法使用 JDO and JPA接口来批量获取或设置实体, 您必须使用 low-level datastore API for Java.

    不要使用offset进行分页

     

    分页是将大量数据呈现在用户面前的一种常用的手段。通过分页我们把数据切分成多个子集,我们可以在单个页面展示有限的数据,从而减少页面加载的时间。但需要的时候,用户可以通过上一页或下一页来查看更多数据。

    许多GAE的开发者喜欢使用offset来实现分页。但这种方式存在很多的问题。

    1. 不能检索超过1000个实体
    2. 性能不高,每次检索都必须搜索所有实体,比如说,pagesize=10,每页显示10条数据,使用offset来分页,将搜索所有数据,然后从中过滤出合适的数据进行显示。

    所幸,这里有一些好的分页的方法,比如 “How-To Do Paging on App Engine“. 这种方式在每个实体中存储一个字符串属性,然后使用这个属性来判断那些实体需要被提取。使用这种方式,你不再需要提取不需要显示的实体,而且可以显示所有数据(不再受1000个实体的限制)。

    另外一个有效的方法是,当实体的显示顺序不是十分重要的时候,我们可以使用 __key__ 属性来进行分页,

    这两种方法都比使用offset来的快,具体实现方法请参考文章中的相关链接。

    Note: 从GAE SDK 1.3.6开始已经取消了1000个实体的限制

    减少读/写频率

    在前面的章节里面,我们介绍了一条原则:只提取必须的数据。 这只是我们减少读写的原则中的一条。我们需要考虑哪些数据是必须的,并优化我们的实体设计模型和业务逻辑从而获取更好的数据处理能力。

    这是完全有可能做到的,下面以文件列表操作为例。

    由于Google App Engine不支持写入文件,所以我们需要使用datastore来存储文件的内容。

    一种可能的设计就是将文件的元数据(比如:文件名,大小,创建时间等)和内容存放在一个实体里.但是我们知道,其实通常情况下,我们并不需要获取文件的内容,比如说我们列出所有文件的时候。将文件云数据和内容存放在同一个实体中,但我们获取文件信息的时候,将会浪费很多不必要的CPU时间和内存。

    解决方法是将文件的云数据和内容使用两个实体类保持,实体1保存元数据,另外一个实体2保存实际的文件内容。实体1里面保存实体2的reference信息,这样但我们列出文件信息的时候,就可以不用去提取文件内容了。

    当然,当我们讨论减少读取频率的时候,我们不得不提到memcache. App Engine的Memcache服务为我们提供了非常高效的分布式缓存系统。您可以存储字符串或者其他实体在里面,并且快速的将其读取出来,从而避免直接从数据存储中重复读取数据。Memcache是一种非常好的数据库读写的替代品,他可以防止由于读取时间过长而导致的数据冲突(contention)。但Memcache并不能完全替代datastore,因为它保存的数据是不稳定,并且随时都有可能被丢弃。 但Memcache的使用,确实可以大大的减少数据库的读写操作,从而提高程序的性能。更多内容请阅读: Effective memcache .

    代码和环境缓存(Python runtime)

    如果你使用Python运行环境,我们强烈建议在你的代码里包含一个main函数。感觉Python 运行环境中关于 “App Caching“的说明, 添加一个 main 函数,将使系统能够缓存key items(比如python脚本,全局变量),这些数据可以在下一个Request中重用。如果没有main函数的情况下,这些脚本将在每个request中重新加载并执行,从而浪费大量的资源,导致响应变慢。

    App Engine 在内存中自动缓存重要的模块,所以你不需要太担心你的脚本使用了太多的模块。但是,正因为这些缓存的存在,您可能会发现一些预期的Reload或Reevaluated可能不会发生,您必须提起注意。

     

    本文网址:http://blog.xuming.net/2010/12/minimize.html

    from 徐明的博客: http://blog.xuming.net/2010/12/minimize.html

    Written by cwyalpha

    十二月 24, 2011 at 6:38 下午

    发表在 Uncategorized

    Thought this was cool: android 入门xml布局文件

    leave a comment »

    LinearLayout和RelativeLayout

    共有属性:
    java代码中通过btn1关联次控件
    android:id=”@+id/btn1″

    控件宽度
    android:layout_width=”80px”    //”80dip”或”80dp”
    android:layout_width =“wrap_content”
    android:layout_width =“match_parent” 

    控件高度
    android:layout_height=”80px”    //”80dip”或”80dp”
    android:layout_height =“wrap_content”
    android:layout_height =“match_parent”

    控件排布
    android:orientation=”horizontal”
    android:orientation=”vertical“

    控件间距
    android:layout_marginLeft=”5dip”      //距离左边
    android:layout_marginRight=”5dip”      //距离右边
    android:layout_marginTop=”5dip”      //距离上面
    android:layout_marginRight=”5dip”      //距离下面

    控件显示位置
    android:gravity=”center”    //left,right, top, bottom
    android:gravity=”center_horizontal”

    android:layout_gravity是本元素对父元素的重力方向。
    android:layout_gravity属性则设置控件本身相对于父控件的显示位置
    android:gravity是本元素所有子元素的重力方向。

    android:layout_gravity=”center_vertical”
    android:layout_gravity=”left”
    android:layout_gravity=”left|bottom”

    TextView中文本字体
    android:text=”@String/text1″    //在string.xml中定义text1的值
    android:textSize=”20sp”
    android:textColor=”#ff123456”
    android:textStyle=”bold”    //普通(normal), 斜体(italic),粗斜体(bold_italic)

    定义控件是否可见
    android:visibility=”visible”     //可见
    android:visibility=”invisible”  //不可见,但是在布局中占用的位置还在
    android:visibility=”gone”   //不可见,完全从布局中消失

    定义背景图片
    android:background=”@drawable/img_bg”    //img_bg为drawable下的一张图片

    seekbar控件背景图片及最大值
    android:progressDrawable=”@drawable/seekbar_img” 
    android:thumb=”@drawable/thumb”           
    android:max = “60”

    仅在RelativeLayout中有效:
    在父亲布局的相对位置
    android:layout_alignParentLeft=”true”     //在布局左边
    android:layout_alignParentRight=”true”    //在布局右边
    android:layout_alignParentTop=”true”     //在布局上面
    android:layout_alignParentBottom=”true ”  //在布局的下面

    在某个控件的相对位置
    android:layout_toRightOf=”@id/button1″  //在控件button1的右边,不仅仅是紧靠着
    android:layout_toLeftOf=”@id/button1″   //在控件button2的左边,不仅仅是紧靠着
    android:layout_below=”@id/button1 ”     //在控件button1下面,不仅仅是正下方
    android:layout_above=“@id/button1”   //在控件button1下面,不仅仅是正下方

    定义和某控件对奇
    android:layout_alignTop=”@id/button1”  //和控件button1上对齐
    android:layout_alignBottom=”@id/button1”  //和控件button1下对齐
    android:layout_alignLeft=”@id/button1”  //和控件button1左对齐
    android:layout_alignRight=”@id/button1”  //和控件button2右对齐

    android:layout_centerHorizontal=”true”        //水平居中
    android:layout_centerVertical=”true”
    android:layout_centerInParent=”true”

    仅在LinearLayout中有效
    设置控件在一排或一列中所占比例值
    android:layout_weight=”1″

    转自:http://www.blogjava.net/zhip/archive/2011/01/25/343511.html

    本文链接

    from 博客园_业精于勤,荒于嬉;行成于思,毁于随: http://www.cnblogs.com/hnrainll/archive/2011/12/23/2299325.html

    Written by cwyalpha

    十二月 23, 2011 at 10:53 上午

    发表在 Uncategorized

    Thought this was cool: R语言多元分析系列之三:多维标度分析

    leave a comment »

    多维标度分析(MDS)是一种将多维空间的研究对象简化到低维空间进行定位、分析和归类,同时又保留对象间原始关系的数据分析方法。

    设想一下如果我们在欧氏空间中已知一些点的座标,由此可以求出欧氏距离。那么反过来,已知距离应该也能得到这些点之间的关系。这种距离可以是古典的欧氏距离,也可以是广义上的“距离”。MDS就是在尽量保持这种高维度“距离”的同时,将数据在低维度上展现出来。从这种意义上来讲,主成分分析也是多维标度分析的一个特例。

    一、距离的度量
    多元分析中常用有以下几种距离,即绝对值距离、欧氏距离(euclidean)、马氏距离(manhattan)、 两项距离(binary)、明氏距离(minkowski)。在R中通常使用disk函数得到样本之间的距离。MDS就是对距离矩阵进行分析,以展现并解释数据的内在结构。

    在经典MDS中,距离是数值数据表示,将其看作是欧氏距离。在R中stats包的cmdscale函数实现了经典MDS。它是根据各点的欧氏距离,在低维空间中寻找各点座标,而尽量保持距离不变。

    非度量MDS方法中,“距离”不再看作数值数据,而只是顺序数据。例如在心理学实验中,受试者只能回答非常同意、同意、不同意、非常不同意这几种答案。在这种情况下,经典MDS不再有效。Kruskal在1964年提出了一种算法来解决这个问题。在R中MASS包的isoMDS函数可以实现这种算法,另一种流行的算法是由sammon函数实现的。
    二、经典MDS
    下面我们以HSAUR2包中的watervoles数据来举例。该数据是一个相似矩阵,表示了不同地区水田鼠的相似程度。首先加载数据然后用cmdscales进行分析。

    library(ggplot2)
    data(watervoles, package = "HSAUR2")
    data(watervoles)
    voles.mds=cmdscale(watervoles,k=13,eig=T)
    下面计算前两个特征值在所有特征值中的比例,这是为了检测能否用两个维度的距离来表示高维空间中距离,如果达到了0.8左右则表示是合适的。
    sum(abs(voles.mds$eig[1:2]))/sum(abs(voles.mds$eig))
    sum((voles.mds$eig[1:2])^2)/sum((voles.mds$eig)^2)

    然后从结果中提取前两个维度的座标,用ggplot包进行绘图。

    x = voles.mds$points[,1]
    y = voles.mds$points[,2]
    p=ggplot(data.frame(x,y),aes(x,y,label = colnames(watervoles)))
    p+geom_point(shape=16,size=3,colour='red')+
    geom_text(hjust=-0.1,vjust=0.5,alpha=0.5)

    三、非度量MDS
    第二例子中的数据是关于新泽西州议员投票行为的相似矩阵,这里我们用MASS包中的isoMDS函数进行分析

    library("MASS")
    data(voting, package = "HSAUR2")
    voting_mds = isoMDS(voting)
    x = voting_mds$points[,1]
    y = voting_mds$points[,2]
    g=ggplot(data.frame(x,y),aes(x,y,label = colnames(voting)))
    g+geom_point(shape=16,size=3,colour='red')+
    geom_text(hjust=-0.1,vjust=0.5,alpha=0.5)

    参考资料:
    A Handbook of Statistical Analyses Using R
    多元统计分析及R语言建模

    from 数据科学与R语言: http://xccds1977.blogspot.com/2011/12/r_22.html

    Written by cwyalpha

    十二月 22, 2011 at 2:08 下午

    发表在 Uncategorized