Data analysis (Software Engineering) — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Lecture materials)
Строка 1: Строка 1:
'''Таблица результатов и дедлайнов [https://drive.google.com/open?id=1TQ97B8rqC7sUxTnCMKXoskgRPXO8rAyWoBWBezY58h4 здесь]'''  
+
'''Scores and deadlines: [https://drive.google.com/open?id=1TQ97B8rqC7sUxTnCMKXoskgRPXO8rAyWoBWBezY58h4 здесь]'''  
  
'''Почта курса:''' cshse.ml@gmail.com
+
'''Class email:''' cshse.ml@gmail.com
  
'''Анонимная обратная связь:''' [http://goo.gl/forms/CT3h4QaMeB написать комментарий или пожелание по курсу]
+
'''Anonymous feedback form:''' [http://goo.gl/forms/CT3h4QaMeB написать комментарий или пожелание по курсу]
 
<br />
 
<br />
  
== Краткое описание ==
+
== Class 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.
  
Большое внимание уделено освоению практических навыков анализа данных, отрабатываемых на семинарах, которое будет вестись с использованием языка python и соответствующих библиотек для научных вычислений.
+
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:'''
# Лекции и семинары
+
# Lectures and seminars
# Практические и теоретические домашние задания
+
# Practical and theoretical homework assignments
# Одно соревновательное задание (информация будет уточнена позднее)
+
# A machine learning competition (more information will be available later)
# Два теоретических коллоквиума: в середине и в конце семестра
+
# Theoretical colloquiums: midterm and final.
# Письменный экзамен в конце семестра
+
# Final written exam
  
== Программа курса ==
+
== Class program ==
  
 
# Introduction to machine learning.
 
# Introduction to machine learning.
Строка 118: Строка 118:
 
Также Вы должны понимать, что плагиат будет иметь и другие последствия. При обнаружении плагиата у одного и того же человека более одного раза на него будет оформляться докладная на имя декана.
 
Также Вы должны понимать, что плагиат будет иметь и другие последствия. При обнаружении плагиата у одного и того же человека более одного раза на него будет оформляться докладная на имя декана.
  
== Дедлайны ==
+
== Deadlines ==
  
Точные даты дедлайнов указаны на второй вкладке [https://drive.google.com/open?id=1TQ97B8rqC7sUxTnCMKXoskgRPXO8rAyWoBWBezY58h4 здесь].
+
All the deadlines can be found in the second tab [https://drive.google.com/open?id=1TQ97B8rqC7sUxTnCMKXoskgRPXO8rAyWoBWBezY58h4 here].
  
Для сдачи домашних заданий будет два вида дедлайнов: обычный и поздний. При сдаче задания до обычного дедлайна можно получить за него полное количество баллов. За сдачу задания после обычного дедлайна, но до позднего дедлайна можно получить только 50% от полного количества баллов. Решения присланные после позднего дедлайна не принимаются, кроме случаев наличия уважительных причин у студента (завалы на учебе или работе уважительными причинами не считаются).  
+
We have two deadlines for each assignments: normal and late. An assignment sent prior to normal deadline is scored with no penalty. The maximum score is penalized by 50% for assignments sent in between of the normal and the late deadline. 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.  
  
Стандартный срок для выполнения практического домашнего задания (обычный и поздний дедлайны): 2 и 4 недели, для теоретического задания: 1 и 2 недели. Исключение: 1 практическое задание.
+
Standard period for working on a homework assignment is 2 and 4 weeks (normal and late deadlines correspondingly) for practical assignments and 1 and 2 weeks for theoretical ones. The first practical assignment is an exception.
  
'''Время дедлайнов:''' 23:59 в день, предшествующий дню семинара (воскресенье для групп с семинарами по понедельникам и среда для групп с семинарами по четвергам).
+
'''Deadline time:''' 23:59 of the day before seminar (Sunday for students attending Monday seminars and Wednesday for students that have seminars on Thursday).
  
== Оформление писем и заданий ==
+
== Structure of emails and homework submissions ==
Вопросы и домашние задания присылайте на почтовый адрес '''cshse.ml@gmail.com'''.
+
All the questions and submissions must be addressed to '''cshse.ml@gmail.com'''.
На почту присылайте письма со следующими темами:
+
The following subjects must be used:
* Для ''вопросов'' (общих, по лабораторным, по теории и т. д.): "Вопрос - Фамилия Имя - Группа(подгруппа)"
+
* For ''questions'' (general, regarding assignments, etc): "Question - Surname Name - Group(subgroup)"
* Для ''заданий'': "Практика/Теория {Номер работы} - Фамилия Имя - Группа(подгруппа)"
+
* For ''homework submissions'': "Practice/Theory {Lab number} - Surname Name - Group(subgroup)"
  
''Пример'': Практика 1 - Иванов Иван - 131(1)
+
''Example'': Practice 1 - Ivanov Ivan - 131(1)
  
Если вопрос адресован конкретному преподавателю, то также укажите его имя в теме письма.  
+
If you want to address a particular teacher, mention his name in the subject.
  
''Пример'': Вопрос - Иванов Иван - 131(1) - Екатерина
+
''Example'': Question - Ivanov Ivan - 131(1) - Ekaterina
  
Просьба не смешивать темы, то есть не нужно присылать в одном письме практическое задание и домашнее.
+
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 ipython notebook format, theoretical ones in pdf. Practical assignments must use '''Python 2.7'''. Use your surname as a filename for assignments (e.g. Ivanov.ipynb). Do not archive your assignments.
  
Практические задания нужно сдавать в ipython notebook, а теоретические формате pdf. Практические задания нужно выполнять с использованием '''Python 2.7'''. В качестве названия для файла с работой используйте свою фамилию на английском языке. Не нужно архивировать файлы перед отправкой.
+
Assignments can be performed in either Russian or English.
  
Задания можно сдавать как на английском, так и на русском языке.
+
'''Assignments can be submitted only once!'''
  
'''Задания можно отправлять только один раз!'''
+
== Useful links ==
 
+
=== Machine learning ===
== Полезные ссылки ==
+
=== Машинное обучение ===
+
 
* [http://www.machinelearning.ru/wiki/index.php?title=Заглавная_страница machinelearning.ru]
 
* [http://www.machinelearning.ru/wiki/index.php?title=Заглавная_страница machinelearning.ru]
* [https://yandexdataschool.ru/edu-process/courses/machine-learning Видеолекции курса К.В.Воронцова по машинному обучению]
+
* [https://yandexdataschool.ru/edu-process/courses/machine-learning Video-lectures of K. Vorontsov on machine learning]
* Одна из классических и наиболее полных книг по машинному обучению. [http://web.stanford.edu/~hastie/local.ftp/Springer/ESLII_print10.pdf Elements of Statistical Learning (Trevor Hastie, Robert Tibshirani, Jerome Friedman)]
+
* On of the classic ML books. [http://web.stanford.edu/~hastie/local.ftp/Springer/ESLII_print10.pdf Elements of Statistical Learning (Trevor Hastie, Robert Tibshirani, Jerome Friedman)]
  
 
=== Python ===
 
=== Python ===
* [http://python.org Официальный сайт]
+
* [http://python.org Official website]
* Библиотеки: [http://www.numpy.org/ NumPy], [http://pandas.pydata.org/ Pandas], [http://scikit-learn.org/stable/ SciKit-Learn], [http://matplotlib.org/ Matplotlib].
+
* Libraries: [http://www.numpy.org/ NumPy], [http://pandas.pydata.org/ Pandas], [http://scikit-learn.org/stable/ SciKit-Learn], [http://matplotlib.org/ Matplotlib].
* Небольшой пример для начинающих: [http://nbviewer.ipython.org/gist/voron13e02/83a86f2e0fc5e7f8424d краткое руководство с примерами по Python 2]
+
* A little example for the begginers: [http://nbviewer.ipython.org/gist/voron13e02/83a86f2e0fc5e7f8424d краткое руководство с примерами по Python 2]
* Питон с нуля: [http://nbviewer.ipython.org/gist/rpmuller/5920182 A Crash Course in Python for Scientists]
+
* Python from scratch: [http://nbviewer.ipython.org/gist/rpmuller/5920182 A Crash Course in Python for Scientists]
* Лекции [https://github.com/jrjohansson/scientific-python-lectures#online-read-only-versions Scientific Python]
+
* Lectures [https://github.com/jrjohansson/scientific-python-lectures#online-read-only-versions Scientific Python]
* Книга: [http://www.cin.ufpe.br/~embat/Python%20for%20Data%20Analysis.pdf Wes McKinney «Python for Data Analysis»]
+
* A book: [http://www.cin.ufpe.br/~embat/Python%20for%20Data%20Analysis.pdf Wes McKinney «Python for Data Analysis»]
 
* [https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks Коллекция интересных IPython ноутбуков]
 
* [https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks Коллекция интересных IPython ноутбуков]
  
=== Установка и настройка Python ===
+
=== Python installation and configuration ===
 
* [[Анализ данных (Программная инженерия)/Установка и настройка Python#Windows|Windows]]
 
* [[Анализ данных (Программная инженерия)/Установка и настройка Python#Windows|Windows]]
 
* [[Анализ данных (Программная инженерия)/Установка и настройка Python#Mac_OS|Mac OS]]
 
* [[Анализ данных (Программная инженерия)/Установка и настройка Python#Mac_OS|Mac OS]]
 
* [[Анализ данных (Программная инженерия)/Установка и настройка Python#Linux | Linux]]
 
* [[Анализ данных (Программная инженерия)/Установка и настройка Python#Linux | Linux]]

Версия 14:21, 16 февраля 2016

Scores and deadlines: здесь

Class email: cshse.ml@gmail.com

Anonymous feedback form: написать комментарий или пожелание по курсу

Class 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. Theoretical colloquiums: midterm and final.
  5. Final written exam

Class program

  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

Additional materials: The Field Guide to Data Science, Лекция К.В.Воронцова

Lecture 2. K nearest neighbours method.

Download

Additional materials: Лекция К.В.Воронцова, Metric learning survey

Lecture 3. Decision trees.

Download

Additional materials: Webb, Copsey "Statistical Pattern Recognition", chapter 7.2.

Lecture 4a. Model evaluation.

Download

Additional materials: Webb, Copsey "Statistical Pattern Recognition", chapter 9.

Lecture 4b. Bayes minimum cost classification.

Download

Lecture 5. Linear classifiers.

Download

Additional materials: Лекции К.В.Воронцова по линейным методам классификации

Lecture 6. Support vector machines.

Download

Lecture 7. Kernel trick.

Download

Seminars

Seminar 1. Introduction to Data Analysis in Python

Practical task 1, data

Additional materials: 1, 2

Seminar 2. kNN

Theoretical task 2, Practical task 2, data

Additional materials: Visualization tutorial

Seminar 3. Decision trees

Theoretical task 3

Seminar 4. Linear classifiers

Theoretical task 4, Practical task 4, first dataset, diabetes dataset

Deadline for this practical task has been changed for some groups! Check it in the table!

Seminar 5. Model evaluation

Theoretical task 5

Отчётность по курсу и критерии оценки

Оценка за курс. Итоговая оценка за курс складывается из оценок за домашние задания, оценок за коллоквиумы и оценки за экзамен. Оценка за соревновательное задание будет являться бонусной. Точные критерии оценивания будут выложены позднее.

Стандартно практические здания оцениваются по 5-бальной шкале, а теоретические — по 3-бальной.

Плагиат. Всем, у кого обнаружен плагиат ставится 0 баллов и отметка о плагиате. И тем, кто списал, и тем, у кого списали. Мы не будем искать первоисточник работы. Также Вы должны понимать, что плагиат будет иметь и другие последствия. При обнаружении плагиата у одного и того же человека более одного раза на него будет оформляться докладная на имя декана.

Deadlines

All the deadlines can be found in the second tab here.

We have two deadlines for each assignments: normal and late. An assignment sent prior to normal deadline is scored with no penalty. The maximum score is penalized by 50% for assignments sent in between of the normal and the late deadline. 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.

Standard period for working on a homework assignment is 2 and 4 weeks (normal and late deadlines correspondingly) for practical assignments and 1 and 2 weeks for theoretical ones. The first practical assignment is an exception.

Deadline time: 23:59 of the day before seminar (Sunday for students attending Monday seminars and Wednesday for students that have seminars on Thursday).

Structure of emails and homework submissions

All the questions and submissions must be addressed to cshse.ml@gmail.com. The following subjects must be used:

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

Example: Practice 1 - Ivanov Ivan - 131(1)

If you want to address a particular teacher, mention his name in the subject.

Example: Question - Ivanov Ivan - 131(1) - Ekaterina

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 ipython notebook format, theoretical ones in pdf. Practical assignments must use Python 2.7. 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

Python installation and configuration