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 ...
随机推荐
- [LeetCode] 323. Number of Connected Components in an Undirected Graph 无向图中的连通区域的个数
Given n nodes labeled from 0 to n - 1 and a list of undirected edges (each edge is a pair of nodes), ...
- [LeetCode] 844. Backspace String Compare 退格字符串比较
Given two strings S and T, return if they are equal when both are typed into empty text editors. # m ...
- .Net Core控制台应用程序使用依赖注入、配置文件等
.Net Core作为一门新语言,资料实在是太少了,并且国内学习的人也不多,虽然性能还行也跨平台了但是生态圈不发展起来也不行 刚出来的时候用 .Net Core + Dapper + Mysql 弄了 ...
- Laravel 数据库实例教程 —— 使用查询构建器对数据库进行增删改查
原文地址:https://blog.csdn.net/lmy_love_/article/details/72832259 获取查询构建器很简单,还是要依赖DB门面,我们使用DB门面的table方法, ...
- POJ8469 特殊密码锁
总时间限制: 1000ms 内存限制: 1024kB 描述 有一种特殊的二进制密码锁,由n个相连的按钮组成(n<30),按钮有凹/凸两种状态,用手按按钮会改变其状态. 然而让人头疼的是,当你按一 ...
- 阿里云使用Docker部署工单系统(redmine)
环境:阿里云服务器 Redmine安装部署 Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统,据说是源于Basecamp的ror版而来,支持多种数据 ...
- list<Integer>,Integer[],int[]之间的互转(jdk1.8)
偶然在开发过程中需要将int[] 转成 List<Integer>,采用了遍历的方式,写的代码实在太多. List<Integer> list = new ArrayList& ...
- Wing电信平台操作方法
Wing电信平台操作文档 当前文档编制于2019/9/3 一.登陆 登陆网址 https://www.ctwing.cn/ 点击右上角控制台 点击左侧栏点击产品中心 选择需要注册的产品 二.注册设备 ...
- Layui + thymeleaf org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: " 错误解决
解决方法: 1.将layui的代码移动到新的js文件当中,用template模板引擎的方式引入: <script th:src="@{/static/js/facility/mover ...
- PowerShell命令批量添加、导出AD用户
导入单个AD用户命令 New-ADUser -Name "周八" -Surname "周" -GivenName "八"-SamAccoun ...