426 lines
29 KiB
HTML
426 lines
29 KiB
HTML
<!--
|
|
HTML file automatically generated from DocOnce source
|
|
(https://github.com/doconce/doconce/)
|
|
doconce format html week37.do.txt --html_style=bootstrap --pygments_html_style=default --html_admon=bootstrap_panel --html_output=week37-bs --no_mako
|
|
-->
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="generator" content="DocOnce: https://github.com/doconce/doconce/" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<meta name="description" content="Week 37: Statitsitcal interpretations and Resampling Methods">
|
|
<title>Week 37: Statitsitcal interpretations and Resampling Methods</title>
|
|
<!-- Bootstrap style: bootstrap -->
|
|
<!-- doconce format html week37.do.txt --html_style=bootstrap --pygments_html_style=default --html_admon=bootstrap_panel --html_output=week37-bs --no_mako -->
|
|
<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': [('Plans for week 37', 2, None, 'plans-for-week-37'),
|
|
('Material from last week and relevant for the weekly exercises',
|
|
2,
|
|
None,
|
|
'material-from-last-week-and-relevant-for-the-weekly-exercises'),
|
|
('Linking the regression analysis with a statistical '
|
|
'interpretation',
|
|
2,
|
|
None,
|
|
'linking-the-regression-analysis-with-a-statistical-interpretation'),
|
|
('Assumptions made', 2, None, 'assumptions-made'),
|
|
('Expectation value and variance',
|
|
2,
|
|
None,
|
|
'expectation-value-and-variance'),
|
|
('Expectation value and variance for $\\boldsymbol{\\beta}$',
|
|
2,
|
|
None,
|
|
'expectation-value-and-variance-for-boldsymbol-beta'),
|
|
('Material for lecture Thursday September 14',
|
|
2,
|
|
None,
|
|
'material-for-lecture-thursday-september-14'),
|
|
('Deriving OLS from a probability distribution',
|
|
2,
|
|
None,
|
|
'deriving-ols-from-a-probability-distribution'),
|
|
('Independent and Identically Distrubuted (iid)',
|
|
2,
|
|
None,
|
|
'independent-and-identically-distrubuted-iid'),
|
|
('Maximum Likelihood Estimation (MLE)',
|
|
2,
|
|
None,
|
|
'maximum-likelihood-estimation-mle'),
|
|
('A new Cost Function', 2, None, 'a-new-cost-function'),
|
|
("More basic Statistics and Bayes' theorem",
|
|
2,
|
|
None,
|
|
'more-basic-statistics-and-bayes-theorem'),
|
|
('Marginal Probability', 2, None, 'marginal-probability'),
|
|
('Conditional Probability', 2, None, 'conditional-probability'),
|
|
("Bayes' Theorem", 2, None, 'bayes-theorem'),
|
|
("Interpretations of Bayes' Theorem",
|
|
2,
|
|
None,
|
|
'interpretations-of-bayes-theorem'),
|
|
("Example of Usage of Bayes' theorem",
|
|
2,
|
|
None,
|
|
'example-of-usage-of-bayes-theorem'),
|
|
('Doing it correctly', 2, None, 'doing-it-correctly'),
|
|
("Bayes' Theorem and Ridge and Lasso Regression",
|
|
2,
|
|
None,
|
|
'bayes-theorem-and-ridge-and-lasso-regression'),
|
|
('Ridge and Bayes', 2, None, 'ridge-and-bayes'),
|
|
('Lasso and Bayes', 2, None, 'lasso-and-bayes'),
|
|
('Test Function for what happens with OLS, Ridge and Lasso',
|
|
2,
|
|
None,
|
|
'test-function-for-what-happens-with-ols-ridge-and-lasso'),
|
|
('Rerunning the above code', 2, None, 'rerunning-the-above-code'),
|
|
('Why resampling methods', 2, None, 'why-resampling-methods'),
|
|
('Resampling methods', 2, None, 'resampling-methods'),
|
|
('Resampling approaches can be computationally expensive',
|
|
2,
|
|
None,
|
|
'resampling-approaches-can-be-computationally-expensive'),
|
|
('Why resampling methods ?', 2, None, 'why-resampling-methods'),
|
|
('Statistical analysis', 2, None, 'statistical-analysis'),
|
|
('Resampling methods', 2, None, 'resampling-methods'),
|
|
('Resampling methods: Bootstrap',
|
|
2,
|
|
None,
|
|
'resampling-methods-bootstrap'),
|
|
('The Central Limit Theorem',
|
|
2,
|
|
None,
|
|
'the-central-limit-theorem'),
|
|
('Finding the Limit', 2, None, 'finding-the-limit'),
|
|
('Rewriting the $\\delta$-function',
|
|
2,
|
|
None,
|
|
'rewriting-the-delta-function'),
|
|
('Identifying Terms', 2, None, 'identifying-terms'),
|
|
('Wrapping it up', 2, None, 'wrapping-it-up'),
|
|
('Confidence Intervals', 2, None, 'confidence-intervals'),
|
|
('Standard Approach based on the Normal Distribution',
|
|
2,
|
|
None,
|
|
'standard-approach-based-on-the-normal-distribution'),
|
|
('Resampling methods: Bootstrap background',
|
|
2,
|
|
None,
|
|
'resampling-methods-bootstrap-background'),
|
|
('Resampling methods: More Bootstrap background',
|
|
2,
|
|
None,
|
|
'resampling-methods-more-bootstrap-background'),
|
|
('Resampling methods: Bootstrap approach',
|
|
2,
|
|
None,
|
|
'resampling-methods-bootstrap-approach'),
|
|
('Resampling methods: Bootstrap steps',
|
|
2,
|
|
None,
|
|
'resampling-methods-bootstrap-steps'),
|
|
('Code example for the Bootstrap method',
|
|
2,
|
|
None,
|
|
'code-example-for-the-bootstrap-method'),
|
|
('Plotting the Histogram', 2, None, 'plotting-the-histogram'),
|
|
('The bias-variance tradeoff',
|
|
2,
|
|
None,
|
|
'the-bias-variance-tradeoff'),
|
|
('A way to Read the Bias-Variance Tradeoff',
|
|
2,
|
|
None,
|
|
'a-way-to-read-the-bias-variance-tradeoff'),
|
|
('Example code for Bias-Variance tradeoff',
|
|
2,
|
|
None,
|
|
'example-code-for-bias-variance-tradeoff'),
|
|
('Understanding what happens',
|
|
2,
|
|
None,
|
|
'understanding-what-happens'),
|
|
('Summing up', 2, None, 'summing-up'),
|
|
("Another Example from Scikit-Learn's Repository",
|
|
2,
|
|
None,
|
|
'another-example-from-scikit-learn-s-repository'),
|
|
('Various steps in cross-validation',
|
|
2,
|
|
None,
|
|
'various-steps-in-cross-validation'),
|
|
('Cross-validation in brief',
|
|
2,
|
|
None,
|
|
'cross-validation-in-brief'),
|
|
('Code Example for Cross-validation and $k$-fold '
|
|
'Cross-validation',
|
|
2,
|
|
None,
|
|
'code-example-for-cross-validation-and-k-fold-cross-validation'),
|
|
('More examples on bootstrap and cross-validation and errors',
|
|
2,
|
|
None,
|
|
'more-examples-on-bootstrap-and-cross-validation-and-errors'),
|
|
('The same example but now with cross-validation',
|
|
2,
|
|
None,
|
|
'the-same-example-but-now-with-cross-validation')]}
|
|
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="week37-bs.html">Week 37: Statitsitcal interpretations and Resampling Methods</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="._week37-bs001.html#plans-for-week-37" style="font-size: 80%;">Plans for week 37</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs002.html#material-from-last-week-and-relevant-for-the-weekly-exercises" style="font-size: 80%;">Material from last week and relevant for the weekly exercises</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs003.html#linking-the-regression-analysis-with-a-statistical-interpretation" style="font-size: 80%;">Linking the regression analysis with a statistical interpretation</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs004.html#assumptions-made" style="font-size: 80%;">Assumptions made</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs005.html#expectation-value-and-variance" style="font-size: 80%;">Expectation value and variance</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs006.html#expectation-value-and-variance-for-boldsymbol-beta" style="font-size: 80%;">Expectation value and variance for \( \boldsymbol{\beta} \)</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs007.html#material-for-lecture-thursday-september-14" style="font-size: 80%;">Material for lecture Thursday September 14</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs008.html#deriving-ols-from-a-probability-distribution" style="font-size: 80%;">Deriving OLS from a probability distribution</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs009.html#independent-and-identically-distrubuted-iid" style="font-size: 80%;">Independent and Identically Distrubuted (iid)</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs010.html#maximum-likelihood-estimation-mle" style="font-size: 80%;">Maximum Likelihood Estimation (MLE)</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs011.html#a-new-cost-function" style="font-size: 80%;">A new Cost Function</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs012.html#more-basic-statistics-and-bayes-theorem" style="font-size: 80%;">More basic Statistics and Bayes' theorem</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs013.html#marginal-probability" style="font-size: 80%;">Marginal Probability</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs014.html#conditional-probability" style="font-size: 80%;">Conditional Probability</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs015.html#bayes-theorem" style="font-size: 80%;">Bayes' Theorem</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs016.html#interpretations-of-bayes-theorem" style="font-size: 80%;">Interpretations of Bayes' Theorem</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs017.html#example-of-usage-of-bayes-theorem" style="font-size: 80%;">Example of Usage of Bayes' theorem</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs018.html#doing-it-correctly" style="font-size: 80%;">Doing it correctly</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs019.html#bayes-theorem-and-ridge-and-lasso-regression" style="font-size: 80%;">Bayes' Theorem and Ridge and Lasso Regression</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs020.html#ridge-and-bayes" style="font-size: 80%;">Ridge and Bayes</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs021.html#lasso-and-bayes" style="font-size: 80%;">Lasso and Bayes</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs022.html#test-function-for-what-happens-with-ols-ridge-and-lasso" style="font-size: 80%;">Test Function for what happens with OLS, Ridge and Lasso</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs023.html#rerunning-the-above-code" style="font-size: 80%;">Rerunning the above code</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs027.html#why-resampling-methods" style="font-size: 80%;">Why resampling methods</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs029.html#resampling-methods" style="font-size: 80%;">Resampling methods</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs026.html#resampling-approaches-can-be-computationally-expensive" style="font-size: 80%;">Resampling approaches can be computationally expensive</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs027.html#why-resampling-methods" style="font-size: 80%;">Why resampling methods ?</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs028.html#statistical-analysis" style="font-size: 80%;">Statistical analysis</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs029.html#resampling-methods" style="font-size: 80%;">Resampling methods</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs030.html#resampling-methods-bootstrap" style="font-size: 80%;">Resampling methods: Bootstrap</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs031.html#the-central-limit-theorem" style="font-size: 80%;">The Central Limit Theorem</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs032.html#finding-the-limit" style="font-size: 80%;">Finding the Limit</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs033.html#rewriting-the-delta-function" style="font-size: 80%;">Rewriting the \( \delta \)-function</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs034.html#identifying-terms" style="font-size: 80%;">Identifying Terms</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs035.html#wrapping-it-up" style="font-size: 80%;">Wrapping it up</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs036.html#confidence-intervals" style="font-size: 80%;">Confidence Intervals</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs037.html#standard-approach-based-on-the-normal-distribution" style="font-size: 80%;">Standard Approach based on the Normal Distribution</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs038.html#resampling-methods-bootstrap-background" style="font-size: 80%;">Resampling methods: Bootstrap background</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs039.html#resampling-methods-more-bootstrap-background" style="font-size: 80%;">Resampling methods: More Bootstrap background</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs040.html#resampling-methods-bootstrap-approach" style="font-size: 80%;">Resampling methods: Bootstrap approach</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs041.html#resampling-methods-bootstrap-steps" style="font-size: 80%;">Resampling methods: Bootstrap steps</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs042.html#code-example-for-the-bootstrap-method" style="font-size: 80%;">Code example for the Bootstrap method</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs043.html#plotting-the-histogram" style="font-size: 80%;">Plotting the Histogram</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs044.html#the-bias-variance-tradeoff" style="font-size: 80%;">The bias-variance tradeoff</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs045.html#a-way-to-read-the-bias-variance-tradeoff" style="font-size: 80%;">A way to Read the Bias-Variance Tradeoff</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs046.html#example-code-for-bias-variance-tradeoff" style="font-size: 80%;">Example code for Bias-Variance tradeoff</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs047.html#understanding-what-happens" style="font-size: 80%;">Understanding what happens</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs048.html#summing-up" style="font-size: 80%;">Summing up</a></li>
|
|
<!-- navigation toc: --> <li><a href="#another-example-from-scikit-learn-s-repository" style="font-size: 80%;">Another Example from Scikit-Learn's Repository</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs050.html#various-steps-in-cross-validation" style="font-size: 80%;">Various steps in cross-validation</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs051.html#cross-validation-in-brief" style="font-size: 80%;">Cross-validation in brief</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs052.html#code-example-for-cross-validation-and-k-fold-cross-validation" style="font-size: 80%;">Code Example for Cross-validation and \( k \)-fold Cross-validation</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs053.html#more-examples-on-bootstrap-and-cross-validation-and-errors" style="font-size: 80%;">More examples on bootstrap and cross-validation and errors</a></li>
|
|
<!-- navigation toc: --> <li><a href="._week37-bs054.html#the-same-example-but-now-with-cross-validation" style="font-size: 80%;">The same example but now with cross-validation</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="part0049"></a>
|
|
<!-- !split -->
|
|
<h2 id="another-example-from-scikit-learn-s-repository" class="anchor">Another Example from Scikit-Learn's Repository </h2>
|
|
|
|
<!-- code=python (!bc pycod) typeset with pygments style "default" -->
|
|
<div class="cell border-box-sizing code_cell rendered">
|
|
<div class="input">
|
|
<div class="inner_cell">
|
|
<div class="input_area">
|
|
<div class="highlight" style="background: #f8f8f8">
|
|
<pre style="line-height: 125%;"><span style="color: #BA2121; font-style: italic">"""</span>
|
|
<span style="color: #BA2121; font-style: italic">============================</span>
|
|
<span style="color: #BA2121; font-style: italic">Underfitting vs. Overfitting</span>
|
|
<span style="color: #BA2121; font-style: italic">============================</span>
|
|
|
|
<span style="color: #BA2121; font-style: italic">This example demonstrates the problems of underfitting and overfitting and</span>
|
|
<span style="color: #BA2121; font-style: italic">how we can use linear regression with polynomial features to approximate</span>
|
|
<span style="color: #BA2121; font-style: italic">nonlinear functions. The plot shows the function that we want to approximate,</span>
|
|
<span style="color: #BA2121; font-style: italic">which is a part of the cosine function. In addition, the samples from the</span>
|
|
<span style="color: #BA2121; font-style: italic">real function and the approximations of different models are displayed. The</span>
|
|
<span style="color: #BA2121; font-style: italic">models have polynomial features of different degrees. We can see that a</span>
|
|
<span style="color: #BA2121; font-style: italic">linear function (polynomial with degree 1) is not sufficient to fit the</span>
|
|
<span style="color: #BA2121; font-style: italic">training samples. This is called **underfitting**. A polynomial of degree 4</span>
|
|
<span style="color: #BA2121; font-style: italic">approximates the true function almost perfectly. However, for higher degrees</span>
|
|
<span style="color: #BA2121; font-style: italic">the model will **overfit** the training data, i.e. it learns the noise of the</span>
|
|
<span style="color: #BA2121; font-style: italic">training data.</span>
|
|
<span style="color: #BA2121; font-style: italic">We evaluate quantitatively **overfitting** / **underfitting** by using</span>
|
|
<span style="color: #BA2121; font-style: italic">cross-validation. We calculate the mean squared error (MSE) on the validation</span>
|
|
<span style="color: #BA2121; font-style: italic">set, the higher, the less likely the model generalizes correctly from the</span>
|
|
<span style="color: #BA2121; font-style: italic">training data.</span>
|
|
<span style="color: #BA2121; font-style: italic">"""</span>
|
|
|
|
<span style="color: #008000">print</span>(<span style="color: #19177C">__doc__</span>)
|
|
|
|
<span style="color: #008000; font-weight: bold">import</span> <span style="color: #0000FF; font-weight: bold">numpy</span> <span style="color: #008000; font-weight: bold">as</span> <span style="color: #0000FF; font-weight: bold">np</span>
|
|
<span style="color: #008000; font-weight: bold">import</span> <span style="color: #0000FF; font-weight: bold">matplotlib.pyplot</span> <span style="color: #008000; font-weight: bold">as</span> <span style="color: #0000FF; font-weight: bold">plt</span>
|
|
<span style="color: #008000; font-weight: bold">from</span> <span style="color: #0000FF; font-weight: bold">sklearn.pipeline</span> <span style="color: #008000; font-weight: bold">import</span> Pipeline
|
|
<span style="color: #008000; font-weight: bold">from</span> <span style="color: #0000FF; font-weight: bold">sklearn.preprocessing</span> <span style="color: #008000; font-weight: bold">import</span> PolynomialFeatures
|
|
<span style="color: #008000; font-weight: bold">from</span> <span style="color: #0000FF; font-weight: bold">sklearn.linear_model</span> <span style="color: #008000; font-weight: bold">import</span> LinearRegression
|
|
<span style="color: #008000; font-weight: bold">from</span> <span style="color: #0000FF; font-weight: bold">sklearn.model_selection</span> <span style="color: #008000; font-weight: bold">import</span> cross_val_score
|
|
|
|
|
|
<span style="color: #008000; font-weight: bold">def</span> <span style="color: #0000FF">true_fun</span>(X):
|
|
<span style="color: #008000; font-weight: bold">return</span> np<span style="color: #666666">.</span>cos(<span style="color: #666666">1.5</span> <span style="color: #666666">*</span> np<span style="color: #666666">.</span>pi <span style="color: #666666">*</span> X)
|
|
|
|
np<span style="color: #666666">.</span>random<span style="color: #666666">.</span>seed(<span style="color: #666666">0</span>)
|
|
|
|
n_samples <span style="color: #666666">=</span> <span style="color: #666666">30</span>
|
|
degrees <span style="color: #666666">=</span> [<span style="color: #666666">1</span>, <span style="color: #666666">4</span>, <span style="color: #666666">15</span>]
|
|
|
|
X <span style="color: #666666">=</span> np<span style="color: #666666">.</span>sort(np<span style="color: #666666">.</span>random<span style="color: #666666">.</span>rand(n_samples))
|
|
y <span style="color: #666666">=</span> true_fun(X) <span style="color: #666666">+</span> np<span style="color: #666666">.</span>random<span style="color: #666666">.</span>randn(n_samples) <span style="color: #666666">*</span> <span style="color: #666666">0.1</span>
|
|
|
|
plt<span style="color: #666666">.</span>figure(figsize<span style="color: #666666">=</span>(<span style="color: #666666">14</span>, <span style="color: #666666">5</span>))
|
|
<span style="color: #008000; font-weight: bold">for</span> i <span style="color: #AA22FF; font-weight: bold">in</span> <span style="color: #008000">range</span>(<span style="color: #008000">len</span>(degrees)):
|
|
ax <span style="color: #666666">=</span> plt<span style="color: #666666">.</span>subplot(<span style="color: #666666">1</span>, <span style="color: #008000">len</span>(degrees), i <span style="color: #666666">+</span> <span style="color: #666666">1</span>)
|
|
plt<span style="color: #666666">.</span>setp(ax, xticks<span style="color: #666666">=</span>(), yticks<span style="color: #666666">=</span>())
|
|
|
|
polynomial_features <span style="color: #666666">=</span> PolynomialFeatures(degree<span style="color: #666666">=</span>degrees[i],
|
|
include_bias<span style="color: #666666">=</span><span style="color: #008000; font-weight: bold">False</span>)
|
|
linear_regression <span style="color: #666666">=</span> LinearRegression()
|
|
pipeline <span style="color: #666666">=</span> Pipeline([(<span style="color: #BA2121">"polynomial_features"</span>, polynomial_features),
|
|
(<span style="color: #BA2121">"linear_regression"</span>, linear_regression)])
|
|
pipeline<span style="color: #666666">.</span>fit(X[:, np<span style="color: #666666">.</span>newaxis], y)
|
|
|
|
<span style="color: #408080; font-style: italic"># Evaluate the models using crossvalidation</span>
|
|
scores <span style="color: #666666">=</span> cross_val_score(pipeline, X[:, np<span style="color: #666666">.</span>newaxis], y,
|
|
scoring<span style="color: #666666">=</span><span style="color: #BA2121">"neg_mean_squared_error"</span>, cv<span style="color: #666666">=10</span>)
|
|
|
|
X_test <span style="color: #666666">=</span> np<span style="color: #666666">.</span>linspace(<span style="color: #666666">0</span>, <span style="color: #666666">1</span>, <span style="color: #666666">100</span>)
|
|
plt<span style="color: #666666">.</span>plot(X_test, pipeline<span style="color: #666666">.</span>predict(X_test[:, np<span style="color: #666666">.</span>newaxis]), label<span style="color: #666666">=</span><span style="color: #BA2121">"Model"</span>)
|
|
plt<span style="color: #666666">.</span>plot(X_test, true_fun(X_test), label<span style="color: #666666">=</span><span style="color: #BA2121">"True function"</span>)
|
|
plt<span style="color: #666666">.</span>scatter(X, y, edgecolor<span style="color: #666666">=</span><span style="color: #BA2121">'b'</span>, s<span style="color: #666666">=20</span>, label<span style="color: #666666">=</span><span style="color: #BA2121">"Samples"</span>)
|
|
plt<span style="color: #666666">.</span>xlabel(<span style="color: #BA2121">"x"</span>)
|
|
plt<span style="color: #666666">.</span>ylabel(<span style="color: #BA2121">"y"</span>)
|
|
plt<span style="color: #666666">.</span>xlim((<span style="color: #666666">0</span>, <span style="color: #666666">1</span>))
|
|
plt<span style="color: #666666">.</span>ylim((<span style="color: #666666">-2</span>, <span style="color: #666666">2</span>))
|
|
plt<span style="color: #666666">.</span>legend(loc<span style="color: #666666">=</span><span style="color: #BA2121">"best"</span>)
|
|
plt<span style="color: #666666">.</span>title(<span style="color: #BA2121">"Degree </span><span style="color: #BB6688; font-weight: bold">{}</span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121">MSE = </span><span style="color: #BB6688; font-weight: bold">{:.2e}</span><span style="color: #BA2121">(+/- </span><span style="color: #BB6688; font-weight: bold">{:.2e}</span><span style="color: #BA2121">)"</span><span style="color: #666666">.</span>format(
|
|
degrees[i], <span style="color: #666666">-</span>scores<span style="color: #666666">.</span>mean(), scores<span style="color: #666666">.</span>std()))
|
|
plt<span style="color: #666666">.</span>show()
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="output_wrapper">
|
|
<div class="output">
|
|
<div class="output_area">
|
|
<div class="output_subarea output_stream output_stdout output_text">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<p>
|
|
<!-- navigation buttons at the bottom of the page -->
|
|
<ul class="pagination">
|
|
<li><a href="._week37-bs048.html">«</a></li>
|
|
<li><a href="._week37-bs000.html">1</a></li>
|
|
<li><a href="">...</a></li>
|
|
<li><a href="._week37-bs041.html">42</a></li>
|
|
<li><a href="._week37-bs042.html">43</a></li>
|
|
<li><a href="._week37-bs043.html">44</a></li>
|
|
<li><a href="._week37-bs044.html">45</a></li>
|
|
<li><a href="._week37-bs045.html">46</a></li>
|
|
<li><a href="._week37-bs046.html">47</a></li>
|
|
<li><a href="._week37-bs047.html">48</a></li>
|
|
<li><a href="._week37-bs048.html">49</a></li>
|
|
<li class="active"><a href="._week37-bs049.html">50</a></li>
|
|
<li><a href="._week37-bs050.html">51</a></li>
|
|
<li><a href="._week37-bs051.html">52</a></li>
|
|
<li><a href="._week37-bs052.html">53</a></li>
|
|
<li><a href="._week37-bs053.html">54</a></li>
|
|
<li><a href="._week37-bs054.html">55</a></li>
|
|
<li><a href="._week37-bs050.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="https://..."><img width="250" align=right src="https://..."></a>
|
|
</footer>
|
|
-->
|
|
<center style="font-size:80%">
|
|
<!-- copyright only on the titlepage -->
|
|
</center>
|
|
</body>
|
|
</html>
|
|
|