Moshe Sipper

Applied Machine Learning

למידת מכונה יישומית

232.2.6511

ייתכנו שינויים עד תחילת הסמסטר

Prof. Moshe Sipper

סמסטר אביב, תשפ”ו

עברית / English :שפת הקורס הסמסטר

Detailed contents (GitHub)

דף הקורס בקובץ הקורסים

Registration:

  • Prerequisites: algorithms, calculus 2, algebra 2, probability
  • All prerequisites are mandatory
  • You must know how to code in Python (or learn by yourself during the course)
  • No registration after add/drop period
  • Sorry, I handle neither registration nor quota, so I cannot add students at my discretion

Classes:

  • On campus
  • Mon 10:00–12:00, 90/230
  • Mon 14:00–16:00, 38/010
  • Recordings for miluimnikim only (possibly from previous year)
  • Attendance is not mandatory

Final-grade components & dates:

  • 14%Quiz 1: DATE TBD, 14:10-14:40, on campus, in class
  • 14%Quiz 2: DATE TBD, 14:10-14:40, on campus, in class
  • 19%ML Challenge 1: DATE TBD, 14:10-15:40, online
  • 19%ML Challenge 2: DATE TBD, 14:10-15:40, online
  • 34%Competition: deadline is END OF SEMESTER @ 2pm, online
  • All course components are mandatory, and you must pass each one to pass the course
  • Lecturer may normalize any of the component grades and/or final grades at his discretion
  • With low probability, dates may change due to force majeure

Quizzes:

  • Individual, in class (written), include all material up to quiz
  • Multiple-choice, 30 minutes, 12 questions, 6 answers per question—1 correct

ML challenges:

  • Individual, online, 90 minutes
  • Each student receives their own training dataset, then trains models, and finally submits predictions
  • Grading: see Course Formulas below

Competition:

  • In groups of 1–4 students
  • Single large dataset
  • Will take place at end of semester, after all groups have submitted
  • Fail will be considered for low-ranked works
  • Grading: see Course Formulas below

Alternative assessment for miluim:

  • For extensive miluim, at lecturer’s discretion

Appeals / Requests:

  • Through Moodle “Appeals/Requests” assignment only
  • Please do not email appeals/requests
  • You may appeal a component grade
  • You may submit proof of justified absence from a component (miluim requires form 3010)
  • And any other requests

Dishonesty:

  • To be handled by university disciplinary committee

Office hours:

Missed Components

Missed Components

If you miss a course component due to a valid reason listed in Section 7.2 of the university exam regulations (עברית, English), your grade will be computed according to the formula below, based on the components you completed.


Grade formula for student who completed a subset \( S \) of components due to valid reasons:

[ \text{Final Grade} = \frac{\sum_{i \in S} (\text{grade}_i \times \text{weight}_i)}{\sum_{i \in S} \text{weight}_i} ]

For example, if a student misses quiz 1 and challenge 2 due to valid reasons:

[ \text{Final Grade} = \frac{(\text{quiz 2 grade} \times 0.14) + (\text{challenge 1 grade} \times 0.19) + (\text{competition grade} \times 0.34)}{0.14+0.19+0.34} ]

If you miss a course component due to an invalid reason then that component’s grade will count as 0.

Midterm Grading

ML-Challenge Grading

Grades are computed as follows:

  • No show: 0
  • Late submission without approval: 56
  • Shape mismatch of submitted predictions: 56
  • Negative improvement: 58

The formula transforming positive improvement of prediction accuracy w.r.t. baseline is:

[ \text{score} = 62 + (100 – 62) \cdot \left( \frac{\text{acc} – \text{baseline}}{1 – \text{baseline}} \right)^{\gamma} , ]

with \( \gamma=1.5 \)

The formula:

  • Rewards difficult improvements (e.g. 0.9 → 0.95 is harder than 0.6 → 0.65).
  • Gives 100 when acc == 1.0, regardless of baseline.
  • Is monotonic and interpretable.

Baseline:

clf = LogisticRegression(max_iter=1000, random_state=SEED)
clf.fit(X_train, y_train)
baseline_pred = clf.predict(X_test)
baseline_acc = accuracy_score(y_test, baseline_pred)
Grading of Kaggle Competition

Competition Grading

I plan on holding a competition on a single large dataset, and your final score is:

[ \text{score} = \max\left(60,\ 100 \times \left(1 – \frac{\text{rank} – 1}{n – 1}\right)\right) ]

where \( \text{rank} \) is your rank in the dataset (1 is best), and \( n \) is the total number of participants.

Note: If issues arise (hopefully they won’t…) I may resort to >1 smaller datasets, in which case the grading scheme will change.

דוא”ל מסטודנט שלקח את הקורס
בוקר טוב משה,
למדתי אצלך בקורס ״למידת מכונה יישומית״ בשנה שעברה, כחלק מתואר במדעי המוח עם התמחות בחישוביות עצבית. בשנה האחרונה, השתמשתי על בסיס יומי בכלים שלימדת בקורס – במחקר בתואר השני, ובעבודה שלי בתעשייה. הקורס שלך הוא אחד מהמעשיים ביותר שנתקלתי בהם לאורך התואר הראשון, והוא מסייע לי באופן ישיר להיות data scientist טוב יותר. על כך – חשבתי שראוי להודות לך באופן אישי.
בברכה, (השם שמור במערכת)

הערות משוב סטודנטים משנים קודמות

  • קורס סופר מעניין
  • קורס מעולה, מרצה מצוין
  • קורס מעניין מאוד ורלוונטי
  • החומר מאוד מסודר ומאורגן
  • הקורס הכי מעניין שהיה בכל התואר
  • המרצה מאד נחמד ואדיב. משרה אווירה נעימה
  • קורס מעולה! נותן פן פרקטי חשוב שהיה חסר בשאר הקורסים במסגרת מגמת מדעי הנתונים!
  • אחד הקורסים הכי מעניינים שהיו לי בתואר + הקורס מאוד רלוונטי עבור המקצוע אותו אנחנו לומדים
  • הדרך שבה המרצה מנהל ידע ראויה לשבח – ניהול מאגר ידע עדכני דרך מסמך markdown בגיטהאב, עם הסברים טובים ונקודתיים על החומר.
  • מאוד אהבתי שמשה ארגן את כל חומר הקורס מראש בתוך תיקיית גיט האב, זה נתן לי את האפשרות לעקוב אחרי התכנים של הקורס בצורה נוחה ומסודרת. משה מרצה מעולה, ומאוד נהניתי להקשיב לו