From 204804be2385dd4d146f7b0a1f483f893a25ece0 Mon Sep 17 00:00:00 2001 From: mhjensen Date: Sun, 29 Dec 2019 21:59:45 +0100 Subject: [PATCH] updating --- doc/pub/DimRed/html/._DimRed-bs019.html | 3 +++ doc/pub/DimRed/html/._DimRed-bs024.html | 5 ++-- doc/pub/DimRed/html/._DimRed-bs029.html | 5 ---- doc/pub/DimRed/html/DimRed-reveal.html | 9 ++++--- doc/pub/DimRed/html/DimRed-solarized.html | 24 +++++++++---------- doc/pub/DimRed/html/DimRed.html | 10 ++++---- doc/pub/DimRed/ipynb/DimRed.ipynb | 3 ++- doc/pub/DimRed/ipynb/ipynb-DimRed-src.tar.gz | Bin 191 -> 191 bytes doc/pub/DimRed/pdf/DimRed-minted.pdf | Bin 262362 -> 262351 bytes doc/src/DimRed/DimRed.do.txt | 5 ++-- 10 files changed, 28 insertions(+), 36 deletions(-) diff --git a/doc/pub/DimRed/html/._DimRed-bs019.html b/doc/pub/DimRed/html/._DimRed-bs019.html index 0281b99d7..e0a87c053 100644 --- a/doc/pub/DimRed/html/._DimRed-bs019.html +++ b/doc/pub/DimRed/html/._DimRed-bs019.html @@ -232,6 +232,9 @@ low-dimensional encoding of the data is then given by a set of vectors orthogonal projection of the data onto the columns spanned by the eigenvectors of the covariance(correlations matrix). +

+The proof which follows will be updated by mid January 2020. +

