原理:
https://www.cnblogs.com/hellochennan/p/6654126.html
https://www.cnblogs.com/hellochennan/p/6654128.html
https://www.cnblogs.com/hellochennan/p/6654129.html
常见问题https://www.cnblogs.com/hellochennan/p/6654134.html
监督学习
KNN
1.优点:
1)简单,易于理解,易于实现,无需估计参数,无需训练。
2) 适合对稀有事件进行分类。
3)特别适合于多分类问题(multi-modal,对象具有多个类别标签), kNN比SVM的表现要好。
2.缺点:
1)该算法在分类时有个主要的不足是,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。 该算法只计算“最近的”邻居样本,某一类的样本数量很大,那么或者这类样本并不接近目标样本,或者这类样本很靠近目标样本。无论怎样,数量并不能影响运行结果。
2)该方法的另一个不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。
3)可理解性差,无法给出像决策树那样的规则。
4)类别评分不是规则化的。
3.改进策略:
针对以上算法的不足,算法的改进方向主要分成了分类效率和分类效果两方面。
分类效率:事先对样本属性进行约简,删除对分类结果影响较小的属性,快速的得出待分类样本的类别。该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。
分类效果:采用权值的方法(和该样本距离小的邻居权值大)来改进,Han等人于2002年尝试利用贪心法,针对文件分类实做可调整权重的k最近邻居法WAkNN (weighted adjusted k nearest neighbor),以促进分类效果;而Li等人于2004年提出由于不同分类的文件本身有数量上有差异,因此也应该依照训练集合中各种分类的文件数量,选取不同数目的最近邻居,来参与分类。
非监督学习——聚类
算法的优缺点
K-means
1.优点:
1)算法快速、简单。
2)对大数据集有较高的效率并且是可伸缩性的。
3)时间复杂度近于线性,为O(nkt),适合挖掘大规模数据集。
2.缺点:
1)k是事先给定的,这个k值的选定是非常难以估计的。
2)在该算法中首先需要根据初始聚类中心来确定一个初始划分,然后对初始聚类中心进行优化。这个初始聚类中心的选择对聚类结果又较大影响,一旦初始值选择的不好,可能无法得到有效的聚类结果。
3)从K-means算法中可以看出,该算法需要不断地进行样本分类调整,不断地计算调整后的新的聚类中心,因此数据量非常大时,算法的时间开销也是非常大的。
3.改进:
基于熵值法及动态规划的改进k-means算法。
熵值法用来修订算法的距离计算公式,以提高算法的聚类精确程度, 动态规划算法用来确定算法的初始聚类中心。
非监督学习——关联
Apriori
是经典的关联规则数据挖掘算法。
1.优点:
1)简单、易理解。
2)数据要求低。
2.缺点:
1)在每一步产生候选项目集时循环产生的组合过多,没有排除不应该参与组合的元素。
2)每次计算项集的支持度时,都对数据库中的全部记录进行了一遍扫描比较,如果是一个大型的数据库时,这种扫描会大大增加计算机的I/O开销。
3.改进:
1)利用建立临时数据库的方法来提高Apriori算法的效率。
2)Fp-tree 算法。以树形的形式来展示、表达数据的形态;可以理解为水在不同河流分支的流动过程。
3)垂直数据分布。相当于把原始数据进行行转列的操作,并且记录每个元素的个数。