Pau Machine Learning : PCA algorithm"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Voici le premier épisode de Pau ML, dont le but est d'échanger autour du data science. Pour commencer, nous attaquons une méthode très classique de data mining : l'analyse en composantes principales, ou PCA in english."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"%pylab --no-import-all inline\n",
"from sklearn.decomposition import PCA\n",
"matplotlib.rcParams['figure.figsize'] = 10, 10"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
1. Un exemple jouet"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.84358168 0.15641832]\n"
]
},
{
"data": {
"image/png": "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\nAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"alpha = 4\n",
"size = 100\n",
"a = np.random.uniform(-1, alpha - 1, (size, 2))\n",
"b = np.random.uniform(-2, alpha - 2, (size, 2))\n",
"c = np.random.uniform(-3, alpha - 3, (size, 2))\n",
"d = np.random.uniform(0, alpha, (size, 2))\n",
"e = np.random.uniform(1, 1 + alpha, (size, 2))\n",
"f = np.random.uniform(2, 2 + alpha, (size, 2))\n",
"X = np.concatenate((a,b,c,d,e,f),axis=0)\n",
"pca = PCA(n_components=2)\n",
"plt.scatter(X[:,0],X[:,1])\n",
"pca.fit(X)\n",
"print(pca.explained_variance_ratio_)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"La sortie ci-dessus renseigne le pourcentage de variance expliqué par chacun des axes de l'ACP. Ces valeurs sont calculées grâce à la diagonalisation de la matrice ${}^T\\!XX$, qui représentent les corrélations entre les colonnes de $X$ (les variables de notre problème d'analyse de données). Chaque coefficient de cette matrice est défini par :\n",
"$$\n",
"({}^T\\!XX)_{ij} = \\sum_{k=1}^n X_{ki}X_{kj}, \\forall i,j=1, \\ldots, p. \n",
"$$\n",
"Mathématiquement, l'analyse en composantes principales est un simple changement de représentation (un changement de base): passer d'une représentation canonique (avec la base canonique) à une représentation idéale grâce à la matrice des corrélations (la base des composantes principales). Ci-dessous par exemple voici les nouvelles coordonnées de $X$ dans la nouvelle base :"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[-1.1407521 1.21175499]\n",
" [-1.72795239 -0.81945223]\n",
" [ 0.44470139 1.21012962]\n",
" ..., \n",
" [ 5.04607816 -0.78317897]\n",
" [ 1.8736126 0.05500443]\n",
" [ 1.12783978 0.03421323]]\n"
]
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"newX = pca.transform(X)\n",
"print(newX)\n",
"plt.scatter(newX[:,1], newX[:,1])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
2. Exemple digits"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"L'intérêt de l'analyse en composantes principales est de considérer des données de dimension *plus grande que 2*. Comment représenter des observations ayant un grand nombre de feature ($p=10$, $p=100$ ou $p=10^6$) ? Comment réduire la dimension en tenant compte des corrélations entre les caractères ? "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"