Ближе познакомиться с нашими данными мы можем при помощи функции под названием describe – она собирает сводные данные и формирует их в удобную таблицу:

train.describe ()

В пакете тренировочных данных содержится 891 запись. В 714 из них содержатся данные о возрасте пассажира. Согласно имеющимся у нас данным, средний возраст пассажира – 29,699118 лет; обычный человек сказал бы, что средний возраст пассажира составляет около 30.

Некоторые представленные данные требуют дополнительного пояснения: минимальное значение в колонке Survived составляет 0, максимальное – 1. Другими словами, это булевы значения: либо кто-то выжил (1), либо нет (0). Таким образом мы можем посчитать среднее значение – 0,38. Мы также можем посчитать среднее значение Pclass, пассажирского класса. Также цены билетов для 1-го, 2-го и 3-го класса. Здесь среднее значение не означает буквально, что кто-то путешествовал классом 2,308.

Выяснив кое-что о данных, которыми мы располагаем, обратимся к анализу. Посчитаем прежде всего количество пассажиров: для этого мы можем воспользоваться функцией value_counts. Она покажет, каково количество значений переменных для каждой категории в колонках. Иначе говоря, мы выясним, сколько пассажиров путешествовало каждым классом. Выясним:

train [ «Pclass»].value_counts ()

1 216

2 184

3 491

Name: Pclass, dtype: int64

Согласно обучающим данным, 491 пассажир путешествовал 3-м классом, 184 человек было во 2-м и 216 – в 1-м.

Теперь посмотрим на число выживших:

train [ «Survived»].value_counts ()

0 549

1 342

Name: Survived, dtype: int64

Обучающие данные показывают, что 549 человек погибли, 342 – выжили.

Посмотрим теперь на данные в процентном соотношении:

print (train [ «Survived»].value_counts (normalize = True))

0 0.616162

1 0.383838

Name: Survived, dtype: float64

62 % пассажиров погибли, 38 % остались в живых. Большинство погибло в крушении. Если бы мы собирались прогнозировать выживание случайного пассажира из нашего списка, то с бо́льшей вероятностью программа бы выдала отрицательный ответ.

И можно было бы закончить на этом, ведь мы только что пришли к выводу, позволяющему сделать вполне логичные прогнозы. Но мы можем больше, так что продолжим. Есть ли какие-либо факторы, с помощью которых мы могли бы уточнить наш прогноз? Ведь кроме данных выживших у нас есть информация о классе пассажиров, имена, пол, возраст, данные о родственниках и членах семьи на борту, стоимость их билетов, номера кают и города отправления.

Pclass – лакмусовая бумажка, отражающая социоэкономический статус пассажира, подходит в качестве прогностической характеристики. Можно догадаться, что пассажиры первого класса оказались в спасательных шлюпках раньше пассажиров 3-го класса. Пол также является важным предиктором, ведь нам известно, что во время кораблекрушений работает принцип «женщин и детей спасать в первую очередь». Он восходит к 1852 г., когда транспортно-десантный корабль Британских ВМС сел на мель у побережья Южной Африки. Этот принцип работает не всегда, но часто, поэтому для социального анализа мы учитываем его.

Теперь проведем несколько сравнений и посмотрим, сможем ли мы обнаружить другие переменные, в потенциале обладающие предсказательной силой:

# Выжившие и погибшие пассажиры

print (train [ «Survived»].value_counts ())

0 549

1 342

Name: Survived, dtype: int64

# В пропорции

print (train [ «Survived»].value_counts (normalize = True))

0 0.616162

1 0.383838

Name: Survived, dtype: float64

# Мужчины выжившие и погибшие

print (train [ «Survived»] [train [ «Sex»] = ‘male’].value_counts ())

0 468

1 109

Name: Survived, dtype: int64

# Женщины выжившие и погибшие

print (train [ «Survived»] [train [ «Sex»] = ‘female’].value_counts ())

1 233

0 81

Name: Survived, dtype: int64

# Усредненное выживание мужчин

print (train [ «Survived»] [train [ «Sex»] = ‘male’].value_counts (normalize=True))

0 0.811092

1 0.188908

Name: Survived, dtype: float64

# Усредненное выживание женщин

Перейти на страницу:

Похожие книги