首页 > 其他 > 详细

2013.5.2 - KDD第十四天

时间:2014-02-18 09:53:57      阅读:395      评论:0      收藏:0      [点我收藏+]

今天早上来了之后就处理语料,然后发现处理好后的gbk编码的语料在HPC上没法训,而utf8在上面训练可以。后来就让它在上面训着,学长还没来。

学长回来之后问他怎么回事,他说不应该,然后我们看了一下第一条的gbk语料,发现可以,然后学长说认为是我处理出来的语料还是有问题,还需要在继续检查。

下午回来之后,就看到了秋哥的邮件:

差不多是这个意思,第三点需要注意的。不仅仅是建立哈工大的高文的这一类,还需要建立中科院的高文的一类,或者另外一个高文的一类。

思路跟附件中Name Disambiguation Using Atomic Clusters很像,可以参考一下,可行的话你就用这个方法做吧。

这篇文章Disambiguating Authors in Academic Publications using Random Forests讲的是判断论文相似度的。

另外可以参考一下清华的唐杰的工作,他们做的arnetminer也是很好的。A Combination Approach to Web User Profiling这个是综述。

这些文章中引用的文章也可以看。差不多就开始写吧。

然后utf的模型已经训完了,gbk的模型还没好。一杯咖啡下去之后,就边听FM电台,边抄自传。

晚上的实验是硬件实验室最后一个实验,向这里说了再见。

回来之后就开始搜论文,找了好多随机森林的资料,然后边搜集边脑补:

随机森林:

在 机器学习中,随机森林是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定。Leo Breiman和Adele Cutler发展出推论出随机森林的算法。 而 "Random Forests" 是他们的商标。 这个术语是1995年由贝尔实验室的Tin Kam Ho所提出的随机决策森林(random decision forests)而来的。这个方法则是结合 Breimans 的 "Bootstrap aggregating" 想法和 Ho 的"random subspace method"" 以建造决策树的集合。

学习算法:

1. 用 N 来表示训练例子的个数,M表示变量的数目。
2. 我们会被告知一个数 m ,被用来决定当在一个节点上做决定时,会使用到多少个变量。m应小于M
3. 从N个训练案例中以可重复取样的方式,取样N次,形成一组训练集(即bootstrap取样)。并使用这棵树来对剩余预测其类别,并评估其误差。
4. 对于每一个节点,随机选择m个基于此点上的变量。根据这 m 个变量,计算其最佳的分割方式。
5. 每棵树都会完整成长而不会剪枝(Pruning)(这有可能在建完一棵正常树状分类器后会被采用)。

Warning:

1. 随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟合。
2. 对于有不同级别的属性的数据,级别划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的。

然后晚上回寝室就开始看《Name Disambiguation Using Atomic Clusters》,发现这篇文章的想法跟我们的想法不只是像而已,简直就是一模一样。这篇文章也是像人工降雨一样,通过利用核(他叫atomic cluster)来聚集其他周围的点。先找到确定性的核,然后围绕核一点点聚集。

不过他的目的跟我们的不太一样。他希望给一堆文章,能把所有簇都聚集起来,而我们是只聚集这个作者的那一簇。而且他的目标是使同簇里面的每一篇文章属于同一个作者就可以了,不用判断是那个作者,而我们的题目需要把簇跟作者对应起来。

这 里面最大的不同就是他的核本身就是带概率的,有一定的不确定性,而按照我们昨天讨论的那个机制,利用那个trick,找到的初始核基本上就是确定的了,基 本上就确定就是这个作者写的。我觉得我们对这个条件可以有所利用,就是突出这个原始核的决定性,就是让后吸收的点对原始正态分布的影响力越来越小,因为后 进来的点是越来越不确定的了。而且为了规划这个影响力的递降曲线,我们可以这样做:


对每个作者,进行如下循环,来聚出这个作者的所有论文:

  1. 对一个作者找到核。
  2. 用核确定正态分布。
  3. 对其余待分样例,利用当前正态分布排序,越接近核的主题越靠 前。然后如果最靠近的那个仍然在正态分布里面,那么就取最前面那个,如果这个点还没有被别的同名作者认领走的话,接下来就要把它整合进来了。但如果排完序 发现即使最靠前的点都不在正态分布里的话,那么这个簇的聚簇结束了(这个界值我们可以再卡得狠一点,具体再商量,要不就先用这个,然后感觉换成狠一点的话 效果更好的话就用更狠的界值)。
  4. 然后再对其余几个簇用论文中给的原算法进行核不是那么确定的聚簇,就叫他预聚簇,这个与聚出来的簇可以供以后进行参考。
  5. 按照当前的影响力等级,用新加进来的样例修改原正态分布(而不是重新排,因为如果重新排的话,所有点都是平等的了,而且核点和非核点就没什么区别了)。
  6. 降低影响力等级。然后如果还有待分类样例点。跳至第3步。

Note:这里影响力的下降曲线(我们需要一个函数,代表当前样例对整体正态分布的影响力,影响力越小他对正太分布的修改权重越小,但这函数我不知 到,大概线性的是最简单的,不过当然最好做成非线性的,参数可训练的那种,然后我们可以进行训练嘛。。。)的陡峭程度我们或许需要训练一下。或者如果效果 不是很明显的话就人为,经验性地定一个吧。

 

另外对上面的第三步还有商量的余地,就是我么也许不需要那么强势,就是删掉"如果这个点还没有被别的同名作者认领走的话"这句话,我们可以先容许重分类点,然后最最后对这些重分类点进行处理。

 

这里仍然没有用到他给出的Train集,我目前想到的利用Train集的方法就是在上面的算法步骤3中,如果样例已经属于其他同名作者了,那么就跳 过该次循环(continue)了。不过他给出的Train集里面更重要的是一些社交信息,我在努力Brain Storm,看看怎么用这个Train集构建社交图。

2013.5.2 - KDD第十四天

原文:http://www.cnblogs.com/SnakeHunt2012/p/3553067.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!