269 lines
13 KiB
HTML
269 lines
13 KiB
HTML
<!--
|
|
Automatically generated HTML file from DocOnce source
|
|
(https://github.com/hplgit/doconce/)
|
|
-->
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="generator" content="DocOnce: https://github.com/hplgit/doconce/" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<meta name="description" content="Data Analysis and Machine Learning: Preprocessing and Dimensionality Reduction">
|
|
|
|
<title>Data Analysis and Machine Learning: Preprocessing and Dimensionality Reduction</title>
|
|
|
|
<!-- Bootstrap style: bootstrap -->
|
|
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
|
|
<!-- not necessary
|
|
<link href="https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
|
|
-->
|
|
|
|
<style type="text/css">
|
|
|
|
/* Add scrollbar to dropdown menus in bootstrap navigation bar */
|
|
.dropdown-menu {
|
|
height: auto;
|
|
max-height: 400px;
|
|
overflow-x: hidden;
|
|
}
|
|
|
|
/* Adds an invisible element before each target to offset for the navigation
|
|
bar */
|
|
.anchor::before {
|
|
content:"";
|
|
display:block;
|
|
height:50px; /* fixed header height for style bootstrap */
|
|
margin:-50px 0 0; /* negative fixed header height */
|
|
}
|
|
</style>
|
|
|
|
|
|
</head>
|
|
|
|
<!-- tocinfo
|
|
{'highest level': 2,
|
|
'sections': [('Reducing the number of degrees of freedom, overarching view',
|
|
2,
|
|
None,
|
|
'___sec0'),
|
|
('Preprocessing our data', 2, None, '___sec1'),
|
|
('More preprocessing', 2, None, '___sec2'),
|
|
('Simple preprocessing examples, Franke function and regression',
|
|
2,
|
|
None,
|
|
'___sec3'),
|
|
('Simple preprocessing examples, breast cancer data and '
|
|
'classification, Support Vector Machines',
|
|
2,
|
|
None,
|
|
'___sec4'),
|
|
('More on Cancer Data, now with Logistic Regression',
|
|
2,
|
|
None,
|
|
'___sec5'),
|
|
('Why should we think of reducing the dimensionality',
|
|
2,
|
|
None,
|
|
'___sec6'),
|
|
('Basic ideas of the Principal Component Analysis (PCA)',
|
|
2,
|
|
None,
|
|
'___sec7'),
|
|
('Introducing the Covariance and Correlation functions',
|
|
2,
|
|
None,
|
|
'___sec8'),
|
|
('Correlation Function and Design/Feature Matrix',
|
|
2,
|
|
None,
|
|
'___sec9'),
|
|
('Covariance Matrix Examples', 2, None, '___sec10'),
|
|
('Correlation Matrix', 2, None, '___sec11'),
|
|
('Correlation Matrix with Pandas', 2, None, '___sec12'),
|
|
('Correlation Matrix with Pandas and the Franke function',
|
|
2,
|
|
None,
|
|
'___sec13'),
|
|
('Rewriting the Covariance and/or Correlation Matrix',
|
|
2,
|
|
None,
|
|
'___sec14'),
|
|
('Towards the PCA theorem', 2, None, '___sec15'),
|
|
('The Algorithm before the Theorem', 2, None, '___sec16'),
|
|
('Classical PCA Theorem', 2, None, '___sec17'),
|
|
('Proof of the PCA Theorem', 2, None, '___sec18'),
|
|
('PCA Proof continued', 2, None, '___sec19'),
|
|
('The final step', 2, None, '___sec20'),
|
|
('PCA and Scikit-Learn Functionality', 2, None, '___sec21'),
|
|
('Principal Component Analysis', 2, None, '___sec22'),
|
|
('PCA and scikit-learn', 2, None, '___sec23'),
|
|
('More on the PCA', 2, None, '___sec24'),
|
|
('Incremental PCA', 2, None, '___sec25'),
|
|
('Randomized PCA', 2, None, '___sec26'),
|
|
('Kernel PCA', 2, None, '___sec27'),
|
|
('LLE', 2, None, '___sec28'),
|
|
('Other techniques', 2, None, '___sec29')]}
|
|
end of tocinfo -->
|
|
|
|
<body>
|
|
|
|
|
|
|
|
<script type="text/x-mathjax-config">
|
|
MathJax.Hub.Config({
|
|
TeX: {
|
|
equationNumbers: { autoNumber: "none" },
|
|
extensions: ["AMSmath.js", "AMSsymbols.js", "autobold.js", "color.js"]
|
|
}
|
|
});
|
|
</script>
|
|
<script type="text/javascript" async
|
|
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<!-- Bootstrap navigation bar -->
|
|
<div class="navbar navbar-default navbar-fixed-top">
|
|
<div class="navbar-header">
|
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-responsive-collapse">
|
|
<span class="icon-bar"></span>
|
|
<span class="icon-bar"></span>
|
|
<span class="icon-bar"></span>
|
|
</button>
|
|
<a class="navbar-brand" href="DimRed-bs.html">Data Analysis and Machine Learning: Preprocessing and Dimensionality Reduction</a>
|
|
</div>
|
|
|
|
<div class="navbar-collapse collapse navbar-responsive-collapse">
|
|
<ul class="nav navbar-nav navbar-right">
|
|
<li class="dropdown">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Contents <b class="caret"></b></a>
|
|
<ul class="dropdown-menu">
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs001.html#___sec0" style="font-size: 80%;">Reducing the number of degrees of freedom, overarching view</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs002.html#___sec1" style="font-size: 80%;">Preprocessing our data</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs003.html#___sec2" style="font-size: 80%;">More preprocessing</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs004.html#___sec3" style="font-size: 80%;">Simple preprocessing examples, Franke function and regression</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs005.html#___sec4" style="font-size: 80%;">Simple preprocessing examples, breast cancer data and classification, Support Vector Machines</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs006.html#___sec5" style="font-size: 80%;">More on Cancer Data, now with Logistic Regression</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs007.html#___sec6" style="font-size: 80%;">Why should we think of reducing the dimensionality</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs008.html#___sec7" style="font-size: 80%;">Basic ideas of the Principal Component Analysis (PCA)</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs009.html#___sec8" style="font-size: 80%;">Introducing the Covariance and Correlation functions</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs010.html#___sec9" style="font-size: 80%;">Correlation Function and Design/Feature Matrix</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs011.html#___sec10" style="font-size: 80%;">Covariance Matrix Examples</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs012.html#___sec11" style="font-size: 80%;">Correlation Matrix</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs013.html#___sec12" style="font-size: 80%;">Correlation Matrix with Pandas</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs014.html#___sec13" style="font-size: 80%;">Correlation Matrix with Pandas and the Franke function</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs015.html#___sec14" style="font-size: 80%;">Rewriting the Covariance and/or Correlation Matrix</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs016.html#___sec15" style="font-size: 80%;">Towards the PCA theorem</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs017.html#___sec16" style="font-size: 80%;">The Algorithm before the Theorem</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs018.html#___sec17" style="font-size: 80%;">Classical PCA Theorem</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs019.html#___sec18" style="font-size: 80%;">Proof of the PCA Theorem</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs020.html#___sec19" style="font-size: 80%;">PCA Proof continued</a></li>
|
|
<!-- navigation toc: --> <li><a href="#___sec20" style="font-size: 80%;">The final step</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs022.html#___sec21" style="font-size: 80%;">PCA and Scikit-Learn Functionality</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs023.html#___sec22" style="font-size: 80%;">Principal Component Analysis</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs024.html#___sec23" style="font-size: 80%;">PCA and scikit-learn</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs025.html#___sec24" style="font-size: 80%;">More on the PCA</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs026.html#___sec25" style="font-size: 80%;">Incremental PCA</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs027.html#___sec26" style="font-size: 80%;">Randomized PCA</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs028.html#___sec27" style="font-size: 80%;">Kernel PCA</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs029.html#___sec28" style="font-size: 80%;">LLE</a></li>
|
|
<!-- navigation toc: --> <li><a href="._DimRed-bs030.html#___sec29" style="font-size: 80%;">Other techniques</a></li>
|
|
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div> <!-- end of navigation bar -->
|
|
|
|
<div class="container">
|
|
|
|
<p> </p><p> </p><p> </p> <!-- add vertical space -->
|
|
|
|
<a name="part0021"></a>
|
|
<!-- !split -->
|
|
|
|
<h2 id="___sec20" class="anchor">The final step </h2>
|
|
|
|
<p>
|
|
We could trivially maximize the variance of the projection (and
|
|
thereby minimize the error in the reconstruction function) by letting
|
|
the norm-2 of \( \boldsymbol{w}_0 \) go to infinity. However, this norm since we
|
|
want the matrix \( \boldsymbol{W} \) to be an orthogonal matrix, is constrained by
|
|
\( $\vert\vert \boldsymbol{w}_0 \vert\vert_2^2=1 \). Imposing this condition via a
|
|
Lagrange multiplier we can then in turn maximize
|
|
|
|
$$
|
|
J(\boldsymbol{w}_0)= \boldsymbol{w}_0^T\boldsymbol{C}[\boldsymbol{x}]\boldsymbol{w}_0+\lambda_0(1-\boldsymbol{w}_0^T\boldsymbol{w}_0).
|
|
$$
|
|
|
|
Taking the derivative with respect to \( \boldsymbol{w}_0 \) we obtain
|
|
|
|
$$
|
|
\frac{\partial J(\boldsymbol{w}_0)}{\partial \boldsymbol{w}_0}= 2\boldsymbol{C}[\boldsymbol{x}]\boldsymbol{w}_0-2\lambda_0\boldsymbol{w}_0=0,
|
|
$$
|
|
|
|
meaning that
|
|
$$
|
|
\boldsymbol{C}[\boldsymbol{x}]\boldsymbol{w}_0=\lambda_0\boldsymbol{w}_0.
|
|
$$
|
|
|
|
<b>The direction that maximizes the variance (or minimizes the construction error) is an eigenvector of the covariance matrix</b>! If we left multiply with \( \boldsymbol{w}_0^T \) we have the variance of the projected data is
|
|
$$
|
|
\boldsymbol{w}_^T\boldsymbol{C}[\boldsymbol{x}]\boldsymbol{w}_0=\lambda_0.
|
|
$$
|
|
|
|
If we want to maximize the variance (minimize the construction error) we simply pick the eigenvector of the covariance matrix with the largest eigenvalue. This establishes the link between the minimization of the reconstruction function \( J \) in terms of an orthogonal matrix and the maximization of the variance and thereby the covariance of our observations encoded in the design/feature matrix \( \boldsymbol{X} \). The proof for the other eigenvectors \( \boldsymbol{w}_1,\boldsymbol{w}_2,\dots \) cna be established by applying the above arguments and using the fact that basis of eigenvectors is orthogonal, see <a href="https://mitpress.mit.edu/books/machine-learning-1" target="_self">Murphy chapter 12.2</a>. The discussion in chapter 12.2 of Murphy's text has also a nice link with the Singular Value Decomposition theorem. For categorical data, see chapter 12.4 and discussion therein.
|
|
|
|
<p>
|
|
<p>
|
|
<!-- navigation buttons at the bottom of the page -->
|
|
<ul class="pagination">
|
|
<li><a href="._DimRed-bs020.html">«</a></li>
|
|
<li><a href="._DimRed-bs000.html">1</a></li>
|
|
<li><a href="">...</a></li>
|
|
<li><a href="._DimRed-bs013.html">14</a></li>
|
|
<li><a href="._DimRed-bs014.html">15</a></li>
|
|
<li><a href="._DimRed-bs015.html">16</a></li>
|
|
<li><a href="._DimRed-bs016.html">17</a></li>
|
|
<li><a href="._DimRed-bs017.html">18</a></li>
|
|
<li><a href="._DimRed-bs018.html">19</a></li>
|
|
<li><a href="._DimRed-bs019.html">20</a></li>
|
|
<li><a href="._DimRed-bs020.html">21</a></li>
|
|
<li class="active"><a href="._DimRed-bs021.html">22</a></li>
|
|
<li><a href="._DimRed-bs022.html">23</a></li>
|
|
<li><a href="._DimRed-bs023.html">24</a></li>
|
|
<li><a href="._DimRed-bs024.html">25</a></li>
|
|
<li><a href="._DimRed-bs025.html">26</a></li>
|
|
<li><a href="._DimRed-bs026.html">27</a></li>
|
|
<li><a href="._DimRed-bs027.html">28</a></li>
|
|
<li><a href="._DimRed-bs028.html">29</a></li>
|
|
<li><a href="._DimRed-bs029.html">30</a></li>
|
|
<li><a href="._DimRed-bs030.html">31</a></li>
|
|
<li><a href="._DimRed-bs022.html">»</a></li>
|
|
</ul>
|
|
<!-- ------------------- end of main content --------------- -->
|
|
|
|
</div> <!-- end container -->
|
|
<!-- include javascript, jQuery *first* -->
|
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
|
|
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
|
|
|
|
<!-- Bootstrap footer
|
|
<footer>
|
|
<a href="http://..."><img width="250" align=right src="http://..."></a>
|
|
</footer>
|
|
-->
|
|
|
|
|
|
<center style="font-size:80%">
|
|
<!-- copyright only on the titlepage -->
|
|
</center>
|
|
|
|
|
|
</body>
|
|
</html>
|
|
|
|
|