用Python實現人臉檢測-2(數據預處理)

其實,這模塊的PCA部分其實可以不要的,只要對圖像如果預處理得當的話。

但還決定實現一個PCA,因為既然學到了,還是嘗試實現一個,裏面用到numpy模塊進行線性運算。

一般用以檢測的圖片,咱都決定先按比例變換到一個小圖(這裡固定為320的寬度,寬度自適應),當然同時還將像素數據轉換成8位灰度(相比較RGB,數據量少了2/3),然後再對這張小圖進行滑動窗口操作,一旦得到人臉的坐標數據,再按照比例恢復到原圖的坐標位置。這樣應該可以提升一定的效率。

至於使用PCA與否,關鍵還是看你自己的考慮吧,可能并不需要這個,也能得到很好的效率,因為即使20*20的方格裏,也有400個像素特徵,這或許還並不能算多。不過咱還是實現了,在400維降到2維,居然能擁有100%的方差保留。 Continue reading “用Python實現人臉檢測-2(數據預處理)” >

机器学习笔记-12(降维)

上部分讲到了非监督学习算法一种类型”聚类”,并了解到了K平均算法。

这一部分,咱开始讨论非监督学习中的另一类型问题:降维

为什么要对数据进行降维?论动机的话,主要有两个:1、压缩数据 2、利于视觉化数据分析 而且通常情况,对数据进行降维后,还有利于大幅度提升机器学习算法的运行速度。下面,咱来具体讨论。

扯些可能”题外话”。数据降维的处理其实有点类似咱人类的做法,因为人天生就有提取重要特征的能力。其实在课程里Andrew Ng教授给出国家GDP等数据的例子里,便可以看出(从N多的特征中,抽象出几个重要的新特征)。降维其实是一种提取重要特征的方法。

在很多情况下,机器学习算法中使用的特征,数量通常都不会很小。大量的特征配合大数量样本数就产生数量巨大的数据,数据越多,算法运行起来也有可能更慢。此时,咱首先想到的方法是对数据进行压缩。但是具体该使用何种方法呢?这里,咱使用的就是对数据进行降维。 Continue reading “机器学习笔记-12(降维)” >