"
211 | ],
212 | "text/plain": [
213 | " 0 1 2 3 4 5 6 7 8 \\\n",
214 | "0 842302 M 17.99 10.38 122.80 1001.0 0.11840 0.27760 0.3001 \n",
215 | "1 842517 M 20.57 17.77 132.90 1326.0 0.08474 0.07864 0.0869 \n",
216 | "2 84300903 M 19.69 21.25 130.00 1203.0 0.10960 0.15990 0.1974 \n",
217 | "3 84348301 M 11.42 20.38 77.58 386.1 0.14250 0.28390 0.2414 \n",
218 | "4 84358402 M 20.29 14.34 135.10 1297.0 0.10030 0.13280 0.1980 \n",
219 | "\n",
220 | " 9 ... 22 23 24 25 26 27 28 29 \\\n",
221 | "0 0.14710 ... 25.38 17.33 184.60 2019.0 0.1622 0.6656 0.7119 0.2654 \n",
222 | "1 0.07017 ... 24.99 23.41 158.80 1956.0 0.1238 0.1866 0.2416 0.1860 \n",
223 | "2 0.12790 ... 23.57 25.53 152.50 1709.0 0.1444 0.4245 0.4504 0.2430 \n",
224 | "3 0.10520 ... 14.91 26.50 98.87 567.7 0.2098 0.8663 0.6869 0.2575 \n",
225 | "4 0.10430 ... 22.54 16.67 152.20 1575.0 0.1374 0.2050 0.4000 0.1625 \n",
226 | "\n",
227 | " 30 31 \n",
228 | "0 0.4601 0.11890 \n",
229 | "1 0.2750 0.08902 \n",
230 | "2 0.3613 0.08758 \n",
231 | "3 0.6638 0.17300 \n",
232 | "4 0.2364 0.07678 \n",
233 | "\n",
234 | "[5 rows x 32 columns]"
235 | ]
236 | },
237 | "execution_count": 1,
238 | "metadata": {},
239 | "output_type": "execute_result"
240 | }
241 | ],
242 | "source": [
243 | "import pandas as pd\n",
244 | "\n",
245 | "df = pd.read_csv('https://archive.ics.uci.edu/ml/'\n",
246 | " 'machine-learning-databases'\n",
247 | " '/breast-cancer-wisconsin/wdbc.data', header=None)\n",
248 | "\n",
249 | "df.head()"
250 | ]
251 | },
252 | {
253 | "cell_type": "code",
254 | "execution_count": 2,
255 | "metadata": {},
256 | "outputs": [
257 | {
258 | "data": {
259 | "text/plain": [
260 | "(569, 32)"
261 | ]
262 | },
263 | "execution_count": 2,
264 | "metadata": {},
265 | "output_type": "execute_result"
266 | }
267 | ],
268 | "source": [
269 | "df.shape"
270 | ]
271 | },
272 | {
273 | "cell_type": "markdown",
274 | "metadata": {},
275 | "source": [
276 | ""
277 | ]
278 | },
279 | {
280 | "cell_type": "markdown",
281 | "metadata": {},
282 | "source": [
283 | "- First, we are converting the class labels from a string format into integers"
284 | ]
285 | },
286 | {
287 | "cell_type": "code",
288 | "execution_count": 3,
289 | "metadata": {},
290 | "outputs": [
291 | {
292 | "data": {
293 | "text/plain": [
294 | "array(['B', 'M'], dtype=object)"
295 | ]
296 | },
297 | "execution_count": 3,
298 | "metadata": {},
299 | "output_type": "execute_result"
300 | }
301 | ],
302 | "source": [
303 | "from sklearn.preprocessing import LabelEncoder\n",
304 | "\n",
305 | "X = df.loc[:, 2:].values\n",
306 | "y = df.loc[:, 1].values\n",
307 | "le = LabelEncoder()\n",
308 | "y = le.fit_transform(y)\n",
309 | "le.classes_"
310 | ]
311 | },
312 | {
313 | "cell_type": "markdown",
314 | "metadata": {},
315 | "source": [
316 | "- Here, class \"M\" (malignant cancer) will be converted to class 1, and \"B\" will be converted into class 0 (the order the class labels are mapped depends on the alphabetical order of the string labels)"
317 | ]
318 | },
319 | {
320 | "cell_type": "code",
321 | "execution_count": 4,
322 | "metadata": {},
323 | "outputs": [
324 | {
325 | "data": {
326 | "text/plain": [
327 | "array([1, 0])"
328 | ]
329 | },
330 | "execution_count": 4,
331 | "metadata": {},
332 | "output_type": "execute_result"
333 | }
334 | ],
335 | "source": [
336 | "le.transform(['M', 'B'])"
337 | ]
338 | },
339 | {
340 | "cell_type": "markdown",
341 | "metadata": {},
342 | "source": [
343 | "- Next, we split the data into 80% training data and 20% test data, using a stratified split"
344 | ]
345 | },
346 | {
347 | "cell_type": "code",
348 | "execution_count": 5,
349 | "metadata": {},
350 | "outputs": [],
351 | "source": [
352 | "from sklearn.model_selection import train_test_split\n",
353 | "\n",
354 | "X_train, X_test, y_train, y_test = \\\n",
355 | " train_test_split(X, y, \n",
356 | " test_size=0.20,\n",
357 | " stratify=y,\n",
358 | " random_state=1)"
359 | ]
360 | },
361 | {
362 | "cell_type": "markdown",
363 | "metadata": {},
364 | "source": [
365 | "## 2) Precision, Recall, F1 Score"
366 | ]
367 | },
368 | {
369 | "cell_type": "code",
370 | "execution_count": 6,
371 | "metadata": {},
372 | "outputs": [
373 | {
374 | "name": "stdout",
375 | "output_type": "stream",
376 | "text": [
377 | "[[71 1]\n",
378 | " [ 3 39]]\n"
379 | ]
380 | }
381 | ],
382 | "source": [
383 | "from sklearn.preprocessing import StandardScaler\n",
384 | "from sklearn.neighbors import KNeighborsClassifier\n",
385 | "from sklearn.pipeline import make_pipeline\n",
386 | "from mlxtend.evaluate import confusion_matrix\n",
387 | "\n",
388 | "\n",
389 | "pipe_knn = make_pipeline(StandardScaler(),\n",
390 | " KNeighborsClassifier(n_neighbors=5))\n",
391 | "\n",
392 | "pipe_knn.fit(X_train, y_train)\n",
393 | "\n",
394 | "y_pred = pipe_knn.predict(X_test)\n",
395 | "\n",
396 | "confmat = confusion_matrix(y_test, y_pred)\n",
397 | "\n",
398 | "print(confmat)"
399 | ]
400 | },
401 | {
402 | "cell_type": "code",
403 | "execution_count": 7,
404 | "metadata": {},
405 | "outputs": [
406 | {
407 | "name": "stdout",
408 | "output_type": "stream",
409 | "text": [
410 | "Accuracy: 0.965\n",
411 | "Precision: 0.975\n",
412 | "Recall: 0.929\n",
413 | "F1: 0.951\n",
414 | "MCC: 0.925\n"
415 | ]
416 | }
417 | ],
418 | "source": [
419 | "from sklearn.metrics import accuracy_score, precision_score, \\\n",
420 | " recall_score, f1_score, matthews_corrcoef\n",
421 | "\n",
422 | "\n",
423 | "print('Accuracy: %.3f' % accuracy_score(y_true=y_test, y_pred=y_pred))\n",
424 | "print('Precision: %.3f' % precision_score(y_true=y_test, y_pred=y_pred))\n",
425 | "print('Recall: %.3f' % recall_score(y_true=y_test, y_pred=y_pred))\n",
426 | "print('F1: %.3f' % f1_score(y_true=y_test, y_pred=y_pred))\n",
427 | "print('MCC: %.3f' % matthews_corrcoef(y_true=y_test, y_pred=y_pred))"
428 | ]
429 | },
430 | {
431 | "cell_type": "markdown",
432 | "metadata": {},
433 | "source": [
434 | "## 3) Using those Metrics in GridSearch"
435 | ]
436 | },
437 | {
438 | "cell_type": "code",
439 | "execution_count": 8,
440 | "metadata": {},
441 | "outputs": [
442 | {
443 | "name": "stdout",
444 | "output_type": "stream",
445 | "text": [
446 | "0.9564099246736818\n",
447 | "{'kneighborsclassifier__n_neighbors': 5}\n"
448 | ]
449 | }
450 | ],
451 | "source": [
452 | "from sklearn.model_selection import GridSearchCV\n",
453 | "\n",
454 | "\n",
455 | "param_range = [3, 5, 7, 9, 15, 21, 31]\n",
456 | "\n",
457 | "pipe_knn = make_pipeline(StandardScaler(),\n",
458 | " KNeighborsClassifier())\n",
459 | "\n",
460 | "param_grid = [{'kneighborsclassifier__n_neighbors': param_range}]\n",
461 | "\n",
462 | "\n",
463 | "gs = GridSearchCV(estimator=pipe_knn,\n",
464 | " param_grid=param_grid,\n",
465 | " scoring='f1',\n",
466 | " cv=10,\n",
467 | " n_jobs=-1)\n",
468 | "\n",
469 | "\n",
470 | "gs = gs.fit(X_train, y_train)\n",
471 | "print(gs.best_score_)\n",
472 | "print(gs.best_params_)"
473 | ]
474 | },
475 | {
476 | "cell_type": "code",
477 | "execution_count": 9,
478 | "metadata": {},
479 | "outputs": [
480 | {
481 | "name": "stdout",
482 | "output_type": "stream",
483 | "text": [
484 | "0.9597306397306398\n",
485 | "{'kneighborsclassifier__n_neighbors': 15}\n"
486 | ]
487 | }
488 | ],
489 | "source": [
490 | "from sklearn.metrics import make_scorer\n",
491 | "from mlxtend.data import iris_data\n",
492 | "\n",
493 | "\n",
494 | "X_iris, y_iris = iris_data()\n",
495 | "\n",
496 | "\n",
497 | "# for multiclass:\n",
498 | "scorer = make_scorer(f1_score, average='macro')\n",
499 | "\n",
500 | "\n",
501 | "from sklearn.model_selection import GridSearchCV\n",
502 | "\n",
503 | "\n",
504 | "param_range = [3, 5, 7, 9, 15, 21, 31]\n",
505 | "\n",
506 | "pipe_knn = make_pipeline(StandardScaler(),\n",
507 | " KNeighborsClassifier())\n",
508 | "\n",
509 | "param_grid = [{'kneighborsclassifier__n_neighbors': param_range}]\n",
510 | "\n",
511 | "\n",
512 | "gs = GridSearchCV(estimator=pipe_knn,\n",
513 | " param_grid=param_grid,\n",
514 | " scoring=scorer,\n",
515 | " cv=10,\n",
516 | " n_jobs=-1)\n",
517 | "\n",
518 | "\n",
519 | "gs = gs.fit(X_iris, y_iris)\n",
520 | "print(gs.best_score_)\n",
521 | "print(gs.best_params_)"
522 | ]
523 | },
524 | {
525 | "cell_type": "code",
526 | "execution_count": null,
527 | "metadata": {},
528 | "outputs": [],
529 | "source": []
530 | }
531 | ],
532 | "metadata": {
533 | "kernelspec": {
534 | "display_name": "Python 3",
535 | "language": "python",
536 | "name": "python3"
537 | },
538 | "language_info": {
539 | "codemirror_mode": {
540 | "name": "ipython",
541 | "version": 3
542 | },
543 | "file_extension": ".py",
544 | "mimetype": "text/x-python",
545 | "name": "python",
546 | "nbconvert_exporter": "python",
547 | "pygments_lexer": "ipython3",
548 | "version": "3.8.2"
549 | }
550 | },
551 | "nbformat": 4,
552 | "nbformat_minor": 4
553 | }
554 |
--------------------------------------------------------------------------------
/L12/code/12_3_balanced-acc-Copy1.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "STAT 451: Machine Learning (Fall 2020) \n",
8 | "Instructor: Sebastian Raschka (sraschka@wisc.edu) \n",
9 | "\n",
10 | "Course website: http://pages.stat.wisc.edu/~sraschka/teaching/stat451-fs2020/"
11 | ]
12 | },
13 | {
14 | "cell_type": "markdown",
15 | "metadata": {},
16 | "source": [
17 | "# Balanced Accuracy"
18 | ]
19 | },
20 | {
21 | "cell_type": "code",
22 | "execution_count": 23,
23 | "metadata": {},
24 | "outputs": [],
25 | "source": [
26 | "from mlxtend.evaluate import confusion_matrix\n",
27 | "from mlxtend.evaluate import accuracy_score\n",
28 | "import numpy as np"
29 | ]
30 | },
31 | {
32 | "cell_type": "code",
33 | "execution_count": 24,
34 | "metadata": {},
35 | "outputs": [],
36 | "source": [
37 | "y_targ = np.array(3*[0] + 69*[1] + 18*[2])\n",
38 | "y_pred = np.array(10*[0] + 50*[1] + 30*[2])"
39 | ]
40 | },
41 | {
42 | "cell_type": "code",
43 | "execution_count": 25,
44 | "metadata": {},
45 | "outputs": [
46 | {
47 | "name": "stdout",
48 | "output_type": "stream",
49 | "text": [
50 | "Standard accuracy: 78.89%\n",
51 | "Class 0 accuracy: 92.22%\n",
52 | "Class 1 accuracy: 78.89%\n",
53 | "Class 2 accuracy: 86.67%\n",
54 | "Average per-class accuracy: 85.93%\n"
55 | ]
56 | }
57 | ],
58 | "source": [
59 | "std_acc = accuracy_score(y_targ, y_pred)\n",
60 | "\n",
61 | "bin_acc0 = accuracy_score(y_targ, y_pred, method='binary', pos_label=0)\n",
62 | "bin_acc1 = accuracy_score(y_targ, y_pred, method='binary', pos_label=1)\n",
63 | "bin_acc2 = accuracy_score(y_targ, y_pred, method='binary', pos_label=2)\n",
64 | "\n",
65 | "avg_acc = accuracy_score(y_targ, y_pred, method='average')\n",
66 | "\n",
67 | "print(f'Standard accuracy: {std_acc*100:.2f}%')\n",
68 | "print(f'Class 0 accuracy: {bin_acc0*100:.2f}%')\n",
69 | "print(f'Class 1 accuracy: {bin_acc1*100:.2f}%')\n",
70 | "print(f'Class 2 accuracy: {bin_acc2*100:.2f}%')\n",
71 | "print(f'Average per-class accuracy: {avg_acc*100:.2f}%')"
72 | ]
73 | }
74 | ],
75 | "metadata": {
76 | "kernelspec": {
77 | "display_name": "Python 3",
78 | "language": "python",
79 | "name": "python3"
80 | },
81 | "language_info": {
82 | "codemirror_mode": {
83 | "name": "ipython",
84 | "version": 3
85 | },
86 | "file_extension": ".py",
87 | "mimetype": "text/x-python",
88 | "name": "python",
89 | "nbconvert_exporter": "python",
90 | "pygments_lexer": "ipython3",
91 | "version": "3.8.2"
92 | }
93 | },
94 | "nbformat": 4,
95 | "nbformat_minor": 4
96 | }
97 |
--------------------------------------------------------------------------------
/L12/code/wdbc.names.txt:
--------------------------------------------------------------------------------
1 | 1. Title: Wisconsin Diagnostic Breast Cancer (WDBC)
2 |
3 | 2. Source Information
4 |
5 | a) Creators:
6 |
7 | Dr. William H. Wolberg, General Surgery Dept., University of
8 | Wisconsin, Clinical Sciences Center, Madison, WI 53792
9 | wolberg@eagle.surgery.wisc.edu
10 |
11 | W. Nick Street, Computer Sciences Dept., University of
12 | Wisconsin, 1210 West Dayton St., Madison, WI 53706
13 | street@cs.wisc.edu 608-262-6619
14 |
15 | Olvi L. Mangasarian, Computer Sciences Dept., University of
16 | Wisconsin, 1210 West Dayton St., Madison, WI 53706
17 | olvi@cs.wisc.edu
18 |
19 | b) Donor: Nick Street
20 |
21 | c) Date: November 1995
22 |
23 | 3. Past Usage:
24 |
25 | first usage:
26 |
27 | W.N. Street, W.H. Wolberg and O.L. Mangasarian
28 | Nuclear feature extraction for breast tumor diagnosis.
29 | IS&T/SPIE 1993 International Symposium on Electronic Imaging: Science
30 | and Technology, volume 1905, pages 861-870, San Jose, CA, 1993.
31 |
32 | OR literature:
33 |
34 | O.L. Mangasarian, W.N. Street and W.H. Wolberg.
35 | Breast cancer diagnosis and prognosis via linear programming.
36 | Operations Research, 43(4), pages 570-577, July-August 1995.
37 |
38 | Medical literature:
39 |
40 | W.H. Wolberg, W.N. Street, and O.L. Mangasarian.
41 | Machine learning techniques to diagnose breast cancer from
42 | fine-needle aspirates.
43 | Cancer Letters 77 (1994) 163-171.
44 |
45 | W.H. Wolberg, W.N. Street, and O.L. Mangasarian.
46 | Image analysis and machine learning applied to breast cancer
47 | diagnosis and prognosis.
48 | Analytical and Quantitative Cytology and Histology, Vol. 17
49 | No. 2, pages 77-87, April 1995.
50 |
51 | W.H. Wolberg, W.N. Street, D.M. Heisey, and O.L. Mangasarian.
52 | Computerized breast cancer diagnosis and prognosis from fine
53 | needle aspirates.
54 | Archives of Surgery 1995;130:511-516.
55 |
56 | W.H. Wolberg, W.N. Street, D.M. Heisey, and O.L. Mangasarian.
57 | Computer-derived nuclear features distinguish malignant from
58 | benign breast cytology.
59 | Human Pathology, 26:792--796, 1995.
60 |
61 | See also:
62 | http://www.cs.wisc.edu/~olvi/uwmp/mpml.html
63 | http://www.cs.wisc.edu/~olvi/uwmp/cancer.html
64 |
65 | Results:
66 |
67 | - predicting field 2, diagnosis: B = benign, M = malignant
68 | - sets are linearly separable using all 30 input features
69 | - best predictive accuracy obtained using one separating plane
70 | in the 3-D space of Worst Area, Worst Smoothness and
71 | Mean Texture. Estimated accuracy 97.5% using repeated
72 | 10-fold crossvalidations. Classifier has correctly
73 | diagnosed 176 consecutive new patients as of November
74 | 1995.
75 |
76 | 4. Relevant information
77 |
78 | Features are computed from a digitized image of a fine needle
79 | aspirate (FNA) of a breast mass. They describe
80 | characteristics of the cell nuclei present in the image.
81 | A few of the images can be found at
82 | http://www.cs.wisc.edu/~street/images/
83 |
84 | Separating plane described above was obtained using
85 | Multisurface Method-Tree (MSM-T) [K. P. Bennett, "Decision Tree
86 | Construction Via Linear Programming." Proceedings of the 4th
87 | Midwest Artificial Intelligence and Cognitive Science Society,
88 | pp. 97-101, 1992], a classification method which uses linear
89 | programming to construct a decision tree. Relevant features
90 | were selected using an exhaustive search in the space of 1-4
91 | features and 1-3 separating planes.
92 |
93 | The actual linear program used to obtain the separating plane
94 | in the 3-dimensional space is that described in:
95 | [K. P. Bennett and O. L. Mangasarian: "Robust Linear
96 | Programming Discrimination of Two Linearly Inseparable Sets",
97 | Optimization Methods and Software 1, 1992, 23-34].
98 |
99 |
100 | This database is also available through the UW CS ftp server:
101 |
102 | ftp ftp.cs.wisc.edu
103 | cd math-prog/cpo-dataset/machine-learn/WDBC/
104 |
105 | 5. Number of instances: 569
106 |
107 | 6. Number of attributes: 32 (ID, diagnosis, 30 real-valued input features)
108 |
109 | 7. Attribute information
110 |
111 | 1) ID number
112 | 2) Diagnosis (M = malignant, B = benign)
113 | 3-32)
114 |
115 | Ten real-valued features are computed for each cell nucleus:
116 |
117 | a) radius (mean of distances from center to points on the perimeter)
118 | b) texture (standard deviation of gray-scale values)
119 | c) perimeter
120 | d) area
121 | e) smoothness (local variation in radius lengths)
122 | f) compactness (perimeter^2 / area - 1.0)
123 | g) concavity (severity of concave portions of the contour)
124 | h) concave points (number of concave portions of the contour)
125 | i) symmetry
126 | j) fractal dimension ("coastline approximation" - 1)
127 |
128 | Several of the papers listed above contain detailed descriptions of
129 | how these features are computed.
130 |
131 | The mean, standard error, and "worst" or largest (mean of the three
132 | largest values) of these features were computed for each image,
133 | resulting in 30 features. For instance, field 3 is Mean Radius, field
134 | 13 is Radius SE, field 23 is Worst Radius.
135 |
136 | All feature values are recoded with four significant digits.
137 |
138 | 8. Missing attribute values: none
139 |
140 | 9. Class distribution: 357 benign, 212 malignant
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [](https://mybinder.org/v2/gh/rasbt/stat451-machine-learning-fs20/master)
2 |
3 | # stat451-machine-learning-fs20
4 |
5 | STAT 451: Intro to Machine Learning @ UW-Madison (Fall 2020)
6 |
7 | - [Lecture 01](L01): Course overview, introduction to machine learning
8 | - [Lecture 02](L02): Nearest Neighbor Methods
9 | - [Lecture 03](L03): Python
10 | - [Lecture 04](L04): Scientific Computing in Python
11 | - [Lecture 05](L05): Scikit-learn
12 | - [Lecture 06](L06): Decision Trees
13 | - [Lecture 07](L07): Ensemble Methods
14 | - [Lecture 08](L08): Model Evaluation 1: Overfitting and Underfitting
15 | - [Lecture 09](L09): Model Evaluation 2: Resampling Methods and Confidence Intervals
16 | - [Lecture 10](L10): Model Evaluation 3: Cross-Validation and Model Selection
17 | - [Lecture 11](L11): Model Evaluation 4: Algorithm Comparison
18 | - [Lecture 12](L12): Model Evaluation 5: Performance Metrics
--------------------------------------------------------------------------------
/report-template/examples/example-presentations.md:
--------------------------------------------------------------------------------
1 | See videos that students volunteered to share on YouTube: [https://www.youtube.com/watch?v=e_I0q3mmfw4]
2 |
3 |
4 | (PS: This is from the deep learning, not machine learning class, so the topics are different. However, the presentation style & expectation is the same.)
--------------------------------------------------------------------------------
/report-template/examples/example-proposal.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasbt/stat451-machine-learning-fs20/51ae6db167ec9ccae555e973179c31be0d111804/report-template/examples/example-proposal.pdf
--------------------------------------------------------------------------------
/report-template/examples/example-report.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasbt/stat451-machine-learning-fs20/51ae6db167ec9ccae555e973179c31be0d111804/report-template/examples/example-report.pdf
--------------------------------------------------------------------------------
/report-template/project-presentation-assessment.md:
--------------------------------------------------------------------------------
1 | # Project Presentation Assessment
2 |
3 | - 10 pts: Is there a motivation for the project given?
4 | - 40 pts: Is the project described well enough that a general audience, familiar with machine learning, can understand the project?
5 | - 20 pts: Figures are all legible and explained well
6 | - 20 pts: Are the results presented adequately discussed?
7 | - 10 pts: Did all team members contribute to the presentation?
--------------------------------------------------------------------------------
/report-template/project-proposal-assessment.md:
--------------------------------------------------------------------------------
1 | # Project Proposal Assessment
2 |
3 | The proposal will be graded based on completeness of each of the 5 sections (Introduction, Motivation, Evaluation, Resources, and Contributions) and *not* be based on language, style, and how "exciting" or "interesting" the project is. For each section, you can receive a maximum of 10 points, totalling 50 pts for the proposal overall.
4 |
5 | Also, it is important to make sure that you acknowledge previous work and use citations properly when referring to other people's work. Even minor forms of plagiarism (e.g., copying sentences from other texts) will result in a subtraction of at least 10 pts each per incidence. And university guidelines dictate that severe incidents need to be reported. If you are unsure about what constitutes plagiarism and how to avoid it, please see the helpful guides at https://conduct.students.wisc.edu/plagiarism/
6 |
7 |
--------------------------------------------------------------------------------
/report-template/project-report-assessment.md:
--------------------------------------------------------------------------------
1 | # Project Report Assessment
2 |
3 |
4 | ### Abstract: 15 pts
5 |
6 | - Is enough information provided get a clear idea about the subject matter?
7 | - Is the abstract conveying the findings?
8 | - Are the main points of the report described succinctly?
9 |
10 | ### Introduction: 15 pts
11 |
12 | - Does the introduction cover the required background information to understand the work?
13 | - Is the introduction well organized: it starts out general and becomes more specific towards the end?
14 | - Is there a motivation explaining why this project is relevant, important, and/or interesting?
15 |
16 | ### Related Work: 15 pts
17 |
18 | - Is the similar and related work discussed adequately?
19 | - Are references cited properly (here, but also throughout the whole paper)?
20 | - Is the a discussion or paragraph on comparing this project with other people's work adequate?
21 |
22 |
23 | ### Proposed Method: 25 pts
24 |
25 | - Are there any missing descriptions of symbols used in mathematical notations (if applicable)?
26 | - Are the main algorithms described well enough so that they can be implemented by a knowledgeable reader?
27 |
28 | ### Experiments: 25 pts
29 |
30 | - Is the experimental setup and methodology described well enough so that it can be repeated?
31 | - If datasets are used, are they referenced appropriately?
32 |
33 | ### Results and Discussion: 30 pts
34 |
35 | - Are the results described clearly?
36 | - Is the data analyzed well, and are the results logical?
37 | - Are the figures clear and have no missing labels?
38 | - Do the figure captions have sufficient information to understand the figure?
39 | - Is each figure referenced in the text?
40 | - Is the discussion critical/honest, and are potential weaknesses/shortcomings are discussed as well?
41 |
42 | ### Conclusions: 15 pts
43 |
44 | - Do the authors describe whether the initial motivation/task was accomplished or not based on the results?
45 | - Is it discussed adequately how the results relate to previous work?
46 | - If applicable, are potential future directions given?
47 |
48 | ### Contributions: 10 pts
49 |
50 | - Are all contributions listed clearly?
51 | - Did each member contribute approximately equally to the project?
52 |
53 | ### Length, Formatting, and Citations:
54 |
55 | - -25 pts if you submit the report in some arbitrary format and didn't use the report template.
56 | - -10 pts for each page that goes over the 8-page limit (references are not counted; so you may have 8 pages of text + an infinite number of reference pages).
57 | - -10 pts for each page below the 6-page minimum requirement (references are not counted; so you may have 6 pages of text + 1 to infinitely many reference pages).
58 | - -10 pts for each missing image reference -- this means, if you are using an image that was not made by yourself and you don't cite the source, 10 pts will be deducted for each missing reference.
59 | - -10 pts will be deducted where a sentence from a book or website is copied without citation. For example, consider the following sentence from [https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm](https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm)
60 |
61 | - In pattern recognition, the k-nearest neighbors algorithm (k-NN) is a non-parametric method used for classification and regression.
62 |
63 | If you use it in your text in the following way
64 |
65 | > This section describes the machine learning methods used in this study. As a baseline model, the k-neared neighbors algorithm was used. In pattern recognition, the k-nearest neighbors algorithm (k-NN) is a non-parametric method used for classification and regression. The distance metric ...
66 |
67 | I will deduct 10 pts because you didn't indicate that you obtained the sentence from Wikipedia. However the following is ok:
68 |
69 | a)
70 |
71 | > This section describes the machine learning methods used in this study. As a baseline model, the k-neared neighbors algorithm was used. "In pattern recognition, the k-nearest neighbors algorithm (k-NN) is a non-parametric method used for classification and regression."\footcite{\url{https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm}} The distance metric ...
72 |
73 | the following is also okay -- because you rewrote the sentence you don't need the quotation marks:
74 |
75 | b)
76 |
77 | > This section describes the machine learning methods used in this study. As a baseline model, the k-neared neighbors algorithm was used. The k-nearest neigbhors algorithm is a so-called \texit{lazy} machine learning algorithm and non-parametric method that can be used for classification and regression.\footcite{\url{https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm}} The distance metric ...
78 |
79 |
--------------------------------------------------------------------------------
/report-template/proposal-latex/bibliography.bib:
--------------------------------------------------------------------------------
1 | @article{Raschka2020PythonTrends,
2 | title={Machine learning in python: Main developments and technology trends in data science, machine learning, and artificial intelligence},
3 | author={Raschka, Sebastian and Patterson, Joshua and Nolet, Corey},
4 | volume={11},
5 | number={7},
6 | pages={345},
7 | year={2020},
8 | journal={Information},
9 | publisher={MDPI}
10 | }
--------------------------------------------------------------------------------
/report-template/proposal-latex/figures/google-scholar.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasbt/stat451-machine-learning-fs20/51ae6db167ec9ccae555e973179c31be0d111804/report-template/proposal-latex/figures/google-scholar.pdf
--------------------------------------------------------------------------------
/report-template/proposal-latex/figures/not-own-figure.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasbt/stat451-machine-learning-fs20/51ae6db167ec9ccae555e973179c31be0d111804/report-template/proposal-latex/figures/not-own-figure.pdf
--------------------------------------------------------------------------------
/report-template/proposal-latex/proposal.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasbt/stat451-machine-learning-fs20/51ae6db167ec9ccae555e973179c31be0d111804/report-template/proposal-latex/proposal.pdf
--------------------------------------------------------------------------------
/report-template/proposal-latex/proposal.tex:
--------------------------------------------------------------------------------
1 | \documentclass[10pt,twocolumn,letterpaper]{article}
2 |
3 | \usepackage{statcourse}
4 | \usepackage{times}
5 | \usepackage{epsfig}
6 | \usepackage{graphicx}
7 | \usepackage{amsmath}
8 | \usepackage{amssymb}
9 |
10 | % Include other packages here, before hyperref.
11 |
12 | % If you comment hyperref and then uncomment it, you should delete
13 | % egpaper.aux before re-running latex. (Or just hit 'q' on the first latex
14 | % run, let it finish, and you should be clear).
15 | \usepackage[breaklinks=true,bookmarks=false]{hyperref}
16 |
17 |
18 | \statcoursefinalcopy
19 |
20 |
21 | \setcounter{page}{1}
22 | \begin{document}
23 |
24 |
25 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 | % DO NOT EDIT ANYTHING ABOVE THIS LINE
27 | % EXCEPT IF YOU LIKE TO USE ADDITIONAL PACKAGES
28 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
29 |
30 |
31 |
32 | %%%%%%%%% TITLE
33 | \title{\LaTeX\ Template for STAT451 Project Proposal (replace with your project title)}
34 |
35 | \author{First Author\\
36 | {\tt\small firstauthor@wisc.edu}
37 | \and
38 | Second Author\\
39 | {\tt\small secondauthor@wisc.edu}
40 | \and
41 | Third Author\\
42 | {\tt\small thirdauthor@wisc.edu}
43 | }
44 |
45 | \maketitle
46 | %\thispagestyle{empty}
47 |
48 |
49 |
50 | % MAIN ARTICLE GOES BELOW
51 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 |
53 |
54 |
55 | %%%%%%%%% BODY TEXT
56 |
57 |
58 |
59 | \begin{itemize}
60 |
61 |
62 | \item The information in this template is very minimal, and this file should serve you as a framework for writing your proposal. You may prefer to use a more collaboration-friendly tool while drafting the report with your classmates before you prepare the final report for submission. Remember that you only need to turn in the PDF file on Canvas. Also, \textbf{only one member per team} needs to submit the project proposal.
63 |
64 | \item The project proposal is a 2-4 page document excluding references\footnote{This means, references should of course be included but do not count towards the page limit}.
65 |
66 | \item You are encouraged (not required) to use 1-2 figures to illustrate technical concepts.
67 |
68 | \item The proposal must be formatted and submitted as a PDF document on Canvas (the submission deadline will be later announced on Canvas.
69 |
70 | \item Please
71 | check out the text in the sections below for further information.
72 |
73 | \end{itemize}
74 |
75 |
76 |
77 |
78 | \section{Introduction}
79 |
80 |
81 | In this section, describe what you are planning to do. Also, briefly describe related work.
82 |
83 | \subsection{Notes about Citations}
84 |
85 | When discussing related work, do not forget to include appropriate references. This is an example of a citation \cite{Raschka2020PythonTrends}. To format the citations properly, put the
86 | corresponding references into the ``bibliography.bib`` file. You can obtain
87 | BibTeX-formatted references for the "bib" file from Google Scholar
88 | (\url{https://scholar.google.com}), for example, by clicking on the
89 | double-quote character under a citation and then selecting \mbox{"BibTeX"} as
90 | shown in Figure \ref{fig:google-scholar-1col} and
91 | Figure \ref{fig:google-scholar-2col}.
92 |
93 | To avoid plagiarism, any sentence that is copied from other articles or sources (internet, papers, etc.) must be put in quotation marks. The next sentence provides and example that uses an existing sentence verbatim.
94 |
95 | According to \cite{Raschka2020PythonTrends}, "The development of machine learning algorithms that operate on a set of values (as opposed to a single value) at a time is also commonly known as vectorization."
96 |
97 | Direct quotes should be used sparingly, and it is usually better to rephrase sentences in your own words. The next sentence provides an example.
98 |
99 | Vectorization is a programming approach utilizing functions that operate on multiple values simultaneously to speed up computation \cite{Raschka2020PythonTrends}.
100 |
101 | \begin{figure}[t]
102 | \begin{center}
103 | \includegraphics[width=0.8\linewidth]{figures/google-scholar.pdf}
104 | \end{center}
105 | \caption{Example illustrating how to get BibTeX references from
106 | Google Scholar as a 1-column figure.}
107 | \label{fig:google-scholar-1col}
108 | \end{figure}
109 |
110 | \subsection{Notes about Figures}
111 |
112 | Figure~\ref{fig:google-scholar-1col} shows an example of a 1-column figures.
113 |
114 | You can create two-column figures, too, as shown in Figure \ref{fig:google-scholar-2col}. Please not that you can reuse figures from other papers or lecture material, but for every figure that is not your own, you have to include the "Source" as shown in Figure~\ref{fig:other-figure}.
115 |
116 | \begin{figure*}
117 | \begin{center}
118 | \includegraphics[width=0.8\linewidth]{figures/google-scholar.pdf}
119 | \end{center}
120 | \caption{Example of a 2-column figure.}
121 | \label{fig:google-scholar-2col}
122 | \end{figure*}
123 |
124 | \begin{figure*}
125 | \begin{center}
126 | \includegraphics[width=0.8\linewidth]{figures/not-own-figure.pdf}
127 | \end{center}
128 | \caption{Figure note created by yourself. Image source: \cite{Raschka2020PythonTrends}. (If the source is a website, not a paper, please use the URL link instead of the paper reference. Image source: \url{https://www.mdpi.com/2078-2489/11/4/193}.)}
129 | \label{fig:other-figure}
130 | \end{figure*}
131 |
132 |
133 | \section{Motivation}
134 |
135 | Describe why your project is interesting. E.g., you can describe why your project could have a broader societal impact. Or, you may describe the motivation from a personal learning perspective.
136 |
137 | \section{Evaluation}
138 |
139 | What would the successful outcome of your project look like? In other words, under which circumstances would you consider your project to be “successful?”
140 |
141 | How do you measure success, specific to this project, from a technical standpoint?
142 |
143 | \section{Resources}
144 |
145 | What resources are you going to use (datasets, computer hardware, computational tools, etc.)?
146 |
147 | \section{Contributions}
148 |
149 | You are expected to share the workload evenly, and every group member is expected to participate in both the experiments and writing. (As a group, you only need to submit one proposal and one report, though. So you need to work together and coordinate your efforts.)
150 |
151 | Clearly indicate what computational and writing tasks each member of your group will be participating in.
152 |
153 |
154 | {\small
155 | \bibliographystyle{ieee}
156 | \bibliography{bibliography.bib}
157 | }
158 |
159 | \end{document}
160 |
--------------------------------------------------------------------------------
/report-template/proposal-latex/statcourse.sty:
--------------------------------------------------------------------------------
1 | % ---------------------------------------------------------------
2 | %
3 | % $Id: statcourse.sty,v 1.3 2005/10/24 19:56:15 awf Exp $
4 | %
5 | % by Paolo.Ienne@di.epfl.ch
6 | % some mods by awf@acm.org
7 | %
8 | % ---------------------------------------------------------------
9 | %
10 | % no guarantee is given that the format corresponds perfectly to
11 | % IEEE 8.5" x 11" Proceedings, but most features should be ok.
12 | %
13 | % ---------------------------------------------------------------
14 | % with LaTeX2e:
15 | % =============
16 | %
17 | % use as
18 | % \documentclass[times,10pt,twocolumn]{article}
19 | % \usepackage{latex8}
20 | % \usepackage{times}
21 | %
22 | % ---------------------------------------------------------------
23 |
24 | % with LaTeX 2.09:
25 | % ================
26 | %
27 | % use as
28 | % \documentstyle[times,art10,twocolumn,latex8]{article}
29 | %
30 | % ---------------------------------------------------------------
31 | % with both versions:
32 | % ===================
33 | %
34 | % specify \statcoursefinalcopy to emit the final camera-ready copy
35 | %
36 | % specify references as
37 | % \bibliographystyle{ieee}
38 | % \bibliography{...your files...}
39 | %
40 | % ---------------------------------------------------------------
41 |
42 | \usepackage{eso-pic}
43 | \usepackage{xspace}
44 |
45 | \typeout{CVPR 8.5 x 11-Inch Proceedings Style `statcourse.sty'.}
46 |
47 | % ten point helvetica bold required for captions
48 | % eleven point times bold required for second-order headings
49 | % in some sites the name of the fonts may differ,
50 | % change the name here:
51 | \font\statcoursetenhv = phvb at 8pt % *** IF THIS FAILS, SEE statcourse.sty ***
52 | \font\elvbf = ptmb scaled 1100
53 |
54 | % If the above lines give an error message, try to comment them and
55 | % uncomment these:
56 | %\font\statcoursetenhv = phvb7t at 8pt
57 | %\font\elvbf = ptmb7t scaled 1100
58 |
59 | % set dimensions of columns, gap between columns, and paragraph indent
60 | \setlength{\textheight}{8.875in}
61 | \setlength{\textwidth}{6.875in}
62 | \setlength{\columnsep}{0.3125in}
63 | \setlength{\topmargin}{0in}
64 | \setlength{\headheight}{0in}
65 | \setlength{\headsep}{0in}
66 | \setlength{\parindent}{1pc}
67 | \setlength{\oddsidemargin}{-.304in}
68 | \setlength{\evensidemargin}{-.304in}
69 |
70 | \newif\ifstatcoursefinal
71 | \statcoursefinalfalse
72 | \def\statcoursefinalcopy{\global\statcoursefinaltrue}
73 |
74 | % memento from size10.clo
75 | % \normalsize{\@setfontsize\normalsize\@xpt\@xiipt}
76 | % \small{\@setfontsize\small\@ixpt{11}}
77 | % \footnotesize{\@setfontsize\footnotesize\@viiipt{9.5}}
78 | % \scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}
79 | % \tiny{\@setfontsize\tiny\@vpt\@vipt}
80 | % \large{\@setfontsize\large\@xiipt{14}}
81 | % \Large{\@setfontsize\Large\@xivpt{18}}
82 | % \LARGE{\@setfontsize\LARGE\@xviipt{22}}
83 | % \huge{\@setfontsize\huge\@xxpt{25}}
84 | % \Huge{\@setfontsize\Huge\@xxvpt{30}}
85 |
86 | \def\@maketitle
87 | {
88 | \newpage
89 | \null
90 | \vskip .375in
91 | \begin{center}
92 | {\Large \bf \@title \par}
93 | % additional two empty lines at the end of the title
94 | \vspace*{24pt}
95 | {
96 | \large
97 | \lineskip .5em
98 | \begin{tabular}[t]{c}
99 | \ifstatcoursefinal\@author\else Anonymous CVPR submission\\
100 | \vspace*{1pt}\\%This space will need to be here in the final copy, so don't squeeze it out for the review copy.
101 | Paper ID \statcoursePaperID \fi
102 | \end{tabular}
103 | \par
104 | }
105 | % additional small space at the end of the author name
106 | \vskip .5em
107 | % additional empty line at the end of the title block
108 | \vspace*{12pt}
109 | \end{center}
110 | }
111 |
112 | \def\abstract
113 | {%
114 | \centerline{\large\bf Abstract}%
115 | \vspace*{12pt}%
116 | \it%
117 | }
118 |
119 | \def\endabstract
120 | {
121 | % additional empty line at the end of the abstract
122 | \vspace*{12pt}
123 | }
124 |
125 | \def\affiliation#1{\gdef\@affiliation{#1}} \gdef\@affiliation{}
126 |
127 | \newlength{\@ctmp}
128 | \newlength{\@figindent}
129 | \setlength{\@figindent}{1pc}
130 |
131 | \long\def\@makecaption#1#2{
132 | \setbox\@tempboxa\hbox{\small \noindent #1.~#2}
133 | \setlength{\@ctmp}{\hsize}
134 | \addtolength{\@ctmp}{-\@figindent}\addtolength{\@ctmp}{-\@figindent}
135 | % IF longer than one indented paragraph line
136 | \ifdim \wd\@tempboxa >\@ctmp
137 | % THEN DON'T set as an indented paragraph
138 | {\small #1.~#2\par}
139 | \else
140 | % ELSE center
141 | \hbox to\hsize{\hfil\box\@tempboxa\hfil}
142 | \fi}
143 |
144 | % correct heading spacing and type
145 | \def\statcoursesection{\@startsection {section}{1}{\z@}
146 | {10pt plus 2pt minus 2pt}{7pt} {\large\bf}}
147 | \def\statcoursessect#1{\statcoursesection*{#1}}
148 | \def\statcoursesect#1{\statcoursesection{\hskip -1em.~#1}}
149 | \def\section{\@ifstar\statcoursessect\statcoursesect}
150 |
151 | \def\statcoursesubsection{\@startsection {subsection}{2}{\z@}
152 | {8pt plus 2pt minus 2pt}{6pt} {\elvbf}}
153 | \def\statcoursessubsect#1{\statcoursesubsection*{#1}}
154 | \def\statcoursesubsect#1{\statcoursesubsection{\hskip -1em.~#1}}
155 | \def\subsection{\@ifstar\statcoursessubsect\statcoursesubsect}
156 |
157 | %% --------- Page background marks: Ruler and confidentiality
158 |
159 | % ----- define vruler
160 | \makeatletter
161 | \newbox\statcourserulerbox
162 | \newcount\statcourserulercount
163 | \newdimen\statcourseruleroffset
164 | \newdimen\cv@lineheight
165 | \newdimen\cv@boxheight
166 | \newbox\cv@tmpbox
167 | \newcount\cv@refno
168 | \newcount\cv@tot
169 | % NUMBER with left flushed zeros \fillzeros[]
170 | \newcount\cv@tmpc@ \newcount\cv@tmpc
171 | \def\fillzeros[#1]#2{\cv@tmpc@=#2\relax\ifnum\cv@tmpc@<0\cv@tmpc@=-\cv@tmpc@\fi
172 | \cv@tmpc=1 %
173 | \loop\ifnum\cv@tmpc@<10 \else \divide\cv@tmpc@ by 10 \advance\cv@tmpc by 1 \fi
174 | \ifnum\cv@tmpc@=10\relax\cv@tmpc@=11\relax\fi \ifnum\cv@tmpc@>10 \repeat
175 | \ifnum#2<0\advance\cv@tmpc1\relax-\fi
176 | \loop\ifnum\cv@tmpc<#1\relax0\advance\cv@tmpc1\relax\fi \ifnum\cv@tmpc<#1 \repeat
177 | \cv@tmpc@=#2\relax\ifnum\cv@tmpc@<0\cv@tmpc@=-\cv@tmpc@\fi \relax\the\cv@tmpc@}%
178 | % \makevruler[][][][][]
179 | \def\makevruler[#1][#2][#3][#4][#5]{\begingroup\offinterlineskip
180 | \textheight=#5\vbadness=10000\vfuzz=120ex\overfullrule=0pt%
181 | \global\setbox\statcourserulerbox=\vbox to \textheight{%
182 | {\parskip=0pt\hfuzz=150em\cv@boxheight=\textheight
183 | \cv@lineheight=#1\global\statcourserulercount=#2%
184 | \cv@tot\cv@boxheight\divide\cv@tot\cv@lineheight\advance\cv@tot2%
185 | \cv@refno1\vskip-\cv@lineheight\vskip1ex%
186 | \loop\setbox\cv@tmpbox=\hbox to0cm{{\statcoursetenhv\hfil\fillzeros[#4]\statcourserulercount}}%
187 | \ht\cv@tmpbox\cv@lineheight\dp\cv@tmpbox0pt\box\cv@tmpbox\break
188 | \advance\cv@refno1\global\advance\statcourserulercount#3\relax
189 | \ifnum\cv@refno<\cv@tot\repeat}}\endgroup}%
190 | \makeatother
191 | % ----- end of vruler
192 |
193 | % \makevruler[][][][][]
194 | \def\statcourseruler#1{\makevruler[12pt][#1][1][3][0.993\textheight]\usebox{\statcourserulerbox}}
195 | \AddToShipoutPicture{%
196 | \ifstatcoursefinal\else
197 | %\AtTextLowerLeft{%
198 | % \color[gray]{.15}\framebox(\LenToUnit{\textwidth},\LenToUnit{\textheight}){}
199 | %}
200 | \statcourseruleroffset=\textheight
201 | \advance\statcourseruleroffset by -3.7pt
202 | \color[rgb]{.5,.5,1}
203 | \AtTextUpperLeft{%
204 | \put(\LenToUnit{-35pt},\LenToUnit{-\statcourseruleroffset}){%left ruler
205 | \statcourseruler{\statcourserulercount}}
206 | \put(\LenToUnit{\textwidth\kern 30pt},\LenToUnit{-\statcourseruleroffset}){%right ruler
207 | \statcourseruler{\statcourserulercount}}
208 | }
209 | \def\pid{\parbox{1in}{\begin{center}\bf\sf{\small CVPR}\\\#\statcoursePaperID\end{center}}}
210 | \AtTextUpperLeft{%paperID in corners
211 | \put(\LenToUnit{-65pt},\LenToUnit{45pt}){\pid}
212 | \put(\LenToUnit{\textwidth\kern-8pt},\LenToUnit{45pt}){\pid}
213 | }
214 | \AtTextUpperLeft{%confidential
215 | \put(0,\LenToUnit{1cm}){\parbox{\textwidth}{\centering\statcoursetenhv
216 | CVPR 2018 Submission \#\statcoursePaperID. CONFIDENTIAL REVIEW COPY. DO NOT DISTRIBUTE.}}
217 | }
218 | \fi
219 | }
220 |
221 | %%% Make figure placement a little more predictable.
222 | % We trust the user to move figures if this results
223 | % in ugliness.
224 | % Minimize bad page breaks at figures
225 | \renewcommand{\textfraction}{0.01}
226 | \renewcommand{\floatpagefraction}{0.99}
227 | \renewcommand{\topfraction}{0.99}
228 | \renewcommand{\bottomfraction}{0.99}
229 | \renewcommand{\dblfloatpagefraction}{0.99}
230 | \renewcommand{\dbltopfraction}{0.99}
231 | \setcounter{totalnumber}{99}
232 | \setcounter{topnumber}{99}
233 | \setcounter{bottomnumber}{99}
234 |
235 | % Add a period to the end of an abbreviation unless there's one
236 | % already, then \xspace.
237 | \makeatletter
238 | \DeclareRobustCommand\onedot{\futurelet\@let@token\@onedot}
239 | \def\@onedot{\ifx\@let@token.\else.\null\fi\xspace}
240 |
241 | \def\eg{\emph{e.g}\onedot} \def\Eg{\emph{E.g}\onedot}
242 | \def\ie{\emph{i.e}\onedot} \def\Ie{\emph{I.e}\onedot}
243 | \def\cf{\emph{c.f}\onedot} \def\Cf{\emph{C.f}\onedot}
244 | \def\etc{\emph{etc}\onedot} \def\vs{\emph{vs}\onedot}
245 | \def\wrt{w.r.t\onedot} \def\dof{d.o.f\onedot}
246 | \def\etal{\emph{et al}\onedot}
247 | \makeatother
248 |
249 | % ---------------------------------------------------------------
250 |
--------------------------------------------------------------------------------
/report-template/report-latex/bibliography.bib:
--------------------------------------------------------------------------------
1 | @article{Raschka2020PythonTrends,
2 | title={Machine learning in python: Main developments and technology trends in data science, machine learning, and artificial intelligence},
3 | author={Raschka, Sebastian and Patterson, Joshua and Nolet, Corey},
4 | volume={11},
5 | number={7},
6 | pages={345},
7 | year={2020},
8 | journal={Information},
9 | publisher={MDPI}
10 | }
--------------------------------------------------------------------------------
/report-template/report-latex/figures/google-scholar.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasbt/stat451-machine-learning-fs20/51ae6db167ec9ccae555e973179c31be0d111804/report-template/report-latex/figures/google-scholar.pdf
--------------------------------------------------------------------------------
/report-template/report-latex/report.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rasbt/stat451-machine-learning-fs20/51ae6db167ec9ccae555e973179c31be0d111804/report-template/report-latex/report.pdf
--------------------------------------------------------------------------------
/report-template/report-latex/report.tex:
--------------------------------------------------------------------------------
1 | \documentclass[10pt,twocolumn,letterpaper]{article}
2 |
3 | \usepackage{statcourse}
4 | \usepackage{times}
5 | \usepackage{epsfig}
6 | \usepackage{graphicx}
7 | \usepackage{amsmath}
8 | \usepackage{amssymb}
9 |
10 | % Include other packages here, before hyperref.
11 |
12 | % If you comment hyperref and then uncomment it, you should delete
13 | % egpaper.aux before re-running latex. (Or just hit 'q' on the first latex
14 | % run, let it finish, and you should be clear).
15 | \usepackage[breaklinks=true,bookmarks=false]{hyperref}
16 |
17 |
18 | \statcoursefinalcopy
19 |
20 |
21 | \setcounter{page}{1}
22 | \begin{document}
23 |
24 |
25 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 | % DO NOT EDIT ANYTHING ABOVE THIS LINE
27 | % EXCEPT IF YOU LIKE TO USE ADDITIONAL PACKAGES
28 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
29 |
30 |
31 |
32 | %%%%%%%%% TITLE
33 | \title{\LaTeX\ Template for STAT451 Project Report (replace with your project title)}
34 |
35 | \author{First Author\\
36 | {\tt\small firstauthor@wisc.edu}
37 | \and
38 | Second Author\\
39 | {\tt\small secondauthor@wisc.edu}
40 | \and
41 | Third Author\\
42 | {\tt\small thirdauthor@wisc.edu}
43 | }
44 |
45 | \maketitle
46 | %\thispagestyle{empty}
47 |
48 |
49 |
50 | % MAIN ARTICLE GOES BELOW
51 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
52 |
53 |
54 | %%%%%%%%% ABSTRACT
55 | \begin{abstract}
56 | The abstract for your project goes here. The length of the abstract
57 | should be between 200-250 words. Tips for writing a good abstract
58 | can be found at \url{https://writing.wisc.edu/Handbook/presentations_abstracts.html}.
59 | \end{abstract}
60 |
61 | %%%%%%%%% BODY TEXT
62 |
63 | %-------------------------------------------------
64 | \section{Introduction}
65 | %-------------------------------------------------
66 |
67 | \noindent\textit{Recommended length: 1/2 to 1 pages.}\vspace{1cm}
68 |
69 | For the report, the same rules and guidelines apply as for the proposal. This is an example of a citation \cite{Raschka2020PythonTrends}; if you use the "cite{}" function in LaTeX, the References section will be created automatically at the end of the document. Please read through the {"proposal-latex/proposal.pdf"} for a refresher on how to use citations and figures properly.
70 |
71 | Note that the sections for this report are different, and some additional information is contained in this template document, so please read it carefully before you start writing.
72 |
73 | This is an example of a mathematical equation:
74 |
75 | $$f(\mathbf{x}; \mathbf{w}) = \sum_{i=1}^{n} w_ix_i.$$
76 |
77 | This is a mathematical expression, $h(\mathbf{x}) = \hat{y}$ formatted in text.
78 |
79 | The project report should be 6-8 pages long (not counting references)
80 | and should contain the sections that are already provided in this paper. Please
81 | check out the text in these sections for further information.
82 |
83 |
84 | \subsection{Subsection}
85 |
86 | You can use paragraphs or subsections to further structure your
87 | main sections. This is an example of a subsection.
88 |
89 | \paragraph{This is a paragraph title.} This is an example of a paragraph.
90 |
91 | Ideally, your report should contain all the major sections provided in this report template. Please also consult the "report-template/project-report-assessment.md" for further information on these sections and grading.
92 |
93 |
94 |
95 | %-------------------------------------------------
96 | \section{Related Work}
97 | %-------------------------------------------------
98 |
99 | \noindent\textit{Recommended length: 1/2 to 1 pages.}\vspace{1cm}
100 |
101 | Related work should be discussed here. This should be a short (1/2 to 1 page) discussion of work (from research papers and articles) that explored similar questions. For example, if you plan to predict COVID-19 from chest X-ray images, discuss previous work that was about a similar project. If the focus of your project is on analyzing the behavior of certain machine learning on a variety of different datasets, and the comparison itself (rather application) is the focus of your paper, discuss other papers that analyzed different algorithms.
102 |
103 | %-------------------------------------------------
104 | \section{Proposed Method}
105 | %-------------------------------------------------
106 |
107 | \noindent\textit{Recommended length: 1 to 2 pages.}\vspace{1cm}
108 |
109 | Describe the method(s) you are proposing, developing, or using. Most students will not propose new or modified machine learning methods or algorithms. In this case, describe how the main algorithms you are using work. This may include mathematical details.
110 |
111 | %-------------------------------------------------
112 | \section{Experiments}
113 | %-------------------------------------------------
114 |
115 | \noindent\textit{Recommended length: 1/2 to 1 pages.}\vspace{1cm}
116 |
117 | Describe the experiments you performed to address specific questions. This includes information about the dataset and software, which are listed as subsections below. Please do not remove these subsections.
118 |
119 | \subsection{Dataset}
120 |
121 | Briefly describe your dataset in a separate subsection.
122 |
123 |
124 | Table \ref{tab:some-table} shows an example for formatting a table.
125 |
126 | \begin{table}
127 | \begin{center}
128 | \begin{tabular}{|l|c|}
129 | \hline
130 | Method & Accuracy \\
131 | \hline\hline
132 | Method 1 & $70 \pm 3$ \% \\
133 | Method 2 & $76 \pm 3$ \% \\
134 | \hline
135 | \end{tabular}
136 | \end{center}
137 | \label{tab:some-table}
138 | \caption{This is an example of a table.}
139 | \end{table}
140 |
141 |
142 |
143 |
144 | \subsection{Software}
145 |
146 | Briefly list (and cite) software software you used.
147 |
148 | \subsection{Hardware}
149 |
150 | If relevant, list hardware resources you used.
151 |
152 | %-------------------------------------------------
153 | \section{Results and Discussion}
154 | %-------------------------------------------------
155 |
156 | \noindent\textit{Recommended length: 2 to 3 pages.}\vspace{1cm}
157 |
158 | Describe the results you obtained from the experiments and interpret them.
159 | Optionally, you could split "Results and Discussion" into two separate
160 | sections, but it is often easier to present the results and discuss them at the same time. In this section, you will likely want to create several subsections that address your specific research questions. As an example for structuring the Results and Discussion section, you can take a look at the following paper: \url{https://www.mdpi.com/2078-2489/11/7/345}.
161 |
162 | %-------------------------------------------------
163 | \section{Conclusions}
164 | %-------------------------------------------------
165 |
166 | \noindent\textit{Recommended length: 1/3 to 1/2 page.}\vspace{1cm}
167 |
168 | Describe your conclusions here. If there are any future directions, you can
169 | describe them here, or you can create a new section for future directions.
170 |
171 | %-------------------------------------------------
172 | \section{Acknowledgements}
173 | %-------------------------------------------------
174 |
175 | \noindent\textit{Recommended length: 2-4 sentences.}\vspace{1cm}
176 |
177 | List acknowledgements if any. For example, if someone provided you a dataset, or
178 | you used someone else's resources, this is a good place to acknowledge
179 | the help or support you received.
180 |
181 | %-------------------------------------------------
182 | \section{Contributions}
183 | %-------------------------------------------------
184 |
185 | \noindent\textit{Recommended length: 1/3 to 1/2 page.}\vspace{1cm}
186 |
187 | Describe the contributions of each team member who worked on this project.
188 |
189 |
190 | {\small
191 | \bibliographystyle{ieee}
192 | \bibliography{bibliography.bib}
193 | }
194 |
195 | \end{document}
196 |
--------------------------------------------------------------------------------
/report-template/report-latex/statcourse.sty:
--------------------------------------------------------------------------------
1 | % ---------------------------------------------------------------
2 | %
3 | % $Id: statcourse.sty,v 1.3 2005/10/24 19:56:15 awf Exp $
4 | %
5 | % by Paolo.Ienne@di.epfl.ch
6 | % some mods by awf@acm.org
7 | %
8 | % ---------------------------------------------------------------
9 | %
10 | % no guarantee is given that the format corresponds perfectly to
11 | % IEEE 8.5" x 11" Proceedings, but most features should be ok.
12 | %
13 | % ---------------------------------------------------------------
14 | % with LaTeX2e:
15 | % =============
16 | %
17 | % use as
18 | % \documentclass[times,10pt,twocolumn]{article}
19 | % \usepackage{latex8}
20 | % \usepackage{times}
21 | %
22 | % ---------------------------------------------------------------
23 |
24 | % with LaTeX 2.09:
25 | % ================
26 | %
27 | % use as
28 | % \documentstyle[times,art10,twocolumn,latex8]{article}
29 | %
30 | % ---------------------------------------------------------------
31 | % with both versions:
32 | % ===================
33 | %
34 | % specify \statcoursefinalcopy to emit the final camera-ready copy
35 | %
36 | % specify references as
37 | % \bibliographystyle{ieee}
38 | % \bibliography{...your files...}
39 | %
40 | % ---------------------------------------------------------------
41 |
42 | \usepackage{eso-pic}
43 | \usepackage{xspace}
44 |
45 | \typeout{CVPR 8.5 x 11-Inch Proceedings Style `statcourse.sty'.}
46 |
47 | % ten point helvetica bold required for captions
48 | % eleven point times bold required for second-order headings
49 | % in some sites the name of the fonts may differ,
50 | % change the name here:
51 | \font\statcoursetenhv = phvb at 8pt % *** IF THIS FAILS, SEE statcourse.sty ***
52 | \font\elvbf = ptmb scaled 1100
53 |
54 | % If the above lines give an error message, try to comment them and
55 | % uncomment these:
56 | %\font\statcoursetenhv = phvb7t at 8pt
57 | %\font\elvbf = ptmb7t scaled 1100
58 |
59 | % set dimensions of columns, gap between columns, and paragraph indent
60 | \setlength{\textheight}{8.875in}
61 | \setlength{\textwidth}{6.875in}
62 | \setlength{\columnsep}{0.3125in}
63 | \setlength{\topmargin}{0in}
64 | \setlength{\headheight}{0in}
65 | \setlength{\headsep}{0in}
66 | \setlength{\parindent}{1pc}
67 | \setlength{\oddsidemargin}{-.304in}
68 | \setlength{\evensidemargin}{-.304in}
69 |
70 | \newif\ifstatcoursefinal
71 | \statcoursefinalfalse
72 | \def\statcoursefinalcopy{\global\statcoursefinaltrue}
73 |
74 | % memento from size10.clo
75 | % \normalsize{\@setfontsize\normalsize\@xpt\@xiipt}
76 | % \small{\@setfontsize\small\@ixpt{11}}
77 | % \footnotesize{\@setfontsize\footnotesize\@viiipt{9.5}}
78 | % \scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}
79 | % \tiny{\@setfontsize\tiny\@vpt\@vipt}
80 | % \large{\@setfontsize\large\@xiipt{14}}
81 | % \Large{\@setfontsize\Large\@xivpt{18}}
82 | % \LARGE{\@setfontsize\LARGE\@xviipt{22}}
83 | % \huge{\@setfontsize\huge\@xxpt{25}}
84 | % \Huge{\@setfontsize\Huge\@xxvpt{30}}
85 |
86 | \def\@maketitle
87 | {
88 | \newpage
89 | \null
90 | \vskip .375in
91 | \begin{center}
92 | {\Large \bf \@title \par}
93 | % additional two empty lines at the end of the title
94 | \vspace*{24pt}
95 | {
96 | \large
97 | \lineskip .5em
98 | \begin{tabular}[t]{c}
99 | \ifstatcoursefinal\@author\else Anonymous CVPR submission\\
100 | \vspace*{1pt}\\%This space will need to be here in the final copy, so don't squeeze it out for the review copy.
101 | Paper ID \statcoursePaperID \fi
102 | \end{tabular}
103 | \par
104 | }
105 | % additional small space at the end of the author name
106 | \vskip .5em
107 | % additional empty line at the end of the title block
108 | \vspace*{12pt}
109 | \end{center}
110 | }
111 |
112 | \def\abstract
113 | {%
114 | \centerline{\large\bf Abstract}%
115 | \vspace*{12pt}%
116 | \it%
117 | }
118 |
119 | \def\endabstract
120 | {
121 | % additional empty line at the end of the abstract
122 | \vspace*{12pt}
123 | }
124 |
125 | \def\affiliation#1{\gdef\@affiliation{#1}} \gdef\@affiliation{}
126 |
127 | \newlength{\@ctmp}
128 | \newlength{\@figindent}
129 | \setlength{\@figindent}{1pc}
130 |
131 | \long\def\@makecaption#1#2{
132 | \setbox\@tempboxa\hbox{\small \noindent #1.~#2}
133 | \setlength{\@ctmp}{\hsize}
134 | \addtolength{\@ctmp}{-\@figindent}\addtolength{\@ctmp}{-\@figindent}
135 | % IF longer than one indented paragraph line
136 | \ifdim \wd\@tempboxa >\@ctmp
137 | % THEN DON'T set as an indented paragraph
138 | {\small #1.~#2\par}
139 | \else
140 | % ELSE center
141 | \hbox to\hsize{\hfil\box\@tempboxa\hfil}
142 | \fi}
143 |
144 | % correct heading spacing and type
145 | \def\statcoursesection{\@startsection {section}{1}{\z@}
146 | {10pt plus 2pt minus 2pt}{7pt} {\large\bf}}
147 | \def\statcoursessect#1{\statcoursesection*{#1}}
148 | \def\statcoursesect#1{\statcoursesection{\hskip -1em.~#1}}
149 | \def\section{\@ifstar\statcoursessect\statcoursesect}
150 |
151 | \def\statcoursesubsection{\@startsection {subsection}{2}{\z@}
152 | {8pt plus 2pt minus 2pt}{6pt} {\elvbf}}
153 | \def\statcoursessubsect#1{\statcoursesubsection*{#1}}
154 | \def\statcoursesubsect#1{\statcoursesubsection{\hskip -1em.~#1}}
155 | \def\subsection{\@ifstar\statcoursessubsect\statcoursesubsect}
156 |
157 | %% --------- Page background marks: Ruler and confidentiality
158 |
159 | % ----- define vruler
160 | \makeatletter
161 | \newbox\statcourserulerbox
162 | \newcount\statcourserulercount
163 | \newdimen\statcourseruleroffset
164 | \newdimen\cv@lineheight
165 | \newdimen\cv@boxheight
166 | \newbox\cv@tmpbox
167 | \newcount\cv@refno
168 | \newcount\cv@tot
169 | % NUMBER with left flushed zeros \fillzeros[]
170 | \newcount\cv@tmpc@ \newcount\cv@tmpc
171 | \def\fillzeros[#1]#2{\cv@tmpc@=#2\relax\ifnum\cv@tmpc@<0\cv@tmpc@=-\cv@tmpc@\fi
172 | \cv@tmpc=1 %
173 | \loop\ifnum\cv@tmpc@<10 \else \divide\cv@tmpc@ by 10 \advance\cv@tmpc by 1 \fi
174 | \ifnum\cv@tmpc@=10\relax\cv@tmpc@=11\relax\fi \ifnum\cv@tmpc@>10 \repeat
175 | \ifnum#2<0\advance\cv@tmpc1\relax-\fi
176 | \loop\ifnum\cv@tmpc<#1\relax0\advance\cv@tmpc1\relax\fi \ifnum\cv@tmpc<#1 \repeat
177 | \cv@tmpc@=#2\relax\ifnum\cv@tmpc@<0\cv@tmpc@=-\cv@tmpc@\fi \relax\the\cv@tmpc@}%
178 | % \makevruler[][][][][]
179 | \def\makevruler[#1][#2][#3][#4][#5]{\begingroup\offinterlineskip
180 | \textheight=#5\vbadness=10000\vfuzz=120ex\overfullrule=0pt%
181 | \global\setbox\statcourserulerbox=\vbox to \textheight{%
182 | {\parskip=0pt\hfuzz=150em\cv@boxheight=\textheight
183 | \cv@lineheight=#1\global\statcourserulercount=#2%
184 | \cv@tot\cv@boxheight\divide\cv@tot\cv@lineheight\advance\cv@tot2%
185 | \cv@refno1\vskip-\cv@lineheight\vskip1ex%
186 | \loop\setbox\cv@tmpbox=\hbox to0cm{{\statcoursetenhv\hfil\fillzeros[#4]\statcourserulercount}}%
187 | \ht\cv@tmpbox\cv@lineheight\dp\cv@tmpbox0pt\box\cv@tmpbox\break
188 | \advance\cv@refno1\global\advance\statcourserulercount#3\relax
189 | \ifnum\cv@refno<\cv@tot\repeat}}\endgroup}%
190 | \makeatother
191 | % ----- end of vruler
192 |
193 | % \makevruler[][][][][]
194 | \def\statcourseruler#1{\makevruler[12pt][#1][1][3][0.993\textheight]\usebox{\statcourserulerbox}}
195 | \AddToShipoutPicture{%
196 | \ifstatcoursefinal\else
197 | %\AtTextLowerLeft{%
198 | % \color[gray]{.15}\framebox(\LenToUnit{\textwidth},\LenToUnit{\textheight}){}
199 | %}
200 | \statcourseruleroffset=\textheight
201 | \advance\statcourseruleroffset by -3.7pt
202 | \color[rgb]{.5,.5,1}
203 | \AtTextUpperLeft{%
204 | \put(\LenToUnit{-35pt},\LenToUnit{-\statcourseruleroffset}){%left ruler
205 | \statcourseruler{\statcourserulercount}}
206 | \put(\LenToUnit{\textwidth\kern 30pt},\LenToUnit{-\statcourseruleroffset}){%right ruler
207 | \statcourseruler{\statcourserulercount}}
208 | }
209 | \def\pid{\parbox{1in}{\begin{center}\bf\sf{\small CVPR}\\\#\statcoursePaperID\end{center}}}
210 | \AtTextUpperLeft{%paperID in corners
211 | \put(\LenToUnit{-65pt},\LenToUnit{45pt}){\pid}
212 | \put(\LenToUnit{\textwidth\kern-8pt},\LenToUnit{45pt}){\pid}
213 | }
214 | \AtTextUpperLeft{%confidential
215 | \put(0,\LenToUnit{1cm}){\parbox{\textwidth}{\centering\statcoursetenhv
216 | CVPR 2018 Submission \#\statcoursePaperID. CONFIDENTIAL REVIEW COPY. DO NOT DISTRIBUTE.}}
217 | }
218 | \fi
219 | }
220 |
221 | %%% Make figure placement a little more predictable.
222 | % We trust the user to move figures if this results
223 | % in ugliness.
224 | % Minimize bad page breaks at figures
225 | \renewcommand{\textfraction}{0.01}
226 | \renewcommand{\floatpagefraction}{0.99}
227 | \renewcommand{\topfraction}{0.99}
228 | \renewcommand{\bottomfraction}{0.99}
229 | \renewcommand{\dblfloatpagefraction}{0.99}
230 | \renewcommand{\dbltopfraction}{0.99}
231 | \setcounter{totalnumber}{99}
232 | \setcounter{topnumber}{99}
233 | \setcounter{bottomnumber}{99}
234 |
235 | % Add a period to the end of an abbreviation unless there's one
236 | % already, then \xspace.
237 | \makeatletter
238 | \DeclareRobustCommand\onedot{\futurelet\@let@token\@onedot}
239 | \def\@onedot{\ifx\@let@token.\else.\null\fi\xspace}
240 |
241 | \def\eg{\emph{e.g}\onedot} \def\Eg{\emph{E.g}\onedot}
242 | \def\ie{\emph{i.e}\onedot} \def\Ie{\emph{I.e}\onedot}
243 | \def\cf{\emph{c.f}\onedot} \def\Cf{\emph{C.f}\onedot}
244 | \def\etc{\emph{etc}\onedot} \def\vs{\emph{vs}\onedot}
245 | \def\wrt{w.r.t\onedot} \def\dof{d.o.f\onedot}
246 | \def\etal{\emph{et al}\onedot}
247 | \makeatother
248 |
249 | % ---------------------------------------------------------------
250 |
--------------------------------------------------------------------------------