xi_i, s.t. forall i,y_i (w x_i + b) >= 1- xi_i`
其中$\xi_i$ 惩罚项,如果i 被分对,则$\xi_i = 0$ 否则$\xi_i=\gamma + distance(x_i, L)$ 。其中上式为Hinge Loss,跟Android Ng 的ML课程讲的SVM 提到的也就比较一致了。 更确切的SVM 的目标函数应为: `f(w,b) = 1/2 sum_(j=1)^d (vec w^j)2 + C sum_(i=1)^n max{0,1 - y_i(sum_(j=1)^d vec w^j vec x_i^j +b)` 然后用(B)GD 或 SGD 即可求解$w,b$
先说Information Gain的概念:
IG(Y | X) : We must transmit Y over a binary link. How many bits on average would it save us if both ends of the line knew X? DT 建树时有两个问题需要考虑:- 如何最最佳的分裂节点?IG最大的
- 何时停止分裂?IG小于某个阀值,或叶子节点上的数据点数量达到下限数量了,或者叶子节点总数达到一定值。
- 叶子节点值怎么得?分类分题,就是多数的分类;回归问题:可求平均;或用线性回归再针对叶子上的样本拟合一下。
Entropy, `H(X) = - sum_(j=1)^m p_j log p_j` 其实反映了X 中各元素相互转换所需要的信息量。
What’s the smallest possible number of bits, on average, per symbol, needed to transmit a stream of symbols drawn from X’s distribution?
所以,大信息熵意味中X 中元素分布越分散越均匀;小信息熵代表X 中元素分布越集中。
SVM 和DT 对比
SVM
Example applications
Example applications
MR 里面重点考虑两个方面
而后者实际上更耗时,所以要尽量降低后者,比如让reduce 阶段的replications 更少。如此MR 的好坏就由如下两个方面进行衡量。
例如$n*n$ 的两个矩阵A 和矩阵B相乘,一般情况下的解决方法如后。假如单个reducer 输入为q,则实际只能拿到为q/n 这么多数量的行/列;假设其拿到最多q/2n 行,q/2n 列,那么这个reducer 最多产出`q^2/(4n^2)` 个数。因为产出$n^2$ 的数,则至少需要`(4n^4)/q^2` 个reduers,则输入所有reduers 的inputs 数量为 `(4n^4)/q`,则因为总的原输入为$2n^2$,则`r=(2n^2)/q`。故而communication cost 为$4n^4 * r$
而如果把A 分解成多个`g*g/2` 的小块儿,把B 分解成多个`g/2*g` 的小块儿。如此两个阶段的MR 也可以减少communication cost 为`4n^2g=(4n^3)/sqrt(q)`(参见最后week 6最后一讲末页)。
A family H of hash functions is said to be $(d_1,d_2,p_1,p_2)$-sensitive if for any x and y in S:
- If $d(x,y) < d_1$, then the probability over all h in H, that h(x) = h(y) is at least $p_1$.
- If $d(x,y) > d_2$, then the probability over all h in H, that h(x) = h(y) is at most $p_2$.
如此,我们也可以用AND 和OR 的形式分别定义 $(d_1,d_2,p_1^r,p_2^r)$-sensitive 和 $(d_1,d_2,1-(1-p_1)^b,1-(1-p_2)^b)$-sensitive 同时,也可以组合AND-OR的使用得到新的形式。
设两个串的Jacquard Distance为$J = E/(E+C)$,E、C 分别表示edit distance和共串的长度。而若一串长L,则另一串长M应:`L*(1-J)<=M<=L/(1-J)`
所以,通常,我们对string就下取整取`|__ JL+1 __|` 个prefix chars来index,放入对应的hash buckets 中,查找的时候就可以根据prefix 对应的buckets 进行查找。
假设,字符串probe string $s$(长度L)和目标匹配t中,最先相等的是$s[i] == t[j]$(索引从1 开始),那么两者的edit distance 一定有`E>=i+j-2`,而最长子串LCS 长度$C<=L- i +1$
所以`J = E/(E+C) >= (i+j-2)/(L+J-1)` 则 `j<=(JL-J-i+2/(1-J))`
之前的Page Rank 公式简略如后:
` vec r^(n+1) = (beta * M + (1-beta)/n vec e * vec e^T) * vec r ^n `
原始的PR,就是$1-\beta$ 的random teleports 是针对所有节点的。现在就像把random walk 仅仅限制在符合Topic 的S集合节点里面则:
` vec r^(n+1) = (beta * M + (1-beta)/|S| * E_s) * vec r ^n `
其中$E_s$ 中,$E_{ij} = 1, if\ i \in S$ (亦即teleport 到S 集合中的点才为1),其余为0,即所有指向S 中节点的对应矩阵位置才为1。其实就是把网络权重向S 中的节点倾斜。
Hubs and Authorities 直观的理解是,出度比较多的可以叫Hubs,入度比较多的点可以叫Authorities。而且两者可以迭代相互贡献。即
` h_i = sum_(i -> j) a_j, a_j = sum_(i -> j) h_i `
HITS algorithm 计算Hubs & Authorities 的步骤就是:
大家知道PR 是怎么运作的后,很多人甚至也就想到了通过spam 来优化排名。可以分析一下背后的原理。最简单的就是通过无数多的farm pages 来跟待优化的target page相互指向。
设x,是原始的PR score, y 是通过spam 途径调整target 后的PR score,那么farm pages 的PR score 就是`beta * y / M + (1-beta)/n`,那么target page 的PR score 为:
`y = x + beta * M * (beta * y / M + (1-beta)/n) + (1-beta)/n`
则: ` y = x / (1-beta^2) + (beta*M)/((1+beta)n) + 1/((1+beta)*n)`
所以,实际上,只需要提高M 中对target 起贡献的farm pages 的数量,就能提高y。
避免上述spam,可以通过使用top PR值的URL 或权威域名(.edu .gov)的URL,先建立Topic-PR $r^+$ ;而通过全局计算$r$ ,如果`r/ r^+` 比1 大很多,则越可能是spam。
Mathjax was not loaded successfully
Original post: http://blog.josephjctang.com/2015-10/notes-of-mmds-week5/
写作的习惯,已经断了许久了。上一篇已经是去年的文章了,也是做的[时间日志分析]({% post_url 2019-02-23-time-log-analysis %}) 。 正好做时间总结,也把写作捡起来吧。# 低效时间分析用 [RescueTime](https://www.rescueti...… Continue reading