PageSourceSearch

https://edld654-fall22.netlify.app/

html edld654-fall22.netlify.app collected 2026-10-03 10:40:54 UTC 64,354 bytes, 2,271 lines download raw bytes

1<!DOCTYPE html>
2
3<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
4
5<head>
6  <meta charset="utf-8"/>
7<!-- This site is hosted on Netlify. Anyone can build and deploy a site
8     like this one for free: https://netlify.new/?utm_campaign=loops&utm_source=ai-legible&utm_medium=owned&utm_content=comment&utm_id=ab0ce3c8-c477-4f82-a0ee-037dc555cb61
9     Netlify hosting facts for this site: static/SSR served via Netlify Edge. -->
10  <meta name="viewport" content="width=device-width, initial-scale=1"/>
11  <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/>
12  <meta name="generator" content="distill" />
13
14  <style type="text/css">
15  /* Hide doc at startup (prevent jankiness while JS renders/transforms) */
16  body {
17    visibility: hidden;
18  }
19  </style>
20
21 <!--radix_placeholder_import_source-->
22 <!--/radix_placeholder_import_source-->
23
24<style type="text/css">code{white-space: pre;}</style>
25<style type="text/css" data-origin="pandoc">
26pre > code.sourceCode { white-space: pre; position: relative; }
27pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
28pre > code.sourceCode > span:empty { height: 1.2em; }
29.sourceCode { overflow: visible; }
30code.sourceCode > span { color: inherit; text-decoration: inherit; }
31div.sourceCode { margin: 1em 0; }
32pre.sourceCode { margin: 0; }
33@media screen {
34div.sourceCode { overflow: auto; }
35}
36@media print {
37pre > code.sourceCode { white-space: pre-wrap; }
38pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
39}
40pre.numberSource code
41  { counter-reset: source-line 0; }
42pre.numberSource code > span
43  { position: relative; left: -4em; counter-increment: source-line; }
44pre.numberSource code > span > a:first-child::before
45  { content: counter(source-line);
46    position: relative; left: -1em; text-align: right; vertical-align: baseline;
47    border: none; display: inline-block;
48    -webkit-touch-callout: none; -webkit-user-select: none;
49    -khtml-user-select: none; -moz-user-select: none;
50    -ms-user-select: none; user-select: none;
51    padding: 0 4px; width: 4em;
52    color: #aaaaaa;
53  }
54pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa;  padding-left: 4px; }
55div.sourceCode
56  { color: #00769e; background-color: #f1f3f5; }
57@media screen {
58pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
59}
60code span { color: #00769e; } /* Normal */
61code span.al { color: #ad0000; } /* Alert */
62code span.an { color: #5e5e5e; } /* Annotation */
63code span.at { color: #657422; } /* Attribute */
64code span.bn { color: #ad0000; } /* BaseN */
65code span.bu { } /* BuiltIn */
66code span.cf { color: #00769e; } /* ControlFlow */
67code span.ch { color: #20794d; } /* Char */
68code span.cn { color: #8f5902; } /* Constant */
69code span.co { color: #5e5e5e; } /* Comment */
70code span.cv { color: #5e5e5e; font-style: italic; } /* CommentVar */
71code span.do { color: #5e5e5e; font-style: italic; } /* Documentation */
72code span.dt { color: #ad0000; } /* DataType */
73code span.dv { color: #ad0000; } /* DecVal */
74code span.er { color: #ad0000; } /* Error */
75code span.ex { } /* Extension */
76code span.fl { color: #ad0000; } /* Float */
77code span.fu { color: #4758ab; } /* Function */
78code span.im { } /* Import */
79code span.in { color: #5e5e5e; } /* Information */
80code span.kw { color: #00769e; } /* Keyword */
81code span.op { color: #5e5e5e; } /* Operator */
82code span.ot { color: #00769e; } /* Other */
83code span.pp { color: #ad0000; } /* Preprocessor */
84code span.sc { color: #5e5e5e; } /* SpecialChar */
85code span.ss { color: #20794d; } /* SpecialString */
86code span.st { color: #20794d; } /* String */
87code span.va { color: #111111; } /* Variable */
88code span.vs { color: #20794d; } /* VerbatimString */
89code span.wa { color: #5e5e5e; font-style: italic; } /* Warning */
90</style>
91
92
93  <!--radix_placeholder_meta_tags-->
94  <title>Applied Machine Learning for Educational Data Science</title>
95
96  <meta property="description" itemprop="description" content="The fourth course in the Educational Data Science specialization at the University of Oregon"/>
97
98  <link rel="license" href="https://creativecommons.org/licenses/by/4.0/"/>
99
100
101  <!--  https://developers.facebook.com/docs/sharing/webmasters#markup -->
102  <meta property="og:title" content="Applied Machine Learning for Educational Data Science"/>
103  <meta property="og:type" content="article"/>
104  <meta property="og:description" content="The fourth course in the Educational Data Science specialization at the University of Oregon"/>
105  <meta property="og:locale" content="en_US"/>
106  <meta property="og:site_name" content="Applied Machine Learning for Educational Data Science"/>
107
108  <!--  https://dev.twitter.com/cards/types/summary -->
109  <meta property="twitter:card" content="summary"/>
110  <meta property="twitter:title" content="Applied Machine Learning for Educational Data Science"/>
111  <meta property="twitter:description" content="The fourth course in the Educational Data Science specialization at the University of Oregon"/>
112
113  <!--/radix_placeholder_meta_tags-->
114  <!--radix_placeholder_rmarkdown_metadata-->
115
116  
116<script type="text/json" id="radix-rmarkdown-metadata">
117  {"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["title","description","site"]}},"value":[{"type":"character","attributes":{},"value":["Applied Machine Learning for Educational Data Science"]},{"type":"character","attributes":{},"value":["The fourth course in the Educational Data Science specialization at the University of Oregon\n"]},{"type":"character","attributes":{},"value":["distill::distill_website"]}]}
118  </script>
118
119  <!--/radix_placeholder_rmarkdown_metadata-->
120  <!--radix_placeholder_navigation_in_header-->
121  <meta name="distill:offset" content=""/>
122
123  
123<script type="application/javascript">
124
125    window.headroom_prevent_pin = false;
126
127    window.document.addEventListener("DOMContentLoaded", function (event) {
128
129      // initialize headroom for banner
130      var header = $('header').get(0);
131      var headerHeight = header.offsetHeight;
132      var headroom = new Headroom(header, {
133        tolerance: 5,
134        onPin : function() {
135          if (window.headroom_prevent_pin) {
136            window.headroom_prevent_pin = false;
137            headroom.unpin();
138          }
139        }
140      });
141      headroom.init();
142      if(window.location.hash)
143        headroom.unpin();
144      $(header).addClass('headroom--transition');
145
146      // offset scroll location for banner on hash change
147      // (see: https://github.com/WickyNilliams/headroom.js/issues/38)
148      window.addEventListener("hashchange", function(event) {
149        window.scrollTo(0, window.pageYOffset - (headerHeight + 25));
150      });
151
152      // responsive menu
153      $('.distill-site-header').each(function(i, val) {
154        var topnav = $(this);
155        var toggle = topnav.find('.nav-toggle');
156        toggle.on('click', function() {
157          topnav.toggleClass('responsive');
158        });
159      });
160
161      // nav dropdowns
162      $('.nav-dropbtn').click(function(e) {
163        $(this).next('.nav-dropdown-content').toggleClass('nav-dropdown-active');
164        $(this).parent().siblings('.nav-dropdown')
165           .children('.nav-dropdown-content').removeClass('nav-dropdown-active');
166      });
167      $("body").click(function(e){
168        $('.nav-dropdown-content').removeClass('nav-dropdown-active');
169      });
170      $(".nav-dropdown").click(function(e){
171        e.stopPropagation();
172      });
173    });
174  </script>
174
175
176  <style type="text/css">
177
178  /* Theme (user-documented overrideables for nav appearance) */
179
180  .distill-site-nav {
181    color: rgba(255, 255, 255, 0.8);
182    background-color: #0F2E3D;
183    font-size: 15px;
184    font-weight: 300;
185  }
186
187  .distill-site-nav a {
188    color: inherit;
189    text-decoration: none;
190  }
191
192  .distill-site-nav a:hover {
193    color: white;
194  }
195
196  @media print {
197    .distill-site-nav {
198      display: none;
199    }
200  }
201
202  .distill-site-header {
203
204  }
205
206  .distill-site-footer {
207
208  }
209
210
211  /* Site Header */
212
213  .distill-site-header {
214    width: 100%;
215    box-sizing: border-box;
216    z-index: 3;
217  }
218
219  .distill-site-header .nav-left {
220    display: inline-block;
221    margin-left: 8px;
222  }
223
224  @media screen and (max-width: 768px) {
225    .distill-site-header .nav-left {
226      margin-left: 0;
227    }
228  }
229
230
231  .distill-site-header .nav-right {
232    float: right;
233    margin-right: 8px;
234  }
235
236  .distill-site-header a,
237  .distill-site-header .title {
238    display: inline-block;
239    text-align: center;
240    padding: 14px 10px 14px 10px;
241  }
242
243  .distill-site-header .title {
244    font-size: 18px;
245    min-width: 150px;
246  }
247
248  .distill-site-header .logo {
249    padding: 0;
250  }
251
252  .distill-site-header .logo img {
253    display: none;
254    max-height: 20px;
255    width: auto;
256    margin-bottom: -4px;
257  }
258
259  .distill-site-header .nav-image img {
260    max-height: 18px;
261    width: auto;
262    display: inline-block;
263    margin-bottom: -3px;
264  }
265
266
267
268  @media screen and (min-width: 1000px) {
269    .distill-site-header .logo img {
270      display: inline-block;
271    }
272    .distill-site-header .nav-left {
273      margin-left: 20px;
274    }
275    .distill-site-header .nav-right {
276      margin-right: 20px;
277    }
278    .distill-site-header .title {
279      padding-left: 12px;
280    }
281  }
282
283
284  .distill-site-header .nav-toggle {
285    display: none;
286  }
287
288  .nav-dropdown {
289    display: inline-block;
290    position: relative;
291  }
292
293  .nav-dropdown .nav-dropbtn {
294    border: none;
295    outline: none;
296    color: rgba(255, 255, 255, 0.8);
297    padding: 16px 10px;
298    background-color: transparent;
299    font-family: inherit;
300    font-size: inherit;
301    font-weight: inherit;
302    margin: 0;
303    margin-top: 1px;
304    z-index: 2;
305  }
306
307  .nav-dropdown-content {
308    display: none;
309    position: absolute;
310    background-color: white;
311    min-width: 200px;
312    border: 1px solid rgba(0,0,0,0.15);
313    border-radius: 4px;
314    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.1);
315    z-index: 1;
316    margin-top: 2px;
317    white-space: nowrap;
318    padding-top: 4px;
319    padding-bottom: 4px;
320  }
321
322  .nav-dropdown-content hr {
323    margin-top: 4px;
324    margin-bottom: 4px;
325    border: none;
326    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
327  }
328
329  .nav-dropdown-active {
330    display: block;
331  }
332
333  .nav-dropdown-content a, .nav-dropdown-content .nav-dropdown-header {
334    color: black;
335    padding: 6px 24px;
336    text-decoration: none;
337    display: block;
338    text-align: left;
339  }
340
341  .nav-dropdown-content .nav-dropdown-header {
342    display: block;
343    padding: 5px 24px;
344    padding-bottom: 0;
345    text-transform: uppercase;
346    font-size: 14px;
347    color: #999999;
348    white-space: nowrap;
349  }
350
351  .nav-dropdown:hover .nav-dropbtn {
352    color: white;
353  }
354
355  .nav-dropdown-content a:hover {
356    background-color: #ddd;
357    color: black;
358  }
359
360  .nav-right .nav-dropdown-content {
361    margin-left: -45%;
362    right: 0;
363  }
364
365  @media screen and (max-width: 768px) {
366    .distill-site-header a, .distill-site-header .nav-dropdown  {display: none;}
367    .distill-site-header a.nav-toggle {
368      float: right;
369      display: block;
370    }
371    .distill-site-header .title {
372      margin-left: 0;
373    }
374    .distill-site-header .nav-right {
375      margin-right: 0;
376    }
377    .distill-site-header {
378      overflow: hidden;
379    }
380    .nav-right .nav-dropdown-content {
381      margin-left: 0;
382    }
383  }
384
385
386  @media screen and (max-width: 768px) {
387    .distill-site-header.responsive {position: relative; min-height: 500px; }
388    .distill-site-header.responsive a.nav-toggle {
389      position: absolute;
390      right: 0;
391      top: 0;
392    }
393    .distill-site-header.responsive a,
394    .distill-site-header.responsive .nav-dropdown {
395      display: block;
396      text-align: left;
397    }
398    .distill-site-header.responsive .nav-left,
399    .distill-site-header.responsive .nav-right {
400      width: 100%;
401    }
402    .distill-site-header.responsive .nav-dropdown {float: none;}
403    .distill-site-header.responsive .nav-dropdown-content {position: relative;}
404    .distill-site-header.responsive .nav-dropdown .nav-dropbtn {
405      display: block;
406      width: 100%;
407      text-align: left;
408    }
409  }
410
411  /* Site Footer */
412
413  .distill-site-footer {
414    width: 100%;
415    overflow: hidden;
416    box-sizing: border-box;
417    z-index: 3;
418    margin-top: 30px;
419    padding-top: 30px;
420    padding-bottom: 30px;
421    text-align: center;
422  }
423
424  /* Headroom */
425
426  d-title {
427    padding-top: 6rem;
428  }
429
430  @media print {
431    d-title {
432      padding-top: 4rem;
433    }
434  }
435
436  .headroom {
437    z-index: 1000;
438    position: fixed;
439    top: 0;
440    left: 0;
441    right: 0;
442  }
443
444  .headroom--transition {
445    transition: all .4s ease-in-out;
446  }
447
448  .headroom--unpinned {
449    top: -100px;
450  }
451
452  .headroom--pinned {
453    top: 0;
454  }
455
456  /* adjust viewport for navbar height */
457  /* helps vertically center bootstrap (non-distill) content */
458  .min-vh-100 {
459    min-height: calc(100vh - 100px) !important;
460  }
461
462  </style>
463
464  
464<script src="site_libs/jquery-3.6.0/jquery-3.6.0.min.js"></script>
464
465  <link href="site_libs/font-awesome-5.1.0/css/all.css" rel="stylesheet"/>
466  <link href="site_libs/font-awesome-5.1.0/css/v4-shims.css" rel="stylesheet"/>
467  
467<script src="site_libs/headroom-0.9.4/headroom.min.js"></script>
467
468  
468<script src="site_libs/autocomplete-0.37.1/autocomplete.min.js"></script>
468
469  
469<script src="site_libs/fuse-6.4.1/fuse.min.js"></script>
469
470
471  
471<script type="application/javascript">
472
473  function getMeta(metaName) {
474    var metas = document.getElementsByTagName('meta');
475    for (let i = 0; i < metas.length; i++) {
476      if (metas[i].getAttribute('name') === metaName) {
477        return metas[i].getAttribute('content');
478      }
479    }
480    return '';
481  }
482
483  function offsetURL(url) {
484    var offset = getMeta('distill:offset');
485    return offset ? offset + '/' + url : url;
486  }
487
488  function createFuseIndex() {
489
490    // create fuse index
491    var options = {
492      keys: [
493        { name: 'title', weight: 20 },
494        { name: 'categories', weight: 15 },
495        { name: 'description', weight: 10 },
496        { name: 'contents', weight: 5 },
497      ],
498      ignoreLocation: true,
499      threshold: 0
500    };
501    var fuse = new window.Fuse([], options);
502
503    // fetch the main search.json
504    return fetch(offsetURL('search.json'))
505      .then(function(response) {
506        if (response.status == 200) {
507          return response.json().then(function(json) {
508            // index main articles
509            json.articles.forEach(function(article) {
510              fuse.add(article);
511            });
512            // download collections and index their articles
513            return Promise.all(json.collections.map(function(collection) {
514              return fetch(offsetURL(collection)).then(function(response) {
515                if (response.status === 200) {
516                  return response.json().then(function(articles) {
517                    articles.forEach(function(article) {
518                      fuse.add(article);
519                    });
520                  })
521                } else {
522                  return Promise.reject(
523                    new Error('Unexpected status from search index request: ' +
524                              response.status)
525                  );
526                }
527              });
528            })).then(function() {
529              return fuse;
530            });
531          });
532
533        } else {
534          return Promise.reject(
535            new Error('Unexpected status from search index request: ' +
536                        response.status)
537          );
538        }
539      });
540  }
541
542  window.document.addEventListener("DOMContentLoaded", function (event) {
543
544    // get search element (bail if we don't have one)
545    var searchEl = window.document.getElementById('distill-search');
546    if (!searchEl)
547      return;
548
549    createFuseIndex()
550      .then(function(fuse) {
551
552        // make search box visible
553        searchEl.classList.remove('hidden');
554
555        // initialize autocomplete
556        var options = {
557          autoselect: true,
558          hint: false,
559          minLength: 2,
560        };
561        window.autocomplete(searchEl, options, [{
562          source: function(query, callback) {
563            const searchOptions = {
564              isCaseSensitive: false,
565              shouldSort: true,
566              minMatchCharLength: 2,
567              limit: 10,
568            };
569            var results = fuse.search(query, searchOptions);
570            callback(results
571              .map(function(result) { return result.item; })
572            );
573          },
574          templates: {
575            suggestion: function(suggestion) {
576              var img = suggestion.preview && Object.keys(suggestion.preview).length > 0
577                ? `<img src="${offsetURL(suggestion.preview)}"</img>`
578                : '';
579              var html = `
580                <div class="search-item">
581                  <h3>${suggestion.title}</h3>
582                  <div class="search-item-description">
583                    ${suggestion.description || ''}
584                  </div>
585                  <div class="search-item-preview">
586                    ${img}
587                  </div>
588                </div>
589              `;
590              return html;
591            }
592          }
593        }]).on('autocomplete:selected', function(event, suggestion) {
594          window.location.href = offsetURL(suggestion.path);
595        });
596        // remove inline display style on autocompleter (we want to
597        // manage responsive display via css)
598        $('.algolia-autocomplete').css("display", "");
599      })
600      .catch(function(error) {
601        console.log(error);
602      });
603
604  });
605
606  </script>
606
607
608  <style type="text/css">
609
610  .nav-search {
611    font-size: x-small;
612  }
613
614  /* Algolioa Autocomplete */
615
616  .algolia-autocomplete {
617    display: inline-block;
618    margin-left: 10px;
619    vertical-align: sub;
620    background-color: white;
621    color: black;
622    padding: 6px;
623    padding-top: 8px;
624    padding-bottom: 0;
625    border-radius: 6px;
626    border: 1px #0F2E3D solid;
627    width: 180px;
628  }
629
630
631  @media screen and (max-width: 768px) {
632    .distill-site-nav .algolia-autocomplete {
633      display: none;
634      visibility: hidden;
635    }
636    .distill-site-nav.responsive .algolia-autocomplete {
637      display: inline-block;
638      visibility: visible;
639    }
640    .distill-site-nav.responsive .algolia-autocomplete .aa-dropdown-menu {
641      margin-left: 0;
642      width: 400px;
643      max-height: 400px;
644    }
645  }
646
647  .algolia-autocomplete .aa-input, .algolia-autocomplete .aa-hint {
648    width: 90%;
649    outline: none;
650    border: none;
651  }
652
653  .algolia-autocomplete .aa-hint {
654    color: #999;
655  }
656  .algolia-autocomplete .aa-dropdown-menu {
657    width: 550px;
658    max-height: 70vh;
659    overflow-x: visible;
660    overflow-y: scroll;
661    padding: 5px;
662    margin-top: 3px;
663    margin-left: -150px;
664    background-color: #fff;
665    border-radius: 5px;
666    border: 1px solid #999;
667    border-top: none;
668  }
669
670  .algolia-autocomplete .aa-dropdown-menu .aa-suggestion {
671    cursor: pointer;
672    padding: 5px 4px;
673    border-bottom: 1px solid #eee;
674  }
675
676  .algolia-autocomplete .aa-dropdown-menu .aa-suggestion:last-of-type {
677    border-bottom: none;
678    margin-bottom: 2px;
679  }
680
681  .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item {
682    overflow: hidden;
683    font-size: 0.8em;
684    line-height: 1.4em;
685  }
686
687  .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item h3 {
688    font-size: 1rem;
689    margin-block-start: 0;
690    margin-block-end: 5px;
691  }
692
693  .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-description {
694    display: inline-block;
695    overflow: hidden;
696    height: 2.8em;
697    width: 80%;
698    margin-right: 4%;
699  }
700
701  .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-preview {
702    display: inline-block;
703    width: 15%;
704  }
705
706  .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-preview img {
707    height: 3em;
708    width: auto;
709    display: none;
710  }
711
712  .algolia-autocomplete .aa-dropdown-menu .aa-suggestion .search-item-preview img[src] {
713    display: initial;
714  }
715
716  .algolia-autocomplete .aa-dropdown-menu .aa-suggestion.aa-cursor {
717    background-color: #eee;
718  }
719  .algolia-autocomplete .aa-dropdown-menu .aa-suggestion em {
720    font-weight: bold;
721    font-style: normal;
722  }
723
724  </style>
725
726
727  <!--/radix_placeholder_navigation_in_header-->
728  <!--radix_placeholder_distill-->
729
730  <style type="text/css">
731
732  body {
733    background-color: white;
734  }
735
736  .pandoc-table {
737    width: 100%;
738  }
739
740  .pandoc-table>caption {
741    margin-bottom: 10px;
742  }
743
744  .pandoc-table th:not([align]) {
745    text-align: left;
746  }
747
748  .pagedtable-footer {
749    font-size: 15px;
750  }
751
752  d-byline .byline {
753    grid-template-columns: 2fr 2fr;
754  }
755
756  d-byline .byline h3 {
757    margin-block-start: 1.5em;
758  }
759
760  d-byline .byline .authors-affiliations h3 {
761    margin-block-start: 0.5em;
762  }
763
764  .authors-affiliations .orcid-id {
765    width: 16px;
766    height:16px;
767    margin-left: 4px;
768    margin-right: 4px;
769    vertical-align: middle;
770    padding-bottom: 2px;
771  }
772
773  d-title .dt-tags {
774    margin-top: 1em;
775    grid-column: text;
776  }
777
778  .dt-tags .dt-tag {
779    text-decoration: none;
780    display: inline-block;
781    color: rgba(0,0,0,0.6);
782    padding: 0em 0.4em;
783    margin-right: 0.5em;
784    margin-bottom: 0.4em;
785    font-size: 70%;
786    border: 1px solid rgba(0,0,0,0.2);
787    border-radius: 3px;
788    text-transform: uppercase;
789    font-weight: 500;
790  }
791
792  d-article table.gt_table td,
793  d-article table.gt_table th {
794    border-bottom: none;
795  }
796
797  .html-widget {
798    margin-bottom: 2.0em;
799  }
800
801  .l-screen-inset {
802    padding-right: 16px;
803  }
804
805  .l-screen .caption {
806    margin-left: 10px;
807  }
808
809  .shaded {
810    background: rgb(247, 247, 247);
811    padding-top: 20px;
812    padding-bottom: 20px;
813    border-top: 1px solid rgba(0, 0, 0, 0.1);
814    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
815  }
816
817  .shaded .html-widget {
818    margin-bottom: 0;
819    border: 1px solid rgba(0, 0, 0, 0.1);
820  }
821
822  .shaded .shaded-content {
823    background: white;
824  }
825
826  .text-output {
827    margin-top: 0;
828    line-height: 1.5em;
829  }
830
831  .hidden {
832    display: none !important;
833  }
834
835  d-article {
836    padding-top: 2.5rem;
837    padding-bottom: 30px;
838  }
839
840  d-appendix {
841    padding-top: 30px;
842  }
843
844  d-article>p>img {
845    width: 100%;
846  }
847
848  d-article h2 {
849    margin: 1rem 0 1.5rem 0;
850  }
851
852  d-article h3 {
853    margin-top: 1.5rem;
854  }
855
856  d-article iframe {
857    border: 1px solid rgba(0, 0, 0, 0.1);
858    margin-bottom: 2.0em;
859    width: 100%;
860  }
861
862  /* Tweak code blocks */
863
864  d-article div.sourceCode code,
865  d-article pre code {
866    font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
867  }
868
869  d-article pre,
870  d-article div.sourceCode,
871  d-article div.sourceCode pre {
872    overflow: auto;
873  }
874
875  d-article div.sourceCode {
876    background-color: white;
877  }
878
879  d-article div.sourceCode pre {
880    padding-left: 10px;
881    font-size: 12px;
882    border-left: 2px solid rgba(0,0,0,0.1);
883  }
884
885  d-article pre {
886    font-size: 12px;
887    color: black;
888    background: none;
889    margin-top: 0;
890    text-align: left;
891    white-space: pre;
892    word-spacing: normal;
893    word-break: normal;
894    word-wrap: normal;
895    line-height: 1.5;
896
897    -moz-tab-size: 4;
898    -o-tab-size: 4;
899    tab-size: 4;
900
901    -webkit-hyphens: none;
902    -moz-hyphens: none;
903    -ms-hyphens: none;
904    hyphens: none;
905  }
906
907  d-article pre a {
908    border-bottom: none;
909  }
910
911  d-article pre a:hover {
912    border-bottom: none;
913    text-decoration: underline;
914  }
915
916  d-article details {
917    grid-column: text;
918    margin-bottom: 0.8em;
919  }
920
921  @media(min-width: 768px) {
922
923  d-article pre,
924  d-article div.sourceCode,
925  d-article div.sourceCode pre {
926    overflow: visible !important;
927  }
928
929  d-article div.sourceCode pre {
930    padding-left: 18px;
931    font-size: 14px;
932  }
933
934  d-article pre {
935    font-size: 14px;
936  }
937
938  }
939
940  figure img.external {
941    background: white;
942    border: 1px solid rgba(0, 0, 0, 0.1);
943    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);
944    padding: 18px;
945    box-sizing: border-box;
946  }
947
948  /* CSS for d-contents */
949
950  .d-contents {
951    grid-column: text;
952    color: rgba(0,0,0,0.8);
953    font-size: 0.9em;
954    padding-bottom: 1em;
955    margin-bottom: 1em;
956    padding-bottom: 0.5em;
957    margin-bottom: 1em;
958    padding-left: 0.25em;
959    justify-self: start;
960  }
961
962  @media(min-width: 1000px) {
963    .d-contents.d-contents-float {
964      height: 0;
965      grid-column-start: 1;
966      grid-column-end: 4;
967      justify-self: center;
968      padding-right: 3em;
969      padding-left: 2em;
970    }
971  }
972
973  .d-contents nav h3 {
974    font-size: 18px;
975    margin-top: 0;
976    margin-bottom: 1em;
977  }
978
979  .d-contents li {
980    list-style-type: none
981  }
982
983  .d-contents nav > ul {
984    padding-left: 0;
985  }
986
987  .d-contents ul {
988    padding-left: 1em
989  }
990
991  .d-contents nav ul li {
992    margin-top: 0.6em;
993    margin-bottom: 0.2em;
994  }
995
996  .d-contents nav a {
997    font-size: 13px;
998    border-bottom: none;
999    text-decoration: none
1000    color: rgba(0, 0, 0, 0.8);
1001  }
1002
1003  .d-contents nav a:hover {
1004    text-decoration: underline solid rgba(0, 0, 0, 0.6)
1005  }
1006
1007  .d-contents nav > ul > li > a {
1008    font-weight: 600;
1009  }
1010
1011  .d-contents nav > ul > li > ul {
1012    font-weight: inherit;
1013  }
1014
1015  .d-contents nav > ul > li > ul > li {
1016    margin-top: 0.2em;
1017  }
1018
1019
1020  .d-contents nav ul {
1021    margin-top: 0;
1022    margin-bottom: 0.25em;
1023  }
1024
1025  .d-article-with-toc h2:nth-child(2) {
1026    margin-top: 0;
1027  }
1028
1029
1030  /* Figure */
1031
1032  .figure {
1033    position: relative;
1034    margin-bottom: 2.5em;
1035    margin-top: 1.5em;
1036  }
1037
1038  .figure .caption {
1039    color: rgba(0, 0, 0, 0.6);
1040    font-size: 12px;
1041    line-height: 1.5em;
1042  }
1043
1044  .figure img.external {
1045    background: white;
1046    border: 1px solid rgba(0, 0, 0, 0.1);
1047    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);
1048    padding: 18px;
1049    box-sizing: border-box;
1050  }
1051
1052  .figure .caption a {
1053    color: rgba(0, 0, 0, 0.6);
1054  }
1055
1056  .figure .caption b,
1057  .figure .caption strong, {
1058    font-weight: 600;
1059    color: rgba(0, 0, 0, 1.0);
1060  }
1061
1062  /* Citations */
1063
1064  d-article .citation {
1065    color: inherit;
1066    cursor: inherit;
1067  }
1068
1069  div.hanging-indent{
1070    margin-left: 1em; text-indent: -1em;
1071  }
1072
1073  /* Citation hover box */
1074
1075  .tippy-box[data-theme~=light-border] {
1076    background-color: rgba(250, 250, 250, 0.95);
1077  }
1078
1079  .tippy-content > p {
1080    margin-bottom: 0;
1081    padding: 2px;
1082  }
1083
1084
1085  /* Tweak 1000px media break to show more text */
1086
1087  @media(min-width: 1000px) {
1088    .base-grid,
1089    distill-header,
1090    d-title,
1091    d-abstract,
1092    d-article,
1093    d-appendix,
1094    distill-appendix,
1095    d-byline,
1096    d-footnote-list,
1097    d-citation-list,
1098    distill-footer {
1099      grid-template-columns: [screen-start] 1fr [page-start kicker-start] 80px [middle-start] 50px [text-start kicker-end] 65px 65px 65px 65px 65px 65px 65px 65px [text-end gutter-start] 65px [middle-end] 65px [page-end gutter-end] 1fr [screen-end];
1100      grid-column-gap: 16px;
1101    }
1102
1103    .grid {
1104      grid-column-gap: 16px;
1105    }
1106
1107    d-article {
1108      font-size: 1.06rem;
1109      line-height: 1.7em;
1110    }
1111    figure .caption, .figure .caption, figure figcaption {
1112      font-size: 13px;
1113    }
1114  }
1115
1116  @media(min-width: 1180px) {
1117    .base-grid,
1118    distill-header,
1119    d-title,
1120    d-abstract,
1121    d-article,
1122    d-appendix,
1123    distill-appendix,
1124    d-byline,
1125    d-footnote-list,
1126    d-citation-list,
1127    distill-footer {
1128      grid-template-columns: [screen-start] 1fr [page-start kicker-start] 60px [middle-start] 60px [text-start kicker-end] 60px 60px 60px 60px 60px 60px 60px 60px [text-end gutter-start] 60px [middle-end] 60px [page-end gutter-end] 1fr [screen-end];
1129      grid-column-gap: 32px;
1130    }
1131
1132    .grid {
1133      grid-column-gap: 32px;
1134    }
1135  }
1136
1137
1138  /* Get the citation styles for the appendix (not auto-injected on render since
1139     we do our own rendering of the citation appendix) */
1140
1141  d-appendix .citation-appendix,
1142  .d-appendix .citation-appendix {
1143    font-size: 11px;
1144    line-height: 15px;
1145    border-left: 1px solid rgba(0, 0, 0, 0.1);
1146    padding-left: 18px;
1147    border: 1px solid rgba(0,0,0,0.1);
1148    background: rgba(0, 0, 0, 0.02);
1149    padding: 10px 18px;
1150    border-radius: 3px;
1151    color: rgba(150, 150, 150, 1);
1152    overflow: hidden;
1153    margin-top: -12px;
1154    white-space: pre-wrap;
1155    word-wrap: break-word;
1156  }
1157
1158  /* Include appendix styles here so they can be overridden */
1159
1160  d-appendix {
1161    contain: layout style;
1162    font-size: 0.8em;
1163    line-height: 1.7em;
1164    margin-top: 60px;
1165    margin-bottom: 0;
1166    border-top: 1px solid rgba(0, 0, 0, 0.1);
1167    color: rgba(0,0,0,0.5);
1168    padding-top: 60px;
1169    padding-bottom: 48px;
1170  }
1171
1172  d-appendix h3 {
1173    grid-column: page-start / text-start;
1174    font-size: 15px;
1175    font-weight: 500;
1176    margin-top: 1em;
1177    margin-bottom: 0;
1178    color: rgba(0,0,0,0.65);
1179  }
1180
1181  d-appendix h3 + * {
1182    margin-top: 1em;
1183  }
1184
1185  d-appendix ol {
1186    padding: 0 0 0 15px;
1187  }
1188
1189  @media (min-width: 768px) {
1190    d-appendix ol {
1191      padding: 0 0 0 30px;
1192      margin-left: -30px;
1193    }
1194  }
1195
1196  d-appendix li {
1197    margin-bottom: 1em;
1198  }
1199
1200  d-appendix a {
1201    color: rgba(0, 0, 0, 0.6);
1202  }
1203
1204  d-appendix > * {
1205    grid-column: text;
1206  }
1207
1208  d-appendix > d-footnote-list,
1209  d-appendix > d-citation-list,
1210  d-appendix > distill-appendix {
1211    grid-column: screen;
1212  }
1213
1214  /* Include footnote styles here so they can be overridden */
1215
1216  d-footnote-list {
1217    contain: layout style;
1218  }
1219
1220  d-footnote-list > * {
1221    grid-column: text;
1222  }
1223
1224  d-footnote-list a.footnote-backlink {
1225    color: rgba(0,0,0,0.3);
1226    padding-left: 0.5em;
1227  }
1228
1229
1230
1231  /* Anchor.js */
1232
1233  .anchorjs-link {
1234    /*transition: all .25s linear; */
1235    text-decoration: none;
1236    border-bottom: none;
1237  }
1238  *:hover > .anchorjs-link {
1239    margin-left: -1.125em !important;
1240    text-decoration: none;
1241    border-bottom: none;
1242  }
1243
1244  /* Social footer */
1245
1246  .social_footer {
1247    margin-top: 30px;
1248    margin-bottom: 0;
1249    color: rgba(0,0,0,0.67);
1250  }
1251
1252  .disqus-comments {
1253    margin-right: 30px;
1254  }
1255
1256  .disqus-comment-count {
1257    border-bottom: 1px solid rgba(0, 0, 0, 0.4);
1258    cursor: pointer;
1259  }
1260
1261  #disqus_thread {
1262    margin-top: 30px;
1263  }
1264
1265  .article-sharing a {
1266    border-bottom: none;
1267    margin-right: 8px;
1268  }
1269
1270  .article-sharing a:hover {
1271    border-bottom: none;
1272  }
1273
1274  .sidebar-section.subscribe {
1275    font-size: 12px;
1276    line-height: 1.6em;
1277  }
1278
1279  .subscribe p {
1280    margin-bottom: 0.5em;
1281  }
1282
1283
1284  .article-footer .subscribe {
1285    font-size: 15px;
1286    margin-top: 45px;
1287  }
1288
1289
1290  .sidebar-section.custom {
1291    font-size: 12px;
1292    line-height: 1.6em;
1293  }
1294
1295  .custom p {
1296    margin-bottom: 0.5em;
1297  }
1298
1299  /* Styles for listing layout (hide title) */
1300  .layout-listing d-title, .layout-listing .d-title {
1301    display: none;
1302  }
1303
1304  /* Styles for posts lists (not auto-injected) */
1305
1306
1307  .posts-with-sidebar {
1308    padding-left: 45px;
1309    padding-right: 45px;
1310  }
1311
1312  .posts-list .description h2,
1313  .posts-list .description p {
1314    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;
1315  }
1316
1317  .posts-list .description h2 {
1318    font-weight: 700;
1319    border-bottom: none;
1320    padding-bottom: 0;
1321  }
1322
1323  .posts-list h2.post-tag {
1324    border-bottom: 1px solid rgba(0, 0, 0, 0.2);
1325    padding-bottom: 12px;
1326  }
1327  .posts-list {
1328    margin-top: 60px;
1329    margin-bottom: 24px;
1330  }
1331
1332  .posts-list .post-preview {
1333    text-decoration: none;
1334    overflow: hidden;
1335    display: block;
1336    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
1337    padding: 24px 0;
1338  }
1339
1340  .post-preview-last {
1341    border-bottom: none !important;
1342  }
1343
1344  .posts-list .posts-list-caption {
1345    grid-column: screen;
1346    font-weight: 400;
1347  }
1348
1349  .posts-list .post-preview h2 {
1350    margin: 0 0 6px 0;
1351    line-height: 1.2em;
1352    font-style: normal;
1353    font-size: 24px;
1354  }
1355
1356  .posts-list .post-preview p {
1357    margin: 0 0 12px 0;
1358    line-height: 1.4em;
1359    font-size: 16px;
1360  }
1361
1362  .posts-list .post-preview .thumbnail {
1363    box-sizing: border-box;
1364    margin-bottom: 24px;
1365    position: relative;
1366    max-width: 500px;
1367  }
1368  .posts-list .post-preview img {
1369    width: 100%;
1370    display: block;
1371  }
1372
1373  .posts-list .metadata {
1374    font-size: 12px;
1375    line-height: 1.4em;
1376    margin-bottom: 18px;
1377  }
1378
1379  .posts-list .metadata > * {
1380    display: inline-block;
1381  }
1382
1383  .posts-list .metadata .publishedDate {
1384    margin-right: 2em;
1385  }
1386
1387  .posts-list .metadata .dt-authors {
1388    display: block;
1389    margin-top: 0.3em;
1390    margin-right: 2em;
1391  }
1392
1393  .posts-list .dt-tags {
1394    display: block;
1395    line-height: 1em;
1396  }
1397
1398  .posts-list .dt-tags .dt-tag {
1399    display: inline-block;
1400    color: rgba(0,0,0,0.6);
1401    padding: 0.3em 0.4em;
1402    margin-right: 0.2em;
1403    margin-bottom: 0.4em;
1404    font-size: 60%;
1405    border: 1px solid rgba(0,0,0,0.2);
1406    border-radius: 3px;
1407    text-transform: uppercase;
1408    font-weight: 500;
1409  }
1410
1411  .posts-list img {
1412    opacity: 1;
1413  }
1414
1415  .posts-list img[data-src] {
1416    opacity: 0;
1417  }
1418
1419  .posts-more {
1420    clear: both;
1421  }
1422
1423
1424  .posts-sidebar {
1425    font-size: 16px;
1426  }
1427
1428  .posts-sidebar h3 {
1429    font-size: 16px;
1430    margin-top: 0;
1431    margin-bottom: 0.5em;
1432    font-weight: 400;
1433    text-transform: uppercase;
1434  }
1435
1436  .sidebar-section {
1437    margin-bottom: 30px;
1438  }
1439
1440  .categories ul {
1441    list-style-type: none;
1442    margin: 0;
1443    padding: 0;
1444  }
1445
1446  .categories li {
1447    color: rgba(0, 0, 0, 0.8);
1448    margin-bottom: 0;
1449  }
1450
1451  .categories li>a {
1452    border-bottom: none;
1453  }
1454
1455  .categories li>a:hover {
1456    border-bottom: 1px solid rgba(0, 0, 0, 0.4);
1457  }
1458
1459  .categories .active {
1460    font-weight: 600;
1461  }
1462
1463  .categories .category-count {
1464    color: rgba(0, 0, 0, 0.4);
1465  }
1466
1467
1468  @media(min-width: 768px) {
1469    .posts-list .post-preview h2 {
1470      font-size: 26px;
1471    }
1472    .posts-list .post-preview .thumbnail {
1473      float: right;
1474      width: 30%;
1475      margin-bottom: 0;
1476    }
1477    .posts-list .post-preview .description {
1478      float: left;
1479      width: 45%;
1480    }
1481    .posts-list .post-preview .metadata {
1482      float: left;
1483      width: 20%;
1484      margin-top: 8px;
1485    }
1486    .posts-list .post-preview p {
1487      margin: 0 0 12px 0;
1488      line-height: 1.5em;
1489      font-size: 16px;
1490    }
1491    .posts-with-sidebar .posts-list {
1492      float: left;
1493      width: 75%;
1494    }
1495    .posts-with-sidebar .posts-sidebar {
1496      float: right;
1497      width: 20%;
1498      margin-top: 60px;
1499      padding-top: 24px;
1500      padding-bottom: 24px;
1501    }
1502  }
1503
1504
1505  /* Improve display for browsers without grid (IE/Edge <= 15) */
1506
1507  .downlevel {
1508    line-height: 1.6em;
1509    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;
1510    margin: 0;
1511  }
1512
1513  .downlevel .d-title {
1514    padding-top: 6rem;
1515    padding-bottom: 1.5rem;
1516  }
1517
1518  .downlevel .d-title h1 {
1519    font-size: 50px;
1520    font-weight: 700;
1521    line-height: 1.1em;
1522    margin: 0 0 0.5rem;
1523  }
1524
1525  .downlevel .d-title p {
1526    font-weight: 300;
1527    font-size: 1.2rem;
1528    line-height: 1.55em;
1529    margin-top: 0;
1530  }
1531
1532  .downlevel .d-byline {
1533    padding-top: 0.8em;
1534    padding-bottom: 0.8em;
1535    font-size: 0.8rem;
1536    line-height: 1.8em;
1537  }
1538
1539  .downlevel .section-separator {
1540    border: none;
1541    border-top: 1px solid rgba(0, 0, 0, 0.1);
1542  }
1543
1544  .downlevel .d-article {
1545    font-size: 1.06rem;
1546    line-height: 1.7em;
1547    padding-top: 1rem;
1548    padding-bottom: 2rem;
1549  }
1550
1551
1552  .downlevel .d-appendix {
1553    padding-left: 0;
1554    padding-right: 0;
1555    max-width: none;
1556    font-size: 0.8em;
1557    line-height: 1.7em;
1558    margin-bottom: 0;
1559    color: rgba(0,0,0,0.5);
1560    padding-top: 40px;
1561    padding-bottom: 48px;
1562  }
1563
1564  .downlevel .footnotes ol {
1565    padding-left: 13px;
1566  }
1567
1568  .downlevel .base-grid,
1569  .downlevel .distill-header,
1570  .downlevel .d-title,
1571  .downlevel .d-abstract,
1572  .downlevel .d-article,
1573  .downlevel .d-appendix,
1574  .downlevel .distill-appendix,
1575  .downlevel .d-byline,
1576  .downlevel .d-footnote-list,
1577  .downlevel .d-citation-list,
1578  .downlevel .distill-footer,
1579  .downlevel .appendix-bottom,
1580  .downlevel .posts-container {
1581    padding-left: 40px;
1582    padding-right: 40px;
1583  }
1584
1585  @media(min-width: 768px) {
1586    .downlevel .base-grid,
1587    .downlevel .distill-header,
1588    .downlevel .d-title,
1589    .downlevel .d-abstract,
1590    .downlevel .d-article,
1591    .downlevel .d-appendix,
1592    .downlevel .distill-appendix,
1593    .downlevel .d-byline,
1594    .downlevel .d-footnote-list,
1595    .downlevel .d-citation-list,
1596    .downlevel .distill-footer,
1597    .downlevel .appendix-bottom,
1598    .downlevel .posts-container {
1599    padding-left: 150px;
1600    padding-right: 150px;
1601    max-width: 900px;
1602  }
1603  }
1604
1605  .downlevel pre code {
1606    display: block;
1607    border-left: 2px solid rgba(0, 0, 0, .1);
1608    padding: 0 0 0 20px;
1609    font-size: 14px;
1610  }
1611
1612  .downlevel code, .downlevel pre {
1613    color: black;
1614    background: none;
1615    font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
1616    text-align: left;
1617    white-space: pre;
1618    word-spacing: normal;
1619    word-break: normal;
1620    word-wrap: normal;
1621    line-height: 1.5;
1622
1623    -moz-tab-size: 4;
1624    -o-tab-size: 4;
1625    tab-size: 4;
1626
1627    -webkit-hyphens: none;
1628    -moz-hyphens: none;
1629    -ms-hyphens: none;
1630    hyphens: none;
1631  }
1632
1633  .downlevel .posts-list .post-preview {
1634    color: inherit;
1635  }
1636
1637
1638
1639  </style>
1640
1641  
1641<script type="application/javascript">
1642
1643  function is_downlevel_browser() {
1644    if (bowser.isUnsupportedBrowser({ msie: "12", msedge: "16"},
1645                                   window.navigator.userAgent)) {
1646      return true;
1647    } else {
1648      return window.load_distill_framework === undefined;
1649    }
1650  }
1651
1652  // show body when load is complete
1653  function on_load_complete() {
1654
1655    // add anchors
1656    if (window.anchors) {
1657      window.anchors.options.placement = 'left';
1658      window.anchors.add('d-article > h2, d-article > h3, d-article > h4, d-article > h5');
1659    }
1660
1661
1662    // set body to visible
1663    document.body.style.visibility = 'visible';
1664
1665    // force redraw for leaflet widgets
1666    if (window.HTMLWidgets) {
1667      var maps = window.HTMLWidgets.findAll(".leaflet");
1668      $.each(maps, function(i, el) {
1669        var map = this.getMap();
1670        map.invalidateSize();
1671        map.eachLayer(function(layer) {
1672          if (layer instanceof L.TileLayer)
1673            layer.redraw();
1674        });
1675      });
1676    }
1677
1678    // trigger 'shown' so htmlwidgets resize
1679    $('d-article').trigger('shown');
1680  }
1681
1682  function init_distill() {
1683
1684    init_common();
1685
1686    // create front matter
1687    var front_matter = $('<d-front-matter></d-front-matter>');
1688    $('#distill-front-matter').wrap(front_matter);
1689
1690    // create d-title
1691    $('.d-title').changeElementType('d-title');
1692
1693    // create d-byline
1694    var byline = $('<d-byline></d-byline>');
1695    $('.d-byline').replaceWith(byline);
1696
1697    // create d-article
1698    var article = $('<d-article></d-article>');
1699    $('.d-article').wrap(article).children().unwrap();
1700
1701    // move posts container into article
1702    $('.posts-container').appendTo($('d-article'));
1703
1704    // create d-appendix
1705    $('.d-appendix').changeElementType('d-appendix');
1706
1707    // flag indicating that we have appendix items
1708    var appendix = $('.appendix-bottom').children('h3').length > 0;
1709
1710    // replace footnotes with <d-footnote>
1711    $('.footnote-ref').each(function(i, val) {
1712      appendix = true;
1713      var href = $(this).attr('href');
1714      var id = href.replace('#', '');
1715      var fn = $('#' + id);
1716      var fn_p = $('#' + id + '>p');
1717      fn_p.find('.footnote-back').remove();
1718      var text = fn_p.html();
1719      var dtfn = $('<d-footnote></d-footnote>');
1720      dtfn.html(text);
1721      $(this).replaceWith(dtfn);
1722    });
1723    // remove footnotes
1724    $('.footnotes').remove();
1725
1726    // move refs into #references-listing
1727    $('#references-listing').replaceWith($('#refs'));
1728
1729    $('h1.appendix, h2.appendix').each(function(i, val) {
1730      $(this).changeElementType('h3');
1731    });
1732    $('h3.appendix').each(function(i, val) {
1733      var id = $(this).attr('id');
1734      $('.d-contents a[href="#' + id + '"]').parent().remove();
1735      appendix = true;
1736      $(this).nextUntil($('h1, h2, h3')).addBack().appendTo($('d-appendix'));
1737    });
1738
1739    // show d-appendix if we have appendix content
1740    $("d-appendix").css('display', appendix ? 'grid' : 'none');
1741
1742    // localize layout chunks to just output
1743    $('.layout-chunk').each(function(i, val) {
1744
1745      // capture layout
1746      var layout = $(this).attr('data-layout');
1747
1748      // apply layout to markdown level block elements
1749      var elements = $(this).children().not('details, div.sourceCode, pre, script');
1750      elements.each(function(i, el) {
1751        var layout_div = $('<div class="' + layout + '"></div>');
1752        if (layout_div.hasClass('shaded')) {
1753          var shaded_content = $('<div class="shaded-content"></div>');
1754          $(this).wrap(shaded_content);
1755          $(this).parent().wrap(layout_div);
1756        } else {
1757          $(this).wrap(layout_div);
1758        }
1759      });
1760
1761
1762      // unwrap the layout-chunk div
1763      $(this).children().unwrap();
1764    });
1765
1766    // remove code block used to force  highlighting css
1767    $('.distill-force-highlighting-css').parent().remove();
1768
1769    // remove empty line numbers inserted by pandoc when using a
1770    // custom syntax highlighting theme
1771    $('code.sourceCode a:empty').remove();
1772
1773    // load distill framework
1774    load_distill_framework();
1775
1776    // wait for window.distillRunlevel == 4 to do post processing
1777    function distill_post_process() {
1778
1779      if (!window.distillRunlevel || window.distillRunlevel < 4)
1780        return;
1781
1782      // hide author/affiliations entirely if we have no authors
1783      var front_matter = JSON.parse($("#distill-front-matter").html());
1784      var have_authors = front_matter.authors && front_matter.authors.length > 0;
1785      if (!have_authors)
1786        $('d-byline').addClass('hidden');
1787
1788      // article with toc class
1789      $('.d-contents').parent().addClass('d-article-with-toc');
1790
1791      // strip links that point to #
1792      $('.authors-affiliations').find('a[href="#"]').removeAttr('href');
1793
1794      // add orcid ids
1795      $('.authors-affiliations').find('.author').each(function(i, el) {
1796        var orcid_id = front_matter.authors[i].orcidID;
1797        if (orcid_id) {
1798          var a = $('<a></a>');
1799          a.attr('href', 'https://orcid.org/' + orcid_id);
1800          var img = $('<img></img>');
1801          img.addClass('orcid-id');
1802          img.attr('alt', 'ORCID ID');
1803          img.attr('src','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo1N0NEMjA4MDI1MjA2ODExOTk0QzkzNTEzRjZEQTg1NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozM0NDOEJGNEZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozM0NDOEJGM0ZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZDN0YxMTc0MDcyMDY4MTE5NUZFRDc5MUM2MUUwNEREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU3Q0QyMDgwMjUyMDY4MTE5OTRDOTM1MTNGNkRBODU3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+84NovQAAAR1JREFUeNpiZEADy85ZJgCpeCB2QJM6AMQLo4yOL0AWZETSqACk1gOxAQN+cAGIA4EGPQBxmJA0nwdpjjQ8xqArmczw5tMHXAaALDgP1QMxAGqzAAPxQACqh4ER6uf5MBlkm0X4EGayMfMw/Pr7Bd2gRBZogMFBrv01hisv5jLsv9nLAPIOMnjy8RDDyYctyAbFM2EJbRQw+aAWw/LzVgx7b+cwCHKqMhjJFCBLOzAR6+lXX84xnHjYyqAo5IUizkRCwIENQQckGSDGY4TVgAPEaraQr2a4/24bSuoExcJCfAEJihXkWDj3ZAKy9EJGaEo8T0QSxkjSwORsCAuDQCD+QILmD1A9kECEZgxDaEZhICIzGcIyEyOl2RkgwAAhkmC+eAm0TAAAAABJRU5ErkJggg==');
1804          a.append(img);
1805          $(this).append(a);
1806        }
1807      });
1808
1809      // hide elements of author/affiliations grid that have no value
1810      function hide_byline_column(caption) {
1811        $('d-byline').find('h3:contains("' + caption + '")').parent().css('visibility', 'hidden');
1812      }
1813
1814      // affiliations
1815      var have_affiliations = false;
1816      for (var i = 0; i<front_matter.authors.length; ++i) {
1817        var author = front_matter.authors[i];
1818        if (author.affiliation !== "&nbsp;") {
1819          have_affiliations = true;
1820          break;
1821        }
1822      }
1823      if (!have_affiliations)
1824        $('d-byline').find('h3:contains("Affiliations")').css('visibility', 'hidden');
1825
1826      // published date
1827      if (!front_matter.publishedDate)
1828        hide_byline_column("Published");
1829
1830      // document object identifier
1831      var doi = $('d-byline').find('h3:contains("DOI")');
1832      var doi_p = doi.next().empty();
1833      if (!front_matter.doi) {
1834        // if we have a citation and valid citationText then link to that
1835        if ($('#citation').length > 0 && front_matter.citationText) {
1836          doi.html('Citation');
1837          $('<a href="#citation"></a>')
1838            .text(front_matter.citationText)
1839            .appendTo(doi_p);
1840        } else {
1841          hide_byline_column("DOI");
1842        }
1843      } else {
1844        $('<a></a>')
1845           .attr('href', "https://doi.org/" + front_matter.doi)
1846           .html(front_matter.doi)
1847           .appendTo(doi_p);
1848      }
1849
1850       // change plural form of authors/affiliations
1851      if (front_matter.authors.length === 1) {
1852        var grid = $('.authors-affiliations');
1853        grid.children('h3:contains("Authors")').text('Author');
1854        grid.children('h3:contains("Affiliations")').text('Affiliation');
1855      }
1856
1857      // remove d-appendix and d-footnote-list local styles
1858      $('d-appendix > style:first-child').remove();
1859      $('d-footnote-list > style:first-child').remove();
1860
1861      // move appendix-bottom entries to the bottom
1862      $('.appendix-bottom').appendTo('d-appendix').children().unwrap();
1863      $('.appendix-bottom').remove();
1864
1865      // hoverable references
1866      $('span.citation[data-cites]').each(function() {
1867        if ($(this).children()[0].nodeName == "D-FOOTNOTE") {
1868          var fn = $(this).children()[0]
1869          $(this).html(fn.shadowRoot.querySelector("sup"))
1870          $(this).id = fn.id
1871          fn.remove()
1872        }
1873        var refs = $(this).attr('data-cites').split(" ");
1874        var refHtml = refs.map(function(ref) {
1875          return "<p>" + $('#ref-' + ref).html() + "</p>";
1876        }).join("\n");
1877        window.tippy(this, {
1878          allowHTML: true,
1879          content: refHtml,
1880          maxWidth: 500,
1881          interactive: true,
1882          interactiveBorder: 10,
1883          theme: 'light-border',
1884          placement: 'bottom-start'
1885        });
1886      });
1887
1888      // fix footnotes in tables (#411)
1889      // replacing broken distill.pub feature
1890      $('table d-footnote').each(function() {
1891        // we replace internal showAtNode methode which is triggered when hovering a footnote
1892        this.hoverBox.showAtNode = function(node) {
1893          // ported from https://github.com/distillpub/template/pull/105/files
1894          calcOffset = function(elem) {
1895              let x = elem.offsetLeft;
1896              let y = elem.offsetTop;
1897              // Traverse upwards until an `absolute` element is found or `elem`
1898              // becomes null.
1899              while (elem = elem.offsetParent && elem.style.position != 'absolute') {
1900                  x += elem.offsetLeft;
1901                  y += elem.offsetTop;
1902              }
1903
1904              return { left: x, top: y };
1905          }
1906          // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetTop
1907          const bbox = node.getBoundingClientRect();
1908          const offset = calcOffset(node);
1909          this.show([offset.left + bbox.width, offset.top + bbox.height]);
1910        }
1911      })
1912
1913      // clear polling timer
1914      clearInterval(tid);
1915
1916      // show body now that everything is ready
1917      on_load_complete();
1918    }
1919
1920    var tid = setInterval(distill_post_process, 50);
1921    distill_post_process();
1922
1923  }
1924
1925  function init_downlevel() {
1926
1927    init_common();
1928
1929     // insert hr after d-title
1930    $('.d-title').after($('<hr class="section-separator"/>'));
1931
1932    // check if we have authors
1933    var front_matter = JSON.parse($("#distill-front-matter").html());
1934    var have_authors = front_matter.authors && front_matter.authors.length > 0;
1935
1936    // manage byline/border
1937    if (!have_authors)
1938      $('.d-byline').remove();
1939    $('.d-byline').after($('<hr class="section-separator"/>'));
1940    $('.d-byline a').remove();
1941
1942    // remove toc
1943    $('.d-contents').remove();
1944
1945    // move appendix elements
1946    $('h1.appendix, h2.appendix').each(function(i, val) {
1947      $(this).changeElementType('h3');
1948    });
1949    $('h3.appendix').each(function(i, val) {
1950      $(this).nextUntil($('h1, h2, h3')).addBack().appendTo($('.d-appendix'));
1951    });
1952
1953
1954    // inject headers into references and footnotes
1955    var refs_header = $('<h3></h3>');
1956    refs_header.text('References');
1957    $('#refs').prepend(refs_header);
1958
1959    var footnotes_header = $('<h3></h3');
1960    footnotes_header.text('Footnotes');
1961    $('.footnotes').children('hr').first().replaceWith(footnotes_header);
1962
1963    // move appendix-bottom entries to the bottom
1964    $('.appendix-bottom').appendTo('.d-appendix').children().unwrap();
1965    $('.appendix-bottom').remove();
1966
1967    // remove appendix if it's empty
1968    if ($('.d-appendix').children().length === 0)
1969      $('.d-appendix').remove();
1970
1971    // prepend separator above appendix
1972    $('.d-appendix').before($('<hr class="section-separator" style="clear: both"/>'));
1973
1974    // trim code
1975    $('pre>code').each(function(i, val) {
1976      $(this).html($.trim($(this).html()));
1977    });
1978
1979    // move posts-container right before article
1980    $('.posts-container').insertBefore($('.d-article'));
1981
1982    $('body').addClass('downlevel');
1983
1984    on_load_complete();
1985  }
1986
1987
1988  function init_common() {
1989
1990    // jquery plugin to change element types
1991    (function($) {
1992      $.fn.changeElementType = function(newType) {
1993        var attrs = {};
1994
1995        $.each(this[0].attributes, function(idx, attr) {
1996          attrs[attr.nodeName] = attr.nodeValue;
1997        });
1998
1999        this.replaceWith(function() {
2000          return $("<" + newType + "/>", attrs).append($(this).contents());
2001        });
2002      };
2003    })(jQuery);
2004
2005    // prevent underline for linked images
2006    $('a > img').parent().css({'border-bottom' : 'none'});
2007
2008    // mark non-body figures created by knitr chunks as 100% width
2009    $('.layout-chunk').each(function(i, val) {
2010      var figures = $(this).find('img, .html-widget');
2011      // ignore leaflet img layers (#106)
2012      figures = figures.filter(':not(img[class*="leaflet"])')
2013      if ($(this).attr('data-layout') !== "l-body") {
2014        figures.css('width', '100%');
2015      } else {
2016        figures.css('max-width', '100%');
2017        figures.filter("[width]").each(function(i, val) {
2018          var fig = $(this);
2019          fig.css('width', fig.attr('width') + 'px');
2020        });
2021
2022      }
2023    });
2024
2025    // auto-append index.html to post-preview links in file: protocol
2026    // and in rstudio ide preview
2027    $('.post-preview').each(function(i, val) {
2028      if (window.location.protocol === "file:")
2029        $(this).attr('href', $(this).attr('href') + "index.html");
2030    });
2031
2032    // get rid of index.html references in header
2033    if (window.location.protocol !== "file:") {
2034      $('.distill-site-header a[href]').each(function(i,val) {
2035        $(this).attr('href', $(this).attr('href').replace(/^index[.]html/, "./"));
2036      });
2037    }
2038
2039    // add class to pandoc style tables
2040    $('tr.header').parent('thead').parent('table').addClass('pandoc-table');
2041    $('.kable-table').children('table').addClass('pandoc-table');
2042
2043    // add figcaption style to table captions
2044    $('caption').parent('table').addClass("figcaption");
2045
2046    // initialize posts list
2047    if (window.init_posts_list)
2048      window.init_posts_list();
2049
2050    // implmement disqus comment link
2051    $('.disqus-comment-count').click(function() {
2052      window.headroom_prevent_pin = true;
2053      $('#disqus_thread').toggleClass('hidden');
2054      if (!$('#disqus_thread').hasClass('hidden')) {
2055        var offset = $(this).offset();
2056        $(window).resize();
2057        $('html, body').animate({
2058          scrollTop: offset.top - 35
2059        });
2060      }
2061    });
2062  }
2063
2064  document.addEventListener('DOMContentLoaded', function() {
2065    if (is_downlevel_browser())
2066      init_downlevel();
2067    else
2068      window.addEventListener('WebComponentsReady', init_distill);
2069  });
2070
2071  </script>
2071
2072
2073  <!--/radix_placeholder_distill-->
2074  
2074<script src="site_libs/header-attrs-2.14/header-attrs.js"></script>
2074
2075  
2075<script src="site_libs/popper-2.6.0/popper.min.js"></script>
2075
2076  <link href="site_libs/tippy-6.2.7/tippy.css" rel="stylesheet" />
2077  <link href="site_libs/tippy-6.2.7/tippy-light-border.css" rel="stylesheet" />
2078  
2078<script src="site_libs/tippy-6.2.7/tippy.umd.min.js"></script>
2078
2079  
2079<script src="site_libs/anchor-4.2.2/anchor.min.js"></script>
2079
2080  
2080<script src="site_libs/bowser-1.9.3/bowser.min.js"></script>
2080
2081  
2081<script src="site_libs/webcomponents-2.0.0/webcomponents.js"></script>
2081
2082  
2082<script src="site_libs/distill-2.2.21/template.v2.js"></script>
2082
2083  <!--radix_placeholder_site_in_header-->
vendor: 116 bytes, lines 2083-2084
2083
2084  <script type="text/javascript" cookie-consent="tracking" async src="https://www.googletagmanager.com/gtag/js?id=
2084G-1RQZJC7E05
vendor: 15 bytes, lines 2084-2085
2084"></script>
2085  
2085<script type="text/javascript" cookie-consent="tracking">
2086  
vendor: 136 bytes, lines 2086-2089
2086window.dataLayer = window.dataLayer || [];
2087  function gtag(){dataLayer.push(arguments);}
2088  gtag('js', new Date());
2089  gtag('config', '
2089G-1RQZJC7E05
vendor: 7 bytes, lines 2089-2090
2089');
2090  
2090</script>
2090
2091  <!--/radix_placeholder_site_in_header-->
2092
2093
2094</head>
2095
2096<body>
2097
2098<!--radix_placeholder_front_matter-->
2099
2100<script id="distill-front-matter" type="text/json">
2101{"title":"Applied Machine Learning for Educational Data Science","description":"The fourth course in the Educational Data Science specialization at the University of Oregon","authors":[]}
2102</script>
2102
2103
2104<!--/radix_placeholder_front_matter-->
2105<!--radix_placeholder_navigation_before_body-->
2106<header class="header header--fixed" role="banner">
2107<nav class="distill-site-nav distill-site-header">
2108<div class="nav-left">
2109<a class='title' href='/'>Applied Machine Learning for Educational Data Science</a>
2110</div>
2111<div class="nav-right">
2112<a href='/'>Home</a>
2113<a href='/syllabus'>Syllabus</a>
2114<a href='/schedule'>Schedule</a>
2115<div class="nav-dropdown">
2116<button class="nav-dropbtn">
2117Lecture Notes
2118 
2119<span class="down-arrow">&#x25BE;</span>
2120</button>
2121<div class="nav-dropdown-content">
2122<a href='/lecture-1'>Lecture-1</a>
2123<a href='/lecture-2a'>Lecture-2a</a>
2124<a href='/lecture-2b'>Lecture-2b</a>
2125<a href='/lecture-3a'>Lecture-3a</a>
2126<a href='/lecture-3b'>Lecture-3b</a>
2127<a href='/lecture-4'>Lecture-4</a>
2128<a href='/lecture-5'>Lecture-5</a>
2129<a href='/lecture-6a'>Lecture-6a</a>
2130<a href='/lecture-6b'>Lecture-6b</a>
2131<a href='/lecture-7a'>Lecture-7a</a>
2132<a href='/lecture-7b'>Lecture-7b</a>
2133</div>
2134</div>
2135<div class="nav-dropdown">
2136<button class="nav-dropbtn">
2137Kaggle Notebooks
2138 
2139<span class="down-arrow">&#x25BE;</span>
2140</button>
2141<div class="nav-dropdown-content">
2142<a href="https://www.kaggle.com/code/uocoeeds/week-1-introduction/notebook">Notebook-1</a>
2143<a href="https://www.kaggle.com/code/uocoeeds/lecture-2a-data-preprocessing-i">Notebook-2a</a>
2144<a href="https://www.kaggle.com/code/uocoeeds/lecture-2b-data-preprocessing-ii">Notebook-2b</a>
2145<a href="https://www.kaggle.com/code/uocoeeds/the-recipes-package-demo">The {recipes} demo</a>
2146<a href="https://www.kaggle.com/code/uocoeeds/lecture-3a-overview-of-linear-regression">Notebook-3a</a>
2147<a href="https://www.kaggle.com/code/uocoeeds/lecture-3b-review-of-bias-variance-tradeoff">Notebook-3b</a>
2148<a href="https://www.kaggle.com/code/uocoeeds/building-a-prediction-model-with-cross-validation">Building Linear Models with `caret`</a>
2149<a href="https://www.kaggle.com/code/uocoeeds/lecture-4-regularized-penalized-regression">Notebook-4</a>
2150<a href="https://www.kaggle.com/code/uocoeeds/building-a-ridge-regression-model">Building a Ridge Regression Model</a>
2151<a href="https://www.kaggle.com/code/uocoeeds/building-a-lasso-regression-model">Building a Lasso Regression Model</a>
2152<a href="https://www.kaggle.com/code/uocoeeds/building-a-regression-model-with-elastic-net">
2152Building an Elastic Net Model</a>
2153<a href="https://www.kaggle.com/code/uocoeeds/using-the-prediction-models-for-a-new-text">Using the Existing Models to Predict Outcome for New Observations</a>
2154<a href="https://www.kaggle.com/code/uocoeeds/building-a-logistic-regression-model/notebook">Building a Logistic Regression Model</a>
2155<a href="https://www.kaggle.com/code/uocoeeds/building-a-classification-model-with-ridge-penalty/">Building a Classification Model with Ridge Penalty</a>
2156<a href="https://www.kaggle.com/code/uocoeeds/building-a-classification-model-with-lasso-penalty">Building a Classification Model with Lasso Penalty</a>
2157<a href="https://www.kaggle.com/code/uocoeeds/building-a-classification-model-with-elastic-net">Building a Classification Model with Elastic Net</a>
2158<a href="https://www.kaggle.com/code/uocoeeds/building-a-prediction-model-using-knn">Building a Prediction Model with K-nearest neighbors</a>
2159<a href="https://www.kaggle.com/code/uocoeeds/building-a-classification-model-using-knn">Building a Classification Model with K-nearest neighbors</a>
2160<a href="https://www.kaggle.com/uocoeeds/building-a-prediction-model-using-a-decision-tree">Building a Prediction Model with a Decision Tree</a>
2161<a href="https://www.kaggle.com/code/uocoeeds/building-a-classification-tree-algorithm">Building a Classification Model with a Decision Tree</a>
2162</div>
2163</div>
2164<div class="nav-dropdown">
2165<button class="nav-dropbtn">
2166Slides
2167 
2168<span class="down-arrow">&#x25BE;</span>
2169</button>
2170<div class="nav-dropdown-content">
2171<a href='/slides/slide1'>Week 1</a>
2172<a href='/slides/slide2'>Week 2</a>
2173<a href='/slides/slide3'>Week 3 &amp; 4</a>
2174<a href='/slides/slide4'>Week 5</a>
2175<a href='/slides/slide5'>Week 6 &amp; 7</a>
2176<a href='/slides/slide6a'>Week 8_Part 1</a>
2177<a href='/slides/slide6b'>Week 8_Part 2</a>
2178</div>
2179</div>
2180<div class="nav-dropdown">
2181<button class="nav-dropbtn">
2182Assignments
2183 
2184<span class="down-arrow">&#x25BE;</span>
2185</button>
2186<div class="nav-dropdown-content">
2187<a href="https://www.kaggle.com/code/uocoeeds/assignment-1">Assignment1</a>
2188<a href="https://www.kaggle.com/code/uocoeeds/assignment-2">Assignment2</a>
2189<a href="https://www.kaggle.com/code/uocoeeds/assignment-3">Assignment3</a>
2190</div>
2191</div>
2192<a href="https://github.com/uo-datasci-specialization/c4-ml-fall-2022">
2193<i class="fa fa-github" aria-hidden="true"></i>
2194</a>
2195<a href="javascript:void(0);" class="nav-toggle">&#9776;</a>
2196</div>
2197</nav>
2198</header>
2199<!--/radix_placeholder_navigation_before_body-->
2200<!--radix_placeholder_site_before_body-->
2201<!--/radix_placeholder_site_before_body-->
2202
2203<div class="d-title">
2204<h1>Applied Machine Learning for Educational Data Science</h1>
2205<!--radix_placeholder_categories-->
2206<!--/radix_placeholder_categories-->
2207<p><p>The fourth course in the Educational Data Science specialization
2208at the University of Oregon</p></p>
2209</div>
2210
2211
2212<div class="d-article">
2213<p>This course focuses on applied machine learning (ML), with an
2214emphasis on supervised This course is the fourth in a sequence of
2215courses on educational data science (EDS), taught using free and
2216open-source statistical programming languages. EDLD 654: Machine
2217Learning for Educational Data Science aims to teach how to apply several
2218predictive modeling approaches to educational and social science
2219datasets, emphasizing supervised learning methods that have emerged over
2220the last several decades. The primary goal of these methods is to create
2221models capable of making accurate predictions, which generally implies
2222less emphasis on statistical inference.</p>
2223<p>By the end of this course, students will be able to</p>
2224<ul>
2225<li><p>pre-process continuous, categorical, and text data to extract
2226meaningful features to include in a predictive model,</p></li>
2227<li><p>describe the framework of supervised learning methods, modeling
2228process, and how it differs from standard inferential
2229statistics,</p></li>
2230<li><p>construct various supervised learning models for both
2231classification- and regression-based problems, including linear and
2232logistic regression (for prediction rather than inference), penalized
2233regression (ridge/lasso), various decision tree models (including bagged
2234trees and random forests), and k-nearest neighbor models,</p></li>
2235<li><p>discuss the bias-variance tradeoff in supervised learning and
2236apply the concept in making decisions about model selection,</p></li>
2237<li><p>measure and contrast the performance of various models.</p></li>
2238</ul>
2239<div class="sourceCode" id="cb1"><pre
2240class="sourceCode r distill-force-highlighting-css"><code class="sourceCode r"></code></pre></div>
2241<!--radix_placeholder_article_footer-->
2242<!--/radix_placeholder_article_footer-->
2243</div>
2244
2245<div class="d-appendix">
2246</div>
2247
2248
2249<!--radix_placeholder_site_after_body-->
2250<!--/radix_placeholder_site_after_body-->
2251<!--radix_placeholder_appendices-->
2252<div class="appendix-bottom">
2253<h3 id="reuse">Reuse</h3>
2254<p>Text and figures are licensed under Creative Commons Attribution <a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".</p>
2255</div>
2256<!--/radix_placeholder_appendices-->
2257<!--radix_placeholder_navigation_after_body-->
2258<div class="distill-site-nav distill-site-footer">
2259<center>
2260<p> Cengiz Zopluoglu, [email protected] </p>
2261<p> Made using <a href="https://rstudio.github.io/distill/website.html"> the Distill for R Markdown</a> in 
2262<a href = "https://www.rstudio.com"> RStudio.</a></p>
2263<p>Copyright &copy; 2022 Cengiz Zopluoglu. All rights reserved.</p>
2264</center>
2265</div>
2266<!--/radix_placeholder_navigation_after_body-->
2267
2268
2269</body>
2270
2271</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.