From dada4a1355f50466ee69e0f5a08a8c00683d58d3 Mon Sep 17 00:00:00 2001 From: mhjensen Date: Sat, 12 Oct 2019 19:19:24 +0200 Subject: [PATCH] Dim red update --- doc/pub/DimRed/html/._DimRed-bs000.html | 38 +++---- doc/pub/DimRed/html/._DimRed-bs001.html | 36 ++++--- doc/pub/DimRed/html/._DimRed-bs002.html | 41 ++++---- doc/pub/DimRed/html/._DimRed-bs003.html | 101 +++++++++++-------- doc/pub/DimRed/html/._DimRed-bs004.html | 76 +++++++------- doc/pub/DimRed/html/._DimRed-bs005.html | 72 +++++++------ doc/pub/DimRed/html/._DimRed-bs006.html | 65 ++++++++---- doc/pub/DimRed/html/._DimRed-bs007.html | 53 +++++----- doc/pub/DimRed/html/._DimRed-bs008.html | 59 +++++------ doc/pub/DimRed/html/._DimRed-bs009.html | 65 ++++++++---- doc/pub/DimRed/html/DimRed-bs.html | 38 +++---- doc/pub/DimRed/html/DimRed-reveal.html | 77 +++++++++++--- doc/pub/DimRed/html/DimRed-solarized.html | 93 +++++++++++++---- doc/pub/DimRed/html/DimRed.html | 93 +++++++++++++---- doc/pub/DimRed/ipynb/DimRed.ipynb | 82 +++++++++++++-- doc/pub/DimRed/ipynb/ipynb-DimRed-src.tar.gz | Bin 191 -> 191 bytes doc/pub/DimRed/pdf/DimRed-minted.pdf | Bin 199386 -> 200327 bytes 17 files changed, 640 insertions(+), 349 deletions(-) diff --git a/doc/pub/DimRed/html/._DimRed-bs000.html b/doc/pub/DimRed/html/._DimRed-bs000.html index bbc53cf32..57a5f55b6 100644 --- a/doc/pub/DimRed/html/._DimRed-bs000.html +++ b/doc/pub/DimRed/html/._DimRed-bs000.html @@ -46,14 +46,15 @@ Automatically generated HTML file from DocOnce source None, '___sec0'), ('Preprocessing our data', 2, None, '___sec1'), - ('Principal Component Analysis', 2, None, '___sec2'), - ('PCA and scikit-learn', 2, None, '___sec3'), - ('More on the PCA', 2, None, '___sec4'), - ('Incremental PCA', 2, None, '___sec5'), - ('Randomized PCA', 2, None, '___sec6'), - ('Kernel PCA', 2, None, '___sec7'), - ('LLE', 2, None, '___sec8'), - ('Other techniques', 2, None, '___sec9')]} + ('Simple preprocessing examples', 2, None, '___sec2'), + ('Principal Component Analysis', 2, None, '___sec3'), + ('PCA and scikit-learn', 2, None, '___sec4'), + ('More on the PCA', 2, None, '___sec5'), + ('Incremental PCA', 2, None, '___sec6'), + ('Randomized PCA', 2, None, '___sec7'), + ('Kernel PCA', 2, None, '___sec8'), + ('LLE', 2, None, '___sec9'), + ('Other techniques', 2, None, '___sec10')]} end of tocinfo --> @@ -93,14 +94,15 @@ MathJax.Hub.Config({ @@ -135,7 +137,7 @@ MathJax.Hub.Config({
[2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

-

Oct 10, 2019

+

Oct 12, 2019


@@ -159,7 +161,7 @@ MathJax.Hub.Config({

  • 9
  • 10
  • ...
  • -
  • 11
  • +
  • 12
  • »
  • diff --git a/doc/pub/DimRed/html/._DimRed-bs001.html b/doc/pub/DimRed/html/._DimRed-bs001.html index c7963e4f4..02f65d120 100644 --- a/doc/pub/DimRed/html/._DimRed-bs001.html +++ b/doc/pub/DimRed/html/._DimRed-bs001.html @@ -46,14 +46,15 @@ Automatically generated HTML file from DocOnce source None, '___sec0'), ('Preprocessing our data', 2, None, '___sec1'), - ('Principal Component Analysis', 2, None, '___sec2'), - ('PCA and scikit-learn', 2, None, '___sec3'), - ('More on the PCA', 2, None, '___sec4'), - ('Incremental PCA', 2, None, '___sec5'), - ('Randomized PCA', 2, None, '___sec6'), - ('Kernel PCA', 2, None, '___sec7'), - ('LLE', 2, None, '___sec8'), - ('Other techniques', 2, None, '___sec9')]} + ('Simple preprocessing examples', 2, None, '___sec2'), + ('Principal Component Analysis', 2, None, '___sec3'), + ('PCA and scikit-learn', 2, None, '___sec4'), + ('More on the PCA', 2, None, '___sec5'), + ('Incremental PCA', 2, None, '___sec6'), + ('Randomized PCA', 2, None, '___sec7'), + ('Kernel PCA', 2, None, '___sec8'), + ('LLE', 2, None, '___sec9'), + ('Other techniques', 2, None, '___sec10')]} end of tocinfo --> @@ -93,14 +94,15 @@ MathJax.Hub.Config({ @@ -153,6 +155,8 @@ reduction techniques: the principal component analysis PCA, Kernel PCA, and Loca
  • 9
  • 10
  • 11
  • +
  • ...
  • +
  • 12
  • »
  • diff --git a/doc/pub/DimRed/html/._DimRed-bs002.html b/doc/pub/DimRed/html/._DimRed-bs002.html index a720c0ad3..ca0c8c84d 100644 --- a/doc/pub/DimRed/html/._DimRed-bs002.html +++ b/doc/pub/DimRed/html/._DimRed-bs002.html @@ -46,14 +46,15 @@ Automatically generated HTML file from DocOnce source None, '___sec0'), ('Preprocessing our data', 2, None, '___sec1'), - ('Principal Component Analysis', 2, None, '___sec2'), - ('PCA and scikit-learn', 2, None, '___sec3'), - ('More on the PCA', 2, None, '___sec4'), - ('Incremental PCA', 2, None, '___sec5'), - ('Randomized PCA', 2, None, '___sec6'), - ('Kernel PCA', 2, None, '___sec7'), - ('LLE', 2, None, '___sec8'), - ('Other techniques', 2, None, '___sec9')]} + ('Simple preprocessing examples', 2, None, '___sec2'), + ('Principal Component Analysis', 2, None, '___sec3'), + ('PCA and scikit-learn', 2, None, '___sec4'), + ('More on the PCA', 2, None, '___sec5'), + ('Incremental PCA', 2, None, '___sec6'), + ('Randomized PCA', 2, None, '___sec7'), + ('Kernel PCA', 2, None, '___sec8'), + ('LLE', 2, None, '___sec9'), + ('Other techniques', 2, None, '___sec10')]} end of tocinfo --> @@ -93,14 +94,15 @@ MathJax.Hub.Config({ @@ -123,15 +125,15 @@ MathJax.Hub.Config({

    Before we proceed however, we will discuss how to preprocess our -data. Till now and in connection with project 1 not met so many cases +data. Till now and in connection with our previous examples we have not met so many cases where we are too sensitive to the scaling of our data. Normally the data may need a rescaling and/or may be sensitive to extreme values. Scaling the data renders our inputs much more suitable for the -algorithms we want to emply. +algorithms we want to employ.

    Scikit-Learn has several functions which allow us to rescale the data, normally resulting in much better results in terms of various accuracy scores. The StandardScaler function in Scikit-Learn ensures that for each feature/predictor we study the mean value is zero and the variance is zero (every column in the design/feature matrix). -This scaling has the drawback that it does not ensure that we have a particular maximum or minumum in our data set. Another function included in Scikit-Learn is the MinMaxScaler which ensures that all features are exactly between \( 0 \) and \( 1 \). The Normalizer function scale each column of the design matrix so that +This scaling has the drawback that it does not ensure that we have a particular maximum or minumum in our data set. Another function included in Scikit-Learn is the MinMaxScaler which ensures that all features are exactly between \( 0 \) and \( 1 \). The Normalizer function scales each column of the design matrix by its Euclidean norm.

    @@ -154,6 +156,7 @@ This scaling has the drawback that it does not ensure that we have a particular

  • 9
  • 10
  • 11
  • +
  • 12
  • »
  • diff --git a/doc/pub/DimRed/html/._DimRed-bs003.html b/doc/pub/DimRed/html/._DimRed-bs003.html index c0ba3abc6..a64e6b72c 100644 --- a/doc/pub/DimRed/html/._DimRed-bs003.html +++ b/doc/pub/DimRed/html/._DimRed-bs003.html @@ -46,14 +46,15 @@ Automatically generated HTML file from DocOnce source None, '___sec0'), ('Preprocessing our data', 2, None, '___sec1'), - ('Principal Component Analysis', 2, None, '___sec2'), - ('PCA and scikit-learn', 2, None, '___sec3'), - ('More on the PCA', 2, None, '___sec4'), - ('Incremental PCA', 2, None, '___sec5'), - ('Randomized PCA', 2, None, '___sec6'), - ('Kernel PCA', 2, None, '___sec7'), - ('LLE', 2, None, '___sec8'), - ('Other techniques', 2, None, '___sec9')]} + ('Simple preprocessing examples', 2, None, '___sec2'), + ('Principal Component Analysis', 2, None, '___sec3'), + ('PCA and scikit-learn', 2, None, '___sec4'), + ('More on the PCA', 2, None, '___sec5'), + ('Incremental PCA', 2, None, '___sec6'), + ('Randomized PCA', 2, None, '___sec7'), + ('Kernel PCA', 2, None, '___sec8'), + ('LLE', 2, None, '___sec9'), + ('Other techniques', 2, None, '___sec10')]} end of tocinfo --> @@ -93,14 +94,15 @@ MathJax.Hub.Config({ @@ -116,38 +118,54 @@ 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. +

    Simple preprocessing examples

    -The following Python code uses NumPy’s svd() function to obtain all the principal components of the -training set, then extracts the first two principal components +We show here how we can use a simple regression case (our nuclear binding energies discussed earlier). +Rescaling our data with different +

    -

    X_centered = X - X.mean(axis=0)
    -U, s, V = np.linalg.svd(X_centered)
    -c1 = V.T[:, 0]
    -c2 = V.T[:, 1]
    -
    -

    -PCA assumes that the dataset is centered around the origin. Scikit-Learn’s PCA classes take care of centering -the data for you. However, if you implement PCA yourself (as in the preceding example), or if you use other libraries, don’t -forget to center the data first. +

    import matplotlib.pyplot as plt
    +import numpy as np
    +from sklearn.model_selection import  train_test_split 
    +from sklearn.datasets import load_breast_cancer
    +from sklearn.svm import SVC
    +cancer = load_breast_cancer()
     
    -

    -Once you have identified all the principal components, you can reduce the dimensionality of the dataset -down to \( d \) dimensions by projecting it onto the hyperplane defined by the first \( d \) principal components. -Selecting this hyperplane ensures that the projection will preserve as much variance as possible. -

    +X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0) +print(X_train.shape) +print(X_test.shape) - -

    W2 = V.T[:, :2]
    -X2D = X_centered.dot(W2)
    +svm = SVC(C=100)
    +svm.fit(X_train, y_train)
    +print("Test set accuracy: {:.2f}".format(svm.score(X_test,y_test)))
    +
    +from sklearn.preprocessing import MinMaxScaler, StandardScaler
    +
    +scaler = MinMaxScaler()
    +scaler.fit(X_train)
    +X_train_scaled = scaler.transform(X_train)
    +X_test_scaled = scaler.transform(X_test)
    +
    +print("Feature min values before scaling:\n {}".format(X_train.min(axis=0)))
    +print("Feature max values before scaling:\n {}".format(X_train.max(axis=0)))
    +
    +print("Feature min values before scaling:\n {}".format(X_train_scaled.min(axis=0)))
    +print("Feature max values before scaling:\n {}".format(X_train_scaled.max(axis=0)))
    +
    +
    +svm.fit(X_train_scaled, y_train)
    +print("Test set accuracy scaled data: {:.2f}".format(svm.score(X_test_scaled,y_test)))
    +
    +scaler = StandardScaler()
    +scaler.fit(X_train)
    +X_train_scaled = scaler.transform(X_train)
    +X_test_scaled = scaler.transform(X_test)
    +
    +svm.fit(X_train_scaled, y_train)
    +print("Test set accuracy scaled data: {:.2f}".format(svm.score(X_test_scaled,y_test)))
     

    @@ -165,6 +183,7 @@ X2D = X_centered9

  • 10
  • 11
  • +
  • 12
  • »
  • diff --git a/doc/pub/DimRed/html/._DimRed-bs004.html b/doc/pub/DimRed/html/._DimRed-bs004.html index e94811a79..9bd20ef9e 100644 --- a/doc/pub/DimRed/html/._DimRed-bs004.html +++ b/doc/pub/DimRed/html/._DimRed-bs004.html @@ -46,14 +46,15 @@ Automatically generated HTML file from DocOnce source None, '___sec0'), ('Preprocessing our data', 2, None, '___sec1'), - ('Principal Component Analysis', 2, None, '___sec2'), - ('PCA and scikit-learn', 2, None, '___sec3'), - ('More on the PCA', 2, None, '___sec4'), - ('Incremental PCA', 2, None, '___sec5'), - ('Randomized PCA', 2, None, '___sec6'), - ('Kernel PCA', 2, None, '___sec7'), - ('LLE', 2, None, '___sec8'), - ('Other techniques', 2, None, '___sec9')]} + ('Simple preprocessing examples', 2, None, '___sec2'), + ('Principal Component Analysis', 2, None, '___sec3'), + ('PCA and scikit-learn', 2, None, '___sec4'), + ('More on the PCA', 2, None, '___sec5'), + ('Incremental PCA', 2, None, '___sec6'), + ('Randomized PCA', 2, None, '___sec7'), + ('Kernel PCA', 2, None, '___sec8'), + ('LLE', 2, None, '___sec9'), + ('Other techniques', 2, None, '___sec10')]} end of tocinfo --> @@ -93,14 +94,15 @@ MathJax.Hub.Config({ @@ -114,36 +116,41 @@ MathJax.Hub.Config({

     

     

     

    - + -

    PCA and scikit-learn

    +

    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.

    -Scikit-Learn’s PCA class implements PCA using SVD decomposition just like we did before. The -following code applies PCA to reduce the dimensionality of the dataset down to two dimensions (note -that it automatically takes care of centering the data): +The following Python code uses NumPy’s svd() function to obtain all the principal components of the +training set, then extracts the first two principal components

    -

    from sklearn.decomposition import PCA
    -pca = PCA(n_components = 2)
    -X2D = pca.fit_transform(X)
    +
    X_centered = X - X.mean(axis=0)
    +U, s, V = np.linalg.svd(X_centered)
    +c1 = V.T[:, 0]
    +c2 = V.T[:, 1]
     

    -After fitting the PCA transformer to the dataset, you can access the principal components using the -components variable (note that it contains the PCs as horizontal vectors, so, for example, the first -principal component is equal to +PCA assumes that the dataset is centered around the origin. Scikit-Learn’s PCA classes take care of centering +the data for you. However, if you implement PCA yourself (as in the preceding example), or if you use other libraries, don’t +forget to center the data first. + +

    +Once you have identified all the principal components, you can reduce the dimensionality of the dataset +down to \( d \) dimensions by projecting it onto the hyperplane defined by the first \( d \) principal components. +Selecting this hyperplane ensures that the projection will preserve as much variance as possible.

    -

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

    -Another very useful piece of information is the explained variance ratio of each principal component, -available via the \( explained\_variance\_ratio \) variable. It indicates the proportion of the dataset’s -variance that lies along the axis of each principal component. -More material to come here. -

    @@ -160,6 +167,7 @@ More material to come here.

  • 9
  • 10
  • 11
  • +
  • 12
  • »
  • diff --git a/doc/pub/DimRed/html/._DimRed-bs005.html b/doc/pub/DimRed/html/._DimRed-bs005.html index 5d9967a80..fea5bd2b7 100644 --- a/doc/pub/DimRed/html/._DimRed-bs005.html +++ b/doc/pub/DimRed/html/._DimRed-bs005.html @@ -46,14 +46,15 @@ Automatically generated HTML file from DocOnce source None, '___sec0'), ('Preprocessing our data', 2, None, '___sec1'), - ('Principal Component Analysis', 2, None, '___sec2'), - ('PCA and scikit-learn', 2, None, '___sec3'), - ('More on the PCA', 2, None, '___sec4'), - ('Incremental PCA', 2, None, '___sec5'), - ('Randomized PCA', 2, None, '___sec6'), - ('Kernel PCA', 2, None, '___sec7'), - ('LLE', 2, None, '___sec8'), - ('Other techniques', 2, None, '___sec9')]} + ('Simple preprocessing examples', 2, None, '___sec2'), + ('Principal Component Analysis', 2, None, '___sec3'), + ('PCA and scikit-learn', 2, None, '___sec4'), + ('More on the PCA', 2, None, '___sec5'), + ('Incremental PCA', 2, None, '___sec6'), + ('Randomized PCA', 2, None, '___sec7'), + ('Kernel PCA', 2, None, '___sec8'), + ('LLE', 2, None, '___sec9'), + ('Other techniques', 2, None, '___sec10')]} end of tocinfo --> @@ -93,14 +94,15 @@ MathJax.Hub.Config({ @@ -114,33 +116,36 @@ MathJax.Hub.Config({

     

     

     

    - + -

    More on the PCA

    -Instead of arbitrarily choosing the number of dimensions to reduce down to, it is generally preferable to -choose the number of dimensions that add up to a sufficiently large portion of the variance (e.g., 95%). -Unless, of course, you are reducing dimensionality for data visualization — in that case you will -generally want to reduce the dimensionality down to 2 or 3. -The following code computes PCA without reducing dimensionality, then computes the minimum number -of dimensions required to preserve 95% of the training set’s variance: +

    PCA and scikit-learn

    + +

    +Scikit-Learn’s PCA class implements PCA using SVD decomposition just like we did before. The +following code applies PCA to reduce the dimensionality of the dataset down to two dimensions (note +that it automatically takes care of centering the data):

    -

    pca = PCA()
    -pca.fit(X)
    -cumsum = np.cumsum(pca.explained_variance_ratio_)
    -d = np.argmax(cumsum >= 0.95) + 1
    +
    from sklearn.decomposition import PCA
    +pca = PCA(n_components = 2)
    +X2D = pca.fit_transform(X)
     

    -You could then set \( n\_components=d \) and run PCA again. However, there is a much better option: instead -of specifying the number of principal components you want to preserve, you can set \( n\_components \) to be -a float between 0.0 and 1.0, indicating the ratio of variance you wish to preserve: +After fitting the PCA transformer to the dataset, you can access the principal components using the +components variable (note that it contains the PCs as horizontal vectors, so, for example, the first +principal component is equal to

    -

    pca = PCA(n_components=0.95)
    -X_reduced = pca.fit_transform(X)
    +
    pca.components_.T[:, 0]).
     
    +

    +Another very useful piece of information is the explained variance ratio of each principal component, +available via the \( explained\_variance\_ratio \) variable. It indicates the proportion of the dataset’s +variance that lies along the axis of each principal component. +More material to come here. +

    @@ -157,6 +162,7 @@ X_reduced = pca

  • 9
  • 10
  • 11
  • +
  • 12
  • »
  • diff --git a/doc/pub/DimRed/html/._DimRed-bs006.html b/doc/pub/DimRed/html/._DimRed-bs006.html index 8376feceb..93c298869 100644 --- a/doc/pub/DimRed/html/._DimRed-bs006.html +++ b/doc/pub/DimRed/html/._DimRed-bs006.html @@ -46,14 +46,15 @@ Automatically generated HTML file from DocOnce source None, '___sec0'), ('Preprocessing our data', 2, None, '___sec1'), - ('Principal Component Analysis', 2, None, '___sec2'), - ('PCA and scikit-learn', 2, None, '___sec3'), - ('More on the PCA', 2, None, '___sec4'), - ('Incremental PCA', 2, None, '___sec5'), - ('Randomized PCA', 2, None, '___sec6'), - ('Kernel PCA', 2, None, '___sec7'), - ('LLE', 2, None, '___sec8'), - ('Other techniques', 2, None, '___sec9')]} + ('Simple preprocessing examples', 2, None, '___sec2'), + ('Principal Component Analysis', 2, None, '___sec3'), + ('PCA and scikit-learn', 2, None, '___sec4'), + ('More on the PCA', 2, None, '___sec5'), + ('Incremental PCA', 2, None, '___sec6'), + ('Randomized PCA', 2, None, '___sec7'), + ('Kernel PCA', 2, None, '___sec8'), + ('LLE', 2, None, '___sec9'), + ('Other techniques', 2, None, '___sec10')]} end of tocinfo --> @@ -93,14 +94,15 @@ MathJax.Hub.Config({ @@ -116,13 +118,31 @@ MathJax.Hub.Config({ -

    Incremental PCA

    -One problem with the preceding implementation of PCA is that it requires the whole training set to fit in -memory in order for the SVD algorithm to run. Fortunately, Incremental PCA (IPCA) algorithms have -been developed: you can split the training set into mini-batches and feed an IPCA algorithm one minibatch -at a time. This is useful for large training sets, and also to apply PCA online (i.e., on the fly, as new -instances arrive). +

    More on the PCA

    +Instead of arbitrarily choosing the number of dimensions to reduce down to, it is generally preferable to +choose the number of dimensions that add up to a sufficiently large portion of the variance (e.g., 95%). +Unless, of course, you are reducing dimensionality for data visualization — in that case you will +generally want to reduce the dimensionality down to 2 or 3. +The following code computes PCA without reducing dimensionality, then computes the minimum number +of dimensions required to preserve 95% of the training set’s variance: +

    + +

    pca = PCA()
    +pca.fit(X)
    +cumsum = np.cumsum(pca.explained_variance_ratio_)
    +d = np.argmax(cumsum >= 0.95) + 1
    +
    +

    +You could then set \( n\_components=d \) and run PCA again. However, there is a much better option: instead +of specifying the number of principal components you want to preserve, you can set \( n\_components \) to be +a float between 0.0 and 1.0, indicating the ratio of variance you wish to preserve: +

    + + +

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

    @@ -139,6 +159,7 @@ instances arrive).

  • 9
  • 10
  • 11
  • +
  • 12
  • »
  • diff --git a/doc/pub/DimRed/html/._DimRed-bs007.html b/doc/pub/DimRed/html/._DimRed-bs007.html index a064b2321..3d7461c0c 100644 --- a/doc/pub/DimRed/html/._DimRed-bs007.html +++ b/doc/pub/DimRed/html/._DimRed-bs007.html @@ -46,14 +46,15 @@ Automatically generated HTML file from DocOnce source None, '___sec0'), ('Preprocessing our data', 2, None, '___sec1'), - ('Principal Component Analysis', 2, None, '___sec2'), - ('PCA and scikit-learn', 2, None, '___sec3'), - ('More on the PCA', 2, None, '___sec4'), - ('Incremental PCA', 2, None, '___sec5'), - ('Randomized PCA', 2, None, '___sec6'), - ('Kernel PCA', 2, None, '___sec7'), - ('LLE', 2, None, '___sec8'), - ('Other techniques', 2, None, '___sec9')]} + ('Simple preprocessing examples', 2, None, '___sec2'), + ('Principal Component Analysis', 2, None, '___sec3'), + ('PCA and scikit-learn', 2, None, '___sec4'), + ('More on the PCA', 2, None, '___sec5'), + ('Incremental PCA', 2, None, '___sec6'), + ('Randomized PCA', 2, None, '___sec7'), + ('Kernel PCA', 2, None, '___sec8'), + ('LLE', 2, None, '___sec9'), + ('Other techniques', 2, None, '___sec10')]} end of tocinfo --> @@ -93,14 +94,15 @@ MathJax.Hub.Config({ @@ -116,18 +118,12 @@ MathJax.Hub.Config({ -

    Randomized PCA

    - -

    -Scikit-Learn offers yet another option to perform PCA, called Randomized PCA. This is a stochastic -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 \). - -

    -

    -
    - +

    Incremental PCA

    +One problem with the preceding implementation of PCA is that it requires the whole training set to fit in +memory in order for the SVD algorithm to run. Fortunately, Incremental PCA (IPCA) algorithms have +been developed: you can split the training set into mini-batches and feed an IPCA algorithm one minibatch +at a time. This is useful for large training sets, and also to apply PCA online (i.e., on the fly, as new +instances arrive).

    @@ -145,6 +141,7 @@ previous algorithms when \( d \) is much smaller than \( n \).

  • 9
  • 10
  • 11
  • +
  • 12
  • »
  • diff --git a/doc/pub/DimRed/html/._DimRed-bs008.html b/doc/pub/DimRed/html/._DimRed-bs008.html index cb888f35f..c26ea557e 100644 --- a/doc/pub/DimRed/html/._DimRed-bs008.html +++ b/doc/pub/DimRed/html/._DimRed-bs008.html @@ -46,14 +46,15 @@ Automatically generated HTML file from DocOnce source None, '___sec0'), ('Preprocessing our data', 2, None, '___sec1'), - ('Principal Component Analysis', 2, None, '___sec2'), - ('PCA and scikit-learn', 2, None, '___sec3'), - ('More on the PCA', 2, None, '___sec4'), - ('Incremental PCA', 2, None, '___sec5'), - ('Randomized PCA', 2, None, '___sec6'), - ('Kernel PCA', 2, None, '___sec7'), - ('LLE', 2, None, '___sec8'), - ('Other techniques', 2, None, '___sec9')]} + ('Simple preprocessing examples', 2, None, '___sec2'), + ('Principal Component Analysis', 2, None, '___sec3'), + ('PCA and scikit-learn', 2, None, '___sec4'), + ('More on the PCA', 2, None, '___sec5'), + ('Incremental PCA', 2, None, '___sec6'), + ('Randomized PCA', 2, None, '___sec7'), + ('Kernel PCA', 2, None, '___sec8'), + ('LLE', 2, None, '___sec9'), + ('Other techniques', 2, None, '___sec10')]} end of tocinfo --> @@ -93,14 +94,15 @@ MathJax.Hub.Config({ @@ -116,28 +118,14 @@ MathJax.Hub.Config({ -

    Kernel PCA

    -
    -
    -

    +

    Randomized PCA

    -The kernel trick is a mathematical technique that implicitly maps instances into a -very high-dimensional space (called the feature space), enabling nonlinear classification and regression -with Support Vector Machines. Recall that a linear decision boundary in the high-dimensional feature -space corresponds to a complex nonlinear decision boundary in the original space. -It turns out that the same trick can be applied to PCA, making it possible to perform complex nonlinear -projections for dimensionality reduction. This is called Kernel PCA (kPCA). It is often good at -preserving clusters of instances after projection, or sometimes even unrolling datasets that lie close to a -twisted manifold. -For example, the following code uses Scikit-Learn’s KernelPCA class to perform kPCA with an -

    +Scikit-Learn offers yet another option to perform PCA, called Randomized PCA. This is a stochastic +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 \). - -

    from sklearn.decomposition import KernelPCA
    -rbf_pca = KernelPCA(n_components = 2, kernel="rbf", gamma=0.04)
    -X_reduced = rbf_pca.fit_transform(X)
    -

    @@ -159,6 +147,7 @@ X_reduced = rbf_pca9
  • 10
  • 11
  • +
  • 12
  • »
  • diff --git a/doc/pub/DimRed/html/._DimRed-bs009.html b/doc/pub/DimRed/html/._DimRed-bs009.html index e95aeda9c..f6dd448e3 100644 --- a/doc/pub/DimRed/html/._DimRed-bs009.html +++ b/doc/pub/DimRed/html/._DimRed-bs009.html @@ -46,14 +46,15 @@ Automatically generated HTML file from DocOnce source None, '___sec0'), ('Preprocessing our data', 2, None, '___sec1'), - ('Principal Component Analysis', 2, None, '___sec2'), - ('PCA and scikit-learn', 2, None, '___sec3'), - ('More on the PCA', 2, None, '___sec4'), - ('Incremental PCA', 2, None, '___sec5'), - ('Randomized PCA', 2, None, '___sec6'), - ('Kernel PCA', 2, None, '___sec7'), - ('LLE', 2, None, '___sec8'), - ('Other techniques', 2, None, '___sec9')]} + ('Simple preprocessing examples', 2, None, '___sec2'), + ('Principal Component Analysis', 2, None, '___sec3'), + ('PCA and scikit-learn', 2, None, '___sec4'), + ('More on the PCA', 2, None, '___sec5'), + ('Incremental PCA', 2, None, '___sec6'), + ('Randomized PCA', 2, None, '___sec7'), + ('Kernel PCA', 2, None, '___sec8'), + ('LLE', 2, None, '___sec9'), + ('Other techniques', 2, None, '___sec10')]} end of tocinfo --> @@ -93,14 +94,15 @@ MathJax.Hub.Config({ @@ -116,14 +118,32 @@ MathJax.Hub.Config({ -

    LLE

    +

    Kernel PCA

    +
    +
    +

    -Locally Linear Embedding (LLE) is another very powerful nonlinear dimensionality reduction -(NLDR) technique. It is a Manifold Learning technique that does not rely on projections like the previous -algorithms. In a nutshell, LLE works by first measuring how each training instance linearly relates to its -closest neighbors (c.n.), and then looking for a low-dimensional representation of the training set where -these local relationships are best preserved (more details shortly). +The kernel trick is a mathematical technique that implicitly maps instances into a +very high-dimensional space (called the feature space), enabling nonlinear classification and regression +with Support Vector Machines. Recall that a linear decision boundary in the high-dimensional feature +space corresponds to a complex nonlinear decision boundary in the original space. +It turns out that the same trick can be applied to PCA, making it possible to perform complex nonlinear +projections for dimensionality reduction. This is called Kernel PCA (kPCA). It is often good at +preserving clusters of instances after projection, or sometimes even unrolling datasets that lie close to a +twisted manifold. +For example, the following code uses Scikit-Learn’s KernelPCA class to perform kPCA with an +

    + + +

    from sklearn.decomposition import KernelPCA
    +rbf_pca = KernelPCA(n_components = 2, kernel="rbf", gamma=0.04)
    +X_reduced = rbf_pca.fit_transform(X)
    +
    +

    +

    +
    +

    @@ -141,6 +161,7 @@ these local relationships are best preserved (more details shortly).

  • 9
  • 10
  • 11
  • +
  • 12
  • »
  • diff --git a/doc/pub/DimRed/html/DimRed-bs.html b/doc/pub/DimRed/html/DimRed-bs.html index bbc53cf32..57a5f55b6 100644 --- a/doc/pub/DimRed/html/DimRed-bs.html +++ b/doc/pub/DimRed/html/DimRed-bs.html @@ -46,14 +46,15 @@ Automatically generated HTML file from DocOnce source None, '___sec0'), ('Preprocessing our data', 2, None, '___sec1'), - ('Principal Component Analysis', 2, None, '___sec2'), - ('PCA and scikit-learn', 2, None, '___sec3'), - ('More on the PCA', 2, None, '___sec4'), - ('Incremental PCA', 2, None, '___sec5'), - ('Randomized PCA', 2, None, '___sec6'), - ('Kernel PCA', 2, None, '___sec7'), - ('LLE', 2, None, '___sec8'), - ('Other techniques', 2, None, '___sec9')]} + ('Simple preprocessing examples', 2, None, '___sec2'), + ('Principal Component Analysis', 2, None, '___sec3'), + ('PCA and scikit-learn', 2, None, '___sec4'), + ('More on the PCA', 2, None, '___sec5'), + ('Incremental PCA', 2, None, '___sec6'), + ('Randomized PCA', 2, None, '___sec7'), + ('Kernel PCA', 2, None, '___sec8'), + ('LLE', 2, None, '___sec9'), + ('Other techniques', 2, None, '___sec10')]} end of tocinfo --> @@ -93,14 +94,15 @@ MathJax.Hub.Config({ @@ -135,7 +137,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Oct 10, 2019

    +

    Oct 12, 2019


    @@ -159,7 +161,7 @@ MathJax.Hub.Config({

  • 9
  • 10
  • ...
  • -
  • 11
  • +
  • 12
  • »
  • diff --git a/doc/pub/DimRed/html/DimRed-reveal.html b/doc/pub/DimRed/html/DimRed-reveal.html index fadbd8544..1cb7cc4d2 100644 --- a/doc/pub/DimRed/html/DimRed-reveal.html +++ b/doc/pub/DimRed/html/DimRed-reveal.html @@ -148,7 +148,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

     
    -

    Oct 10, 2019

    +

    Oct 12, 2019


    @@ -184,15 +184,15 @@ reduction techniques: the principal component analysis PCA, Kernel PCA, and Loca

    Before we proceed however, we will discuss how to preprocess our -data. Till now and in connection with project 1 not met so many cases +data. Till now and in connection with our previous examples we have not met so many cases where we are too sensitive to the scaling of our data. Normally the data may need a rescaling and/or may be sensitive to extreme values. Scaling the data renders our inputs much more suitable for the -algorithms we want to emply. +algorithms we want to employ.

    Scikit-Learn has several functions which allow us to rescale the data, normally resulting in much better results in terms of various accuracy scores. The StandardScaler function in Scikit-Learn ensures that for each feature/predictor we study the mean value is zero and the variance is zero (every column in the design/feature matrix). -This scaling has the drawback that it does not ensure that we have a particular maximum or minumum in our data set. Another function included in Scikit-Learn is the MinMaxScaler which ensures that all features are exactly between \( 0 \) and \( 1 \). The Normalizer function scale each column of the design matrix so that +This scaling has the drawback that it does not ensure that we have a particular maximum or minumum in our data set. Another function included in Scikit-Learn is the MinMaxScaler which ensures that all features are exactly between \( 0 \) and \( 1 \). The Normalizer function scales each column of the design matrix by its Euclidean norm.

    @@ -200,7 +200,60 @@ This scaling has the drawback that it does not ensure that we have a particular
    -

    Principal Component Analysis

    +

    Simple preprocessing examples

    + +

    +We show here how we can use a simple regression case (our nuclear binding energies discussed earlier). +Rescaling our data with different + +

    + + +

    import matplotlib.pyplot as plt
    +import numpy as np
    +from sklearn.model_selection import  train_test_split 
    +from sklearn.datasets import load_breast_cancer
    +from sklearn.svm import SVC
    +cancer = load_breast_cancer()
    +
    +X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0)
    +print(X_train.shape)
    +print(X_test.shape)
    +
    +svm = SVC(C=100)
    +svm.fit(X_train, y_train)
    +print("Test set accuracy: {:.2f}".format(svm.score(X_test,y_test)))
    +
    +from sklearn.preprocessing import MinMaxScaler, StandardScaler
    +
    +scaler = MinMaxScaler()
    +scaler.fit(X_train)
    +X_train_scaled = scaler.transform(X_train)
    +X_test_scaled = scaler.transform(X_test)
    +
    +print("Feature min values before scaling:\n {}".format(X_train.min(axis=0)))
    +print("Feature max values before scaling:\n {}".format(X_train.max(axis=0)))
    +
    +print("Feature min values before scaling:\n {}".format(X_train_scaled.min(axis=0)))
    +print("Feature max values before scaling:\n {}".format(X_train_scaled.max(axis=0)))
    +
    +
    +svm.fit(X_train_scaled, y_train)
    +print("Test set accuracy scaled data: {:.2f}".format(svm.score(X_test_scaled,y_test)))
    +
    +scaler = StandardScaler()
    +scaler.fit(X_train)
    +X_train_scaled = scaler.transform(X_train)
    +X_test_scaled = scaler.transform(X_test)
    +
    +svm.fit(X_train_scaled, y_train)
    +print("Test set accuracy scaled data: {:.2f}".format(svm.score(X_test_scaled,y_test)))
    +
    +
    + + +
    +

    Principal Component Analysis

    @@ -237,7 +290,7 @@ X2D = X_centered.dot(W2)

    -

    PCA and scikit-learn

    +

    PCA and scikit-learn

    Scikit-Learn’s PCA class implements PCA using SVD decomposition just like we did before. The @@ -268,7 +321,7 @@ More material to come here.

    -

    More on the PCA

    +

    More on the PCA

    Instead of arbitrarily choosing the number of dimensions to reduce down to, it is generally preferable to choose the number of dimensions that add up to a sufficiently large portion of the variance (e.g., 95%). Unless, of course, you are reducing dimensionality for data visualization — in that case you will @@ -297,7 +350,7 @@ X_reduced = pca.fit_transform(X)
    -

    Incremental PCA

    +

    Incremental PCA

    One problem with the preceding implementation of PCA is that it requires the whole training set to fit in memory in order for the SVD algorithm to run. Fortunately, Incremental PCA (IPCA) algorithms have been developed: you can split the training set into mini-batches and feed an IPCA algorithm one minibatch @@ -307,7 +360,7 @@ instances arrive).
    -

    Randomized PCA

    +

    Randomized PCA

    Scikit-Learn offers yet another option to perform PCA, called Randomized PCA. This is a stochastic @@ -321,7 +374,7 @@ previous algorithms when \( d \) is much smaller than \( n \).

    -

    Kernel PCA

    +

    Kernel PCA

    @@ -347,7 +400,7 @@ X_reduced = rbf_pca.fit_transform(X)

    -

    LLE

    +

    LLE

    Locally Linear Embedding (LLE) is another very powerful nonlinear dimensionality reduction @@ -359,7 +412,7 @@ these local relationships are best preserved (more details shortly).

    -

    Other techniques

    +

    Other techniques

    There are many other dimensionality reduction techniques, several of which are available in Scikit-Learn. diff --git a/doc/pub/DimRed/html/DimRed-solarized.html b/doc/pub/DimRed/html/DimRed-solarized.html index 79620e5a8..599608524 100644 --- a/doc/pub/DimRed/html/DimRed-solarized.html +++ b/doc/pub/DimRed/html/DimRed-solarized.html @@ -66,14 +66,15 @@ div { text-align: justify; text-justify: inter-word; } None, '___sec0'), ('Preprocessing our data', 2, None, '___sec1'), - ('Principal Component Analysis', 2, None, '___sec2'), - ('PCA and scikit-learn', 2, None, '___sec3'), - ('More on the PCA', 2, None, '___sec4'), - ('Incremental PCA', 2, None, '___sec5'), - ('Randomized PCA', 2, None, '___sec6'), - ('Kernel PCA', 2, None, '___sec7'), - ('LLE', 2, None, '___sec8'), - ('Other techniques', 2, None, '___sec9')]} + ('Simple preprocessing examples', 2, None, '___sec2'), + ('Principal Component Analysis', 2, None, '___sec3'), + ('PCA and scikit-learn', 2, None, '___sec4'), + ('More on the PCA', 2, None, '___sec5'), + ('Incremental PCA', 2, None, '___sec6'), + ('Randomized PCA', 2, None, '___sec7'), + ('Kernel PCA', 2, None, '___sec8'), + ('LLE', 2, None, '___sec9'), + ('Other techniques', 2, None, '___sec10')]} end of tocinfo --> @@ -115,7 +116,7 @@ MathJax.Hub.Config({

    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Oct 10, 2019

    +

    Oct 12, 2019












    @@ -150,15 +151,15 @@ reduction techniques: the principal component analysis PCA, Kernel PCA, and Loca

    Before we proceed however, we will discuss how to preprocess our -data. Till now and in connection with project 1 not met so many cases +data. Till now and in connection with our previous examples we have not met so many cases where we are too sensitive to the scaling of our data. Normally the data may need a rescaling and/or may be sensitive to extreme values. Scaling the data renders our inputs much more suitable for the -algorithms we want to emply. +algorithms we want to employ.

    Scikit-Learn has several functions which allow us to rescale the data, normally resulting in much better results in terms of various accuracy scores. The StandardScaler function in Scikit-Learn ensures that for each feature/predictor we study the mean value is zero and the variance is zero (every column in the design/feature matrix). -This scaling has the drawback that it does not ensure that we have a particular maximum or minumum in our data set. Another function included in Scikit-Learn is the MinMaxScaler which ensures that all features are exactly between \( 0 \) and \( 1 \). The Normalizer function scale each column of the design matrix so that +This scaling has the drawback that it does not ensure that we have a particular maximum or minumum in our data set. Another function included in Scikit-Learn is the MinMaxScaler which ensures that all features are exactly between \( 0 \) and \( 1 \). The Normalizer function scales each column of the design matrix by its Euclidean norm.

    @@ -167,7 +168,59 @@ This scaling has the drawback that it does not ensure that we have a particular











    -

    Principal Component Analysis

    +

    Simple preprocessing examples

    + +

    +We show here how we can use a simple regression case (our nuclear binding energies discussed earlier). +Rescaling our data with different + +

    + + +

    import matplotlib.pyplot as plt
    +import numpy as np
    +from sklearn.model_selection import  train_test_split 
    +from sklearn.datasets import load_breast_cancer
    +from sklearn.svm import SVC
    +cancer = load_breast_cancer()
    +
    +X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0)
    +print(X_train.shape)
    +print(X_test.shape)
    +
    +svm = SVC(C=100)
    +svm.fit(X_train, y_train)
    +print("Test set accuracy: {:.2f}".format(svm.score(X_test,y_test)))
    +
    +from sklearn.preprocessing import MinMaxScaler, StandardScaler
    +
    +scaler = MinMaxScaler()
    +scaler.fit(X_train)
    +X_train_scaled = scaler.transform(X_train)
    +X_test_scaled = scaler.transform(X_test)
    +
    +print("Feature min values before scaling:\n {}".format(X_train.min(axis=0)))
    +print("Feature max values before scaling:\n {}".format(X_train.max(axis=0)))
    +
    +print("Feature min values before scaling:\n {}".format(X_train_scaled.min(axis=0)))
    +print("Feature max values before scaling:\n {}".format(X_train_scaled.max(axis=0)))
    +
    +
    +svm.fit(X_train_scaled, y_train)
    +print("Test set accuracy scaled data: {:.2f}".format(svm.score(X_test_scaled,y_test)))
    +
    +scaler = StandardScaler()
    +scaler.fit(X_train)
    +X_train_scaled = scaler.transform(X_train)
    +X_test_scaled = scaler.transform(X_test)
    +
    +svm.fit(X_train_scaled, y_train)
    +print("Test set accuracy scaled data: {:.2f}".format(svm.score(X_test_scaled,y_test)))
    +
    +

    +









    + +

    Principal Component Analysis

    @@ -203,7 +256,7 @@ X2D = X_centered.dot(W2)

    -

    PCA and scikit-learn

    +

    PCA and scikit-learn

    Scikit-Learn’s PCA class implements PCA using SVD decomposition just like we did before. The @@ -234,7 +287,7 @@ More material to come here.











    -

    More on the PCA

    +

    More on the PCA

    Instead of arbitrarily choosing the number of dimensions to reduce down to, it is generally preferable to choose the number of dimensions that add up to a sufficiently large portion of the variance (e.g., 95%). Unless, of course, you are reducing dimensionality for data visualization — in that case you will @@ -262,7 +315,7 @@ X_reduced = pca.fit_transform(X)











    -

    Incremental PCA

    +

    Incremental PCA

    One problem with the preceding implementation of PCA is that it requires the whole training set to fit in memory in order for the SVD algorithm to run. Fortunately, Incremental PCA (IPCA) algorithms have been developed: you can split the training set into mini-batches and feed an IPCA algorithm one minibatch @@ -272,7 +325,7 @@ instances arrive).











    -

    Randomized PCA

    +

    Randomized PCA

    Scikit-Learn offers yet another option to perform PCA, called Randomized PCA. This is a stochastic @@ -287,7 +340,7 @@ previous algorithms when \( d \) is much smaller than \( n \).











    -

    Kernel PCA

    +

    Kernel PCA

    @@ -316,7 +369,7 @@ X_reduced = rbf_pca.fit_transform(X)











    -

    LLE

    +

    LLE

    Locally Linear Embedding (LLE) is another very powerful nonlinear dimensionality reduction @@ -328,7 +381,7 @@ these local relationships are best preserved (more details shortly).











    -

    Other techniques

    +

    Other techniques

    There are many other dimensionality reduction techniques, several of which are available in Scikit-Learn. diff --git a/doc/pub/DimRed/html/DimRed.html b/doc/pub/DimRed/html/DimRed.html index 426a673ac..98ec982c9 100644 --- a/doc/pub/DimRed/html/DimRed.html +++ b/doc/pub/DimRed/html/DimRed.html @@ -71,14 +71,15 @@ div { text-align: justify; text-justify: inter-word; } None, '___sec0'), ('Preprocessing our data', 2, None, '___sec1'), - ('Principal Component Analysis', 2, None, '___sec2'), - ('PCA and scikit-learn', 2, None, '___sec3'), - ('More on the PCA', 2, None, '___sec4'), - ('Incremental PCA', 2, None, '___sec5'), - ('Randomized PCA', 2, None, '___sec6'), - ('Kernel PCA', 2, None, '___sec7'), - ('LLE', 2, None, '___sec8'), - ('Other techniques', 2, None, '___sec9')]} + ('Simple preprocessing examples', 2, None, '___sec2'), + ('Principal Component Analysis', 2, None, '___sec3'), + ('PCA and scikit-learn', 2, None, '___sec4'), + ('More on the PCA', 2, None, '___sec5'), + ('Incremental PCA', 2, None, '___sec6'), + ('Randomized PCA', 2, None, '___sec7'), + ('Kernel PCA', 2, None, '___sec8'), + ('LLE', 2, None, '___sec9'), + ('Other techniques', 2, None, '___sec10')]} end of tocinfo --> @@ -120,7 +121,7 @@ MathJax.Hub.Config({

    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Oct 10, 2019

    +

    Oct 12, 2019












    @@ -155,15 +156,15 @@ reduction techniques: the principal component analysis PCA, Kernel PCA, and Loca

    Before we proceed however, we will discuss how to preprocess our -data. Till now and in connection with project 1 not met so many cases +data. Till now and in connection with our previous examples we have not met so many cases where we are too sensitive to the scaling of our data. Normally the data may need a rescaling and/or may be sensitive to extreme values. Scaling the data renders our inputs much more suitable for the -algorithms we want to emply. +algorithms we want to employ.

    Scikit-Learn has several functions which allow us to rescale the data, normally resulting in much better results in terms of various accuracy scores. The StandardScaler function in Scikit-Learn ensures that for each feature/predictor we study the mean value is zero and the variance is zero (every column in the design/feature matrix). -This scaling has the drawback that it does not ensure that we have a particular maximum or minumum in our data set. Another function included in Scikit-Learn is the MinMaxScaler which ensures that all features are exactly between \( 0 \) and \( 1 \). The Normalizer function scale each column of the design matrix so that +This scaling has the drawback that it does not ensure that we have a particular maximum or minumum in our data set. Another function included in Scikit-Learn is the MinMaxScaler which ensures that all features are exactly between \( 0 \) and \( 1 \). The Normalizer function scales each column of the design matrix by its Euclidean norm.

    @@ -172,7 +173,59 @@ This scaling has the drawback that it does not ensure that we have a particular











    -

    Principal Component Analysis

    +

    Simple preprocessing examples

    + +

    +We show here how we can use a simple regression case (our nuclear binding energies discussed earlier). +Rescaling our data with different + +

    + + +

    import matplotlib.pyplot as plt
    +import numpy as np
    +from sklearn.model_selection import  train_test_split 
    +from sklearn.datasets import load_breast_cancer
    +from sklearn.svm import SVC
    +cancer = load_breast_cancer()
    +
    +X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0)
    +print(X_train.shape)
    +print(X_test.shape)
    +
    +svm = SVC(C=100)
    +svm.fit(X_train, y_train)
    +print("Test set accuracy: {:.2f}".format(svm.score(X_test,y_test)))
    +
    +from sklearn.preprocessing import MinMaxScaler, StandardScaler
    +
    +scaler = MinMaxScaler()
    +scaler.fit(X_train)
    +X_train_scaled = scaler.transform(X_train)
    +X_test_scaled = scaler.transform(X_test)
    +
    +print("Feature min values before scaling:\n {}".format(X_train.min(axis=0)))
    +print("Feature max values before scaling:\n {}".format(X_train.max(axis=0)))
    +
    +print("Feature min values before scaling:\n {}".format(X_train_scaled.min(axis=0)))
    +print("Feature max values before scaling:\n {}".format(X_train_scaled.max(axis=0)))
    +
    +
    +svm.fit(X_train_scaled, y_train)
    +print("Test set accuracy scaled data: {:.2f}".format(svm.score(X_test_scaled,y_test)))
    +
    +scaler = StandardScaler()
    +scaler.fit(X_train)
    +X_train_scaled = scaler.transform(X_train)
    +X_test_scaled = scaler.transform(X_test)
    +
    +svm.fit(X_train_scaled, y_train)
    +print("Test set accuracy scaled data: {:.2f}".format(svm.score(X_test_scaled,y_test)))
    +
    +

    +









    + +

    Principal Component Analysis

    @@ -208,7 +261,7 @@ X2D = X_centered -

    PCA and scikit-learn

    +

    PCA and scikit-learn

    Scikit-Learn’s PCA class implements PCA using SVD decomposition just like we did before. The @@ -239,7 +292,7 @@ More material to come here.











    -

    More on the PCA

    +

    More on the PCA

    Instead of arbitrarily choosing the number of dimensions to reduce down to, it is generally preferable to choose the number of dimensions that add up to a sufficiently large portion of the variance (e.g., 95%). Unless, of course, you are reducing dimensionality for data visualization — in that case you will @@ -267,7 +320,7 @@ X_reduced = pca











    -

    Incremental PCA

    +

    Incremental PCA

    One problem with the preceding implementation of PCA is that it requires the whole training set to fit in memory in order for the SVD algorithm to run. Fortunately, Incremental PCA (IPCA) algorithms have been developed: you can split the training set into mini-batches and feed an IPCA algorithm one minibatch @@ -277,7 +330,7 @@ instances arrive).











    -

    Randomized PCA

    +

    Randomized PCA

    Scikit-Learn offers yet another option to perform PCA, called Randomized PCA. This is a stochastic @@ -292,7 +345,7 @@ previous algorithms when \( d \) is much smaller than \( n \).











    -

    Kernel PCA

    +

    Kernel PCA

    @@ -321,7 +374,7 @@ X_reduced = rbf_pcaLLE +

    LLE

    Locally Linear Embedding (LLE) is another very powerful nonlinear dimensionality reduction @@ -333,7 +386,7 @@ these local relationships are best preserved (more details shortly).











    -

    Other techniques

    +

    Other techniques

    There are many other dimensionality reduction techniques, several of which are available in Scikit-Learn. diff --git a/doc/pub/DimRed/ipynb/DimRed.ipynb b/doc/pub/DimRed/ipynb/DimRed.ipynb index 2a1cdc58d..b9620502d 100644 --- a/doc/pub/DimRed/ipynb/DimRed.ipynb +++ b/doc/pub/DimRed/ipynb/DimRed.ipynb @@ -10,7 +10,7 @@ " \n", "**Morten Hjorth-Jensen**, Department of Physics, University of Oslo and Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University\n", "\n", - "Date: **Oct 10, 2019**\n", + "Date: **Oct 12, 2019**\n", "\n", "Copyright 1999-2019, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license\n", "\n", @@ -34,19 +34,79 @@ "## Preprocessing our data\n", "\n", "Before we proceed however, we will discuss how to preprocess our\n", - "data. Till now and in connection with project 1 not met so many cases\n", + "data. Till now and in connection with our previous examples we have not met so many cases\n", "where we are too sensitive to the scaling of our data. Normally the\n", "data may need a rescaling and/or may be sensitive to extreme\n", "values. Scaling the data renders our inputs much more suitable for the\n", - "algorithms we want to emply.\n", + "algorithms we want to employ.\n", "\n", "**Scikit-Learn** has several functions which allow us to rescale the data, normally resulting in much better results in terms of various accuracy scores. The **StandardScaler** function in **Scikit-Learn** ensures that for each feature/predictor we study the mean value is zero and the variance is zero (every column in the design/feature matrix).\n", - "This scaling has the drawback that it does not ensure that we have a particular maximum or minumum in our data set. Another function included in **Scikit-Learn** is the **MinMaxScaler** which ensures that all features are exactly between $0$ and $1$. The **Normalizer** function scale each column of the design matrix so that\n", + "This scaling has the drawback that it does not ensure that we have a particular maximum or minumum in our data set. Another function included in **Scikit-Learn** is the **MinMaxScaler** which ensures that all features are exactly between $0$ and $1$. The **Normalizer** function scales each column of the design matrix by its Euclidean norm.\n", "\n", "\n", "\n", "\n", + "## Simple preprocessing examples\n", "\n", + "We show here how we can use a simple regression case (our nuclear binding energies discussed earlier).\n", + "Rescaling our data with different" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from sklearn.model_selection import train_test_split \n", + "from sklearn.datasets import load_breast_cancer\n", + "from sklearn.svm import SVC\n", + "cancer = load_breast_cancer()\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0)\n", + "print(X_train.shape)\n", + "print(X_test.shape)\n", + "\n", + "svm = SVC(C=100)\n", + "svm.fit(X_train, y_train)\n", + "print(\"Test set accuracy: {:.2f}\".format(svm.score(X_test,y_test)))\n", + "\n", + "from sklearn.preprocessing import MinMaxScaler, StandardScaler\n", + "\n", + "scaler = MinMaxScaler()\n", + "scaler.fit(X_train)\n", + "X_train_scaled = scaler.transform(X_train)\n", + "X_test_scaled = scaler.transform(X_test)\n", + "\n", + "print(\"Feature min values before scaling:\\n {}\".format(X_train.min(axis=0)))\n", + "print(\"Feature max values before scaling:\\n {}\".format(X_train.max(axis=0)))\n", + "\n", + "print(\"Feature min values before scaling:\\n {}\".format(X_train_scaled.min(axis=0)))\n", + "print(\"Feature max values before scaling:\\n {}\".format(X_train_scaled.max(axis=0)))\n", + "\n", + "\n", + "svm.fit(X_train_scaled, y_train)\n", + "print(\"Test set accuracy scaled data: {:.2f}\".format(svm.score(X_test_scaled,y_test)))\n", + "\n", + "scaler = StandardScaler()\n", + "scaler.fit(X_train)\n", + "X_train_scaled = scaler.transform(X_train)\n", + "X_test_scaled = scaler.transform(X_test)\n", + "\n", + "svm.fit(X_train_scaled, y_train)\n", + "print(\"Test set accuracy scaled data: {:.2f}\".format(svm.score(X_test_scaled,y_test)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "## Principal Component Analysis\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", @@ -57,7 +117,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": { "collapsed": false }, @@ -84,7 +144,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": { "collapsed": false }, @@ -108,7 +168,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": { "collapsed": false }, @@ -130,7 +190,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": { "collapsed": false }, @@ -159,7 +219,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": { "collapsed": false }, @@ -182,7 +242,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": { "collapsed": false }, @@ -228,7 +288,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": { "collapsed": false }, diff --git a/doc/pub/DimRed/ipynb/ipynb-DimRed-src.tar.gz b/doc/pub/DimRed/ipynb/ipynb-DimRed-src.tar.gz index 0fe79a5ff926ca1e164bcad734b5bcc4f1723935..c7ace3921ecea930e40f0c7ef25dd4c6a3633686 100644 GIT binary patch literal 191 zcmV;w06_mAiwFP=3!+^B1MSbv3c@f92k@Qu6nTP?x^_DY+rfh%!x!jS=c=xqZ3ph{ z-3RDN@iIi{@A4-kgrvx~**=fl-36;b#Dr3qGELZ=xLN8MAq+^&7*b@EP(TvLGz|dP zJL#pjj+^n6<}8#I>h0V(R@Wc)EU&;b|HQG87IufhHClnvPLx_-Ad_t&sz`Q&DxuQC tPAxFv)=MLRs{wdbNhh`9*RV7CWO!?%@Ym0Hp67XAdjKoz&G7&T005T^U0eVF literal 191 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

    ^_FUk`@Sc3?4{pTDkdnuyXT#!Tbz7&30Eqdu;@m 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

      ;+1#MQN-F_64@Q_*|g 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