currently reading articles under you/algorithm

Eratosthenes素数

原理

偶数不是素数,先筛去偶数;

筛去3的倍数;

筛去5的倍数;

……

Example

#include<stdio.h>

#define MAXNUM 1000 // 求1000以内素数

int main(int argc, char const *argv[]) {

int i,j;

int c = 0;

int prime[MAXNUM+1];

for(i=2; i<MAXNUM; i++)

{

prime[i] = 1;//标识为1,表示对应的数默认为素数

}

for (i = 2; i*i......

SVD

优点:简化数据,去除噪声,提高算法的结果。

缺点:数据的转换可能难以理解。

适用数据类型:数值型数据。

Netflix大赛的获奖者就使用了SVD算法。

降维

主成分分析 (PCA)

Principal Component Analysis

在PCA中,数据从原来的坐标系转换到了新的坐标系。新坐标系的选择是由数据本身决定的。

第一个新坐标轴选择的是原始数据中方差最大的方向,第二个新坐标轴选择和第一个坐标轴正交且具有最大方差的方向。该过程一直重复。重复次数为原始数据中特征的数目。

可以发现,大部分方差都包含在最前面的几个新坐标轴中。因此可以忽略后面的坐标轴,从而实现了降维处理。

优点:降低数据复杂性,识别最重要的多个特征。

缺点:不一样需要,可能损失有用信息。

适用数据类型:数值型数据。

FP-growth

搜索引擎自动联想

关联性。比Apiori要快。

FP树

FP-tree

上图中,元素项z右边标识的是5,说明元素项z出现了5次,集合{r,z}出现了一次,于是得到结论:z一定是自身或者和其他符号一起出现了4次。

再看z的其他可能性,集合{t,s,y,x,z}出现了2次,集合{t,r,y,x,z}出现了1次,所以它一定单独出现过1次。

再看下表:

Apriori算法

拉丁语: 一个先验 a priori

目标:找到经常在一起购买的物品集合。