Машинное обучение (семинары, ВМК МГУ)/2014-2015 год, осень/Лабораторная работа 2

Материал из MachineLearning.

Перейти к: навигация, поиск

Лабораторная работа посвящена освоению работы с решающими деревьями.

Формат отчета: iPython Notebook (.ipynb файл)

Срок сдачи: 14 декабря 2014, 23:59.

Штрафы: за каждый день просрочки из оценки вычитается 0.2 балла.

Данные

В задании мы будем работать с данными о пассажирах Титаника.

В столбце Survived записано, выжил пассажир или нет. Описание остальных признаков:

pclass: Passenger Class (1 = 1st; 2 = 2nd; 3 = 3rd)

name: Name

sex: Sex

age: Age

sibsp: Number of Siblings/Spouses Aboard

parch: Number of Parents/Children Aboard

ticket: Ticket Number

fare: Passenger Fare

cabin: Cabin

embarked: Port of Embarkation (C = Cherbourg; Q = Queenstown; S = Southampton)

Задание

  1. Скачайте файл с данными: файл. Прочитайте его в python с помощью пакета pandas.
    Полезные функции: pandas.read_csv
  2. Возьмите в качестве целевой переменной столбец Survived, в качестве признаков - столбцы Age и Fare.
    Примеры конструкций: target = train['Survived'].values; features = train[ ['Age', 'Fare'] ].as_matrix()
  3. Сколько среди признаков отсутствующих значений (NaN)? Замените отсутствующие значения на средние величины этих признаков.
    Полезные функции: numpy.isnan, numpy.nanmean
  4. Разбейте выборку на обучение и контроль в соотношении 70:30.
  5. Обучите решающее дерево с параметрами по умолчанию. Какую точность дает данное дерево на контроле? Визуализируйте разделяющую поверхность.
    Полезные функции: sklearn.tree.DecisionTreeClassifier, sklearn.metrics.accuracy_score
  6. Выполните предыдущий пункт для разных значений глубины дерева и минимального числа объектов в листе (параметры max_depth и min_samples_leaf). Как эти параметры влияют на вид разделяющей поверхности?
  7. Реализуйте бинарное кодирование категориальных признаков. Если у признака N возможных значений, то ему в соответствие ставится N бинарных признаков, каждый из которых соответствует одному значению исходного признака. На каждом объекте единице должен равняться строго один из них. Примените такое кодирование к столбцам Pclass, Sex, Cabin и Embarked, добавьте результат к признакам. Удается ли с помощью новых признаков повысить качество классификации?
Личные инструменты