diff --git a/doc/pub/DimRed/html/._DimRed-bs024.html b/doc/pub/DimRed/html/._DimRed-bs024.html index 2be659898..9fd66c361 100644 --- a/doc/pub/DimRed/html/._DimRed-bs024.html +++ b/doc/pub/DimRed/html/._DimRed-bs024.html @@ -206,9 +206,8 @@ MathJax.Hub.Config({

Principal Component Analysis

-
-
-

+ +

Principal Component Analysis (PCA) is by far the most popular dimensionality reduction algorithm. First it identifies the hyperplane that lies closest to the data, and then it projects the data onto it. diff --git a/doc/pub/DimRed/html/._DimRed-bs029.html b/doc/pub/DimRed/html/._DimRed-bs029.html index 1c29effce..8a4f7a1fd 100644 --- a/doc/pub/DimRed/html/._DimRed-bs029.html +++ b/doc/pub/DimRed/html/._DimRed-bs029.html @@ -213,11 +213,6 @@ algorithm that quickly finds an approximation of the first d principal component complexity is \( O(m \times d^2)+O(d^3) \), instead of \( O(m \times n^2) + O(n^3) \), so it is dramatically faster than the previous algorithms when \( d \) is much smaller than \( n \). -

-

-
- -

diff --git a/doc/pub/DimRed/html/DimRed-reveal.html b/doc/pub/DimRed/html/DimRed-reveal.html index 9c2731ba5..d27980dab 100644 --- a/doc/pub/DimRed/html/DimRed-reveal.html +++ b/doc/pub/DimRed/html/DimRed-reveal.html @@ -1143,6 +1143,9 @@ low-dimensional encoding of the data is then given by a set of vectors \( \boldsymbol{z}_i \) with at most \( l \) vectors, with \( l < < p \), defined by the orthogonal projection of the data onto the columns spanned by the eigenvectors of the covariance(correlations matrix). + +

+The proof which follows will be updated by mid January 2020. @@ -1298,8 +1301,7 @@ This material will be added by mid January 2020.

Principal Component Analysis

-
- +

Principal Component Analysis (PCA) is by far the most popular dimensionality reduction algorithm. First it identifies the hyperplane that lies closest to the data, and then it projects the data onto it. @@ -1477,9 +1479,6 @@ Scikit-Learn offers yet another option to perform PCA, called Randomized PCA. Th algorithm that quickly finds an approximation of the first d principal components. Its computational complexity is \( O(m \times d^2)+O(d^3) \), instead of \( O(m \times n^2) + O(n^3) \), so it is dramatically faster than the previous algorithms when \( d \) is much smaller than \( n \). - - -

diff --git a/doc/pub/DimRed/html/DimRed-solarized.html b/doc/pub/DimRed/html/DimRed-solarized.html index af3fb6759..f34ee2991 100644 --- a/doc/pub/DimRed/html/DimRed-solarized.html +++ b/doc/pub/DimRed/html/DimRed-solarized.html @@ -1115,6 +1115,9 @@ low-dimensional encoding of the data is then given by a set of vectors orthogonal projection of the data onto the columns spanned by the eigenvectors of the covariance(correlations matrix). +

+The proof which follows will be updated by mid January 2020. +











@@ -1245,8 +1248,7 @@ This material will be added by mid January 2020.









Principal Component Analysis

-
- +

Principal Component Analysis (PCA) is by far the most popular dimensionality reduction algorithm. First it identifies the hyperplane that lies closest to the data, and then it projects the data onto it. @@ -1257,7 +1259,7 @@ training set, then extracts the first two principal components. First we center

-

import numpy as np
+
import numpy as np
 import pandas as pd
 from IPython.display import display
 np.random.seed(100)
@@ -1294,7 +1296,7 @@ Selecting this hyperplane ensures that the projection will preserve as much vari
 

-

W2 = V.T[:, :2]
+
W2 = V.T[:, :2]
 X2D = X_centered.dot(W2)
 

@@ -1309,7 +1311,7 @@ that it automatically takes care of centering the data):

-

#thereafter we do a PCA with Scikit-learn
+
#thereafter we do a PCA with Scikit-learn
 from sklearn.decomposition import PCA
 pca = PCA(n_components = 2)
 X2D = pca.fit_transform(X)
@@ -1322,7 +1324,7 @@ principal component is equal to
 

-

pca.components_.T[:, 0].
+
pca.components_.T[:, 0].
 

Another very useful piece of information is the explained variance ratio of each principal component, @@ -1338,7 +1340,7 @@ Here we compute performance scores on the training data using logistic regressio

-

import matplotlib.pyplot as plt
+
import matplotlib.pyplot as plt
 import numpy as np
 from sklearn.model_selection import  train_test_split 
 from sklearn.datasets import load_breast_cancer
@@ -1385,7 +1387,7 @@ of dimensions required to preserve 95% of the training set’s variance:
 

-

pca = PCA()
+
pca = PCA()
 pca.fit(X)
 cumsum = np.cumsum(pca.explained_variance_ratio_)
 d = np.argmax(cumsum >= 0.95) + 1
@@ -1397,7 +1399,7 @@ a float between 0.0 and 1.0, indicating the ratio of variance you wish to preser
 

-

pca = PCA(n_components=0.95)
+
pca = PCA(n_components=0.95)
 X_reduced = pca.fit_transform(X)
 

@@ -1423,10 +1425,6 @@ algorithm that quickly finds an approximation of the first d principal component complexity is \( O(m \times d^2)+O(d^3) \), instead of \( O(m \times n^2) + O(n^3) \), so it is dramatically faster than the previous algorithms when \( d \) is much smaller than \( n \). - -

- -











diff --git a/doc/pub/DimRed/html/DimRed.html b/doc/pub/DimRed/html/DimRed.html index e9a79a081..e5348ddef 100644 --- a/doc/pub/DimRed/html/DimRed.html +++ b/doc/pub/DimRed/html/DimRed.html @@ -1120,6 +1120,9 @@ low-dimensional encoding of the data is then given by a set of vectors orthogonal projection of the data onto the columns spanned by the eigenvectors of the covariance(correlations matrix). +

+The proof which follows will be updated by mid January 2020. +











@@ -1250,8 +1253,7 @@ This material will be added by mid January 2020.









Principal Component Analysis

-
- +

Principal Component Analysis (PCA) is by far the most popular dimensionality reduction algorithm. First it identifies the hyperplane that lies closest to the data, and then it projects the data onto it. @@ -1428,10 +1430,6 @@ algorithm that quickly finds an approximation of the first d principal component complexity is \( O(m \times d^2)+O(d^3) \), instead of \( O(m \times n^2) + O(n^3) \), so it is dramatically faster than the previous algorithms when \( d \) is much smaller than \( n \). - -

- -











diff --git a/doc/pub/DimRed/ipynb/DimRed.ipynb b/doc/pub/DimRed/ipynb/DimRed.ipynb index ec03b06a5..da58c850c 100644 --- a/doc/pub/DimRed/ipynb/DimRed.ipynb +++ b/doc/pub/DimRed/ipynb/DimRed.ipynb @@ -1253,7 +1253,7 @@ "orthogonal projection of the data onto the columns spanned by the\n", "eigenvectors of the covariance(correlations matrix).\n", "\n", - "\n", + "The proof which follows will be updated by mid January 2020.\n", "\n", "## Proof of the PCA Theorem\n", "\n", @@ -1492,6 +1492,7 @@ "\n", "\n", "## Principal Component Analysis\n", + "\n", "Principal Component Analysis (PCA) is by far the most popular dimensionality reduction algorithm.\n", "First it identifies the hyperplane that lies closest to the data, and then it projects the data onto it.\n", "\n", diff --git a/doc/pub/DimRed/ipynb/ipynb-DimRed-src.tar.gz b/doc/pub/DimRed/ipynb/ipynb-DimRed-src.tar.gz index 3639478816bf1f89af9b8877b8273f05403c73f3..81a89e92bb1e89620a3981bb34796056b1869387 100644 GIT binary patch literal 191 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 D;PCL_ diff --git a/doc/src/DimRed/DimRed.do.txt b/doc/src/DimRed/DimRed.do.txt index 621e66422..d347bf325 100644 --- a/doc/src/DimRed/DimRed.do.txt +++ b/doc/src/DimRed/DimRed.do.txt @@ -872,7 +872,7 @@ $\bm{z}_i$ with at most $l$ vectors, with $l << p$, defined by the orthogonal projection of the data onto the columns spanned by the eigenvectors of the covariance(correlations matrix). - +The proof which follows will be updated by mid January 2020. !split ===== Proof of the PCA Theorem ===== @@ -1001,7 +1001,7 @@ This material will be added by mid January 2020. !split ===== Principal Component Analysis ===== -!bblock + Principal Component Analysis (PCA) is by far the most popular dimensionality reduction algorithm. First it identifies the hyperplane that lies closest to the data, and then it projects the data onto it. @@ -1148,7 +1148,6 @@ complexity is $O(m \times d^2)+O(d^3)$, instead of $O(m \times n^2) + O(n^3)$, s previous algorithms when $d$ is much smaller than $n$. -!eblock !split