PCA + kmeans

先记录一下PCA实战需要用到的安装包(arch下,python2环境)

python2-scikit-learn

python2-numpy

python2-pandas

python2-matplotlib

python2-seaborn

pandas.DataFrame

pandas 数据结构介绍

 

几个和科学计算数据分析有关的重要的python库: NumpyMatplotlib ,pandas

(之前数字图像处理课程都接触过了orz)

其中matplotlib 主要用于图像绘制

sklearn 是用于机器学习的python 模块

Seaborn也是用于图像绘制

 

 

str.fomat() 是 python2语法

format中的变量会按照str中{} 出现的顺序替换

 

 

 

 

PCA+kmeans 时间对比:

代码:

 

k-means clustering 学习笔记

其实这算法巨简单。。。。让我想到了均分纸牌(noip200?

还是大致说一下:

对于有 features 但是 没有 labels 的数据,没办法用监督学习,但是可以使用非监督学习的聚类算法。

所谓聚类,简单理解,就是把相似的分成一组。。。

k-means就是一个常见的聚类算法。。。

k代表可以把数据分成k组。

举一个平面上二维点的例子,算法步骤如下:

  1. 随机k个点当做k个点作为k组的中心。
  2. 根据现在的k个中心,将数据集中的点,按照【距离哪个中心最近就属于哪个中心】的原则,分组。
  3. 在每一个组内求点的二维平均数,作为新的中心。如果存在一个组的数据中心改变,那么返回2,否则结束

 

可以很容易推广到高维度,就只是求平均数和算距离的时候有区别。

一般化的流程:

 

 

然后该算法是Expectation Maximization的一个特例

该算法和KNN算法没有半毛钱关系。。。

 

参考资料:

k means 维基百科

CS221-kmeans