数据挖掘笔记:Review_2

链接分析

简单PageRank,节点投票,只考虑入度对自己的贡献

为应付爬虫陷阱和终节点,引入一个随机跳转的概率β

大规模PageRank的计算方法,存储上压缩,分批处理,计算加速:

1.   M矩阵的稀疏特点,可以只存储非零元素

2.   将M矩阵存放在磁盘中,运算时分批加载矩阵中的向量

3.   当连r[old]和r[new]这种状态向量也无法存储在内存时,就要把r[old]和r[new]也存在磁盘,运算时分块加载r[old]中的数据和要用到的M中的部分向量,去更新r[new]中的值。Block_base Update和Block_stripe Upadate

4.   矩阵快速幂加速

PPR,个性化PR,对随机跳转集做了限制

SimRank,还是在随机跳转集上做手脚,用相似度作为随机跳转到某节点的概率。

HITS,Hubs & Authorities,综合考虑入度和出度,来回投票互增长。






TrustRank对战WebSpam

WebSpam的两种常用伎俩:

1.       TermSpam

a)       在页面中用背景色插入大量某主题的关键字

b)       将现有的最优搜索结果的内容用背景色插入到自己的页面中

2.       SpamFarm,指向目标Page的不光是自己的‘托’,还从一些正经网页指向,比如博客中的文章、评论等等,并由于PageRank的机制,增加自己‘托’网页的数量将提高目标也的整体评分。

ii.             对付TermSpam,谷歌采用引入对链接附近文字内容的分析,防止挂羊头卖狗肉,并且用PageRank的话那些自身没有入度的‘托’的指向将没有对打价值,还有网页去重也会起作用。

iii.             对付SpamFarm,TrustRank,拉白名单黑名单,评价网页好与坏…将teleports跳出限定在我们认为可信的页面上。

iv.             如何获取那批可信的SeedSet,用PageRank,取得分最高那批,妖魔只能局部拔高不可能真的非常高,真正高分的还是我们的好网站。或者人为限定某些叫可信的域,比如gov,edu这种。

v.             用SpamMass来推测一个页面是不是Spam,SpamMass也就是他的PageRank分减去他的可信跳转分






社团检测
不重叠社团,PPR+LazyRandomWalk找最小割
 
AGM对带重叠的社团检测,MLE,最大似然,找出使“某个模型产生某个图的概率最大“的模型参数。MLE运用于图,通过AGM我们可以得到一个“从模型来的连边的概率矩阵“,又有已知的样本数据点的邻接矩阵,就会有一个从“从模型来的连边的概率矩阵“转化为”样本点邻接矩阵“的概率,就是从我们的模型生成样本网络图的概率。
但是这个最优的模型参数不好找,四个参数不定,他提供的是次优办法,就是逐个优化。
 

BigClam,也就是拉普拉斯矩阵与谱聚类,July和文墨不通的博客甚好。


i.             流程梗概

1.       根据数据构造一个Graph,Graph的每一个节点对应一个数据点,将各个点连接起来(随后将那些已经被连接起来但并不怎么相似的点,通过cut/RatioCut/NCut 的方式剪开),并且边的权重用于表示数据之间的相似度。把这个Graph用邻接矩阵的形式表示出来,记为  W。

2.       把W 的每一列元素加起来得到 N个数,把它们放在对角线上(其他地方都是零),组成一个 N*N的对角矩阵,记为度矩阵D ,并把 W -  D的结果记为拉普拉斯矩阵 L=W-D。

3.       求出 L的前k 个特征值(前 k个指按照特征值的大小从小到大排序得到) ,以及对应的特征向量

4.       把这 k个特征(列)向量排列在一起组成一个N*k 的矩阵,将其中每一行看作 k维空间中的一个向量,并使用 K-means 算法进行聚类。聚类的结果中每一行所属的类别就是原来 Graph 中的节点亦即最初的 N个数据点分别所属的类别。

ii.             拉普拉斯矩阵,就是度矩阵减去邻接矩阵

iii.             需要了解求矩阵特征值时的瑞丽商瑞丽加速以及平移加速








SVM(只介绍大概思路,具体另写svm笔记)

最大化Margin,Margin者,被分开的两拨点之间的道路宽度,最大化Margin就是最大化两拨点之间的最小距离(垂直切割平面方向)。


允许失误,所以引入一个惩罚项


参数寻找,随机梯度下降,还有一个共轭梯度下降,一直没搞懂。课件中的实验结果来说,是多次粗糙的迭代(SGD)比少次精细迭代(CG)效果要好。








决策树

a)           构造总的思路是递归构造子树,主要解决三个问题

                        i.             寻找最佳分裂属性与分裂值

                      ii.             迭代分裂的终止条件,其实也是其他地方说的剪枝

                     iii.             如何设定叶子节点,也就是判定结果

 

b)     最优分裂属性与分裂值(FindBestSplit)

                        i.             回归问题采用计算纯度(purity)来筛选最优划分。

                      ii.             要求最大化“按照某属性X[i]划分,以某值v为界”情况下的纯度

                     iii.             纯度定义,这里奇怪的是|D|不就是n吗(各自消掉不就不起作用吗)。

                          iv.             分类问题采用信息增益(InformationGain)来筛选最优划分。
                v.             较大的信息增益也就是那个属性X携带较多的结果的Y的信息。

                vi.             ID3算法,课件里介绍的基本也就是这种方法

ID3不能处理连贯属性,所以引入ID4.5


a)     如何设定叶子节点,也就是判定结果

i.             回归问题的话,可以用落到该叶子的样本的结果均值来表示该叶子的Prediction。

ii.         分类问题的话可以用样本中的大多数结果来表示该叶子的Prediction。

b)    决策树的MapReduce策略,谷歌的PLANET系统,逐层确定最优分裂属性和分裂值。






猜你喜欢

转载自blog.csdn.net/XiaoPANGXia/article/details/50740143