forked from numbats/iml
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.Rmd
170 lines (137 loc) · 9.51 KB
/
index.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
---
title: "ETC3250/5250: Introduction to Machine Learning"
---
```{r setup, include = FALSE}
# please add any R-packages used here in DESCRIPTION imports
library(yaml)
library(tibble)
library(dplyr)
library(purrr)
library(glue)
library(knitr)
library(kableExtra)
knitr::opts_chunk$set(echo = FALSE)
```
```{r fns}
make_rectangular <- function(.data) {
l <- map(.data, ~map(.x, as.character))
bind_rows(map_dfr(l, ~tibble(!!!.x)))
}
ui_list <- function(vec) {
for(x in vec) {
cat("-", x, "\n")
}
}
```
```{r staffs}
dat <- read_yaml("_course.yml")
team_df <- make_rectangular(dat$team)
schedule_df <- make_rectangular(dat$schedule)
nlecturer <- sum(team_df$role=="lecturer")
ntutor <- sum(team_df$role=="tutor")
```
## Lecturer`r ifelse(nlecturer > 1, 's', '')`
```{r lecturers, results="asis"}
team_df %>%
filter(role=="lecturer") %>%
pull(name) %>%
ui_list()
```
## Tutor`r ifelse(ntutor > 1, 's', '')`
```{r tutors, results="asis"}
team_df %>%
filter(role=="tutor") %>%
pull(name) %>%
ui_list()
```
## Consultations
For zoom consultations check Moodle for the links.
```{r consult, results="asis"}
team_df %>%
filter(!is.na(consult)) %>%
mutate(name = gsub(" (Chief Examiner)", "", name, fixed = T)) %>%
mutate(consult_print = glue::glue("**{name}**: {consult}")) %>%
pull(consult_print) %>%
ui_list()
```
## Assessments
Final exam 60%, project and assignments are each worth 9%, weekly quizzes 4%.
## Tentative Schedule
See moodle for the zoom links.
* Lectures: **Mon 4-6pm** *online with zoom*
* Tutorials:
* ETC3250 A: **Tue 10:30** *CL_Anc-19.LTB_392 FF-Col (30)* (Brendi) [Extra details](https://github.com/BrendiA/iml-tutorial)
* ETC3250 B: **Tue 13:00** *CL_Anc-19.LTB_392 FF-Col (30)* (Brendi) [Extra details](https://github.com/BrendiA/iml-tutorial)
* ETC5250 C: **Wed 08:00** *CL_19 Ancora Imparo Way, Room G62 - LTB (Bldg 92)* (Brenwin) [Extra details](https://github.com/brenwin1/iml-tutorial)
* ETC3250 D: **Thu 9:00** *LTB G56* (Brenwin) [Extra details](https://github.com/brenwin1/iml-tutorial)
* ETC3250 E: **Thu 10:30** *CL_33 Innovation Walk, Room JG03, Tutorial (Bldg 73P)* (Brenwin) [Extra details](https://github.com/brenwin1/iml-tutorial)
* ETC3250 F: **Thu 14:30** *online with zoom* (Harriet)
* ETC3250 G: **Thu 16:00** *online with zoom* (Brendi) [Extra details](https://github.com/BrendiA/iml-tutorial)
* ETC5250 H: **Fri 9:00** *LTB G56* (Patrick)
* ETC5250 I: **Fri 14:00** *online with zoom* (Harriet)
* ETC5250 J: **Fri 15:30** *online with zoom* (Patrick)
There are no lectures, tutorials or consultations during the mid-semester break. You are expected to attend the lecture and ONE tutorial stream. Please see your personal timetable to determine which tutorial you are in. You can only attend the tutorial that you are enrolled in.
```{r}
schedule_df <- schedule_df %>%
mutate(weekno = as.integer(regmatches(week, regexpr("^[0-9]+", week)))) %>%
mutate(lecture_a = file.exists(sprintf("lectures/lecture-%.2da.html", weekno)),
lecture_b = file.exists(sprintf("lectures/lecture-%.2db.html", weekno)),
tutorial = file.exists(sprintf("tutorials/tutorial-%.2d.html", weekno)),
solution = file.exists(sprintf("tutorials/tutorial-%.2dsol.html", weekno))) %>%
mutate(slides = case_when(
lecture_a & lecture_b ~ glue("A: ","<a class='fa fa-link' href='lectures/{sprintf(\"lecture-%.2dA.html\", weekno)}' target='_blank'></a> <a class='fab fa-r-project' href='lectures/{sprintf(\"lecture-%.2dA.Rmd\", weekno)}' target='_blank'></a> <a class='fa fa-file-pdf' href='lectures/{sprintf(\"lecture-%.2dA.pdf\", weekno)}' target='_blank'></a>"," ; ", "B: ","<a class='fa fa-link' href='lectures/{sprintf(\"lecture-%.2dB.html\", weekno)}' target='_blank'></a> <a class='fab fa-r-project' href='lectures/{sprintf(\"lecture-%.2dB.Rmd\", weekno)}' target='_blank'></a> <a class='fa fa-file-pdf' href='lectures/{sprintf(\"lecture-%.2dB.pdf\", weekno)}' target='_blank'></a>"),
lecture_a ~ glue("A: ","<a class='fa fa-link' href='lectures/{sprintf(\"lecture-%.2dA.html\", weekno)}' target='_blank'></a> <a class='fab fa-r-project' href='lectures/{sprintf(\"lecture-%.2dA.Rmd\", weekno)}' target='_blank'></a> <a class='fa fa-file-pdf' href='lectures/{sprintf(\"lecture-%.2dA.pdf\", weekno)}' target='_blank'></a>"),
TRUE ~ ""
),
tut = case_when(
tutorial & solution ~ glue("<a class='fa fa-tasks' href='tutorials/{sprintf(\"tutorial-%.2d\", weekno)}.html' target='_blank'></a> <a class='fa fa-wrench' href='tutorials/{sprintf(\"tutorial-%.2d\", weekno)}.Rmd' target='_blank'></a> <a class='fa fa-lightbulb' href='tutorials/{sprintf(\"tutorial-%.2d\", weekno)}sol.html' target='_blank'></a> <a class='fa fa-laptop' href='tutorials/{sprintf(\"tutorial-%.2d\", weekno)}sol.Rmd' target='_blank'></a>"),
tutorial ~ glue("<a class='fa fa-tasks' href='tutorials/{sprintf(\"tutorial-%.2d\", weekno)}.html' target='_blank'></a> <a class='fa fa-wrench' href='tutorials/{sprintf(\"tutorial-%.2d\", weekno)}.Rmd' target='_blank'></a>"),
TRUE ~ ""
),
topic = ifelse(is.na(topic), "", topic),
readings = ifelse(is.na(readings), "", readings),
assessment = ifelse(is.na(assessment), "", assessment)) %>%
select(weekno, slides, tut, topic, readings, assessment)
midsem_break <- 7 + 0 # after which week # needs the fix after week 0 was added
schedule_df %>%
kable(escape = FALSE, align = c("c", "c", "c", "l", "l", "l"),
col.names = c("Week", "Slides", "Tutorial",
"Topic", "Readings", "Assessments")) %>%
kable_styling(bootstrap_options = "striped",
fixed_thead = T) %>%
column_spec(1, width = "0.5cm") %>%
column_spec(2, width = "1cm") %>%
column_spec(3, width = "1cm") %>%
column_spec(6, width = "6cm") %>%
group_rows("Midsemester Break (1 week)", midsem_break + 1, 12, label_row_css = "background-color: #d9e1e8;") %>%
add_indent(1:midsem_break) # this needs to be done to match up with above
```
## Class data sets
- [nrc.csv](data/nrc.csv)
- [chocolates.csv](data/chocolates.csv)
- [rates_Nov19_Mar20.csv](data/rates_Nov19_Mar20.csv)
- [wiggly.csv](data/wiggly.csv)
- [wiggly-multi.rdata](data/wiggly-multi.rdata)
- [nnet_best.rda](data/nnet_best.rda)
- [nnet_many.rda](data/nnet_many.rda)
## Expectations
* The computer software R and RStudio Desktop will be used for the unit. Please install the latest versions on your computer. If you need help on installation and basic R usage, got to [https://learnr.numbat.space](https://learnr.numbat.space).
* Lectures will be delivered live on zoom, and you are expected to have either attended the lecture, or watched the recordings fully, **prior to the tutorial** for the week.
* Tutorials are not recorded, and **attendance is expected**.
* We recommend using your own laptop with the software installed for tutorials. Check the tutorial instructions ahead to get the list of software needed for that week. (The University may be able to provide you with a laptop if needed.)
* The **moodle discussion forum is the appropriate place for questions and comments** related to the course. Only questions of a personal issue or an administrative matter, will be responded to by email, and must be sent to [email protected]. Email to any other address will be ignored. Note that, it is not acceptable to email your tutors.
* Structuring your questions carefully makes it easier to get help. If you have a question involving computing, follow the instructions for creating a reproducible example at [How to ask for help on R](https://learnr.numbat.space/chapter3#3). If it is about course material, point to the lecture slide or the textbook page.
* If you join the class after the first day of the semester or if you miss a lecture/tutorial, it is **your responsibility to catch up with missed material**, learn about due dates for material to be turned in.
* As a Monash unit, instructors and students agree to adhere to [Assessment and Academic Integrity Policy](https://www.monash.edu/__data/assets/pdf_file/0019/2300923/Assessment-and-Academic-Integrity-Policy.pdf). Students are responsible for their own good academic practice and must:
- undertake their studies and research responsibly and with honesty and integrity;
- credit the work of others and seek permission to use that work where required;
- not plagiarise, cheat or falsify their work;
- ensure that their work is not falsified;
- not resubmit any assessment they have previously submitted, without the permission of the chief examiner; appropriately acknowledge the work of others;
- take reasonable steps to ensure that other students are unable to copy or misuse their work; and
- be aware of and comply with University regulations, policies and procedures relating to academic integrity.
# R package installation list
Install the latest versions of R and RStudio. Here is a partial list of R packages as of the start of semester. There may be more packages to install as the semester progresses. You should be able to install by cutting and pasting this code into your RStudio console.
```
install.packages(c("knitr", "tidyverse", "tidymodels", "gapminder", "gridExtra", "patchwork", "tourr", "kableExtra", "fpc", "statquotes", "yardstick", "ISLR", "broom", "mvtnorm", "ggdendro", "RColorBrewer", "plotly", "htmltools", "splines", "grid", "rpart", "mgcv", "gratia", "GGally", "ggpubr", "MASS", "modelr", "boot", "gganimate", "ggrepel", "ggthemes", "datasauRus", "geozoo", "ggparallel", "ggmosaic", "nullabor", "rpart.plot", "e1071", "viridis", "randomForest", "mlbench", "gtable", "keras", "nnet", "penalizedLDA", "ggExtra"))
```