最近在搞数据挖掘和推荐系统的项目,借着项目,自己简单吧常用的算法总结了一下,记录下来便于自己理解以及后期的学习,如有不对的地方请大家指出!
1.ALS算法原理?
答:对于user-product-rating数据,als会建立一个稀疏的评分矩阵,其目的就是通过一定的规则填满这个稀疏矩阵。
als会对稀疏矩阵进行分解,分为用户-特征值,产品-特征值,一个用户对一个产品的评分可以由这两个矩阵相乘得到。
通过固定一个未知的特征值,计算另外一个特征值,然后交替反复进行最小二乘法,直至差平方和最小,即可得想要的矩阵。
2、kmeans算法原理?
随机初始化中心点范围,计算各个类别的平均值得到新的中心点。
重新计算各个点到中心值的距离划分,再次计算平均值得到新的中心点,直至各个类别数据平均值无变化。
3、canopy算法原理?
根据两个阈值来划分数据,以随机的一个数据点作为canopy中心。
计算其他数据点到其的距离,划入t1、t2中,划入t2的从数据集中删除,划入t1的其他数据点继续计算,直至数据集中无数据。
4、朴素贝叶斯分类算法原理?
对于待分类的数据和分类项,根据待分类数据的各个特征属性,出现在各个分类项中的概率判断该数据是属于哪个类别的。
5、关联规则挖掘算法apriori原理?
一个频繁项集的子集也是频繁项集,针对数据得出每个产品的支持数列表,过滤支持数小于预设值的项,对剩下的项进行全排列,重新计算支持数,再次过滤,重复至全排列结束,可得到频繁项和对应的支持数。
分类算法(离散值)
6.决策树
-- ID3 算法通过使用还未被划分的属性的最高信息增益,信息熵的下降速度来确定根节点或分支的测试属性.
ID3通过计算每个数据的信息增益,认为信息增益高的是好属性,依次重复计算未划分的属性增益.
-- C4.5算法是通过将属性集A内属性快熟排序,取相邻两个属性值的平均数计算信息增益比率,取增益比率最高的作为根节点.
对缺失处理:策略是为属性A的每个可能值赋予一个概率。
后减枝方式:
-- cart减枝方式.
将树的代价复杂度看作树中叶子结点的个数和树的错误率的函数。它从树的底部开始,对于每个内部结点Node,计算Node处的子树的代价复杂度和该子树剪枝Node处子树(即用一个叶子结点替换)的代价复杂度。 比较这两个值,如果剪去Node结点的子树导致较小的代价复杂度,则剪去该子树;否则保留该子树。一般最小化代价复杂度的最小决策树是首选<