2013.5.2 - KDD第十四天
今天早上来了之后就处理语料,然后发现处理好后的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,找到的初始核基本上就是确定的了,基
本上就确定就是这个作者写的。我觉得我们对这个条件可以有所利用,就是突出这个原始核的决定性,就是让后吸收的点对原始正态分布的影响力越来越小,因为后
进来的点是越来越不确定的了。而且为了规划这个影响力的递降曲线,我们可以这样做:
对每个作者,进行如下循环,来聚出这个作者的所有论文:
- 对一个作者找到核。
- 用核确定正态分布。
- 对其余待分样例,利用当前正态分布排序,越接近核的主题越靠
前。然后如果最靠近的那个仍然在正态分布里面,那么就取最前面那个,如果这个点还没有被别的同名作者认领走的话,接下来就要把它整合进来了。但如果排完序
发现即使最靠前的点都不在正态分布里的话,那么这个簇的聚簇结束了(这个界值我们可以再卡得狠一点,具体再商量,要不就先用这个,然后感觉换成狠一点的话
效果更好的话就用更狠的界值)。 - 然后再对其余几个簇用论文中给的原算法进行核不是那么确定的聚簇,就叫他预聚簇,这个与聚出来的簇可以供以后进行参考。
- 按照当前的影响力等级,用新加进来的样例修改原正态分布(而不是重新排,因为如果重新排的话,所有点都是平等的了,而且核点和非核点就没什么区别了)。
- 降低影响力等级。然后如果还有待分类样例点。跳至第3步。
Note:这里影响力的下降曲线(我们需要一个函数,代表当前样例对整体正态分布的影响力,影响力越小他对正太分布的修改权重越小,但这函数我不知
到,大概线性的是最简单的,不过当然最好做成非线性的,参数可训练的那种,然后我们可以进行训练嘛。。。)的陡峭程度我们或许需要训练一下。或者如果效果
不是很明显的话就人为,经验性地定一个吧。
另外对上面的第三步还有商量的余地,就是我么也许不需要那么强势,就是删掉"如果这个点还没有被别的同名作者认领走的话"这句话,我们可以先容许重分类点,然后最最后对这些重分类点进行处理。
这里仍然没有用到他给出的Train集,我目前想到的利用Train集的方法就是在上面的算法步骤3中,如果样例已经属于其他同名作者了,那么就跳
过该次循环(continue)了。不过他给出的Train集里面更重要的是一些社交信息,我在努力Brain
Storm,看看怎么用这个Train集构建社交图。
2013.5.2 - KDD第十四天的更多相关文章
- 2013.5.3 - KDD第十五天
今天上午把昨天的想法给中秋发过去了,然后我就开始科普随机森林: 随机森林是一种比较新的机器学习模型.经典的机器学习模型是神经网络,有半个多世纪的历史了.神经网络预测精确,但是计算量很大.上世纪八十年代 ...
- Dynamic CRM 2013学习笔记(二十四)页面保存前进行逻辑验证
我们有时要验证下页面上的一些逻辑,比如开始时间不能晚于结束时间,不对时不让保存.我们可以在相关的字段事件上处理,但这如果要判断的字段比较多时,就比较麻烦了. 这时候我们就可以利用Form的OnSave ...
- Dynamic CRM 2013学习笔记(三十四)自定义审批流5 - 自动邮件通知
审批过程中,经常要求自动发邮件:审批中要通知下一个审批人进行审批:审批完通知申请人已审批完:被拒绝后,要通知已批准的人和申请人.下面详细介绍如何实现一个自动发邮件的插件: 1. 根据审批状态来确定 ...
- 2013.5.4 - KDD第十六天
昨天下午的时候中秋给我发短信"待会儿上课吧?上课讨论下?",然后我回复"嗯,好的."然后上课的时候中秋说那个方案也许不太好执行,因为他后来看数据了,数据库里面这种"可以从从协同作者进行判断"的例子并不 ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(十四):请求消息去重
为了确保信息请求消息的到达率,微信服务器在没有及时收到响应消息(ResponseMessage)的情况下,会多次发送同一条请求消息(RequestMessage),包括MsgId等在内的所有文本内容都 ...
- Dynamic CRM 2013学习笔记(二十)字段改变事件的二种实现方法
CRM里有二种方式实现字段change事件,一种是在form里,一种完全通过js来实现.本文介绍下二者的用途及区别. 1. Form里用法 这种方式估计其实也是添加一个js的function. 这种方 ...
- Dynamic CRM 2013学习笔记(二十五)JS调用web service 实现多条记录复制(克隆)功能
前面介绍过如何克隆一条当前的记录: Dynamic CRM 2013学习笔记(十四)复制/克隆记录 , 主要是通过界面上加一个字段,单击form上的clone 按钮时,改变这个字段的值以触发插件来实现 ...
- 《Linux命令行与shell脚本编程大全》 第十四章 学习笔记
第十四章:呈现数据 理解输入与输出 标准文件描述符 文件描述符 缩写 描述 0 STDIN 标准输入 1 STDOUT 标准输出 2 STDERR 标准错误 1.STDIN 代表标准输入.对于终端界面 ...
- Linux时间子系统之(十四):tick broadcast framework
专题文档汇总目录 Notes:BroadcastTick作为cpuidle的waker,硬件基础.BroadcastTick嵌入在当前系统Tick框架中.BroadcastTick设备初始化:周期性T ...
随机推荐
- DevOps - DevOps精要 - 变革
特别说明 本文是已读书籍的学习笔记和内容摘要,原文内容有少部分改动,并添加一些相关信息,但总体不影响原文表达. <DevOps入门与实践> :本书结合实例详细介绍了在开发现场引入DevOp ...
- Kubernetes 健康状态检查(九)
强大的自愈能力是 Kubernetes 这类容器编排引擎的一个重要特性.自愈的默认实现方式是自动重启发生故障的容器.除此之外,用户还可以利用 Liveness 和 Readiness 探测机制设置更精 ...
- c++之vector容器入门
对于c++的vector容器的函数应用: #include<string> #include<iostream> #include<vector> using na ...
- Jetson TX2
NVIDIA Jetson TX2作为一个嵌入式平台的深度学习端,具备不错的GPU性能,可以发现TX2的GPU的计算能力是6.2.这意味着TX2对半精度运算有着良好的支持,因此,完全可以在桌面端训练好 ...
- 微前端框架 single-spa
单体应用对比前端微服务化 普通的前端单体应用 微前端架构 1.基本概念 实现一套微前端架构,可以把其分成四部分(参考:https://alili.tech/archive/11052bf4/) 加载器 ...
- Java基础笔试练习(十二)
1.(C#.JAVA)扩展方法能访问被扩展对象的public成员 A.能 B.不能 答案: A 解析: 翻译一下,子类方法是否能够访问父类中的public成员. 2.如果子类要调用父类的构造函数,则通 ...
- 38 多线程(十)——volatile 数据同步
在多线程并发的情况下,同一个变量被多个线程调用,那修改的数据就不会每分每秒保持一致.例如,对于某个变量a,线程1对它进行一套操作,线程2又对它进行另一套操作,但如果cpu太忙了,太忙了,假设cpu都用 ...
- PAT(B) 1065 单身狗(Java:17分,C:25分)
题目链接:1065 单身狗 (25 point(s)) 题目描述 "单身狗"是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式 ...
- Magic Line(思维+计算几何问题)(2019牛客暑期多校训练营(第三场))
示例: 输入: 140 1-1 01 00 -1 输出:-1 999000000 1 -999000001 题意:给定平面上一系列的点,求一条以(x1,y1),(x2,y2)两点表示的直线将平面分为包 ...
- Linux 打包和压缩
常用的打包压缩方式 windows常用rar mac常用zip linux常用tar.gz 打包/解包 tar是linux中最常用的备份工具,此命令可以把一系列的文件打包到一个大文件中,也可以把一个打 ...