like可以用于字符串的匹配,其一般语法如下:
1 | [not] like '<匹配串>' [escape '<换码字符>'] |
其含义是查找指定的属性列值与<匹配串>相匹配的元组。<匹配串>可以是一个完整的字符串,也可以含有通配符 % 和 _ 。
- %:匹配任意长度(长度可以为0)的字符串
- _:匹配任意单个字符(一个汉字占两个字符)
like可以用于字符串的匹配,其一般语法如下:
1 | [not] like '<匹配串>' [escape '<换码字符>'] |
其含义是查找指定的属性列值与<匹配串>相匹配的元组。<匹配串>可以是一个完整的字符串,也可以含有通配符 % 和 _ 。
union用于合并两个或多个select语句的结果集。
需要注意的是,union合并的两个或多个表必须有相同的列数,且相应的列必须取自同一个域(即数据类型相似,如都是数值型),此外,每条select语句中列的顺序必须相同。
主成分分析(Principal Component Analysis,简称PCA)。
$$
\begin{align}
\hline
& PCA算法 \\
\hline
& 输入:样本集D=\{x_1,x_2,\dots,x_m\};低维空间维数d^{‘} \\
& 过程: \\
& 1. 对所有样本进行中心化:x_i \leftarrow x_i - \frac{1}{m} \sum_{i=1}^{m} x_i;\\
& 2.计算样本的协方差矩阵XX^{T}; \\
& 3.对协方差矩阵XX^{T}做特征值分解; \\
& 4.取最大的d^{‘}个特征值所对应的特征向量w_1,w_2,\dots,w_{d^{‘}}. \\
& 输出:投影矩阵W=(w_1,w_2,\dots,w_{d^{‘}})
\end{align}
$$
PageRank是一个搜索排名算法,由Sergey Brin和Larry Page在1998年第七届国际万维网大会上提出的。基于这一算法,他们创建了Google搜索引擎。
在介绍PageRank之前,先来了解一些主要概念。
页面i的入链(In-links of page i):从其他网页链接到网页$i$的超链接数,通常不包括来自同一站点内网页的链接。
网页i的出链(Out-links of page i):从网页$i$链接到其他网页的超链接数,通常不包括链接到同一站点内网页的超链接。
支持度(support):数据集中包含该项集的记录所占的比例。
可信度或置信度(confidence):
$A \rightarrow B$的置信度为
$$
confidence(A\rightarrow B) = \frac{support(A , B)}{support(A)}
$$
Apriori原理:如果一个项集是非频繁的,那么它的所有超集也是非频繁的。
If an itemset is not frequent, any of its superset is never frequent.
Apriori算法
1.从大小为k的频繁项集中生成大小为k+1的候选频繁项集$C_{k+1}$
2.扫描数据库,计算每一个候选频繁项集的支持度
3.将满足最小支持度的频繁项集加到$F_{k+1}$中
$$
\begin{align}
\hline
& 算法\ Apriori \\
\hline \\
& F_1 = (大小为1的频繁项集); \\
& for(k = 1; F_k \neq \varnothing; k++)\ do\ begin \\
& \qquad C_{k+1} = apriori-gen(F_k);//新的候选频繁集 \\
& \qquad for\ 所有的交易记录t \in 数据集\ do\ begin \\
& \qquad \qquad C_{t}^{‘}= subset(C_{k+1},t);\ //包含在t中的候选集 \\
& \qquad \qquad for\ 所有的候选c \in C_{t}^{‘}\ do \\
& \qquad \qquad \qquad c.count ++; \\
& \qquad \qquad end \\
& \qquad \qquad F_{k+1} = \{C \in C_{k+1} |\ c.count \geq 最小的支持度 \} \\
& \qquad end \\
& end \\
& Answer \cup_{k} F_k;
\end{align}
$$
算法第三行中的apriori-gen函数经过下面两步,从$F_k$生成$C_{k+1}$
1.连接
通过合并两个大小为k,且前$k-1$项相同的频繁项集$P_k$和$Q_k$,生成大小为k+1的频繁项集$R_{k+1}$
$$
\begin{align}
& R_{k+1} = P_{k} \cup Q_{k} = \{items_{1},\dots ,items_{k-1},items_{k},items_{k^{‘}}\} \\
& P_{k} = \{items_{1},\dots ,items_{k-1},items_{k}\} \\
& Q_{k} = \{items_{1},\dots ,items_{k-1},items_{k^{‘}}\}
\end{align}
$$
其中,$items_1 < \dots < items_k < items_{k^{‘}}$
2.剪枝
检查$R_{k+1}$中的所有大小为的项集中的所有大小为的项集是不是频繁的,删除中的所有大小为的项集中的所有大小为k的项集是不是频繁的,删除$R_{k+1}$中那些非频繁的项集,从而得到中那些非频繁的项集,从而得到$C_{k+1}$。因为$C_{k+1}$中大小为且非频繁的所有子集不是大小为中大小为k且非频繁的所有子集不是大小为k+1的频繁项集的子集。
示例:
假设最小支持度为2
数据库D
TID | Items |
---|---|
100 | $1 \quad 3 \quad 4$ |
200 | $2 \quad 3 \quad 5$ |
300 | $1 \quad 2 \quad 3 \quad 5$ |
400 | $2 \quad 5$ |
$C_1$
{1} | 2 |
{2} | 3 |
{3} | 3 |
{4} | 1 |
{5} | 3 |
$F_1$
项集 | 支持度 |
---|---|
{1} | 2 |
{2} | 3 |
{3} | 3 |
{5} | 3 |
$C_2$
项集 | 支持度 |
---|---|
{ 1, 2 } | 1 |
{ 1, 3 } | 2 |
{ 1, 5 } | 1 |
{ 2, 3 } | 2 |
{ 2, 5 } | 3 |
{ 3, 5 } | 2 |
$F_2$
项集 | 支持度 |
---|---|
{ 1, 3 } | 2 |
{ 2, 3 } | 2 |
{ 2, 5 } | 3 |
{ 3, 5 } | 2 |
$C_3$
项集 | 支持度 |
---|---|
{ 1 , 2 , 3 } | 1 |
{ 1 , 2 , 5 } | 1 |
{ 1 , 3 , 5 } | 1 |
{ 2 , 3 , 5 } | 2 |
$F_3$
项集 | 支持度 |
---|---|
{ 2 , 3 , 5 } | 2 |