数据挖掘—–自己整理的笔记

July 11th, 2014 by JasonLe's Tech 981 views

将近一个月没有更新博客,主要这期间有太多的考试,数据挖掘就是其中的一门比较难的课程,由于一直不敢怎么掉以轻心,总结了好长的笔记来复习。其实在读研期间也曾考虑学习Data Mining方向,虽说不是很擅长,但是通过这门课也算是data mining入了门。

本科时候也学过这门课,那时候主要以计算为主,其中的原理有很多是云里雾里的感觉。这次的学习,使得我从数据的预处理,到关联规则,分类,聚类的算法,有了清晰的了解,并可以通过分析各个算法的优缺点,改进现有某个算法的存在的问题。

比如:

支持向量机( SVM)是 一种具有高准确率的分类方法。但是SVM 处理大型数据元组集时,速度很慢试开发一种可伸缩的算法克服以上困难。
1,先使用层次聚类的CF-tree构造出微小的聚类簇
2. 找出聚类簇的质心代表该聚类,然后使用SVM进行训练,这样可以大大减少数据元组的数量。
3. 找出超平面来划分这些微型聚类簇。
4. 加入新的聚类簇来进行SVM训练
5. 直到没有新的聚类簇加入,分类完毕

又比如:

提升的基本思想:假设你是一位患者,有某某些症状.你选择咨询多位医生,假设你根据医生先前的诊断准确率,对每位医生的诊断赋予一个权重.然后这些加权诊断的组合最为最终的诊断,这就是提升的基本思想.

提高决策归纳准确性的原因:在提升方法中,权重赋予每个训练元组.迭代的学习K个分类器序列,学习得到分类器Mi之后,更新权重,使得其后的分类器Mi+1”更关注” Mi误分类的训练元组,最终提升的分类器M*组合每个个体分类器,其中每个分类器投票的权重是其准确率的函数。可以扩充提升算法,预测连续值。

这个就是分类与聚类的结合,通过这种方式,我们克服了SVM的缺点,为我们所用!

下面贴出我从数据预处理,OLAP,到数据各种分类算法的笔记:

» Read more: 数据挖掘—–自己整理的笔记

享元模式 C++实现

June 20th, 2014 by JasonLe's Tech 1,193 views

享元模式可以避免大量非常相似类的开销。在程序设计中,有时需要生成大量细粒度的类实例来表示数据。如果能发现这些实例数据除了几个参数外基本都是相同的。有时就能够大幅度地减少实例化的类的数量。如果能把那些参数移到类实例的外面,在方法调用时将它们传递进来,就可以通过共享大幅度地减少单个实例的数目。

» Read more: 享元模式 C++实现

桥梁模式 C++实现

June 19th, 2014 by JasonLe's Tech 1,048 views

桥梁模式主要解决多层继承,比如我们可以想想,人可以分为男人女人,人又有不同的行为。如果把这个两个class继承,也就意味着是男人行为A,男人行为B。女人行为A,女人行为B。
这种方式非常难以扩展,所以桥梁模式派上用场,它将表示和实现解耦,两者可以独立的变化。

其中这种模式又有一些像策略模式,又有一些像建造者模式。当我们考虑一个对象的多个变化因素可以动态变化的时候,考虑使用桥接模式
» Read more: 桥梁模式 C++实现

访问者模式 C++实现

June 17th, 2014 by JasonLe's Tech 1,136 views

访问者模式,顾名思义就是使用vistor类来访问其他类的intern数据,而不改变intern的数据结构和代码。
这样可以分开数据显示和业务逻辑,使得代码更加清晰。

访问者模式的优点就是:灵活度非常高,有优秀的拓展性。
缺点就是:不依赖抽象元素,违反了依赖倒置的原则,直接依赖实现类,拓展实现类比较难。
» Read more: 访问者模式 C++实现

备忘录模式C++实现

June 12th, 2014 by JasonLe's Tech 1,079 views

备忘录模式是一种比较重要的设计模式,如果程序执行错误,我们可以恢复restore之前的状态,就好像我们在编辑word文档,需要撤销原操作,那么我们使用ctrl+Z。
在数据库操作中,这个模式用的非常多!

说白了就是在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态。
» Read more: 备忘录模式C++实现