Data analysis (Software Engineering) 2017

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск

Class email:
Anonymous feedback form: here
Scores: here

Course description

In this class we consider the main problems of data mining and machine learning: classification, clustering, regression, dimensionality reduction, ranking, collaborative filtering. We will also study mathematical methods and concepts which data analysis is based on as well as formal assumptions behind them and various aspects of their implementation.

A significant attention is given to practical skills of data analysis that will be developed on seminars by studying the Python programming language and relevant libraries for scientific computing.

The knowledge of linear algebra, real analysis and probability theory is required.

The class consists of:

  1. Lectures and seminars
  2. Practical and theoretical homework assignments
  3. A machine learning competition (more information will be available later)
  4. Midterm theoretical colloquium
  5. Final exam

Kaggle competition

Follow this link to participate.

Baseline loss: 0.89

Baseline solution.


Colloquium will be held on April 7th during lecture & seminars time slot.

You may not use any materials during colloquium except single A4 prepared before the exam and handwritten personally by you (from two sides). You will have 2 questions from the questions list with 25 minutes for preparation and may receive additional questions or tasks.


  1. Introduction to machine learning.
  2. K-nearest neighbours classification and regression. Extensions. Optimization techniques.
  3. Decision tree methods.
  4. Bayesian decision theory. Model evaluation:
  5. Linear classification methods. Adding regularization to linear methods.
  6. Regression.
  7. Kernel generalization of standard methods.
  8. Neural networks.
  9. Ensemble methods: bagging, boosting, etc.
  10. Feature selection.
  11. Feature extraction
  12. EM algorithm. Density estimation using mixtures.
  13. Clustering
  14. Collaborative filtering
  15. Ranking

Lecture materials

Lecture 1. Introduction to data science and machine learning. Download

Lecture 2. Metric methods of classification & regression. Download

Lecture 3. Decision trees. Download

Lecture 4. Regression methods. Download

Lecture 5. Properties of convex functions. Download

Lecture 6. Linear methods of classification. Download

Lecture 7. Classifier evaluation. Download

Lecture 8. SVM and kernel trick. Download

Lecture 9. Principal component analysis. Download

Lecture 10. Singular value decomposition. Download

Lecture 11. Feature selection. Download

Lecture 12. Working with text. Download

Lecture 13. Ensemble methods. Download

Lecture 14. Boosting. Download

Lecture 15. Neural networks. Download


Seminar 1. Introduction to Data Analysis in Python

Additional materials: 1, 2

Practical task 1, data. Deadline: January 19.

Seminar 2. Metric Classifiers

Theoretical task 2, Deadline: January 26

Practical task 2, data. Deadline: February 2

Seminar 3. Decision trees

Theoretical task 3, Deadline: February 2

Seminar 4. Regression methods

Theoretical task 4, Deadline: February 9

Seminar 5. Linear classification: loss functions

Theoretical task 5, Deadline: February 16

Seminar 6. Linear classification: optimization

Theoretical task 6, Deadline: March 2

Practical task 6, first dataset, diabetes dataset. Deadline: March 16

Seminar 7. Classifier evaluation

Theoretical task 7, Deadline: March 16

Seminar 8. SVM and kernel trick

Theoretical task 8, Deadline: March 23

Practical task 8, data. Deadline: March 30

Seminar 9. PCA

Theoretical task 9, Deadline: April 20

Seminar 10. Feature selection + text mining

Theoretical task 10, Deadline: April 27

Seminar 11. Ensembles, bagging

Practical task 11, Deadline: May 18

Seminar 12. Ensembles, boosting

Theoretical task 12, Deadline: May 18

Seminar 13. Neural networks

Practical task 13, Data, Short training set, Deadline: June 1

Additional materials: Backpropagation, PyBrain’s documentation, PyBrain example from the seminar

By default, you should use the whole training set from Data. But if you have MemoryError then use Short training set.

Evaluation criteria

The course lasts during the 3rd and 4th modules. Knowledge of students is assessed by evaluation of their home assignments and exams. Home assignments divide into theoretical tasks and practical tasks. There are two exams during the course – after the 3rd module and after the 4th module respectively. Each of the exams evaluates theoretical knowledge and understanding of the material studied during the respective module.

Grade takes values 4,5,…10. Grades, corresponding to 1,2,3 are assumed unsatisfactory. Exact grades are calculated using the following rule:

  • score ≥ 35% => 4,
  • score ≥ 45% => 5,
  • ...
  • score ≥ 95% => 10,

where score is calculated using the following rule:

score = 0.6 * Shomework + 0.2 * Sexam1 + 0.2 * Sexam2 + 0.2 * Scompetition

  • Shomework – proportion of correctly solved homework,
  • Sexam1 – proportion of successfully answered theoretical questions during exam after module 3,
  • Sexam2 – proportion of successfully answered theoretical questions during exam after module 4,
  • Scompetition – score for the competition in machine learning (it's also from 0 to 1).

If you solve the theoretical problem in class you obtain 1.5 points (if you solve it at home you obtain 1 point). Participation in machine learning competition is optional and can give students extra points.


In case of discovered plagiarism zero points will be set for the home assignemets - for both works, which were found to be identical. In case of repeated plagiarism by one and the same person a report to the dean will be made.


Standard period for working on a homework assignment is 2 weeks for practical assignments and 1 week for theoretical ones. The first practical assignment is an exception. Assignments sent after late deadlines will not be scored (assigned with zero score) in the absence of legitimate reasons for late submission which do not include high load on other classes.

Deadline time: 23:59 of the day before seminar (Thursday).

Structure of emails and homework submissions

All the questions and submissions must be addressed to The following subjects must be used:

  • For questions (general, regarding assignments, etc): "Question - Surname Name - Group"
  • For homework submissions: "Practice/Theory {Lab number} - Surname Name - Group"

Example: Practice 1 - Ivanov Ivan - 141

Please do not mix two different topics in a single email such as theoretical and practical assignments etc. When replying, please use the same thread (i.e. reply to the same email).

Practical assignments must be implemented in jupyter notebook format, theoretical ones in pdf. Practical assignments must use Python 3. Use your surname as a filename for assignments (e.g. Ivanov.ipynb). Do not archive your assignments.

Assignments can be performed in either Russian or English.

Assignments can be submitted only once!

Useful links

Machine learning


Python installation and configuration