├── server
└── Dockerfile
├── .gitignore
├── docker-compose.yaml
├── README.md
├── test_s3.ipynb
├── test_mlflow_sklearn.ipynb
├── test_mlflow_pytorch.ipynb
└── titanic.csv
/server/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM python:3.12.3
2 |
3 | RUN pip install mlflow==3.1.0 boto3 psycopg2
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | data_mnist
2 | mlartifacts
3 | *.pth
4 | *.png
5 | .env
6 | minio_data
7 | db_data
8 | *.jpg
--------------------------------------------------------------------------------
/docker-compose.yaml:
--------------------------------------------------------------------------------
1 | services:
2 | db:
3 | restart: always
4 | image: postgres
5 | container_name: mlflow_db
6 | ports:
7 | - "5423:5432"
8 | networks:
9 | - backend
10 | environment:
11 | POSTGRES_USER: ${PG_USER}
12 | POSTGRES_PASSWORD: ${PG_PASSWORD}
13 | POSTGRES_DATABASE: ${PG_DATABASE}
14 | volumes:
15 | - ./db_data:/var/lib/postgresql/
16 | healthcheck:
17 | test: ["CMD", "pg_isready", "-p", "5432", "-U", "${PG_USER}"]
18 | interval: 5s
19 | timeout: 5s
20 | retries: 3
21 |
22 | s3:
23 | restart: always
24 | image: minio/minio:RELEASE.2024-07-31T05-46-26Z
25 | container_name: mlflow_minio
26 | ports:
27 | - "9000:9000"
28 | - "9001:9001"
29 | networks:
30 | - frontend
31 | - backend
32 | environment:
33 | MINIO_ROOT_USER: ${MINIO_ROOT_USER}
34 | MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
35 | command: server /data --console-address ':9001' --address ':9000'
36 | volumes:
37 | - ./minio_data:/data
38 | healthcheck:
39 | test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
40 | interval: 30s
41 | timeout: 20s
42 | retries: 3
43 |
44 | s3_setup:
45 | image: minio/mc:RELEASE.2024-08-13T05-33-17Z
46 | container_name: s3_setup
47 | depends_on:
48 | - s3
49 | networks:
50 | - backend
51 | environment:
52 | MINIO_ROOT_USER: ${MINIO_ROOT_USER}
53 | MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
54 | entrypoint: ["/bin/sh", "-c"]
55 | command:
56 | - |
57 | mc alias set myminio http://s3:9000 ${MINIO_ROOT_USER} ${MINIO_ROOT_PASSWORD}
58 | mc admin user svcacct add --access-key ${MLFLOW_AWS_ACCESS_KEY_ID} --secret-key ${MLFLOW_AWS_SECRET_ACCESS_KEY} myminio ${MINIO_ROOT_USER}
59 | mc mb myminio/${MLFLOW_BUCKET_NAME}/artifacts
60 | mc mb myminio/test-bucket
61 |
62 | mlflow_server:
63 | restart: always
64 | build: ./server
65 | image: mlflow_server
66 | container_name: mlflow_server
67 | depends_on:
68 | - db
69 | - s3_setup
70 | ports:
71 | - "5050:5000"
72 | networks:
73 | - frontend
74 | - backend
75 | environment:
76 | AWS_ACCESS_KEY_ID: ${MLFLOW_AWS_ACCESS_KEY_ID}
77 | AWS_SECRET_ACCESS_KEY: ${MLFLOW_AWS_SECRET_ACCESS_KEY}
78 | MLFLOW_S3_ENDPOINT_URL: http://s3:9000
79 | MLFLOW_S3_IGNORE_TLS: "True"
80 | command: >
81 | mlflow server
82 | --backend-store-uri postgresql://${PG_USER}:${PG_PASSWORD}@db:5432/${PG_DATABASE}
83 | --host 0.0.0.0
84 | --serve-artifacts
85 | --artifacts-destination s3://${MLFLOW_BUCKET_NAME}/artifacts
86 | healthcheck:
87 | test: ["CMD", "curl", "-f", "http://localhost:5000/"]
88 | interval: 30s
89 | timeout: 10s
90 | retries: 3
91 |
92 | networks:
93 | frontend:
94 | driver: bridge
95 | backend:
96 | driver: bridge
97 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Использование MLflow для трекинга экспериментов PyTorch и Sklearn
2 |
3 | MLflow - это инструмент для управления жизненным циклом машинного обучения, который предоставляет разработчикам и исследователям возможность отслеживать, управлять и развертывать модели машинного обучения. Одной из ключевых возможностей MLflow является трекинг экспериментов. Он позволяет записывать параметры модели, метрики и артефакты (например, веса модели) во время обучения и сохранять их. Это позволяет легко сравнивать различные модели и эксперименты, а также повторять эксперименты с теми же параметрами.
4 |
5 |
6 | MLflow поддерживает множество фреймворков машинного обучения, включая PyTorch и Sklearn. После завершения проведения экспериментов все записанные параметры, метрики и артефакты и сами модели будут сохранены (сохранить данные можно локально на компьютере или с использованием любой базы данных). Данные можно легко просмотреть с помощью удобного веб-интерфейса MLflow или использовать API для доступа.
7 |
8 | Варианты поднятия сервиса:
9 |
10 | 
11 |
12 | В данной **main** ветке представлен пример №3. Как раз тут развернем объектоное хранилище и базу данных с помощью docker-compose.
13 | Если вас интересует самый простой вариант для локальной разработки (вариант №1), то его реализацию можете найти в ветке [local_mlflow](https://github.com/Koldim2001/MLflow_tracking/tree/local_mlflow)
14 |
15 | ---
16 |
17 | ## Запуск MLFlow + Postgres + MinIO
18 |
19 | ### Установка переменных окружения
20 |
21 | Создайте файлик `.env`, в который добавьте примерно следующее:
22 |
23 | ```bash
24 | PG_USER=mlflow
25 | PG_PASSWORD=mlflow
26 | PG_DATABASE=mlflow
27 | MLFLOW_BUCKET_NAME=mlfow-bucket
28 | MINIO_ROOT_USER=admin
29 | MINIO_ROOT_PASSWORD=admin1234
30 | MLFLOW_S3_ENDPOINT_URL=http://localhost:9000
31 | MLFLOW_TRACKING_URL=http://localhost:5000
32 | MLFLOW_AWS_ACCESS_KEY_ID=qwerTY12345
33 | MLFLOW_AWS_SECRET_ACCESS_KEY=poIuytRewq0987654321qwerty
34 | ```
35 |
36 | ### Запуск сервисов
37 |
38 | Выполните:
39 |
40 | ```bash
41 | docker compose up -d
42 | ```
43 |
44 | Когда контейнеры стартанут, на:
45 |
46 | * `http://localhost:9001/` будет доступен GUI Minio (логин/пароль – переменные `MINIO_ROOT_USER`/`MINIO_ROOT_PASSWORD` в `.env`);
47 | * на `http://localhost:5050/` будет доступен GUI MLFlow;
48 |
49 | ---
50 |
51 | ### Код репозитория:
52 |
53 | > Результаты представлены в формате jupiter notebook:
54 | > 1) Работа с PyTorch - [test_mlflow_pytorch.ipynb](https://nbviewer.org/github/Koldim2001/MLflow_tracking/blob/main/test_mlflow_pytorch.ipynb)
55 | > 2) Работа с Sklearn - [test_mlflow_sklearn.ipynb](https://nbviewer.org/github/Koldim2001/MLflow_tracking/blob/main/test_mlflow_sklearn.ipynb)
56 |
57 | Отдельно имеется файл [test_s3.ipynb](https://github.com/Koldim2001/MLflow_tracking/blob/main/test_s3.ipynb) с примером того, как работать с MinIO. Для этого я сначала создал бакет test-bucket при запуске компоуза и теперь могу все что угодно в него класть и из него получать.
58 |
--------------------------------------------------------------------------------
/test_s3.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# Тестирование работы с S3 (minio) boto2"
8 | ]
9 | },
10 | {
11 | "cell_type": "code",
12 | "execution_count": 1,
13 | "metadata": {},
14 | "outputs": [],
15 | "source": [
16 | "import boto3\n",
17 | "\n",
18 | "session = boto3.session.Session()\n",
19 | "s3 = session.client(\n",
20 | " service_name='s3',\n",
21 | " aws_access_key_id=\"qwerTY12345\",\n",
22 | " aws_secret_access_key=\"poIuytRewq0987654321qwerty\",\n",
23 | " endpoint_url='http://localhost:9000'\n",
24 | ")"
25 | ]
26 | },
27 | {
28 | "cell_type": "code",
29 | "execution_count": 16,
30 | "metadata": {},
31 | "outputs": [],
32 | "source": [
33 | "# Загрузить объекты в бакет\n",
34 | "bucket_name = \"test-bucket\"\n",
35 | "file = \"titanic.csv\"\n",
36 | "save_name = \"titanic.csv\"\n",
37 | "\n",
38 | "## Из файла\n",
39 | "s3.upload_file(file, bucket_name, save_name)"
40 | ]
41 | },
42 | {
43 | "cell_type": "code",
44 | "execution_count": 8,
45 | "metadata": {},
46 | "outputs": [
47 | {
48 | "name": "stdout",
49 | "output_type": "stream",
50 | "text": [
51 | "test.jpg\n",
52 | "titanic.csv\n"
53 | ]
54 | }
55 | ],
56 | "source": [
57 | "# Получить список объектов в бакете\n",
58 | "try:\n",
59 | " for key in s3.list_objects(Bucket=bucket_name)['Contents']:\n",
60 | " print(key['Key'])\n",
61 | "except:\n",
62 | " print('No items')"
63 | ]
64 | },
65 | {
66 | "cell_type": "code",
67 | "execution_count": 9,
68 | "metadata": {},
69 | "outputs": [],
70 | "source": [
71 | "# Удалить несколько объектов\n",
72 | "forDeletion = [{'Key':save_name}]\n",
73 | "response = s3.delete_objects(Bucket=bucket_name, Delete={'Objects': forDeletion})"
74 | ]
75 | },
76 | {
77 | "cell_type": "markdown",
78 | "metadata": {},
79 | "source": [
80 | "Загрузим фотку из инета и положим ее в s3:"
81 | ]
82 | },
83 | {
84 | "cell_type": "code",
85 | "execution_count": 10,
86 | "metadata": {},
87 | "outputs": [
88 | {
89 | "name": "stdout",
90 | "output_type": "stream",
91 | "text": [
92 | "Фотография успешно загружена и сохранена как test.jpg\n"
93 | ]
94 | }
95 | ],
96 | "source": [
97 | "import requests\n",
98 | "\n",
99 | "# URL фотографии\n",
100 | "url = 'https://steamuserimages-a.akamaihd.net/ugc/863987595649031357/F975541D9FE478E84605C72D21DAC1AF94254F52/?imw=512&imh=522&ima=fit&impolicy=Letterbox&imcolor=%23000000&letterbox=true'\n",
101 | "\n",
102 | "# Имя файла, под которым сохраним фотографию\n",
103 | "filename = 'test.jpg'\n",
104 | "\n",
105 | "# Загрузка фотографии\n",
106 | "response = requests.get(url)\n",
107 | "\n",
108 | "# Проверка, что загрузка прошла успешно\n",
109 | "if response.status_code == 200:\n",
110 | " # Сохранение фотографии в файл\n",
111 | " with open(filename, 'wb') as file:\n",
112 | " file.write(response.content)\n",
113 | " print(f\"Фотография успешно загружена и сохранена как {filename}\")\n",
114 | "else:\n",
115 | " print(f\"Ошибка при загрузке фотографии: {response.status_code}\")"
116 | ]
117 | },
118 | {
119 | "cell_type": "code",
120 | "execution_count": 11,
121 | "metadata": {},
122 | "outputs": [],
123 | "source": [
124 | "# Загрузить объекты в бакет\n",
125 | "bucket_name = \"test-bucket\"\n",
126 | "file = \"test.jpg\"\n",
127 | "save_name = \"test.jpg\"\n",
128 | "\n",
129 | "## Из файла\n",
130 | "s3.upload_file(file, bucket_name, save_name)"
131 | ]
132 | },
133 | {
134 | "cell_type": "code",
135 | "execution_count": null,
136 | "metadata": {},
137 | "outputs": [
138 | {
139 | "data": {
140 | "text/plain": [
141 | "{'ResponseMetadata': {'RequestId': '18042B75C1B1985A',\n",
142 | " 'HostId': 'dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8',\n",
143 | " 'HTTPStatusCode': 200,\n",
144 | " 'HTTPHeaders': {'accept-ranges': 'bytes',\n",
145 | " 'content-length': '39387',\n",
146 | " 'content-type': 'binary/octet-stream',\n",
147 | " 'etag': '\"ed3f2a0e6e0c4da07ae03de64d09dae4\"',\n",
148 | " 'last-modified': 'Sat, 02 Nov 2024 13:58:56 GMT',\n",
149 | " 'server': 'MinIO',\n",
150 | " 'strict-transport-security': 'max-age=31536000; includeSubDomains',\n",
151 | " 'vary': 'Origin, Accept-Encoding',\n",
152 | " 'x-amz-id-2': 'dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8',\n",
153 | " 'x-amz-request-id': '18042B75C1B1985A',\n",
154 | " 'x-content-type-options': 'nosniff',\n",
155 | " 'x-xss-protection': '1; mode=block',\n",
156 | " 'date': 'Sat, 02 Nov 2024 13:59:01 GMT'},\n",
157 | " 'RetryAttempts': 0},\n",
158 | " 'AcceptRanges': 'bytes',\n",
159 | " 'LastModified': datetime.datetime(2024, 11, 2, 13, 58, 56, tzinfo=tzutc()),\n",
160 | " 'ContentLength': 39387,\n",
161 | " 'ETag': '\"ed3f2a0e6e0c4da07ae03de64d09dae4\"',\n",
162 | " 'ContentType': 'binary/octet-stream',\n",
163 | " 'Metadata': {},\n",
164 | " 'Body': }"
165 | ]
166 | },
167 | "execution_count": 12,
168 | "metadata": {},
169 | "output_type": "execute_result"
170 | }
171 | ],
172 | "source": [
173 | "# Получить объект\n",
174 | "get_object_response = s3.get_object(Bucket=bucket_name, Key=file)\n",
175 | "get_object_response"
176 | ]
177 | },
178 | {
179 | "cell_type": "code",
180 | "execution_count": 15,
181 | "metadata": {},
182 | "outputs": [],
183 | "source": [
184 | "import cv2\n",
185 | "import numpy as np\n",
186 | "\n",
187 | "# Получение объекта из S3\n",
188 | "get_object_response = s3.get_object(Bucket=bucket_name, Key=file)\n",
189 | "\n",
190 | "# Чтение данных изображения из ответа\n",
191 | "image_data = get_object_response['Body'].read()\n",
192 | "\n",
193 | "# Преобразование данных изображения в формат, который может быть прочитан OpenCV\n",
194 | "image = cv2.imdecode(np.frombuffer(image_data, np.uint8), cv2.IMREAD_COLOR)\n",
195 | "\n",
196 | "# Отображение изображения\n",
197 | "cv2.imshow('Image from S3', cv2.resize(image, (350, 350)))\n",
198 | "cv2.waitKey(0)\n",
199 | "cv2.destroyAllWindows()"
200 | ]
201 | }
202 | ],
203 | "metadata": {
204 | "kernelspec": {
205 | "display_name": "patched_yolo_infer",
206 | "language": "python",
207 | "name": "python3"
208 | },
209 | "language_info": {
210 | "codemirror_mode": {
211 | "name": "ipython",
212 | "version": 3
213 | },
214 | "file_extension": ".py",
215 | "mimetype": "text/x-python",
216 | "name": "python",
217 | "nbconvert_exporter": "python",
218 | "pygments_lexer": "ipython3",
219 | "version": "3.11.8"
220 | }
221 | },
222 | "nbformat": 4,
223 | "nbformat_minor": 2
224 | }
225 |
--------------------------------------------------------------------------------
/test_mlflow_sklearn.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "attachments": {},
5 | "cell_type": "markdown",
6 | "metadata": {},
7 | "source": [
8 | "## MLFLOW для экспериментов с Sklearn"
9 | ]
10 | },
11 | {
12 | "cell_type": "code",
13 | "execution_count": 2,
14 | "metadata": {},
15 | "outputs": [],
16 | "source": [
17 | "import os\n",
18 | "import mlflow\n",
19 | "import pandas as pd\n",
20 | "from sklearn.model_selection import train_test_split\n",
21 | "from sklearn.tree import DecisionTreeClassifier\n",
22 | "from sklearn.metrics import accuracy_score, confusion_matrix\n",
23 | "\n",
24 | "# Загрузка данных Титаника из csv-файла\n",
25 | "data = pd.read_csv('titanic.csv')\n",
26 | "data = data [['Survived','Pclass','Age','Fare']]\n",
27 | "data = data.dropna(subset=['Age'])"
28 | ]
29 | },
30 | {
31 | "cell_type": "code",
32 | "execution_count": 3,
33 | "metadata": {},
34 | "outputs": [
35 | {
36 | "name": "stdout",
37 | "output_type": "stream",
38 | "text": [
39 | "\n",
40 | "Index: 714 entries, 0 to 890\n",
41 | "Data columns (total 4 columns):\n",
42 | " # Column Non-Null Count Dtype \n",
43 | "--- ------ -------------- ----- \n",
44 | " 0 Survived 714 non-null int64 \n",
45 | " 1 Pclass 714 non-null int64 \n",
46 | " 2 Age 714 non-null float64\n",
47 | " 3 Fare 714 non-null float64\n",
48 | "dtypes: float64(2), int64(2)\n",
49 | "memory usage: 27.9 KB\n"
50 | ]
51 | }
52 | ],
53 | "source": [
54 | "data.info()"
55 | ]
56 | },
57 | {
58 | "cell_type": "code",
59 | "execution_count": 8,
60 | "metadata": {},
61 | "outputs": [],
62 | "source": [
63 | "# Укажем юзера который делает эксперименты\n",
64 | "os.environ['USER'] = 'Dima Kolesnikov'"
65 | ]
66 | },
67 | {
68 | "cell_type": "code",
69 | "execution_count": 10,
70 | "metadata": {},
71 | "outputs": [
72 | {
73 | "data": {
74 | "text/plain": [
75 | ""
76 | ]
77 | },
78 | "execution_count": 10,
79 | "metadata": {},
80 | "output_type": "execute_result"
81 | }
82 | ],
83 | "source": [
84 | "# Разделение данных на обучающую и тестовую выборки\n",
85 | "train, test = train_test_split(data, test_size=0.2)\n",
86 | "\n",
87 | "# Инициализация MLflow\n",
88 | "mlflow.set_tracking_uri(\"http://localhost:5050\")\n",
89 | "mlflow.set_experiment(\"TreeClassifier_test\")"
90 | ]
91 | },
92 | {
93 | "cell_type": "code",
94 | "execution_count": 11,
95 | "metadata": {},
96 | "outputs": [],
97 | "source": [
98 | "import matplotlib.pyplot as plt\n",
99 | "import numpy as np\n",
100 | "import itertools\n",
101 | "\n",
102 | "def plot_confusion_matrix(cm, classes,\n",
103 | " normalize=False,\n",
104 | " title='Confusion matrix',\n",
105 | " cmap=plt.cm.Blues):\n",
106 | " \"\"\"\n",
107 | " Функция для построения матрицы ошибок.\n",
108 | " cm - матрица ошибок\n",
109 | " classes - список классов\n",
110 | " normalize - если True, то значения матрицы ошибок нормализуются к 1\n",
111 | " title - заголовок графика\n",
112 | " cmap - цветовая схема для отображения графика\n",
113 | " \"\"\"\n",
114 | "\n",
115 | " if normalize:\n",
116 | " cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n",
117 | " print(\"Normalized confusion matrix\")\n",
118 | " else:\n",
119 | " print('Confusion matrix, without normalization')\n",
120 | " \n",
121 | " plt.figure()\n",
122 | " plt.imshow(cm, interpolation='nearest', cmap=cmap)\n",
123 | " plt.title(title)\n",
124 | " plt.colorbar()\n",
125 | " tick_marks = np.arange(len(classes))\n",
126 | " plt.xticks(tick_marks, classes, rotation=45)\n",
127 | " plt.yticks(tick_marks, classes)\n",
128 | "\n",
129 | " fmt = '.2f' if normalize else 'd'\n",
130 | " thresh = cm.max() / 2.\n",
131 | " for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n",
132 | " plt.text(j, i, format(cm[i, j], fmt),\n",
133 | " horizontalalignment=\"center\",\n",
134 | " color=\"white\" if cm[i, j] > thresh else \"black\")\n",
135 | "\n",
136 | " plt.tight_layout()\n",
137 | " plt.ylabel('True label')\n",
138 | " plt.xlabel('Predicted label')"
139 | ]
140 | },
141 | {
142 | "cell_type": "code",
143 | "execution_count": 12,
144 | "metadata": {},
145 | "outputs": [],
146 | "source": [
147 | "# Запуск контекста MLflow и сохранение гиперпараметров\n",
148 | "def experiment(run_name, max_depth, min_samples_split):\n",
149 | " with mlflow.start_run(run_name=run_name):\n",
150 | "\n",
151 | " mlflow.log_param(\"max_depth\", max_depth)\n",
152 | " mlflow.log_param(\"min_samples_split\", min_samples_split)\n",
153 | "\n",
154 | " # Создание и обучение модели решающего дерева\n",
155 | " model = DecisionTreeClassifier(max_depth=max_depth, min_samples_split=min_samples_split)\n",
156 | " model.fit(train.drop('Survived', axis=1), train['Survived'])\n",
157 | "\n",
158 | " # Вычисление метрик и сохранение их в MLflow\n",
159 | " preds = model.predict(test.drop('Survived', axis=1))\n",
160 | " acc = accuracy_score(test['Survived'], preds)\n",
161 | " cm = confusion_matrix(test['Survived'], preds)\n",
162 | "\n",
163 | " mlflow.log_metric(\"accuracy\", acc)\n",
164 | " mlflow.log_metric(\"tn\", cm[0][0])\n",
165 | " mlflow.log_metric(\"fp\", cm[0][1])\n",
166 | " mlflow.log_metric(\"fn\", cm[1][0])\n",
167 | " mlflow.log_metric(\"tp\", cm[1][1])\n",
168 | "\n",
169 | " # Визуализация матрицы ошибок и сохранение ее в MLflow\n",
170 | " plot_confusion_matrix(cm, classes=['Not Survived', 'Survived'])\n",
171 | " cm_fig = plt.gcf()\n",
172 | " cm_fig.savefig('matrix.png')\n",
173 | "\n",
174 | " mlflow.log_artifact(\"matrix.png\")\n",
175 | "\n",
176 | " # Сохранение модели в MLflow\n",
177 | " mlflow.sklearn.log_model(model, \"model\") \n",
178 | " mlflow.end_run()"
179 | ]
180 | },
181 | {
182 | "cell_type": "code",
183 | "execution_count": 14,
184 | "metadata": {},
185 | "outputs": [
186 | {
187 | "name": "stdout",
188 | "output_type": "stream",
189 | "text": [
190 | "Confusion matrix, without normalization\n"
191 | ]
192 | },
193 | {
194 | "name": "stderr",
195 | "output_type": "stream",
196 | "text": [
197 | "2024/11/26 21:26:22 WARNING mlflow.models.model: Model logged without a signature and input example. Please set `input_example` parameter when logging the model to auto infer the model signature.\n",
198 | "2024/11/26 21:26:23 INFO mlflow.tracking._tracking_service.client: 🏃 View run DecisionTreeClassifier_run at: http://localhost:5050/#/experiments/1/runs/5350787e9e5e4501bc56d2bcd4799d0a.\n",
199 | "2024/11/26 21:26:23 INFO mlflow.tracking._tracking_service.client: 🧪 View experiment at: http://localhost:5050/#/experiments/1.\n"
200 | ]
201 | },
202 | {
203 | "data": {
204 | "image/png": "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xYkTJ6ySlXr16nH27FlmzZrF33//TaZMmahcuTJDhgyxNKw+To0aNVi9ejWDBg1i4MCBODk5UblyZb744gubm1FT0oQJE3B0dGTevHlERkZSoUIFyzNiHuXv78+0adMYNWoU7du3JzY2lo0bN9qUrFy8eJGePXvy9ttv07p1a8t4UFAQS5cupW/fvrzxxht29f0RSU56N5CIiIjYNfWsiIiIiF1TsiIiIiJ2TcmKiIiI2DUlKyIiImLXlKyIiIiIXVOyIiIiInZNz1lJ4+Li4rh8+TKenp7J+lhwERF5+D6p27dvky1bNhwcUrY+EBkZSXR0dJLP4+zsjKurazJElHyUrKRxly9fTvCGWRERSV4XLlywPHk4JURGRuLm6QsP7iX5XP7+/pw5c8auEhYlK2mcp6cnAM6FW2NydE7laET+2/lNX6V2CCKJdjsigvx5Aix/16aU6OhoeHAPl5fbQlL+Lo+NJvTwbKKjo5WsiP2IX/oxOTorWZEXgpeXV2qHIGKz57bMns4Zk6PLMx9uttNuADXYioiIiF1TZUVERMQoTA4Pt6Qcb4eUrIiIiBiFyfRwS8rxdsg+UygRERGRf6iyIiIiYhRaBhIRERG7ZtBlICUrIiIihpHEyoqddofYZ1QiIiIi/1BlRURExCi0DCQiIiJ2TQ22IiIiYtcMWlmxzxRKRERE5B+qrIiIiBiFloFERETErhl0GUjJioiIiFEYtLJin1GJiIiI/EOVFREREaMwmZJYWdEykIiIiKQkB9PDLSnH2yElKyIiIkahnhURERGR50+VFREREaPQrcsiIiJi1wy6DKRkRURExCgMWlmxzxRKRERE5B+qrIiIiBiFloFERETErhl0GUjJioiIiFEYtLJin1GJiIiI/EOVFREREaPQMpCIiIjYtyQuA9npgouSFREREaMwaGXFPlMoERERkX+osiIiImIUJlMS7wayz8qKkhURERGjMOity0pWREREjEI9KyIiIiLPn5IVERERo4hfBkrKZoNLly7RqlUrfH19cXNzo2jRovz++++W/WazmYEDB5I1a1bc3NyoUaMGJ06csPljKVkRERExivhloKRsiXTr1i0qVKiAk5MTv/76K0eOHGHs2LFkyJDBMmfMmDFMnDiRadOmsXv3btzd3alduzaRkZE2fSz1rIiIiIjNvvjiCwICApg9e7ZlLE+e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2DWjVlbUsyIiIiJ2TZUVERERg9AykIiIiNg1JSsiIiJi19SzIiIiIpIKVFkRERExCBNJXAay09cuK1kRERExCKMuAylZERERMQijNtiqZ0VERETsmiorIiIiBqFlIBEREbFrWgYSERERuxZfWUnKZovBgwdbEqT4rVChQpb9kZGRdO7cGV9fXzw8PGjcuDFXr161+XMpWREREZFn9vLLL3PlyhXLtm3bNsu+nj17smLFChYvXszmzZu5fPkyjRo1svkaWgYSERExiNRYBkqXLh3+/v4JxsPDw5k5cybz58+nWrVqAMyePZvAwEB27dpFuXLlEn0NVVZERESMIqlLQP/kKhEREVZbVFTUEy954sQJsmXLRt68eQkKCuL8+fMA7Nu3j5iYGGrUqGGZW6hQIXLmzMnOnTtt+lhKVkRERMRKQEAA3t7elm3UqFGPnVe2bFmCg4NZvXo1U6dO5cyZM1SsWJHbt28TGhqKs7MzPj4+VsdkyZKF0NBQm+LRMpCIiIhBJNcy0IULF/Dy8rKMu7i4PHb+G2+8YflzsWLFKFu2LLly5WLRokW4ubk9cxz/psqKiIiIQSTX3UBeXl5W25OSlX/z8fHhpZde4uTJk/j7+xMdHU1YWJjVnKtXrz62x+VplKyIiIgYxL9vI36WLSnu3LnDqVOnyJo1K6VLl8bJyYn169db9oeEhHD+/HnKly9v03m1DCQiIiLPpE+fPrz99tvkypWLy5cvM2jQIBwdHWnZsiXe3t60b9+eXr16kTFjRry8vOjatSvly5e36U4gULIiIiJiGM/7cfsXL16kZcuW3Lhxg8yZM/P666+za9cuMmfODMC4ceNwcHCgcePGREVFUbt2baZMmWJzXEpWREREDOJ5P2dlwYIFT93v6urK5MmTmTx58jPHBEpWREREDEPvBhIRERFJBaqsiIiIGMTz7ll5XpSsiIiIGIRRl4GUrIiIiBiEUSsr6lkRERERu6bKioiIiEFoGUhERETsmokkLgMlWyTJS8mKiIiIQTiYTDgkIVtJyrEpST0rIiIiYtdUWRERETEIo94NpGRFRETEINRgKyIiInbNwfRwS8rx9kg9KyIiImLXVFkRERExClMSl3LstLKiZEVERMQg1GArIiIids30zz9JOd4eqWdFRERE7FqiKis///xzok9Yr169Zw5GREREnp1R7wZKVLLS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h6zG2rZtS6FChfjkk08ICAjAycmJ9evX07hxY+Dhs9rOnz9P+fLlbbpWsr3IsFWrVrz66qt89dVXyXVKERERsYHJlLQHu9lyqKenJ0WKFLEac3d3x9fX1zLevn17evXqRcaMGfHy8qJr166UL1/epjuBIBmTlZ07d6b4mpWIiIg8WWrcuvw048aNw8HBgcaNGxMVFUXt2rWZMmWKzeexOVn598NczGYzV65c4ffff2fAgAE2ByAiIiLJI7l6Vp7Vpk2brL52dXVl8uTJTJ48OUnntTlZ8fb2tvrawcGBggULMnToUGrVqpWkYERERET+zaZkJTY2lrZt21K0aFEyZMiQUjGJiIjIMzD9809SjrdHNj3B1tHRkVq1auntyiIiInYofhkoKZs9svlx+0WKFOH06dMpEYuIiIgkgZKVfwwfPpw+ffqwcuVKrly5kuD9ASIiIiLJKdE9K0OHDqV37968+eabANSrV8/qsftmsxmTyURsbGzyRykiIiL/yWQyPfWVOIk53h4lOlkZMmQIH3zwARs3bkzJeEREROQZpfatyykl0cmK2WwGoHLlyikWjIiIiDw7e3soXHKxqWfFXstDIiIiYlw2PWflpZde+s+E5ebNm0kKSERERJ6Ng8mUpHcDJeXYlGRTsjJkyJAET7AVERER+5Dme1YAWrRogZ+fX0rFIiIiIkmRxJ4VO32AbeJ7VtSvIiIiIqnB5ruBRERExD45YMIhCeWRpBybkhKdrMTFxaVkHCIiIpJERr112aaeFREREbFfRm2wtfndQCIiIiLPkyorIiIiBqHnrIiIiIhdU8+KiIiI2DUHklhZsdO7gdSzIiIiInZNlRURERGD0DKQiIiI2DUHkrZkYq/LLUpWREREDMJkMiXp9Tj2+mode02iRERERABVVkRERAzDRNJenGyfdRUlKyIiIoZh1IfCaRlIRERE7JoqKyIiIgZin7WRpFGyIiIiYhB6zoqIiIjYNd26LCIiIpIKVFkRERExCD3BVkREROyaUZeBlKyIiIgYhFEfCmevFR8RERERQJUVERERw9AykIiIiNg1NdiKiIiIXTNqZcVekygRERERQJUVERERwzDq3UBKVkRERAxC7wYSERERu+aACYck1EeScmxKUs+KiIiI2DVVVkRERAxCy0AiIiJi10z//JOU4+2RkhURERGDMGplRT0rIiIi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",
205 | "text/plain": [
206 | ""
207 | ]
208 | },
209 | "metadata": {},
210 | "output_type": "display_data"
211 | }
212 | ],
213 | "source": [
214 | "# Определение гиперпараметров модели\n",
215 | "max_depth = 10\n",
216 | "min_samples_split = 25\n",
217 | "run_name = 'DecisionTreeClassifier_run'\n",
218 | "\n",
219 | "experiment(run_name, max_depth, min_samples_split)"
220 | ]
221 | }
222 | ],
223 | "metadata": {
224 | "kernelspec": {
225 | "display_name": "patched_yolo_infer",
226 | "language": "python",
227 | "name": "python3"
228 | },
229 | "language_info": {
230 | "codemirror_mode": {
231 | "name": "ipython",
232 | "version": 3
233 | },
234 | "file_extension": ".py",
235 | "mimetype": "text/x-python",
236 | "name": "python",
237 | "nbconvert_exporter": "python",
238 | "pygments_lexer": "ipython3",
239 | "version": "3.11.8"
240 | },
241 | "orig_nbformat": 4
242 | },
243 | "nbformat": 4,
244 | "nbformat_minor": 2
245 | }
246 |
--------------------------------------------------------------------------------
/test_mlflow_pytorch.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "attachments": {},
5 | "cell_type": "markdown",
6 | "metadata": {},
7 | "source": [
8 | "## MLFLOW для экспериментов с PyTorch"
9 | ]
10 | },
11 | {
12 | "cell_type": "code",
13 | "execution_count": 1,
14 | "metadata": {},
15 | "outputs": [],
16 | "source": [
17 | "import os\n",
18 | "import random\n",
19 | "import logging\n",
20 | "\n",
21 | "import torch\n",
22 | "import mlflow\n",
23 | "import numpy as np # библиотека работы с матрицами на цпу\n",
24 | "import matplotlib.pyplot as plt # библиотека для отображения графиков и изображений\n",
25 | "import torchvision.transforms as transforms\n",
26 | "import torchvision.utils\n",
27 | "import torch.nn as nn\n",
28 | "\n",
29 | "%matplotlib inline"
30 | ]
31 | },
32 | {
33 | "cell_type": "code",
34 | "execution_count": 2,
35 | "metadata": {},
36 | "outputs": [],
37 | "source": [
38 | "# Укажем юзера который делает эксперименты\n",
39 | "os.environ['USER'] = 'Dima Kolesnikov'"
40 | ]
41 | },
42 | {
43 | "cell_type": "code",
44 | "execution_count": 3,
45 | "metadata": {},
46 | "outputs": [],
47 | "source": [
48 | "# Установка Seed для воспроизводимости\n",
49 | "seed = 42\n",
50 | "torch.manual_seed(seed)\n",
51 | "torch.cuda.manual_seed(seed)\n",
52 | "torch.cuda.manual_seed_all(seed)\n",
53 | "np.random.seed(seed)\n",
54 | "random.seed(seed)\n",
55 | "torch.backends.cudnn.benchmark = False\n",
56 | "torch.backends.cudnn.deterministic = True"
57 | ]
58 | },
59 | {
60 | "cell_type": "code",
61 | "execution_count": 4,
62 | "metadata": {},
63 | "outputs": [],
64 | "source": [
65 | "train_mnist = torchvision.datasets.MNIST('data_mnist/train', train=True, \n",
66 | " transform=transforms.Compose([transforms.ToTensor()]), \n",
67 | " download=True)\n",
68 | "val_mnist = torchvision.datasets.MNIST('data_mnist/test', train=False, \n",
69 | " transform=transforms.Compose([transforms.ToTensor()]), \n",
70 | " download=True)\n",
71 | "\n",
72 | "batch_size = 256\n",
73 | "\n",
74 | "train_loader = torch.utils.data.DataLoader(\n",
75 | " dataset=train_mnist,\n",
76 | " batch_size=batch_size,\n",
77 | " shuffle=True)\n",
78 | "val_loader = torch.utils.data.DataLoader(\n",
79 | " dataset=val_mnist,\n",
80 | " batch_size=batch_size,\n",
81 | " shuffle=False)"
82 | ]
83 | },
84 | {
85 | "attachments": {},
86 | "cell_type": "markdown",
87 | "metadata": {},
88 | "source": [
89 | "__Создадаим fc сеть:__"
90 | ]
91 | },
92 | {
93 | "cell_type": "code",
94 | "execution_count": 5,
95 | "metadata": {},
96 | "outputs": [],
97 | "source": [
98 | "class FCNetwork(nn.Module):\n",
99 | " def __init__(self, prob, n_inside):\n",
100 | " super(FCNetwork, self).__init__() \n",
101 | " self.fc1 = nn.Linear(784, n_inside)\n",
102 | " self.fc2 = nn.Linear(n_inside, 10)\n",
103 | " self.fc1_act = nn.ReLU()\n",
104 | " self.dropout = nn.Dropout(p = prob)\n",
105 | "\n",
106 | " def forward(self,x):\n",
107 | " x = x.view(-1,28*28)\n",
108 | " y = self.fc1(self.dropout(x))\n",
109 | " y = self.fc1_act(y)\n",
110 | " y = self.fc2(y)\n",
111 | " return y"
112 | ]
113 | },
114 | {
115 | "cell_type": "markdown",
116 | "metadata": {},
117 | "source": [
118 | "## Пример без MLFlow:"
119 | ]
120 | },
121 | {
122 | "cell_type": "code",
123 | "execution_count": 6,
124 | "metadata": {},
125 | "outputs": [],
126 | "source": [
127 | "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n",
128 | "\n",
129 | "model = FCNetwork(prob=0.5, n_inside=100)\n",
130 | "model.to(device)\n",
131 | "\n",
132 | "loss_func = nn.CrossEntropyLoss()\n",
133 | "optimizer = torch.optim.Adam(model.parameters(), lr=1e-4)\n",
134 | "\n",
135 | "# Функция для вычисления точности\n",
136 | "def accuracy(y_pred, labels):\n",
137 | " preds = torch.argmax(y_pred, dim=1)\n",
138 | " return (preds == labels).float().mean().item()"
139 | ]
140 | },
141 | {
142 | "attachments": {},
143 | "cell_type": "markdown",
144 | "metadata": {},
145 | "source": [
146 | "Обучим сеть как обычно это делаем без трекинга в mlflow. Загружать будем локально на компьютер лучшую модель с мах test accuracy"
147 | ]
148 | },
149 | {
150 | "cell_type": "code",
151 | "execution_count": 7,
152 | "metadata": {},
153 | "outputs": [
154 | {
155 | "name": "stdout",
156 | "output_type": "stream",
157 | "text": [
158 | "The 1 Epoch of network learning is over:\n",
159 | "Train results Epoch 1: Train loss - 1.6956, Train accuracy - 0.6011\n",
160 | "Validation results Epoch 1: Val loss - 1.0384, Val accuracy - 0.8214\n",
161 | "Saving model because its better\n",
162 | "---\n",
163 | "The 2 Epoch of network learning is over:\n",
164 | "Train results Epoch 2: Train loss - 0.8647, Train accuracy - 0.8079\n",
165 | "Validation results Epoch 2: Val loss - 0.6138, Val accuracy - 0.8694\n",
166 | "Saving model because its better\n",
167 | "---\n",
168 | "The 3 Epoch of network learning is over:\n",
169 | "Train results Epoch 3: Train loss - 0.6273, Train accuracy - 0.8372\n",
170 | "Validation results Epoch 3: Val loss - 0.4750, Val accuracy - 0.8885\n",
171 | "Saving model because its better\n",
172 | "---\n",
173 | "The 4 Epoch of network learning is over:\n",
174 | "Train results Epoch 4: Train loss - 0.5404, Train accuracy - 0.8497\n",
175 | "Validation results Epoch 4: Val loss - 0.4102, Val accuracy - 0.8973\n",
176 | "Saving model because its better\n",
177 | "---\n",
178 | "The 5 Epoch of network learning is over:\n",
179 | "Train results Epoch 5: Train loss - 0.4925, Train accuracy - 0.8594\n",
180 | "Validation results Epoch 5: Val loss - 0.3736, Val accuracy - 0.9037\n",
181 | "Saving model because its better\n",
182 | "---\n"
183 | ]
184 | }
185 | ],
186 | "source": [
187 | "maxacc = 0\n",
188 | "N_epochs = 5\n",
189 | "\n",
190 | "for epoch in range(N_epochs):\n",
191 | " epoch += 1\n",
192 | " model.train()\n",
193 | " train_loss = 0.0\n",
194 | " train_acc = 0.0\n",
195 | " train_samples = 0\n",
196 | "\n",
197 | " for itr, data in enumerate(train_loader):\n",
198 | " imgs = data[0].to(device) # [B, H, W]\n",
199 | " labels = data[1].to(device)\n",
200 | "\n",
201 | " y_pred = model(imgs) \n",
202 | " loss = loss_func(y_pred, labels)\n",
203 | "\n",
204 | " train_loss += loss.item() * imgs.size(0)\n",
205 | " train_acc += accuracy(y_pred, labels) * imgs.size(0)\n",
206 | " train_samples += imgs.size(0)\n",
207 | " \n",
208 | " optimizer.zero_grad()\n",
209 | " loss.backward()\n",
210 | " optimizer.step()\n",
211 | "\n",
212 | " train_loss /= train_samples\n",
213 | " train_acc /= train_samples\n",
214 | " print(f'The {epoch} Epoch of network learning is over:')\n",
215 | " print(f'Train results Epoch {epoch}: Train loss - {train_loss:.4f}, Train accuracy - {train_acc:.4f}')\n",
216 | "\n",
217 | " model.eval()\n",
218 | " val_loss = 0.0\n",
219 | " val_acc = 0.0\n",
220 | " val_samples = 0\n",
221 | "\n",
222 | " with torch.no_grad():\n",
223 | " for itr, data in enumerate(val_loader):\n",
224 | " imgs = data[0].to(device)\n",
225 | " labels = data[1].to(device)\n",
226 | " y_pred = model(imgs)\n",
227 | " loss = loss_func(y_pred, labels)\n",
228 | "\n",
229 | " val_loss += loss.item() * imgs.size(0)\n",
230 | " val_acc += accuracy(y_pred, labels) * imgs.size(0)\n",
231 | " val_samples += imgs.size(0)\n",
232 | "\n",
233 | " val_loss /= val_samples\n",
234 | " val_acc /=val_samples\n",
235 | " print(f'Validation results Epoch {epoch}: Val loss - {val_loss:.4f}, Val accuracy - {val_acc:.4f}')\n",
236 | "\n",
237 | " if val_acc > maxacc:\n",
238 | " print('Saving model because its better')\n",
239 | " maxacc = val_acc\n",
240 | " torch.save(model, f'mymodel_fc.pth')\n",
241 | " print('---')"
242 | ]
243 | },
244 | {
245 | "attachments": {},
246 | "cell_type": "markdown",
247 | "metadata": {},
248 | "source": [
249 | "---"
250 | ]
251 | },
252 | {
253 | "attachments": {},
254 | "cell_type": "markdown",
255 | "metadata": {},
256 | "source": [
257 | "## Теперь воспользуемся MLFlow для трекинга экспериментов:"
258 | ]
259 | },
260 | {
261 | "cell_type": "code",
262 | "execution_count": null,
263 | "metadata": {},
264 | "outputs": [
265 | {
266 | "data": {
267 | "text/plain": [
268 | ""
269 | ]
270 | },
271 | "execution_count": 8,
272 | "metadata": {},
273 | "output_type": "execute_result"
274 | }
275 | ],
276 | "source": [
277 | "# Инициализация MLflow\n",
278 | "mlflow.set_tracking_uri(\"http://localhost:5050\")\n",
279 | "mlflow.set_experiment(\"PyTorch_test\")"
280 | ]
281 | },
282 | {
283 | "cell_type": "code",
284 | "execution_count": 9,
285 | "metadata": {},
286 | "outputs": [],
287 | "source": [
288 | "# Отключаем вывод ворнингов от MLflow\n",
289 | "mlflow_logger = logging.getLogger(\"mlflow\")\n",
290 | "mlflow_logger.setLevel(logging.ERROR)"
291 | ]
292 | },
293 | {
294 | "cell_type": "code",
295 | "execution_count": 10,
296 | "metadata": {},
297 | "outputs": [],
298 | "source": [
299 | "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n",
300 | "prob = 0.15\n",
301 | "n_inside = 50\n",
302 | "lr = 1e-4\n",
303 | "epochs = 15"
304 | ]
305 | },
306 | {
307 | "cell_type": "code",
308 | "execution_count": 11,
309 | "metadata": {},
310 | "outputs": [
311 | {
312 | "name": "stdout",
313 | "output_type": "stream",
314 | "text": [
315 | "Началось обучение 1 эпохи\n",
316 | "The 1 Epoch of network learning is over:\n",
317 | "Train results Epoch 1: Train loss - 1.7878, Train accuracy - 0.5810\n",
318 | "Validation results Epoch 1: Val loss - 1.2519, Test accuracy - 0.7852\n",
319 | "Saving model because its better\n",
320 | "---\n",
321 | "Началось обучение 2 эпохи\n",
322 | "The 2 Epoch of network learning is over:\n",
323 | "Train results Epoch 2: Train loss - 0.9821, Train accuracy - 0.8149\n",
324 | "Validation results Epoch 2: Val loss - 0.7451, Test accuracy - 0.8519\n",
325 | "Saving model because its better\n",
326 | "---\n",
327 | "Началось обучение 3 эпохи\n",
328 | "The 3 Epoch of network learning is over:\n",
329 | "Train results Epoch 3: Train loss - 0.6670, Train accuracy - 0.8533\n",
330 | "Validation results Epoch 3: Val loss - 0.5537, Test accuracy - 0.8770\n",
331 | "Saving model because its better\n",
332 | "---\n",
333 | "Началось обучение 4 эпохи\n",
334 | "The 4 Epoch of network learning is over:\n",
335 | "Train results Epoch 4: Train loss - 0.5336, Train accuracy - 0.8708\n",
336 | "Validation results Epoch 4: Val loss - 0.4613, Test accuracy - 0.8906\n",
337 | "Saving model because its better\n",
338 | "---\n",
339 | "Началось обучение 5 эпохи\n",
340 | "The 5 Epoch of network learning is over:\n",
341 | "Train results Epoch 5: Train loss - 0.4630, Train accuracy - 0.8816\n",
342 | "Validation results Epoch 5: Val loss - 0.4071, Test accuracy - 0.8978\n",
343 | "Saving model because its better\n",
344 | "---\n",
345 | "Началось обучение 6 эпохи\n",
346 | "The 6 Epoch of network learning is over:\n",
347 | "Train results Epoch 6: Train loss - 0.4205, Train accuracy - 0.8887\n",
348 | "Validation results Epoch 6: Val loss - 0.3725, Test accuracy - 0.9041\n",
349 | "Saving model because its better\n",
350 | "---\n",
351 | "Началось обучение 7 эпохи\n",
352 | "The 7 Epoch of network learning is over:\n",
353 | "Train results Epoch 7: Train loss - 0.3917, Train accuracy - 0.8947\n",
354 | "Validation results Epoch 7: Val loss - 0.3489, Test accuracy - 0.9081\n",
355 | "Saving model because its better\n",
356 | "---\n",
357 | "Началось обучение 8 эпохи\n",
358 | "The 8 Epoch of network learning is over:\n",
359 | "Train results Epoch 8: Train loss - 0.3713, Train accuracy - 0.8979\n",
360 | "Validation results Epoch 8: Val loss - 0.3310, Test accuracy - 0.9099\n",
361 | "Saving model because its better\n",
362 | "---\n",
363 | "Началось обучение 9 эпохи\n",
364 | "The 9 Epoch of network learning is over:\n",
365 | "Train results Epoch 9: Train loss - 0.3548, Train accuracy - 0.9013\n",
366 | "Validation results Epoch 9: Val loss - 0.3177, Test accuracy - 0.9129\n",
367 | "Saving model because its better\n",
368 | "---\n",
369 | "Началось обучение 10 эпохи\n",
370 | "The 10 Epoch of network learning is over:\n",
371 | "Train results Epoch 10: Train loss - 0.3426, Train accuracy - 0.9040\n",
372 | "Validation results Epoch 10: Val loss - 0.3057, Test accuracy - 0.9150\n",
373 | "Saving model because its better\n",
374 | "---\n",
375 | "Началось обучение 11 эпохи\n",
376 | "The 11 Epoch of network learning is over:\n",
377 | "Train results Epoch 11: Train loss - 0.3320, Train accuracy - 0.9059\n",
378 | "Validation results Epoch 11: Val loss - 0.2966, Test accuracy - 0.9175\n",
379 | "Saving model because its better\n",
380 | "---\n",
381 | "Началось обучение 12 эпохи\n",
382 | "The 12 Epoch of network learning is over:\n",
383 | "Train results Epoch 12: Train loss - 0.3210, Train accuracy - 0.9082\n",
384 | "Validation results Epoch 12: Val loss - 0.2887, Test accuracy - 0.9195\n",
385 | "Saving model because its better\n",
386 | "---\n",
387 | "Началось обучение 13 эпохи\n",
388 | "The 13 Epoch of network learning is over:\n",
389 | "Train results Epoch 13: Train loss - 0.3147, Train accuracy - 0.9094\n",
390 | "Validation results Epoch 13: Val loss - 0.2819, Test accuracy - 0.9208\n",
391 | "Saving model because its better\n",
392 | "---\n",
393 | "Началось обучение 14 эпохи\n",
394 | "The 14 Epoch of network learning is over:\n",
395 | "Train results Epoch 14: Train loss - 0.3087, Train accuracy - 0.9121\n",
396 | "Validation results Epoch 14: Val loss - 0.2748, Test accuracy - 0.9243\n",
397 | "Saving model because its better\n",
398 | "---\n",
399 | "Началось обучение 15 эпохи\n",
400 | "The 15 Epoch of network learning is over:\n",
401 | "Train results Epoch 15: Train loss - 0.3021, Train accuracy - 0.9128\n",
402 | "Validation results Epoch 15: Val loss - 0.2689, Test accuracy - 0.9261\n",
403 | "Saving model because its better\n",
404 | "---\n",
405 | "max accuracy = 0.9261\n"
406 | ]
407 | }
408 | ],
409 | "source": [
410 | "# Начало MLflow запуска\n",
411 | "with mlflow.start_run(run_name='FCNetwork_1') as run:\n",
412 | " model = FCNetwork(prob=prob, n_inside=n_inside)\n",
413 | " model.to(device)\n",
414 | "\n",
415 | " loss_func = nn.CrossEntropyLoss()\n",
416 | " optimizer = torch.optim.Adam(model.parameters(), lr=lr)\n",
417 | "\n",
418 | " mlflow.log_param(\"prob dropout\", prob)\n",
419 | " mlflow.log_param(\"neurons 2 layer\", n_inside)\n",
420 | " mlflow.log_param(\"lr\", lr)\n",
421 | " mlflow.log_param(\"optimizer\", 'Adam')\n",
422 | " mlflow.log_param(\"epochs\", epochs)\n",
423 | "\n",
424 | " maxacc = 0\n",
425 | " itr_record = 0\n",
426 | "\n",
427 | " for epoch in range(epochs):\n",
428 | " epoch += 1\n",
429 | " model.train()\n",
430 | " train_loss = 0.0\n",
431 | " train_acc = 0.0\n",
432 | " train_samples = 0\n",
433 | "\n",
434 | " print(f'Началось обучение {epoch} эпохи')\n",
435 | " for itr, data in enumerate(train_loader):\n",
436 | " imgs = data[0].to(device) # [B, H, W]\n",
437 | " labels = data[1].to(device)\n",
438 | "\n",
439 | " y_pred = model(imgs) \n",
440 | " loss = loss_func(y_pred, labels)\n",
441 | "\n",
442 | " train_loss += loss.item() * imgs.size(0)\n",
443 | " train_acc += accuracy(y_pred, labels) * imgs.size(0)\n",
444 | " train_samples += imgs.size(0)\n",
445 | "\n",
446 | " optimizer.zero_grad()\n",
447 | " loss.backward()\n",
448 | " optimizer.step()\n",
449 | "\n",
450 | " train_loss /= train_samples\n",
451 | " train_acc /= train_samples\n",
452 | " mlflow.log_metric(\"train_loss\", train_loss, step=epoch)\n",
453 | " mlflow.log_metric(\"train_acc\", train_acc, step=epoch)\n",
454 | " print(f'The {epoch} Epoch of network learning is over:')\n",
455 | " print(f'Train results Epoch {epoch}: Train loss - {train_loss:.4f}, Train accuracy - {train_acc:.4f}')\n",
456 | "\n",
457 | " model.eval()\n",
458 | " val_loss = 0.0\n",
459 | " val_acc = 0.0\n",
460 | " val_samples = 0\n",
461 | "\n",
462 | " with torch.no_grad():\n",
463 | " for itr, data in enumerate(val_loader):\n",
464 | " imgs = data[0].to(device)\n",
465 | " labels = data[1].to(device)\n",
466 | " y_pred = model(imgs)\n",
467 | " loss = loss_func(y_pred, labels)\n",
468 | "\n",
469 | " val_loss += loss.item() * imgs.size(0)\n",
470 | " val_acc += accuracy(y_pred, labels) * imgs.size(0)\n",
471 | " val_samples += imgs.size(0)\n",
472 | "\n",
473 | " val_loss /= val_samples\n",
474 | " val_acc /= val_samples\n",
475 | " mlflow.log_metric(\"val_loss\", val_loss, step=epoch)\n",
476 | " mlflow.log_metric(\"val_acc\", val_acc, step=epoch)\n",
477 | " print(f'Validation results Epoch {epoch}: Val loss - {val_loss:.4f}, Test accuracy - {val_acc:.4f}')\n",
478 | "\n",
479 | " if val_acc > maxacc:\n",
480 | " print('Saving model because its better')\n",
481 | " maxacc = val_acc\n",
482 | " mlflow.pytorch.log_model(model, \"model\")\n",
483 | " print('---')\n",
484 | "\n",
485 | " print('max accuracy = ', maxacc)\n",
486 | " mlflow.log_metric(\"max val accuracy\", maxacc)\n",
487 | "\n",
488 | "mlflow.end_run()"
489 | ]
490 | },
491 | {
492 | "cell_type": "markdown",
493 | "metadata": {},
494 | "source": [
495 | "---"
496 | ]
497 | },
498 | {
499 | "cell_type": "markdown",
500 | "metadata": {},
501 | "source": [
502 | "## Запуск обученной модели:"
503 | ]
504 | },
505 | {
506 | "cell_type": "code",
507 | "execution_count": 12,
508 | "metadata": {},
509 | "outputs": [],
510 | "source": [
511 | "def load_model(model_uri):\n",
512 | " \"\"\"Загрузка модели из MLflow.\"\"\"\n",
513 | " model = mlflow.pytorch.load_model(model_uri)\n",
514 | " model.eval() # Переводим модель в режим оценки\n",
515 | " return model\n",
516 | "\n",
517 | "def predict(model, input_data):\n",
518 | " \"\"\"Выполнение инференса.\"\"\"\n",
519 | " with torch.no_grad():\n",
520 | " output = model(input_data)\n",
521 | " return output"
522 | ]
523 | },
524 | {
525 | "cell_type": "code",
526 | "execution_count": 13,
527 | "metadata": {},
528 | "outputs": [
529 | {
530 | "name": "stdout",
531 | "output_type": "stream",
532 | "text": [
533 | "tensor([[ 1.5928, 1.1507, 4.4580, -0.3509, -4.3244, 0.7749, 0.1126, -6.8168,\n",
534 | " 1.2436, -6.6594]], device='cuda:0')\n"
535 | ]
536 | }
537 | ],
538 | "source": [
539 | "model_uri = \"runs:/ef937515149145ddbfb16b90e3e71b20/model\" # Замените на реальный идентификатор запуска\n",
540 | "loaded_model = load_model(model_uri).to(device)\n",
541 | "loaded_model.eval()\n",
542 | "\n",
543 | "# Пример входных данных\n",
544 | "input_data = torch.randn(1, 1, 28, 28).to(device)\n",
545 | "\n",
546 | "# Выполнение инференса\n",
547 | "output = predict(loaded_model, input_data)\n",
548 | "print(output)"
549 | ]
550 | },
551 | {
552 | "cell_type": "code",
553 | "execution_count": 14,
554 | "metadata": {},
555 | "outputs": [
556 | {
557 | "data": {
558 | "image/png": "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HbMeyVR9fb0aGxsjnh+BQEC5ubnX5fOjoqJCaWlpuuOOO7Rs2TI1NzdbjxRTLS0tkqSUlBRJ0sGDB9XR0RHxfBg3bpxGjRoV18+Hrx6Hz73++utKTU3V+PHjVVJSorNnz1qM160+dzXsr/r000918eJFpaenR9yenp6ujz76yGgqG7m5udq0aZPuuOMONTQ0aM2aNbrnnnt05MgRJSUlWY9norGxUZK6fH58ft/1YtasWXrwwQeVnZ2turo6PfPMMyosLFRVVZUGDhxoPV7UdXZ2asWKFZo6darGjx8v6dLzITExUcOGDYvYN56fD10dB0l6+OGHNXr0aGVmZurw4cN6+umnVVNTozfeeMNw2kh9PkD4QmFhYfjPEydOVG5urkaPHq3f/OY3euyxxwwnQ1+wYMGC8J8nTJigiRMnauzYsaqoqND06dMNJ4uNoqIiHTly5Lp4H/RKujsOS5YsCf95woQJysjI0PTp01VXV6exY8f29phd6vMvwaWmpmrgwIGXfYqlqalJwWDQaKq+YdiwYbr99ttVW1trPYqZz58DPD8uN2bMGKWmpsbl82P58uXatWuX3n333YjfHxYMBnX+/HmdPn06Yv94fT50dxy6kpubK0l96vnQ5wOUmJioSZMmqby8PHxbZ2enysvLlZeXZziZvTNnzqiurk4ZGRnWo5jJzs5WMBiMeH6EQiHt37//un9+nDhxQs3NzXH1/HDOafny5dq+fbveeecdZWdnR9w/adIkJSQkRDwfampqdOzYsbh6PlztOHTl0KFDktS3ng/Wn4L4OrZs2eL8fr/btGmT+/DDD92SJUvcsGHDXGNjo/VoveqHP/yhq6iocPX19e53v/udKygocKmpqe7UqVPWo8VUa2ur++CDD9wHH3zgJLl169a5Dz74wP35z392zjn3s5/9zA0bNszt3LnTHT582M2ZM8dlZ2e7zz77zHjy6LrScWhtbXVPPvmkq6qqcvX19W7Pnj3uW9/6lrvtttvcuXPnrEePmmXLlrlAIOAqKipcQ0NDeDt79mx4n6VLl7pRo0a5d955xx04cMDl5eW5vLw8w6mj72rHoba21v34xz92Bw4ccPX19W7nzp1uzJgxbtq0acaTR+oXAXLOuVdeecWNGjXKJSYmuilTprjq6mrrkXrd/PnzXUZGhktMTHQ333yzmz9/vqutrbUeK+beffddJ+mybeHChc65Sx/Ffu6551x6errz+/1u+vTprqamxnboGLjScTh79qybMWOGGzFihEtISHCjR492ixcvjru/pHX1zy/Jbdy4MbzPZ5995n7wgx+4m266yQ0ZMsQ98MADrqGhwW7oGLjacTh27JibNm2aS0lJcX6/3916663uRz/6kWtpabEd/Cv4fUAAABN9/j0gAEB8IkAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYOK/ARDwzMLvaVDnAAAAAElFTkSuQmCC",
559 | "text/plain": [
560 | ""
561 | ]
562 | },
563 | "metadata": {},
564 | "output_type": "display_data"
565 | },
566 | {
567 | "data": {
568 | "image/png": "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77/v3n//fSfJPf744+799993f/nLX5xzzv3kJz9xKSkpbuPGjW7Xrl1u7ty5Ljc313355ZfGk8fWyc5Da2uru+eee1xVVZWrr693W7Zscd/5znfchRde6I4cOWI9eswsWbLEBQIBV1FR4RobG8Pb4cOHw/vccccdbtSoUW7r1q1ux44drqCgwBUUFBhOHXunOg91dXXuxz/+sduxY4err693GzdudGPGjHHTp083njxSvwiQc8499dRTbtSoUS4xMdFNnTrVVVdXW4/U6xYsWOCysrJcYmKiO++889yCBQtcXV2d9Vhx9/rrrztJJ2wLFy50zh3/KPaDDz7oMjIynN/vdzNnznS1tbW2Q8fByc7D4cOH3axZs9yIESPcsGHD3OjRo93ixYsH3B/Suvv3l+TWrFkT3ufLL790P/jBD9w555zjzjzzTHfNNde4xsZGu6Hj4FTnYd++fW769OkuNTXV+f1+d8EFF7gf/ehHLhgM2g7+Dfw+IACAiT7/HhAAYGAiQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABg4v8BTJEwX2iNKGcAAAAASUVORK5CYII=",
569 | "text/plain": [
570 | ""
571 | ]
572 | },
573 | "metadata": {},
574 | "output_type": "display_data"
575 | },
576 | {
577 | "data": {
578 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAGzCAYAAABpdMNsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAbDklEQVR4nO3df3BU9f3v8dfyIwtosmkIyWYlQECFKhCnFNIMSrHkkqTz5YIyHX91BhwHrzQwRWp10lFR2vmmxTvW0aYyc8eSer+Cyr0CV6/S0WDCtQ10iDAMtzZDmFTCNz8o3JtsCBIi+dw/uG5dSaRn2c07mzwfM2eG7J5PztvT1WcPuznxOeecAAAYZKOsBwAAjEwECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAYPk3Llz2rRpk0pKSpSRkSGfz6eqqirrsQAzBAgYJGfOnNHmzZv1ySefKD8/33ocwNwY6wGAkSInJ0etra0KBoM6dOiQ5s+fbz0SYIorIGCQ+P1+BYNB6zGAIYMAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAE/wgKjCIfvOb36ijo0MtLS2SpLffflunTp2SJK1fv16BQMByPGBQ+ZxzznoIYKSYNm2aPv30036fa2pq0rRp0wZ3IMAQAQIAmOA9IACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATQ+4HUfv6+tTS0qLU1FT5fD7rcQAAHjnn1NXVpVAopFGjBr7OGXIBamlpUW5urvUYAIBr1NzcrMmTJw/4/JALUGpqqiTpdn1fYzTWeBoAgFefq1cf6d3If88HkrAAVVZW6rnnnlNbW5vy8/P10ksvacGCBVdd98Vfu43RWI3xESAASDr///46V3sbJSEfQnjjjTe0ceNGbdq0SR9//LHy8/NVXFys06dPJ+JwAIAklJAAPf/881qzZo0efPBB3XLLLdq6dasmTJig3/3ud4k4HAAgCcU9QBcvXlR9fb2Kior+cZBRo1RUVKS6uror9u/p6VE4HI7aAADDX9wDdObMGV26dEnZ2dlRj2dnZ6utre2K/SsqKhQIBCIbn4ADgJHB/AdRy8vL1dnZGdmam5utRwIADIK4fwouMzNTo0ePVnt7e9Tj7e3tCgaDV+zv9/vl9/vjPQYAYIiL+xVQSkqK5s2bp+rq6shjfX19qq6uVmFhYbwPBwBIUgn5OaCNGzdq1apV+va3v60FCxbohRdeUHd3tx588MFEHA4AkIQSEqB77rlHf//73/X000+rra1Nt912m/bu3XvFBxMAACOXzznnrIf4snA4rEAgoMVazp0QACAJfe56VaM96uzsVFpa2oD7mX8KDgAwMhEgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATY6wHAJA4vnm3xrTuf/6P/+p5zZyt6zyvyf35nzyvwfDBFRAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIKbkQLD2On5aTGt+1yXPK+Z0OJiOhZGLq6AAAAmCBAAwETcA/TMM8/I5/NFbbNmzYr3YQAASS4h7wHdeuut+uCDD/5xkDG81QQAiJaQMowZM0bBYDAR3xoAMEwk5D2g48ePKxQKafr06XrggQd08uTJAfft6elROByO2gAAw1/cA1RQUKCqqirt3btXL7/8spqamnTHHXeoq6ur3/0rKioUCAQiW25ubrxHAgAMQXEPUGlpqX7wgx9o7ty5Ki4u1rvvvquOjg69+eab/e5fXl6uzs7OyNbc3BzvkQAAQ1DCPx2Qnp6um2++WY2Njf0+7/f75ff7Ez0GAGCISfjPAZ07d04nTpxQTk5Oog8FAEgicQ/QY489ptraWv3tb3/Tn/70J911110aPXq07rvvvngfCgCQxOL+V3CnTp3Sfffdp7Nnz2rSpEm6/fbbdeDAAU2aNCnehwIAJLG4B+j111+P97cEEKP/O9f7TUUl6dTnPZ7XTHylLqZjYeTiXnAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgImE/0I6APHhFt7mec3/+pfnYzrWd/ev97zmRh2O6VgYubgCAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQ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",
579 | "text/plain": [
580 | ""
581 | ]
582 | },
583 | "metadata": {},
584 | "output_type": "display_data"
585 | },
586 | {
587 | "data": {
588 | "image/png": "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J08OqNeHc07Lli3Tpk2btGPHDuXl5UU8P2XKFCUnJ0e8Hurq6nT06NEB9Xr4ovPQmwMHDkhS33o9WH8K4h/xyiuvOL/f7yoqKtz777/vFi9e7EaMGOGam5utR0uo73//+66qqso1NDS43//+966oqMhlZGS4EydOWI8WV21tbW7//v1u//79TpJ78skn3f79+92f//xn55xzP/nJT9yIESPcli1b3MGDB93s2bNdXl6e+/jjj40nj62LnYe2tjb30EMPuZqaGtfQ0ODefvtt97Wvfc1dffXVrqOjw3r0mFm6dKkLBAKuqqrKNTU1hR9nzpwJ77NkyRI3ZswYt2PHDrdv3z5XWFjoCgsLDaeOvS86D/X19e5HP/qR27dvn2toaHBbtmxx48aNc9OmTTOePFK/CJBzzj3zzDNuzJgxbtiwYW7q1Klu9+7d1iMl3J133ulycnLcsGHD3Je//GV35513uvr6euux4u6dd95xks57zJ8/3zl37qPYK1eudFlZWc7v97sZM2a4uro626Hj4GLn4cyZM27mzJlu1KhRLjk52Y0dO9YtWrRowP1HWm//+yW59evXh/f5+OOP3f333+++9KUvucsuu8zNnTvXNTU12Q0dB190Ho4ePeqmTZvm0tPTnd/vd1dddZX7wQ9+4FpbW20H/xx+HxAAwESffw8IADAwESAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJAgQAMPH/AEwBT6Dy00YdAAAAAElFTkSuQmCC",
589 | "text/plain": [
590 | ""
591 | ]
592 | },
593 | "metadata": {},
594 | "output_type": "display_data"
595 | }
596 | ],
597 | "source": [
598 | "with torch.no_grad():\n",
599 | " for itr,data in enumerate(val_loader):\n",
600 | " if itr == 0:\n",
601 | " imgs = data[0].to(device) #b,c,w,h\n",
602 | " labels = data[1].to(device)\n",
603 | " y_pred = predict(loaded_model, imgs)\n",
604 | " y_pred = torch.argmax(y_pred, dim=1)\n",
605 | " for i in range(4):\n",
606 | " im = np.transpose((imgs[i].cpu().numpy()), (1, 2, 0))\n",
607 | " plt.figure()\n",
608 | " plt.imshow(im) #w,h,c\n",
609 | " plt.title(y_pred[i].cpu().numpy())\n",
610 | " plt.show()"
611 | ]
612 | },
613 | {
614 | "attachments": {},
615 | "cell_type": "markdown",
616 | "metadata": {},
617 | "source": [
618 | "___"
619 | ]
620 | }
621 | ],
622 | "metadata": {
623 | "kernelspec": {
624 | "display_name": "patched_yolo_infer",
625 | "language": "python",
626 | "name": "python3"
627 | },
628 | "language_info": {
629 | "codemirror_mode": {
630 | "name": "ipython",
631 | "version": 3
632 | },
633 | "file_extension": ".py",
634 | "mimetype": "text/x-python",
635 | "name": "python",
636 | "nbconvert_exporter": "python",
637 | "pygments_lexer": "ipython3",
638 | "version": "3.11.8"
639 | },
640 | "orig_nbformat": 4
641 | },
642 | "nbformat": 4,
643 | "nbformat_minor": 2
644 | }
645 |
--------------------------------------------------------------------------------
/titanic.csv:
--------------------------------------------------------------------------------
1 | PassengerId,Survived,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked
2 | 1,0,3,"Braund, Mr. Owen Harris",male,22,1,0,A/5 21171,7.25,,S
3 | 2,1,1,"Cumings, Mrs. John Bradley (Florence Briggs Thayer)",female,38,1,0,PC 17599,71.2833,C85,C
4 | 3,1,3,"Heikkinen, Miss. Laina",female,26,0,0,STON/O2. 3101282,7.925,,S
5 | 4,1,1,"Futrelle, Mrs. Jacques Heath (Lily May Peel)",female,35,1,0,113803,53.1,C123,S
6 | 5,0,3,"Allen, Mr. William Henry",male,35,0,0,373450,8.05,,S
7 | 6,0,3,"Moran, Mr. James",male,,0,0,330877,8.4583,,Q
8 | 7,0,1,"McCarthy, Mr. Timothy J",male,54,0,0,17463,51.8625,E46,S
9 | 8,0,3,"Palsson, Master. Gosta Leonard",male,2,3,1,349909,21.075,,S
10 | 9,1,3,"Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)",female,27,0,2,347742,11.1333,,S
11 | 10,1,2,"Nasser, Mrs. Nicholas (Adele Achem)",female,14,1,0,237736,30.0708,,C
12 | 11,1,3,"Sandstrom, Miss. Marguerite Rut",female,4,1,1,PP 9549,16.7,G6,S
13 | 12,1,1,"Bonnell, Miss. Elizabeth",female,58,0,0,113783,26.55,C103,S
14 | 13,0,3,"Saundercock, Mr. William Henry",male,20,0,0,A/5. 2151,8.05,,S
15 | 14,0,3,"Andersson, Mr. Anders Johan",male,39,1,5,347082,31.275,,S
16 | 15,0,3,"Vestrom, Miss. Hulda Amanda Adolfina",female,14,0,0,350406,7.8542,,S
17 | 16,1,2,"Hewlett, Mrs. (Mary D Kingcome) ",female,55,0,0,248706,16,,S
18 | 17,0,3,"Rice, Master. Eugene",male,2,4,1,382652,29.125,,Q
19 | 18,1,2,"Williams, Mr. Charles Eugene",male,,0,0,244373,13,,S
20 | 19,0,3,"Vander Planke, Mrs. Julius (Emelia Maria Vandemoortele)",female,31,1,0,345763,18,,S
21 | 20,1,3,"Masselmani, Mrs. Fatima",female,,0,0,2649,7.225,,C
22 | 21,0,2,"Fynney, Mr. Joseph J",male,35,0,0,239865,26,,S
23 | 22,1,2,"Beesley, Mr. Lawrence",male,34,0,0,248698,13,D56,S
24 | 23,1,3,"McGowan, Miss. Anna ""Annie""",female,15,0,0,330923,8.0292,,Q
25 | 24,1,1,"Sloper, Mr. William Thompson",male,28,0,0,113788,35.5,A6,S
26 | 25,0,3,"Palsson, Miss. Torborg Danira",female,8,3,1,349909,21.075,,S
27 | 26,1,3,"Asplund, Mrs. Carl Oscar (Selma Augusta Emilia Johansson)",female,38,1,5,347077,31.3875,,S
28 | 27,0,3,"Emir, Mr. Farred Chehab",male,,0,0,2631,7.225,,C
29 | 28,0,1,"Fortune, Mr. Charles Alexander",male,19,3,2,19950,263,C23 C25 C27,S
30 | 29,1,3,"O'Dwyer, Miss. Ellen ""Nellie""",female,,0,0,330959,7.8792,,Q
31 | 30,0,3,"Todoroff, Mr. Lalio",male,,0,0,349216,7.8958,,S
32 | 31,0,1,"Uruchurtu, Don. Manuel E",male,40,0,0,PC 17601,27.7208,,C
33 | 32,1,1,"Spencer, Mrs. William Augustus (Marie Eugenie)",female,,1,0,PC 17569,146.5208,B78,C
34 | 33,1,3,"Glynn, Miss. Mary Agatha",female,,0,0,335677,7.75,,Q
35 | 34,0,2,"Wheadon, Mr. Edward H",male,66,0,0,C.A. 24579,10.5,,S
36 | 35,0,1,"Meyer, Mr. Edgar Joseph",male,28,1,0,PC 17604,82.1708,,C
37 | 36,0,1,"Holverson, Mr. Alexander Oskar",male,42,1,0,113789,52,,S
38 | 37,1,3,"Mamee, Mr. Hanna",male,,0,0,2677,7.2292,,C
39 | 38,0,3,"Cann, Mr. Ernest Charles",male,21,0,0,A./5. 2152,8.05,,S
40 | 39,0,3,"Vander Planke, Miss. Augusta Maria",female,18,2,0,345764,18,,S
41 | 40,1,3,"Nicola-Yarred, Miss. Jamila",female,14,1,0,2651,11.2417,,C
42 | 41,0,3,"Ahlin, Mrs. Johan (Johanna Persdotter Larsson)",female,40,1,0,7546,9.475,,S
43 | 42,0,2,"Turpin, Mrs. William John Robert (Dorothy Ann Wonnacott)",female,27,1,0,11668,21,,S
44 | 43,0,3,"Kraeff, Mr. Theodor",male,,0,0,349253,7.8958,,C
45 | 44,1,2,"Laroche, Miss. Simonne Marie Anne Andree",female,3,1,2,SC/Paris 2123,41.5792,,C
46 | 45,1,3,"Devaney, Miss. Margaret Delia",female,19,0,0,330958,7.8792,,Q
47 | 46,0,3,"Rogers, Mr. William John",male,,0,0,S.C./A.4. 23567,8.05,,S
48 | 47,0,3,"Lennon, Mr. Denis",male,,1,0,370371,15.5,,Q
49 | 48,1,3,"O'Driscoll, Miss. Bridget",female,,0,0,14311,7.75,,Q
50 | 49,0,3,"Samaan, Mr. Youssef",male,,2,0,2662,21.6792,,C
51 | 50,0,3,"Arnold-Franchi, Mrs. Josef (Josefine Franchi)",female,18,1,0,349237,17.8,,S
52 | 51,0,3,"Panula, Master. Juha Niilo",male,7,4,1,3101295,39.6875,,S
53 | 52,0,3,"Nosworthy, Mr. Richard Cater",male,21,0,0,A/4. 39886,7.8,,S
54 | 53,1,1,"Harper, Mrs. Henry Sleeper (Myna Haxtun)",female,49,1,0,PC 17572,76.7292,D33,C
55 | 54,1,2,"Faunthorpe, Mrs. Lizzie (Elizabeth Anne Wilkinson)",female,29,1,0,2926,26,,S
56 | 55,0,1,"Ostby, Mr. Engelhart Cornelius",male,65,0,1,113509,61.9792,B30,C
57 | 56,1,1,"Woolner, Mr. Hugh",male,,0,0,19947,35.5,C52,S
58 | 57,1,2,"Rugg, Miss. Emily",female,21,0,0,C.A. 31026,10.5,,S
59 | 58,0,3,"Novel, Mr. Mansouer",male,28.5,0,0,2697,7.2292,,C
60 | 59,1,2,"West, Miss. Constance Mirium",female,5,1,2,C.A. 34651,27.75,,S
61 | 60,0,3,"Goodwin, Master. William Frederick",male,11,5,2,CA 2144,46.9,,S
62 | 61,0,3,"Sirayanian, Mr. Orsen",male,22,0,0,2669,7.2292,,C
63 | 62,1,1,"Icard, Miss. Amelie",female,38,0,0,113572,80,B28,
64 | 63,0,1,"Harris, Mr. Henry Birkhardt",male,45,1,0,36973,83.475,C83,S
65 | 64,0,3,"Skoog, Master. Harald",male,4,3,2,347088,27.9,,S
66 | 65,0,1,"Stewart, Mr. Albert A",male,,0,0,PC 17605,27.7208,,C
67 | 66,1,3,"Moubarek, Master. Gerios",male,,1,1,2661,15.2458,,C
68 | 67,1,2,"Nye, Mrs. (Elizabeth Ramell)",female,29,0,0,C.A. 29395,10.5,F33,S
69 | 68,0,3,"Crease, Mr. Ernest James",male,19,0,0,S.P. 3464,8.1583,,S
70 | 69,1,3,"Andersson, Miss. Erna Alexandra",female,17,4,2,3101281,7.925,,S
71 | 70,0,3,"Kink, Mr. Vincenz",male,26,2,0,315151,8.6625,,S
72 | 71,0,2,"Jenkin, Mr. Stephen Curnow",male,32,0,0,C.A. 33111,10.5,,S
73 | 72,0,3,"Goodwin, Miss. Lillian Amy",female,16,5,2,CA 2144,46.9,,S
74 | 73,0,2,"Hood, Mr. Ambrose Jr",male,21,0,0,S.O.C. 14879,73.5,,S
75 | 74,0,3,"Chronopoulos, Mr. Apostolos",male,26,1,0,2680,14.4542,,C
76 | 75,1,3,"Bing, Mr. Lee",male,32,0,0,1601,56.4958,,S
77 | 76,0,3,"Moen, Mr. Sigurd Hansen",male,25,0,0,348123,7.65,F G73,S
78 | 77,0,3,"Staneff, Mr. Ivan",male,,0,0,349208,7.8958,,S
79 | 78,0,3,"Moutal, Mr. Rahamin Haim",male,,0,0,374746,8.05,,S
80 | 79,1,2,"Caldwell, Master. Alden Gates",male,0.83,0,2,248738,29,,S
81 | 80,1,3,"Dowdell, Miss. Elizabeth",female,30,0,0,364516,12.475,,S
82 | 81,0,3,"Waelens, Mr. Achille",male,22,0,0,345767,9,,S
83 | 82,1,3,"Sheerlinck, Mr. Jan Baptist",male,29,0,0,345779,9.5,,S
84 | 83,1,3,"McDermott, Miss. Brigdet Delia",female,,0,0,330932,7.7875,,Q
85 | 84,0,1,"Carrau, Mr. Francisco M",male,28,0,0,113059,47.1,,S
86 | 85,1,2,"Ilett, Miss. Bertha",female,17,0,0,SO/C 14885,10.5,,S
87 | 86,1,3,"Backstrom, Mrs. Karl Alfred (Maria Mathilda Gustafsson)",female,33,3,0,3101278,15.85,,S
88 | 87,0,3,"Ford, Mr. William Neal",male,16,1,3,W./C. 6608,34.375,,S
89 | 88,0,3,"Slocovski, Mr. Selman Francis",male,,0,0,SOTON/OQ 392086,8.05,,S
90 | 89,1,1,"Fortune, Miss. Mabel Helen",female,23,3,2,19950,263,C23 C25 C27,S
91 | 90,0,3,"Celotti, Mr. Francesco",male,24,0,0,343275,8.05,,S
92 | 91,0,3,"Christmann, Mr. Emil",male,29,0,0,343276,8.05,,S
93 | 92,0,3,"Andreasson, Mr. Paul Edvin",male,20,0,0,347466,7.8542,,S
94 | 93,0,1,"Chaffee, Mr. Herbert Fuller",male,46,1,0,W.E.P. 5734,61.175,E31,S
95 | 94,0,3,"Dean, Mr. Bertram Frank",male,26,1,2,C.A. 2315,20.575,,S
96 | 95,0,3,"Coxon, Mr. Daniel",male,59,0,0,364500,7.25,,S
97 | 96,0,3,"Shorney, Mr. Charles Joseph",male,,0,0,374910,8.05,,S
98 | 97,0,1,"Goldschmidt, Mr. George B",male,71,0,0,PC 17754,34.6542,A5,C
99 | 98,1,1,"Greenfield, Mr. William Bertram",male,23,0,1,PC 17759,63.3583,D10 D12,C
100 | 99,1,2,"Doling, Mrs. John T (Ada Julia Bone)",female,34,0,1,231919,23,,S
101 | 100,0,2,"Kantor, Mr. Sinai",male,34,1,0,244367,26,,S
102 | 101,0,3,"Petranec, Miss. Matilda",female,28,0,0,349245,7.8958,,S
103 | 102,0,3,"Petroff, Mr. Pastcho (""Pentcho"")",male,,0,0,349215,7.8958,,S
104 | 103,0,1,"White, Mr. Richard Frasar",male,21,0,1,35281,77.2875,D26,S
105 | 104,0,3,"Johansson, Mr. Gustaf Joel",male,33,0,0,7540,8.6542,,S
106 | 105,0,3,"Gustafsson, Mr. Anders Vilhelm",male,37,2,0,3101276,7.925,,S
107 | 106,0,3,"Mionoff, Mr. Stoytcho",male,28,0,0,349207,7.8958,,S
108 | 107,1,3,"Salkjelsvik, Miss. Anna Kristine",female,21,0,0,343120,7.65,,S
109 | 108,1,3,"Moss, Mr. Albert Johan",male,,0,0,312991,7.775,,S
110 | 109,0,3,"Rekic, Mr. Tido",male,38,0,0,349249,7.8958,,S
111 | 110,1,3,"Moran, Miss. Bertha",female,,1,0,371110,24.15,,Q
112 | 111,0,1,"Porter, Mr. Walter Chamberlain",male,47,0,0,110465,52,C110,S
113 | 112,0,3,"Zabour, Miss. Hileni",female,14.5,1,0,2665,14.4542,,C
114 | 113,0,3,"Barton, Mr. David John",male,22,0,0,324669,8.05,,S
115 | 114,0,3,"Jussila, Miss. Katriina",female,20,1,0,4136,9.825,,S
116 | 115,0,3,"Attalah, Miss. Malake",female,17,0,0,2627,14.4583,,C
117 | 116,0,3,"Pekoniemi, Mr. Edvard",male,21,0,0,STON/O 2. 3101294,7.925,,S
118 | 117,0,3,"Connors, Mr. Patrick",male,70.5,0,0,370369,7.75,,Q
119 | 118,0,2,"Turpin, Mr. William John Robert",male,29,1,0,11668,21,,S
120 | 119,0,1,"Baxter, Mr. Quigg Edmond",male,24,0,1,PC 17558,247.5208,B58 B60,C
121 | 120,0,3,"Andersson, Miss. Ellis Anna Maria",female,2,4,2,347082,31.275,,S
122 | 121,0,2,"Hickman, Mr. Stanley George",male,21,2,0,S.O.C. 14879,73.5,,S
123 | 122,0,3,"Moore, Mr. Leonard Charles",male,,0,0,A4. 54510,8.05,,S
124 | 123,0,2,"Nasser, Mr. Nicholas",male,32.5,1,0,237736,30.0708,,C
125 | 124,1,2,"Webber, Miss. Susan",female,32.5,0,0,27267,13,E101,S
126 | 125,0,1,"White, Mr. Percival Wayland",male,54,0,1,35281,77.2875,D26,S
127 | 126,1,3,"Nicola-Yarred, Master. Elias",male,12,1,0,2651,11.2417,,C
128 | 127,0,3,"McMahon, Mr. Martin",male,,0,0,370372,7.75,,Q
129 | 128,1,3,"Madsen, Mr. Fridtjof Arne",male,24,0,0,C 17369,7.1417,,S
130 | 129,1,3,"Peter, Miss. Anna",female,,1,1,2668,22.3583,F E69,C
131 | 130,0,3,"Ekstrom, Mr. Johan",male,45,0,0,347061,6.975,,S
132 | 131,0,3,"Drazenoic, Mr. Jozef",male,33,0,0,349241,7.8958,,C
133 | 132,0,3,"Coelho, Mr. Domingos Fernandeo",male,20,0,0,SOTON/O.Q. 3101307,7.05,,S
134 | 133,0,3,"Robins, Mrs. Alexander A (Grace Charity Laury)",female,47,1,0,A/5. 3337,14.5,,S
135 | 134,1,2,"Weisz, Mrs. Leopold (Mathilde Francoise Pede)",female,29,1,0,228414,26,,S
136 | 135,0,2,"Sobey, Mr. Samuel James Hayden",male,25,0,0,C.A. 29178,13,,S
137 | 136,0,2,"Richard, Mr. Emile",male,23,0,0,SC/PARIS 2133,15.0458,,C
138 | 137,1,1,"Newsom, Miss. Helen Monypeny",female,19,0,2,11752,26.2833,D47,S
139 | 138,0,1,"Futrelle, Mr. Jacques Heath",male,37,1,0,113803,53.1,C123,S
140 | 139,0,3,"Osen, Mr. Olaf Elon",male,16,0,0,7534,9.2167,,S
141 | 140,0,1,"Giglio, Mr. Victor",male,24,0,0,PC 17593,79.2,B86,C
142 | 141,0,3,"Boulos, Mrs. Joseph (Sultana)",female,,0,2,2678,15.2458,,C
143 | 142,1,3,"Nysten, Miss. Anna Sofia",female,22,0,0,347081,7.75,,S
144 | 143,1,3,"Hakkarainen, Mrs. Pekka Pietari (Elin Matilda Dolck)",female,24,1,0,STON/O2. 3101279,15.85,,S
145 | 144,0,3,"Burke, Mr. Jeremiah",male,19,0,0,365222,6.75,,Q
146 | 145,0,2,"Andrew, Mr. Edgardo Samuel",male,18,0,0,231945,11.5,,S
147 | 146,0,2,"Nicholls, Mr. Joseph Charles",male,19,1,1,C.A. 33112,36.75,,S
148 | 147,1,3,"Andersson, Mr. August Edvard (""Wennerstrom"")",male,27,0,0,350043,7.7958,,S
149 | 148,0,3,"Ford, Miss. Robina Maggie ""Ruby""",female,9,2,2,W./C. 6608,34.375,,S
150 | 149,0,2,"Navratil, Mr. Michel (""Louis M Hoffman"")",male,36.5,0,2,230080,26,F2,S
151 | 150,0,2,"Byles, Rev. Thomas Roussel Davids",male,42,0,0,244310,13,,S
152 | 151,0,2,"Bateman, Rev. Robert James",male,51,0,0,S.O.P. 1166,12.525,,S
153 | 152,1,1,"Pears, Mrs. Thomas (Edith Wearne)",female,22,1,0,113776,66.6,C2,S
154 | 153,0,3,"Meo, Mr. Alfonzo",male,55.5,0,0,A.5. 11206,8.05,,S
155 | 154,0,3,"van Billiard, Mr. Austin Blyler",male,40.5,0,2,A/5. 851,14.5,,S
156 | 155,0,3,"Olsen, Mr. Ole Martin",male,,0,0,Fa 265302,7.3125,,S
157 | 156,0,1,"Williams, Mr. Charles Duane",male,51,0,1,PC 17597,61.3792,,C
158 | 157,1,3,"Gilnagh, Miss. Katherine ""Katie""",female,16,0,0,35851,7.7333,,Q
159 | 158,0,3,"Corn, Mr. Harry",male,30,0,0,SOTON/OQ 392090,8.05,,S
160 | 159,0,3,"Smiljanic, Mr. Mile",male,,0,0,315037,8.6625,,S
161 | 160,0,3,"Sage, Master. Thomas Henry",male,,8,2,CA. 2343,69.55,,S
162 | 161,0,3,"Cribb, Mr. John Hatfield",male,44,0,1,371362,16.1,,S
163 | 162,1,2,"Watt, Mrs. James (Elizabeth ""Bessie"" Inglis Milne)",female,40,0,0,C.A. 33595,15.75,,S
164 | 163,0,3,"Bengtsson, Mr. John Viktor",male,26,0,0,347068,7.775,,S
165 | 164,0,3,"Calic, Mr. Jovo",male,17,0,0,315093,8.6625,,S
166 | 165,0,3,"Panula, Master. Eino Viljami",male,1,4,1,3101295,39.6875,,S
167 | 166,1,3,"Goldsmith, Master. Frank John William ""Frankie""",male,9,0,2,363291,20.525,,S
168 | 167,1,1,"Chibnall, Mrs. (Edith Martha Bowerman)",female,,0,1,113505,55,E33,S
169 | 168,0,3,"Skoog, Mrs. William (Anna Bernhardina Karlsson)",female,45,1,4,347088,27.9,,S
170 | 169,0,1,"Baumann, Mr. John D",male,,0,0,PC 17318,25.925,,S
171 | 170,0,3,"Ling, Mr. Lee",male,28,0,0,1601,56.4958,,S
172 | 171,0,1,"Van der hoef, Mr. Wyckoff",male,61,0,0,111240,33.5,B19,S
173 | 172,0,3,"Rice, Master. Arthur",male,4,4,1,382652,29.125,,Q
174 | 173,1,3,"Johnson, Miss. Eleanor Ileen",female,1,1,1,347742,11.1333,,S
175 | 174,0,3,"Sivola, Mr. Antti Wilhelm",male,21,0,0,STON/O 2. 3101280,7.925,,S
176 | 175,0,1,"Smith, Mr. James Clinch",male,56,0,0,17764,30.6958,A7,C
177 | 176,0,3,"Klasen, Mr. Klas Albin",male,18,1,1,350404,7.8542,,S
178 | 177,0,3,"Lefebre, Master. Henry Forbes",male,,3,1,4133,25.4667,,S
179 | 178,0,1,"Isham, Miss. Ann Elizabeth",female,50,0,0,PC 17595,28.7125,C49,C
180 | 179,0,2,"Hale, Mr. Reginald",male,30,0,0,250653,13,,S
181 | 180,0,3,"Leonard, Mr. Lionel",male,36,0,0,LINE,0,,S
182 | 181,0,3,"Sage, Miss. Constance Gladys",female,,8,2,CA. 2343,69.55,,S
183 | 182,0,2,"Pernot, Mr. Rene",male,,0,0,SC/PARIS 2131,15.05,,C
184 | 183,0,3,"Asplund, Master. Clarence Gustaf Hugo",male,9,4,2,347077,31.3875,,S
185 | 184,1,2,"Becker, Master. Richard F",male,1,2,1,230136,39,F4,S
186 | 185,1,3,"Kink-Heilmann, Miss. Luise Gretchen",female,4,0,2,315153,22.025,,S
187 | 186,0,1,"Rood, Mr. Hugh Roscoe",male,,0,0,113767,50,A32,S
188 | 187,1,3,"O'Brien, Mrs. Thomas (Johanna ""Hannah"" Godfrey)",female,,1,0,370365,15.5,,Q
189 | 188,1,1,"Romaine, Mr. Charles Hallace (""Mr C Rolmane"")",male,45,0,0,111428,26.55,,S
190 | 189,0,3,"Bourke, Mr. John",male,40,1,1,364849,15.5,,Q
191 | 190,0,3,"Turcin, Mr. Stjepan",male,36,0,0,349247,7.8958,,S
192 | 191,1,2,"Pinsky, Mrs. (Rosa)",female,32,0,0,234604,13,,S
193 | 192,0,2,"Carbines, Mr. William",male,19,0,0,28424,13,,S
194 | 193,1,3,"Andersen-Jensen, Miss. Carla Christine Nielsine",female,19,1,0,350046,7.8542,,S
195 | 194,1,2,"Navratil, Master. Michel M",male,3,1,1,230080,26,F2,S
196 | 195,1,1,"Brown, Mrs. James Joseph (Margaret Tobin)",female,44,0,0,PC 17610,27.7208,B4,C
197 | 196,1,1,"Lurette, Miss. Elise",female,58,0,0,PC 17569,146.5208,B80,C
198 | 197,0,3,"Mernagh, Mr. Robert",male,,0,0,368703,7.75,,Q
199 | 198,0,3,"Olsen, Mr. Karl Siegwart Andreas",male,42,0,1,4579,8.4042,,S
200 | 199,1,3,"Madigan, Miss. Margaret ""Maggie""",female,,0,0,370370,7.75,,Q
201 | 200,0,2,"Yrois, Miss. Henriette (""Mrs Harbeck"")",female,24,0,0,248747,13,,S
202 | 201,0,3,"Vande Walle, Mr. Nestor Cyriel",male,28,0,0,345770,9.5,,S
203 | 202,0,3,"Sage, Mr. Frederick",male,,8,2,CA. 2343,69.55,,S
204 | 203,0,3,"Johanson, Mr. Jakob Alfred",male,34,0,0,3101264,6.4958,,S
205 | 204,0,3,"Youseff, Mr. Gerious",male,45.5,0,0,2628,7.225,,C
206 | 205,1,3,"Cohen, Mr. Gurshon ""Gus""",male,18,0,0,A/5 3540,8.05,,S
207 | 206,0,3,"Strom, Miss. Telma Matilda",female,2,0,1,347054,10.4625,G6,S
208 | 207,0,3,"Backstrom, Mr. Karl Alfred",male,32,1,0,3101278,15.85,,S
209 | 208,1,3,"Albimona, Mr. Nassef Cassem",male,26,0,0,2699,18.7875,,C
210 | 209,1,3,"Carr, Miss. Helen ""Ellen""",female,16,0,0,367231,7.75,,Q
211 | 210,1,1,"Blank, Mr. Henry",male,40,0,0,112277,31,A31,C
212 | 211,0,3,"Ali, Mr. Ahmed",male,24,0,0,SOTON/O.Q. 3101311,7.05,,S
213 | 212,1,2,"Cameron, Miss. Clear Annie",female,35,0,0,F.C.C. 13528,21,,S
214 | 213,0,3,"Perkin, Mr. John Henry",male,22,0,0,A/5 21174,7.25,,S
215 | 214,0,2,"Givard, Mr. Hans Kristensen",male,30,0,0,250646,13,,S
216 | 215,0,3,"Kiernan, Mr. Philip",male,,1,0,367229,7.75,,Q
217 | 216,1,1,"Newell, Miss. Madeleine",female,31,1,0,35273,113.275,D36,C
218 | 217,1,3,"Honkanen, Miss. Eliina",female,27,0,0,STON/O2. 3101283,7.925,,S
219 | 218,0,2,"Jacobsohn, Mr. Sidney Samuel",male,42,1,0,243847,27,,S
220 | 219,1,1,"Bazzani, Miss. Albina",female,32,0,0,11813,76.2917,D15,C
221 | 220,0,2,"Harris, Mr. Walter",male,30,0,0,W/C 14208,10.5,,S
222 | 221,1,3,"Sunderland, Mr. Victor Francis",male,16,0,0,SOTON/OQ 392089,8.05,,S
223 | 222,0,2,"Bracken, Mr. James H",male,27,0,0,220367,13,,S
224 | 223,0,3,"Green, Mr. George Henry",male,51,0,0,21440,8.05,,S
225 | 224,0,3,"Nenkoff, Mr. Christo",male,,0,0,349234,7.8958,,S
226 | 225,1,1,"Hoyt, Mr. Frederick Maxfield",male,38,1,0,19943,90,C93,S
227 | 226,0,3,"Berglund, Mr. Karl Ivar Sven",male,22,0,0,PP 4348,9.35,,S
228 | 227,1,2,"Mellors, Mr. William John",male,19,0,0,SW/PP 751,10.5,,S
229 | 228,0,3,"Lovell, Mr. John Hall (""Henry"")",male,20.5,0,0,A/5 21173,7.25,,S
230 | 229,0,2,"Fahlstrom, Mr. Arne Jonas",male,18,0,0,236171,13,,S
231 | 230,0,3,"Lefebre, Miss. Mathilde",female,,3,1,4133,25.4667,,S
232 | 231,1,1,"Harris, Mrs. Henry Birkhardt (Irene Wallach)",female,35,1,0,36973,83.475,C83,S
233 | 232,0,3,"Larsson, Mr. Bengt Edvin",male,29,0,0,347067,7.775,,S
234 | 233,0,2,"Sjostedt, Mr. Ernst Adolf",male,59,0,0,237442,13.5,,S
235 | 234,1,3,"Asplund, Miss. Lillian Gertrud",female,5,4,2,347077,31.3875,,S
236 | 235,0,2,"Leyson, Mr. Robert William Norman",male,24,0,0,C.A. 29566,10.5,,S
237 | 236,0,3,"Harknett, Miss. Alice Phoebe",female,,0,0,W./C. 6609,7.55,,S
238 | 237,0,2,"Hold, Mr. Stephen",male,44,1,0,26707,26,,S
239 | 238,1,2,"Collyer, Miss. Marjorie ""Lottie""",female,8,0,2,C.A. 31921,26.25,,S
240 | 239,0,2,"Pengelly, Mr. Frederick William",male,19,0,0,28665,10.5,,S
241 | 240,0,2,"Hunt, Mr. George Henry",male,33,0,0,SCO/W 1585,12.275,,S
242 | 241,0,3,"Zabour, Miss. Thamine",female,,1,0,2665,14.4542,,C
243 | 242,1,3,"Murphy, Miss. Katherine ""Kate""",female,,1,0,367230,15.5,,Q
244 | 243,0,2,"Coleridge, Mr. Reginald Charles",male,29,0,0,W./C. 14263,10.5,,S
245 | 244,0,3,"Maenpaa, Mr. Matti Alexanteri",male,22,0,0,STON/O 2. 3101275,7.125,,S
246 | 245,0,3,"Attalah, Mr. Sleiman",male,30,0,0,2694,7.225,,C
247 | 246,0,1,"Minahan, Dr. William Edward",male,44,2,0,19928,90,C78,Q
248 | 247,0,3,"Lindahl, Miss. Agda Thorilda Viktoria",female,25,0,0,347071,7.775,,S
249 | 248,1,2,"Hamalainen, Mrs. William (Anna)",female,24,0,2,250649,14.5,,S
250 | 249,1,1,"Beckwith, Mr. Richard Leonard",male,37,1,1,11751,52.5542,D35,S
251 | 250,0,2,"Carter, Rev. Ernest Courtenay",male,54,1,0,244252,26,,S
252 | 251,0,3,"Reed, Mr. James George",male,,0,0,362316,7.25,,S
253 | 252,0,3,"Strom, Mrs. Wilhelm (Elna Matilda Persson)",female,29,1,1,347054,10.4625,G6,S
254 | 253,0,1,"Stead, Mr. William Thomas",male,62,0,0,113514,26.55,C87,S
255 | 254,0,3,"Lobb, Mr. William Arthur",male,30,1,0,A/5. 3336,16.1,,S
256 | 255,0,3,"Rosblom, Mrs. Viktor (Helena Wilhelmina)",female,41,0,2,370129,20.2125,,S
257 | 256,1,3,"Touma, Mrs. Darwis (Hanne Youssef Razi)",female,29,0,2,2650,15.2458,,C
258 | 257,1,1,"Thorne, Mrs. Gertrude Maybelle",female,,0,0,PC 17585,79.2,,C
259 | 258,1,1,"Cherry, Miss. Gladys",female,30,0,0,110152,86.5,B77,S
260 | 259,1,1,"Ward, Miss. Anna",female,35,0,0,PC 17755,512.3292,,C
261 | 260,1,2,"Parrish, Mrs. (Lutie Davis)",female,50,0,1,230433,26,,S
262 | 261,0,3,"Smith, Mr. Thomas",male,,0,0,384461,7.75,,Q
263 | 262,1,3,"Asplund, Master. Edvin Rojj Felix",male,3,4,2,347077,31.3875,,S
264 | 263,0,1,"Taussig, Mr. Emil",male,52,1,1,110413,79.65,E67,S
265 | 264,0,1,"Harrison, Mr. William",male,40,0,0,112059,0,B94,S
266 | 265,0,3,"Henry, Miss. Delia",female,,0,0,382649,7.75,,Q
267 | 266,0,2,"Reeves, Mr. David",male,36,0,0,C.A. 17248,10.5,,S
268 | 267,0,3,"Panula, Mr. Ernesti Arvid",male,16,4,1,3101295,39.6875,,S
269 | 268,1,3,"Persson, Mr. Ernst Ulrik",male,25,1,0,347083,7.775,,S
270 | 269,1,1,"Graham, Mrs. William Thompson (Edith Junkins)",female,58,0,1,PC 17582,153.4625,C125,S
271 | 270,1,1,"Bissette, Miss. Amelia",female,35,0,0,PC 17760,135.6333,C99,S
272 | 271,0,1,"Cairns, Mr. Alexander",male,,0,0,113798,31,,S
273 | 272,1,3,"Tornquist, Mr. William Henry",male,25,0,0,LINE,0,,S
274 | 273,1,2,"Mellinger, Mrs. (Elizabeth Anne Maidment)",female,41,0,1,250644,19.5,,S
275 | 274,0,1,"Natsch, Mr. Charles H",male,37,0,1,PC 17596,29.7,C118,C
276 | 275,1,3,"Healy, Miss. Hanora ""Nora""",female,,0,0,370375,7.75,,Q
277 | 276,1,1,"Andrews, Miss. Kornelia Theodosia",female,63,1,0,13502,77.9583,D7,S
278 | 277,0,3,"Lindblom, Miss. Augusta Charlotta",female,45,0,0,347073,7.75,,S
279 | 278,0,2,"Parkes, Mr. Francis ""Frank""",male,,0,0,239853,0,,S
280 | 279,0,3,"Rice, Master. Eric",male,7,4,1,382652,29.125,,Q
281 | 280,1,3,"Abbott, Mrs. Stanton (Rosa Hunt)",female,35,1,1,C.A. 2673,20.25,,S
282 | 281,0,3,"Duane, Mr. Frank",male,65,0,0,336439,7.75,,Q
283 | 282,0,3,"Olsson, Mr. Nils Johan Goransson",male,28,0,0,347464,7.8542,,S
284 | 283,0,3,"de Pelsmaeker, Mr. Alfons",male,16,0,0,345778,9.5,,S
285 | 284,1,3,"Dorking, Mr. Edward Arthur",male,19,0,0,A/5. 10482,8.05,,S
286 | 285,0,1,"Smith, Mr. Richard William",male,,0,0,113056,26,A19,S
287 | 286,0,3,"Stankovic, Mr. Ivan",male,33,0,0,349239,8.6625,,C
288 | 287,1,3,"de Mulder, Mr. Theodore",male,30,0,0,345774,9.5,,S
289 | 288,0,3,"Naidenoff, Mr. Penko",male,22,0,0,349206,7.8958,,S
290 | 289,1,2,"Hosono, Mr. Masabumi",male,42,0,0,237798,13,,S
291 | 290,1,3,"Connolly, Miss. Kate",female,22,0,0,370373,7.75,,Q
292 | 291,1,1,"Barber, Miss. Ellen ""Nellie""",female,26,0,0,19877,78.85,,S
293 | 292,1,1,"Bishop, Mrs. Dickinson H (Helen Walton)",female,19,1,0,11967,91.0792,B49,C
294 | 293,0,2,"Levy, Mr. Rene Jacques",male,36,0,0,SC/Paris 2163,12.875,D,C
295 | 294,0,3,"Haas, Miss. Aloisia",female,24,0,0,349236,8.85,,S
296 | 295,0,3,"Mineff, Mr. Ivan",male,24,0,0,349233,7.8958,,S
297 | 296,0,1,"Lewy, Mr. Ervin G",male,,0,0,PC 17612,27.7208,,C
298 | 297,0,3,"Hanna, Mr. Mansour",male,23.5,0,0,2693,7.2292,,C
299 | 298,0,1,"Allison, Miss. Helen Loraine",female,2,1,2,113781,151.55,C22 C26,S
300 | 299,1,1,"Saalfeld, Mr. Adolphe",male,,0,0,19988,30.5,C106,S
301 | 300,1,1,"Baxter, Mrs. James (Helene DeLaudeniere Chaput)",female,50,0,1,PC 17558,247.5208,B58 B60,C
302 | 301,1,3,"Kelly, Miss. Anna Katherine ""Annie Kate""",female,,0,0,9234,7.75,,Q
303 | 302,1,3,"McCoy, Mr. Bernard",male,,2,0,367226,23.25,,Q
304 | 303,0,3,"Johnson, Mr. William Cahoone Jr",male,19,0,0,LINE,0,,S
305 | 304,1,2,"Keane, Miss. Nora A",female,,0,0,226593,12.35,E101,Q
306 | 305,0,3,"Williams, Mr. Howard Hugh ""Harry""",male,,0,0,A/5 2466,8.05,,S
307 | 306,1,1,"Allison, Master. Hudson Trevor",male,0.92,1,2,113781,151.55,C22 C26,S
308 | 307,1,1,"Fleming, Miss. Margaret",female,,0,0,17421,110.8833,,C
309 | 308,1,1,"Penasco y Castellana, Mrs. Victor de Satode (Maria Josefa Perez de Soto y Vallejo)",female,17,1,0,PC 17758,108.9,C65,C
310 | 309,0,2,"Abelson, Mr. Samuel",male,30,1,0,P/PP 3381,24,,C
311 | 310,1,1,"Francatelli, Miss. Laura Mabel",female,30,0,0,PC 17485,56.9292,E36,C
312 | 311,1,1,"Hays, Miss. Margaret Bechstein",female,24,0,0,11767,83.1583,C54,C
313 | 312,1,1,"Ryerson, Miss. Emily Borie",female,18,2,2,PC 17608,262.375,B57 B59 B63 B66,C
314 | 313,0,2,"Lahtinen, Mrs. William (Anna Sylfven)",female,26,1,1,250651,26,,S
315 | 314,0,3,"Hendekovic, Mr. Ignjac",male,28,0,0,349243,7.8958,,S
316 | 315,0,2,"Hart, Mr. Benjamin",male,43,1,1,F.C.C. 13529,26.25,,S
317 | 316,1,3,"Nilsson, Miss. Helmina Josefina",female,26,0,0,347470,7.8542,,S
318 | 317,1,2,"Kantor, Mrs. Sinai (Miriam Sternin)",female,24,1,0,244367,26,,S
319 | 318,0,2,"Moraweck, Dr. Ernest",male,54,0,0,29011,14,,S
320 | 319,1,1,"Wick, Miss. Mary Natalie",female,31,0,2,36928,164.8667,C7,S
321 | 320,1,1,"Spedden, Mrs. Frederic Oakley (Margaretta Corning Stone)",female,40,1,1,16966,134.5,E34,C
322 | 321,0,3,"Dennis, Mr. Samuel",male,22,0,0,A/5 21172,7.25,,S
323 | 322,0,3,"Danoff, Mr. Yoto",male,27,0,0,349219,7.8958,,S
324 | 323,1,2,"Slayter, Miss. Hilda Mary",female,30,0,0,234818,12.35,,Q
325 | 324,1,2,"Caldwell, Mrs. Albert Francis (Sylvia Mae Harbaugh)",female,22,1,1,248738,29,,S
326 | 325,0,3,"Sage, Mr. George John Jr",male,,8,2,CA. 2343,69.55,,S
327 | 326,1,1,"Young, Miss. Marie Grice",female,36,0,0,PC 17760,135.6333,C32,C
328 | 327,0,3,"Nysveen, Mr. Johan Hansen",male,61,0,0,345364,6.2375,,S
329 | 328,1,2,"Ball, Mrs. (Ada E Hall)",female,36,0,0,28551,13,D,S
330 | 329,1,3,"Goldsmith, Mrs. Frank John (Emily Alice Brown)",female,31,1,1,363291,20.525,,S
331 | 330,1,1,"Hippach, Miss. Jean Gertrude",female,16,0,1,111361,57.9792,B18,C
332 | 331,1,3,"McCoy, Miss. Agnes",female,,2,0,367226,23.25,,Q
333 | 332,0,1,"Partner, Mr. Austen",male,45.5,0,0,113043,28.5,C124,S
334 | 333,0,1,"Graham, Mr. George Edward",male,38,0,1,PC 17582,153.4625,C91,S
335 | 334,0,3,"Vander Planke, Mr. Leo Edmondus",male,16,2,0,345764,18,,S
336 | 335,1,1,"Frauenthal, Mrs. Henry William (Clara Heinsheimer)",female,,1,0,PC 17611,133.65,,S
337 | 336,0,3,"Denkoff, Mr. Mitto",male,,0,0,349225,7.8958,,S
338 | 337,0,1,"Pears, Mr. Thomas Clinton",male,29,1,0,113776,66.6,C2,S
339 | 338,1,1,"Burns, Miss. Elizabeth Margaret",female,41,0,0,16966,134.5,E40,C
340 | 339,1,3,"Dahl, Mr. Karl Edwart",male,45,0,0,7598,8.05,,S
341 | 340,0,1,"Blackwell, Mr. Stephen Weart",male,45,0,0,113784,35.5,T,S
342 | 341,1,2,"Navratil, Master. Edmond Roger",male,2,1,1,230080,26,F2,S
343 | 342,1,1,"Fortune, Miss. Alice Elizabeth",female,24,3,2,19950,263,C23 C25 C27,S
344 | 343,0,2,"Collander, Mr. Erik Gustaf",male,28,0,0,248740,13,,S
345 | 344,0,2,"Sedgwick, Mr. Charles Frederick Waddington",male,25,0,0,244361,13,,S
346 | 345,0,2,"Fox, Mr. Stanley Hubert",male,36,0,0,229236,13,,S
347 | 346,1,2,"Brown, Miss. Amelia ""Mildred""",female,24,0,0,248733,13,F33,S
348 | 347,1,2,"Smith, Miss. Marion Elsie",female,40,0,0,31418,13,,S
349 | 348,1,3,"Davison, Mrs. Thomas Henry (Mary E Finck)",female,,1,0,386525,16.1,,S
350 | 349,1,3,"Coutts, Master. William Loch ""William""",male,3,1,1,C.A. 37671,15.9,,S
351 | 350,0,3,"Dimic, Mr. Jovan",male,42,0,0,315088,8.6625,,S
352 | 351,0,3,"Odahl, Mr. Nils Martin",male,23,0,0,7267,9.225,,S
353 | 352,0,1,"Williams-Lambert, Mr. Fletcher Fellows",male,,0,0,113510,35,C128,S
354 | 353,0,3,"Elias, Mr. Tannous",male,15,1,1,2695,7.2292,,C
355 | 354,0,3,"Arnold-Franchi, Mr. Josef",male,25,1,0,349237,17.8,,S
356 | 355,0,3,"Yousif, Mr. Wazli",male,,0,0,2647,7.225,,C
357 | 356,0,3,"Vanden Steen, Mr. Leo Peter",male,28,0,0,345783,9.5,,S
358 | 357,1,1,"Bowerman, Miss. Elsie Edith",female,22,0,1,113505,55,E33,S
359 | 358,0,2,"Funk, Miss. Annie Clemmer",female,38,0,0,237671,13,,S
360 | 359,1,3,"McGovern, Miss. Mary",female,,0,0,330931,7.8792,,Q
361 | 360,1,3,"Mockler, Miss. Helen Mary ""Ellie""",female,,0,0,330980,7.8792,,Q
362 | 361,0,3,"Skoog, Mr. Wilhelm",male,40,1,4,347088,27.9,,S
363 | 362,0,2,"del Carlo, Mr. Sebastiano",male,29,1,0,SC/PARIS 2167,27.7208,,C
364 | 363,0,3,"Barbara, Mrs. (Catherine David)",female,45,0,1,2691,14.4542,,C
365 | 364,0,3,"Asim, Mr. Adola",male,35,0,0,SOTON/O.Q. 3101310,7.05,,S
366 | 365,0,3,"O'Brien, Mr. Thomas",male,,1,0,370365,15.5,,Q
367 | 366,0,3,"Adahl, Mr. Mauritz Nils Martin",male,30,0,0,C 7076,7.25,,S
368 | 367,1,1,"Warren, Mrs. Frank Manley (Anna Sophia Atkinson)",female,60,1,0,110813,75.25,D37,C
369 | 368,1,3,"Moussa, Mrs. (Mantoura Boulos)",female,,0,0,2626,7.2292,,C
370 | 369,1,3,"Jermyn, Miss. Annie",female,,0,0,14313,7.75,,Q
371 | 370,1,1,"Aubart, Mme. Leontine Pauline",female,24,0,0,PC 17477,69.3,B35,C
372 | 371,1,1,"Harder, Mr. George Achilles",male,25,1,0,11765,55.4417,E50,C
373 | 372,0,3,"Wiklund, Mr. Jakob Alfred",male,18,1,0,3101267,6.4958,,S
374 | 373,0,3,"Beavan, Mr. William Thomas",male,19,0,0,323951,8.05,,S
375 | 374,0,1,"Ringhini, Mr. Sante",male,22,0,0,PC 17760,135.6333,,C
376 | 375,0,3,"Palsson, Miss. Stina Viola",female,3,3,1,349909,21.075,,S
377 | 376,1,1,"Meyer, Mrs. Edgar Joseph (Leila Saks)",female,,1,0,PC 17604,82.1708,,C
378 | 377,1,3,"Landergren, Miss. Aurora Adelia",female,22,0,0,C 7077,7.25,,S
379 | 378,0,1,"Widener, Mr. Harry Elkins",male,27,0,2,113503,211.5,C82,C
380 | 379,0,3,"Betros, Mr. Tannous",male,20,0,0,2648,4.0125,,C
381 | 380,0,3,"Gustafsson, Mr. Karl Gideon",male,19,0,0,347069,7.775,,S
382 | 381,1,1,"Bidois, Miss. Rosalie",female,42,0,0,PC 17757,227.525,,C
383 | 382,1,3,"Nakid, Miss. Maria (""Mary"")",female,1,0,2,2653,15.7417,,C
384 | 383,0,3,"Tikkanen, Mr. Juho",male,32,0,0,STON/O 2. 3101293,7.925,,S
385 | 384,1,1,"Holverson, Mrs. Alexander Oskar (Mary Aline Towner)",female,35,1,0,113789,52,,S
386 | 385,0,3,"Plotcharsky, Mr. Vasil",male,,0,0,349227,7.8958,,S
387 | 386,0,2,"Davies, Mr. Charles Henry",male,18,0,0,S.O.C. 14879,73.5,,S
388 | 387,0,3,"Goodwin, Master. Sidney Leonard",male,1,5,2,CA 2144,46.9,,S
389 | 388,1,2,"Buss, Miss. Kate",female,36,0,0,27849,13,,S
390 | 389,0,3,"Sadlier, Mr. Matthew",male,,0,0,367655,7.7292,,Q
391 | 390,1,2,"Lehmann, Miss. Bertha",female,17,0,0,SC 1748,12,,C
392 | 391,1,1,"Carter, Mr. William Ernest",male,36,1,2,113760,120,B96 B98,S
393 | 392,1,3,"Jansson, Mr. Carl Olof",male,21,0,0,350034,7.7958,,S
394 | 393,0,3,"Gustafsson, Mr. Johan Birger",male,28,2,0,3101277,7.925,,S
395 | 394,1,1,"Newell, Miss. Marjorie",female,23,1,0,35273,113.275,D36,C
396 | 395,1,3,"Sandstrom, Mrs. Hjalmar (Agnes Charlotta Bengtsson)",female,24,0,2,PP 9549,16.7,G6,S
397 | 396,0,3,"Johansson, Mr. Erik",male,22,0,0,350052,7.7958,,S
398 | 397,0,3,"Olsson, Miss. Elina",female,31,0,0,350407,7.8542,,S
399 | 398,0,2,"McKane, Mr. Peter David",male,46,0,0,28403,26,,S
400 | 399,0,2,"Pain, Dr. Alfred",male,23,0,0,244278,10.5,,S
401 | 400,1,2,"Trout, Mrs. William H (Jessie L)",female,28,0,0,240929,12.65,,S
402 | 401,1,3,"Niskanen, Mr. Juha",male,39,0,0,STON/O 2. 3101289,7.925,,S
403 | 402,0,3,"Adams, Mr. John",male,26,0,0,341826,8.05,,S
404 | 403,0,3,"Jussila, Miss. Mari Aina",female,21,1,0,4137,9.825,,S
405 | 404,0,3,"Hakkarainen, Mr. Pekka Pietari",male,28,1,0,STON/O2. 3101279,15.85,,S
406 | 405,0,3,"Oreskovic, Miss. Marija",female,20,0,0,315096,8.6625,,S
407 | 406,0,2,"Gale, Mr. Shadrach",male,34,1,0,28664,21,,S
408 | 407,0,3,"Widegren, Mr. Carl/Charles Peter",male,51,0,0,347064,7.75,,S
409 | 408,1,2,"Richards, Master. William Rowe",male,3,1,1,29106,18.75,,S
410 | 409,0,3,"Birkeland, Mr. Hans Martin Monsen",male,21,0,0,312992,7.775,,S
411 | 410,0,3,"Lefebre, Miss. Ida",female,,3,1,4133,25.4667,,S
412 | 411,0,3,"Sdycoff, Mr. Todor",male,,0,0,349222,7.8958,,S
413 | 412,0,3,"Hart, Mr. Henry",male,,0,0,394140,6.8583,,Q
414 | 413,1,1,"Minahan, Miss. Daisy E",female,33,1,0,19928,90,C78,Q
415 | 414,0,2,"Cunningham, Mr. Alfred Fleming",male,,0,0,239853,0,,S
416 | 415,1,3,"Sundman, Mr. Johan Julian",male,44,0,0,STON/O 2. 3101269,7.925,,S
417 | 416,0,3,"Meek, Mrs. Thomas (Annie Louise Rowley)",female,,0,0,343095,8.05,,S
418 | 417,1,2,"Drew, Mrs. James Vivian (Lulu Thorne Christian)",female,34,1,1,28220,32.5,,S
419 | 418,1,2,"Silven, Miss. Lyyli Karoliina",female,18,0,2,250652,13,,S
420 | 419,0,2,"Matthews, Mr. William John",male,30,0,0,28228,13,,S
421 | 420,0,3,"Van Impe, Miss. Catharina",female,10,0,2,345773,24.15,,S
422 | 421,0,3,"Gheorgheff, Mr. Stanio",male,,0,0,349254,7.8958,,C
423 | 422,0,3,"Charters, Mr. David",male,21,0,0,A/5. 13032,7.7333,,Q
424 | 423,0,3,"Zimmerman, Mr. Leo",male,29,0,0,315082,7.875,,S
425 | 424,0,3,"Danbom, Mrs. Ernst Gilbert (Anna Sigrid Maria Brogren)",female,28,1,1,347080,14.4,,S
426 | 425,0,3,"Rosblom, Mr. Viktor Richard",male,18,1,1,370129,20.2125,,S
427 | 426,0,3,"Wiseman, Mr. Phillippe",male,,0,0,A/4. 34244,7.25,,S
428 | 427,1,2,"Clarke, Mrs. Charles V (Ada Maria Winfield)",female,28,1,0,2003,26,,S
429 | 428,1,2,"Phillips, Miss. Kate Florence (""Mrs Kate Louise Phillips Marshall"")",female,19,0,0,250655,26,,S
430 | 429,0,3,"Flynn, Mr. James",male,,0,0,364851,7.75,,Q
431 | 430,1,3,"Pickard, Mr. Berk (Berk Trembisky)",male,32,0,0,SOTON/O.Q. 392078,8.05,E10,S
432 | 431,1,1,"Bjornstrom-Steffansson, Mr. Mauritz Hakan",male,28,0,0,110564,26.55,C52,S
433 | 432,1,3,"Thorneycroft, Mrs. Percival (Florence Kate White)",female,,1,0,376564,16.1,,S
434 | 433,1,2,"Louch, Mrs. Charles Alexander (Alice Adelaide Slow)",female,42,1,0,SC/AH 3085,26,,S
435 | 434,0,3,"Kallio, Mr. Nikolai Erland",male,17,0,0,STON/O 2. 3101274,7.125,,S
436 | 435,0,1,"Silvey, Mr. William Baird",male,50,1,0,13507,55.9,E44,S
437 | 436,1,1,"Carter, Miss. Lucile Polk",female,14,1,2,113760,120,B96 B98,S
438 | 437,0,3,"Ford, Miss. Doolina Margaret ""Daisy""",female,21,2,2,W./C. 6608,34.375,,S
439 | 438,1,2,"Richards, Mrs. Sidney (Emily Hocking)",female,24,2,3,29106,18.75,,S
440 | 439,0,1,"Fortune, Mr. Mark",male,64,1,4,19950,263,C23 C25 C27,S
441 | 440,0,2,"Kvillner, Mr. Johan Henrik Johannesson",male,31,0,0,C.A. 18723,10.5,,S
442 | 441,1,2,"Hart, Mrs. Benjamin (Esther Ada Bloomfield)",female,45,1,1,F.C.C. 13529,26.25,,S
443 | 442,0,3,"Hampe, Mr. Leon",male,20,0,0,345769,9.5,,S
444 | 443,0,3,"Petterson, Mr. Johan Emil",male,25,1,0,347076,7.775,,S
445 | 444,1,2,"Reynaldo, Ms. Encarnacion",female,28,0,0,230434,13,,S
446 | 445,1,3,"Johannesen-Bratthammer, Mr. Bernt",male,,0,0,65306,8.1125,,S
447 | 446,1,1,"Dodge, Master. Washington",male,4,0,2,33638,81.8583,A34,S
448 | 447,1,2,"Mellinger, Miss. Madeleine Violet",female,13,0,1,250644,19.5,,S
449 | 448,1,1,"Seward, Mr. Frederic Kimber",male,34,0,0,113794,26.55,,S
450 | 449,1,3,"Baclini, Miss. Marie Catherine",female,5,2,1,2666,19.2583,,C
451 | 450,1,1,"Peuchen, Major. Arthur Godfrey",male,52,0,0,113786,30.5,C104,S
452 | 451,0,2,"West, Mr. Edwy Arthur",male,36,1,2,C.A. 34651,27.75,,S
453 | 452,0,3,"Hagland, Mr. Ingvald Olai Olsen",male,,1,0,65303,19.9667,,S
454 | 453,0,1,"Foreman, Mr. Benjamin Laventall",male,30,0,0,113051,27.75,C111,C
455 | 454,1,1,"Goldenberg, Mr. Samuel L",male,49,1,0,17453,89.1042,C92,C
456 | 455,0,3,"Peduzzi, Mr. Joseph",male,,0,0,A/5 2817,8.05,,S
457 | 456,1,3,"Jalsevac, Mr. Ivan",male,29,0,0,349240,7.8958,,C
458 | 457,0,1,"Millet, Mr. Francis Davis",male,65,0,0,13509,26.55,E38,S
459 | 458,1,1,"Kenyon, Mrs. Frederick R (Marion)",female,,1,0,17464,51.8625,D21,S
460 | 459,1,2,"Toomey, Miss. Ellen",female,50,0,0,F.C.C. 13531,10.5,,S
461 | 460,0,3,"O'Connor, Mr. Maurice",male,,0,0,371060,7.75,,Q
462 | 461,1,1,"Anderson, Mr. Harry",male,48,0,0,19952,26.55,E12,S
463 | 462,0,3,"Morley, Mr. William",male,34,0,0,364506,8.05,,S
464 | 463,0,1,"Gee, Mr. Arthur H",male,47,0,0,111320,38.5,E63,S
465 | 464,0,2,"Milling, Mr. Jacob Christian",male,48,0,0,234360,13,,S
466 | 465,0,3,"Maisner, Mr. Simon",male,,0,0,A/S 2816,8.05,,S
467 | 466,0,3,"Goncalves, Mr. Manuel Estanslas",male,38,0,0,SOTON/O.Q. 3101306,7.05,,S
468 | 467,0,2,"Campbell, Mr. William",male,,0,0,239853,0,,S
469 | 468,0,1,"Smart, Mr. John Montgomery",male,56,0,0,113792,26.55,,S
470 | 469,0,3,"Scanlan, Mr. James",male,,0,0,36209,7.725,,Q
471 | 470,1,3,"Baclini, Miss. Helene Barbara",female,0.75,2,1,2666,19.2583,,C
472 | 471,0,3,"Keefe, Mr. Arthur",male,,0,0,323592,7.25,,S
473 | 472,0,3,"Cacic, Mr. Luka",male,38,0,0,315089,8.6625,,S
474 | 473,1,2,"West, Mrs. Edwy Arthur (Ada Mary Worth)",female,33,1,2,C.A. 34651,27.75,,S
475 | 474,1,2,"Jerwan, Mrs. Amin S (Marie Marthe Thuillard)",female,23,0,0,SC/AH Basle 541,13.7917,D,C
476 | 475,0,3,"Strandberg, Miss. Ida Sofia",female,22,0,0,7553,9.8375,,S
477 | 476,0,1,"Clifford, Mr. George Quincy",male,,0,0,110465,52,A14,S
478 | 477,0,2,"Renouf, Mr. Peter Henry",male,34,1,0,31027,21,,S
479 | 478,0,3,"Braund, Mr. Lewis Richard",male,29,1,0,3460,7.0458,,S
480 | 479,0,3,"Karlsson, Mr. Nils August",male,22,0,0,350060,7.5208,,S
481 | 480,1,3,"Hirvonen, Miss. Hildur E",female,2,0,1,3101298,12.2875,,S
482 | 481,0,3,"Goodwin, Master. Harold Victor",male,9,5,2,CA 2144,46.9,,S
483 | 482,0,2,"Frost, Mr. Anthony Wood ""Archie""",male,,0,0,239854,0,,S
484 | 483,0,3,"Rouse, Mr. Richard Henry",male,50,0,0,A/5 3594,8.05,,S
485 | 484,1,3,"Turkula, Mrs. (Hedwig)",female,63,0,0,4134,9.5875,,S
486 | 485,1,1,"Bishop, Mr. Dickinson H",male,25,1,0,11967,91.0792,B49,C
487 | 486,0,3,"Lefebre, Miss. Jeannie",female,,3,1,4133,25.4667,,S
488 | 487,1,1,"Hoyt, Mrs. Frederick Maxfield (Jane Anne Forby)",female,35,1,0,19943,90,C93,S
489 | 488,0,1,"Kent, Mr. Edward Austin",male,58,0,0,11771,29.7,B37,C
490 | 489,0,3,"Somerton, Mr. Francis William",male,30,0,0,A.5. 18509,8.05,,S
491 | 490,1,3,"Coutts, Master. Eden Leslie ""Neville""",male,9,1,1,C.A. 37671,15.9,,S
492 | 491,0,3,"Hagland, Mr. Konrad Mathias Reiersen",male,,1,0,65304,19.9667,,S
493 | 492,0,3,"Windelov, Mr. Einar",male,21,0,0,SOTON/OQ 3101317,7.25,,S
494 | 493,0,1,"Molson, Mr. Harry Markland",male,55,0,0,113787,30.5,C30,S
495 | 494,0,1,"Artagaveytia, Mr. Ramon",male,71,0,0,PC 17609,49.5042,,C
496 | 495,0,3,"Stanley, Mr. Edward Roland",male,21,0,0,A/4 45380,8.05,,S
497 | 496,0,3,"Yousseff, Mr. Gerious",male,,0,0,2627,14.4583,,C
498 | 497,1,1,"Eustis, Miss. Elizabeth Mussey",female,54,1,0,36947,78.2667,D20,C
499 | 498,0,3,"Shellard, Mr. Frederick William",male,,0,0,C.A. 6212,15.1,,S
500 | 499,0,1,"Allison, Mrs. Hudson J C (Bessie Waldo Daniels)",female,25,1,2,113781,151.55,C22 C26,S
501 | 500,0,3,"Svensson, Mr. Olof",male,24,0,0,350035,7.7958,,S
502 | 501,0,3,"Calic, Mr. Petar",male,17,0,0,315086,8.6625,,S
503 | 502,0,3,"Canavan, Miss. Mary",female,21,0,0,364846,7.75,,Q
504 | 503,0,3,"O'Sullivan, Miss. Bridget Mary",female,,0,0,330909,7.6292,,Q
505 | 504,0,3,"Laitinen, Miss. Kristina Sofia",female,37,0,0,4135,9.5875,,S
506 | 505,1,1,"Maioni, Miss. Roberta",female,16,0,0,110152,86.5,B79,S
507 | 506,0,1,"Penasco y Castellana, Mr. Victor de Satode",male,18,1,0,PC 17758,108.9,C65,C
508 | 507,1,2,"Quick, Mrs. Frederick Charles (Jane Richards)",female,33,0,2,26360,26,,S
509 | 508,1,1,"Bradley, Mr. George (""George Arthur Brayton"")",male,,0,0,111427,26.55,,S
510 | 509,0,3,"Olsen, Mr. Henry Margido",male,28,0,0,C 4001,22.525,,S
511 | 510,1,3,"Lang, Mr. Fang",male,26,0,0,1601,56.4958,,S
512 | 511,1,3,"Daly, Mr. Eugene Patrick",male,29,0,0,382651,7.75,,Q
513 | 512,0,3,"Webber, Mr. James",male,,0,0,SOTON/OQ 3101316,8.05,,S
514 | 513,1,1,"McGough, Mr. James Robert",male,36,0,0,PC 17473,26.2875,E25,S
515 | 514,1,1,"Rothschild, Mrs. Martin (Elizabeth L. Barrett)",female,54,1,0,PC 17603,59.4,,C
516 | 515,0,3,"Coleff, Mr. Satio",male,24,0,0,349209,7.4958,,S
517 | 516,0,1,"Walker, Mr. William Anderson",male,47,0,0,36967,34.0208,D46,S
518 | 517,1,2,"Lemore, Mrs. (Amelia Milley)",female,34,0,0,C.A. 34260,10.5,F33,S
519 | 518,0,3,"Ryan, Mr. Patrick",male,,0,0,371110,24.15,,Q
520 | 519,1,2,"Angle, Mrs. William A (Florence ""Mary"" Agnes Hughes)",female,36,1,0,226875,26,,S
521 | 520,0,3,"Pavlovic, Mr. Stefo",male,32,0,0,349242,7.8958,,S
522 | 521,1,1,"Perreault, Miss. Anne",female,30,0,0,12749,93.5,B73,S
523 | 522,0,3,"Vovk, Mr. Janko",male,22,0,0,349252,7.8958,,S
524 | 523,0,3,"Lahoud, Mr. Sarkis",male,,0,0,2624,7.225,,C
525 | 524,1,1,"Hippach, Mrs. Louis Albert (Ida Sophia Fischer)",female,44,0,1,111361,57.9792,B18,C
526 | 525,0,3,"Kassem, Mr. Fared",male,,0,0,2700,7.2292,,C
527 | 526,0,3,"Farrell, Mr. James",male,40.5,0,0,367232,7.75,,Q
528 | 527,1,2,"Ridsdale, Miss. Lucy",female,50,0,0,W./C. 14258,10.5,,S
529 | 528,0,1,"Farthing, Mr. John",male,,0,0,PC 17483,221.7792,C95,S
530 | 529,0,3,"Salonen, Mr. Johan Werner",male,39,0,0,3101296,7.925,,S
531 | 530,0,2,"Hocking, Mr. Richard George",male,23,2,1,29104,11.5,,S
532 | 531,1,2,"Quick, Miss. Phyllis May",female,2,1,1,26360,26,,S
533 | 532,0,3,"Toufik, Mr. Nakli",male,,0,0,2641,7.2292,,C
534 | 533,0,3,"Elias, Mr. Joseph Jr",male,17,1,1,2690,7.2292,,C
535 | 534,1,3,"Peter, Mrs. Catherine (Catherine Rizk)",female,,0,2,2668,22.3583,,C
536 | 535,0,3,"Cacic, Miss. Marija",female,30,0,0,315084,8.6625,,S
537 | 536,1,2,"Hart, Miss. Eva Miriam",female,7,0,2,F.C.C. 13529,26.25,,S
538 | 537,0,1,"Butt, Major. Archibald Willingham",male,45,0,0,113050,26.55,B38,S
539 | 538,1,1,"LeRoy, Miss. Bertha",female,30,0,0,PC 17761,106.425,,C
540 | 539,0,3,"Risien, Mr. Samuel Beard",male,,0,0,364498,14.5,,S
541 | 540,1,1,"Frolicher, Miss. Hedwig Margaritha",female,22,0,2,13568,49.5,B39,C
542 | 541,1,1,"Crosby, Miss. Harriet R",female,36,0,2,WE/P 5735,71,B22,S
543 | 542,0,3,"Andersson, Miss. Ingeborg Constanzia",female,9,4,2,347082,31.275,,S
544 | 543,0,3,"Andersson, Miss. Sigrid Elisabeth",female,11,4,2,347082,31.275,,S
545 | 544,1,2,"Beane, Mr. Edward",male,32,1,0,2908,26,,S
546 | 545,0,1,"Douglas, Mr. Walter Donald",male,50,1,0,PC 17761,106.425,C86,C
547 | 546,0,1,"Nicholson, Mr. Arthur Ernest",male,64,0,0,693,26,,S
548 | 547,1,2,"Beane, Mrs. Edward (Ethel Clarke)",female,19,1,0,2908,26,,S
549 | 548,1,2,"Padro y Manent, Mr. Julian",male,,0,0,SC/PARIS 2146,13.8625,,C
550 | 549,0,3,"Goldsmith, Mr. Frank John",male,33,1,1,363291,20.525,,S
551 | 550,1,2,"Davies, Master. John Morgan Jr",male,8,1,1,C.A. 33112,36.75,,S
552 | 551,1,1,"Thayer, Mr. John Borland Jr",male,17,0,2,17421,110.8833,C70,C
553 | 552,0,2,"Sharp, Mr. Percival James R",male,27,0,0,244358,26,,S
554 | 553,0,3,"O'Brien, Mr. Timothy",male,,0,0,330979,7.8292,,Q
555 | 554,1,3,"Leeni, Mr. Fahim (""Philip Zenni"")",male,22,0,0,2620,7.225,,C
556 | 555,1,3,"Ohman, Miss. Velin",female,22,0,0,347085,7.775,,S
557 | 556,0,1,"Wright, Mr. George",male,62,0,0,113807,26.55,,S
558 | 557,1,1,"Duff Gordon, Lady. (Lucille Christiana Sutherland) (""Mrs Morgan"")",female,48,1,0,11755,39.6,A16,C
559 | 558,0,1,"Robbins, Mr. Victor",male,,0,0,PC 17757,227.525,,C
560 | 559,1,1,"Taussig, Mrs. Emil (Tillie Mandelbaum)",female,39,1,1,110413,79.65,E67,S
561 | 560,1,3,"de Messemaeker, Mrs. Guillaume Joseph (Emma)",female,36,1,0,345572,17.4,,S
562 | 561,0,3,"Morrow, Mr. Thomas Rowan",male,,0,0,372622,7.75,,Q
563 | 562,0,3,"Sivic, Mr. Husein",male,40,0,0,349251,7.8958,,S
564 | 563,0,2,"Norman, Mr. Robert Douglas",male,28,0,0,218629,13.5,,S
565 | 564,0,3,"Simmons, Mr. John",male,,0,0,SOTON/OQ 392082,8.05,,S
566 | 565,0,3,"Meanwell, Miss. (Marion Ogden)",female,,0,0,SOTON/O.Q. 392087,8.05,,S
567 | 566,0,3,"Davies, Mr. Alfred J",male,24,2,0,A/4 48871,24.15,,S
568 | 567,0,3,"Stoytcheff, Mr. Ilia",male,19,0,0,349205,7.8958,,S
569 | 568,0,3,"Palsson, Mrs. Nils (Alma Cornelia Berglund)",female,29,0,4,349909,21.075,,S
570 | 569,0,3,"Doharr, Mr. Tannous",male,,0,0,2686,7.2292,,C
571 | 570,1,3,"Jonsson, Mr. Carl",male,32,0,0,350417,7.8542,,S
572 | 571,1,2,"Harris, Mr. George",male,62,0,0,S.W./PP 752,10.5,,S
573 | 572,1,1,"Appleton, Mrs. Edward Dale (Charlotte Lamson)",female,53,2,0,11769,51.4792,C101,S
574 | 573,1,1,"Flynn, Mr. John Irwin (""Irving"")",male,36,0,0,PC 17474,26.3875,E25,S
575 | 574,1,3,"Kelly, Miss. Mary",female,,0,0,14312,7.75,,Q
576 | 575,0,3,"Rush, Mr. Alfred George John",male,16,0,0,A/4. 20589,8.05,,S
577 | 576,0,3,"Patchett, Mr. George",male,19,0,0,358585,14.5,,S
578 | 577,1,2,"Garside, Miss. Ethel",female,34,0,0,243880,13,,S
579 | 578,1,1,"Silvey, Mrs. William Baird (Alice Munger)",female,39,1,0,13507,55.9,E44,S
580 | 579,0,3,"Caram, Mrs. Joseph (Maria Elias)",female,,1,0,2689,14.4583,,C
581 | 580,1,3,"Jussila, Mr. Eiriik",male,32,0,0,STON/O 2. 3101286,7.925,,S
582 | 581,1,2,"Christy, Miss. Julie Rachel",female,25,1,1,237789,30,,S
583 | 582,1,1,"Thayer, Mrs. John Borland (Marian Longstreth Morris)",female,39,1,1,17421,110.8833,C68,C
584 | 583,0,2,"Downton, Mr. William James",male,54,0,0,28403,26,,S
585 | 584,0,1,"Ross, Mr. John Hugo",male,36,0,0,13049,40.125,A10,C
586 | 585,0,3,"Paulner, Mr. Uscher",male,,0,0,3411,8.7125,,C
587 | 586,1,1,"Taussig, Miss. Ruth",female,18,0,2,110413,79.65,E68,S
588 | 587,0,2,"Jarvis, Mr. John Denzil",male,47,0,0,237565,15,,S
589 | 588,1,1,"Frolicher-Stehli, Mr. Maxmillian",male,60,1,1,13567,79.2,B41,C
590 | 589,0,3,"Gilinski, Mr. Eliezer",male,22,0,0,14973,8.05,,S
591 | 590,0,3,"Murdlin, Mr. Joseph",male,,0,0,A./5. 3235,8.05,,S
592 | 591,0,3,"Rintamaki, Mr. Matti",male,35,0,0,STON/O 2. 3101273,7.125,,S
593 | 592,1,1,"Stephenson, Mrs. Walter Bertram (Martha Eustis)",female,52,1,0,36947,78.2667,D20,C
594 | 593,0,3,"Elsbury, Mr. William James",male,47,0,0,A/5 3902,7.25,,S
595 | 594,0,3,"Bourke, Miss. Mary",female,,0,2,364848,7.75,,Q
596 | 595,0,2,"Chapman, Mr. John Henry",male,37,1,0,SC/AH 29037,26,,S
597 | 596,0,3,"Van Impe, Mr. Jean Baptiste",male,36,1,1,345773,24.15,,S
598 | 597,1,2,"Leitch, Miss. Jessie Wills",female,,0,0,248727,33,,S
599 | 598,0,3,"Johnson, Mr. Alfred",male,49,0,0,LINE,0,,S
600 | 599,0,3,"Boulos, Mr. Hanna",male,,0,0,2664,7.225,,C
601 | 600,1,1,"Duff Gordon, Sir. Cosmo Edmund (""Mr Morgan"")",male,49,1,0,PC 17485,56.9292,A20,C
602 | 601,1,2,"Jacobsohn, Mrs. Sidney Samuel (Amy Frances Christy)",female,24,2,1,243847,27,,S
603 | 602,0,3,"Slabenoff, Mr. Petco",male,,0,0,349214,7.8958,,S
604 | 603,0,1,"Harrington, Mr. Charles H",male,,0,0,113796,42.4,,S
605 | 604,0,3,"Torber, Mr. Ernst William",male,44,0,0,364511,8.05,,S
606 | 605,1,1,"Homer, Mr. Harry (""Mr E Haven"")",male,35,0,0,111426,26.55,,C
607 | 606,0,3,"Lindell, Mr. Edvard Bengtsson",male,36,1,0,349910,15.55,,S
608 | 607,0,3,"Karaic, Mr. Milan",male,30,0,0,349246,7.8958,,S
609 | 608,1,1,"Daniel, Mr. Robert Williams",male,27,0,0,113804,30.5,,S
610 | 609,1,2,"Laroche, Mrs. Joseph (Juliette Marie Louise Lafargue)",female,22,1,2,SC/Paris 2123,41.5792,,C
611 | 610,1,1,"Shutes, Miss. Elizabeth W",female,40,0,0,PC 17582,153.4625,C125,S
612 | 611,0,3,"Andersson, Mrs. Anders Johan (Alfrida Konstantia Brogren)",female,39,1,5,347082,31.275,,S
613 | 612,0,3,"Jardin, Mr. Jose Neto",male,,0,0,SOTON/O.Q. 3101305,7.05,,S
614 | 613,1,3,"Murphy, Miss. Margaret Jane",female,,1,0,367230,15.5,,Q
615 | 614,0,3,"Horgan, Mr. John",male,,0,0,370377,7.75,,Q
616 | 615,0,3,"Brocklebank, Mr. William Alfred",male,35,0,0,364512,8.05,,S
617 | 616,1,2,"Herman, Miss. Alice",female,24,1,2,220845,65,,S
618 | 617,0,3,"Danbom, Mr. Ernst Gilbert",male,34,1,1,347080,14.4,,S
619 | 618,0,3,"Lobb, Mrs. William Arthur (Cordelia K Stanlick)",female,26,1,0,A/5. 3336,16.1,,S
620 | 619,1,2,"Becker, Miss. Marion Louise",female,4,2,1,230136,39,F4,S
621 | 620,0,2,"Gavey, Mr. Lawrence",male,26,0,0,31028,10.5,,S
622 | 621,0,3,"Yasbeck, Mr. Antoni",male,27,1,0,2659,14.4542,,C
623 | 622,1,1,"Kimball, Mr. Edwin Nelson Jr",male,42,1,0,11753,52.5542,D19,S
624 | 623,1,3,"Nakid, Mr. Sahid",male,20,1,1,2653,15.7417,,C
625 | 624,0,3,"Hansen, Mr. Henry Damsgaard",male,21,0,0,350029,7.8542,,S
626 | 625,0,3,"Bowen, Mr. David John ""Dai""",male,21,0,0,54636,16.1,,S
627 | 626,0,1,"Sutton, Mr. Frederick",male,61,0,0,36963,32.3208,D50,S
628 | 627,0,2,"Kirkland, Rev. Charles Leonard",male,57,0,0,219533,12.35,,Q
629 | 628,1,1,"Longley, Miss. Gretchen Fiske",female,21,0,0,13502,77.9583,D9,S
630 | 629,0,3,"Bostandyeff, Mr. Guentcho",male,26,0,0,349224,7.8958,,S
631 | 630,0,3,"O'Connell, Mr. Patrick D",male,,0,0,334912,7.7333,,Q
632 | 631,1,1,"Barkworth, Mr. Algernon Henry Wilson",male,80,0,0,27042,30,A23,S
633 | 632,0,3,"Lundahl, Mr. Johan Svensson",male,51,0,0,347743,7.0542,,S
634 | 633,1,1,"Stahelin-Maeglin, Dr. Max",male,32,0,0,13214,30.5,B50,C
635 | 634,0,1,"Parr, Mr. William Henry Marsh",male,,0,0,112052,0,,S
636 | 635,0,3,"Skoog, Miss. Mabel",female,9,3,2,347088,27.9,,S
637 | 636,1,2,"Davis, Miss. Mary",female,28,0,0,237668,13,,S
638 | 637,0,3,"Leinonen, Mr. Antti Gustaf",male,32,0,0,STON/O 2. 3101292,7.925,,S
639 | 638,0,2,"Collyer, Mr. Harvey",male,31,1,1,C.A. 31921,26.25,,S
640 | 639,0,3,"Panula, Mrs. Juha (Maria Emilia Ojala)",female,41,0,5,3101295,39.6875,,S
641 | 640,0,3,"Thorneycroft, Mr. Percival",male,,1,0,376564,16.1,,S
642 | 641,0,3,"Jensen, Mr. Hans Peder",male,20,0,0,350050,7.8542,,S
643 | 642,1,1,"Sagesser, Mlle. Emma",female,24,0,0,PC 17477,69.3,B35,C
644 | 643,0,3,"Skoog, Miss. Margit Elizabeth",female,2,3,2,347088,27.9,,S
645 | 644,1,3,"Foo, Mr. Choong",male,,0,0,1601,56.4958,,S
646 | 645,1,3,"Baclini, Miss. Eugenie",female,0.75,2,1,2666,19.2583,,C
647 | 646,1,1,"Harper, Mr. Henry Sleeper",male,48,1,0,PC 17572,76.7292,D33,C
648 | 647,0,3,"Cor, Mr. Liudevit",male,19,0,0,349231,7.8958,,S
649 | 648,1,1,"Simonius-Blumer, Col. Oberst Alfons",male,56,0,0,13213,35.5,A26,C
650 | 649,0,3,"Willey, Mr. Edward",male,,0,0,S.O./P.P. 751,7.55,,S
651 | 650,1,3,"Stanley, Miss. Amy Zillah Elsie",female,23,0,0,CA. 2314,7.55,,S
652 | 651,0,3,"Mitkoff, Mr. Mito",male,,0,0,349221,7.8958,,S
653 | 652,1,2,"Doling, Miss. Elsie",female,18,0,1,231919,23,,S
654 | 653,0,3,"Kalvik, Mr. Johannes Halvorsen",male,21,0,0,8475,8.4333,,S
655 | 654,1,3,"O'Leary, Miss. Hanora ""Norah""",female,,0,0,330919,7.8292,,Q
656 | 655,0,3,"Hegarty, Miss. Hanora ""Nora""",female,18,0,0,365226,6.75,,Q
657 | 656,0,2,"Hickman, Mr. Leonard Mark",male,24,2,0,S.O.C. 14879,73.5,,S
658 | 657,0,3,"Radeff, Mr. Alexander",male,,0,0,349223,7.8958,,S
659 | 658,0,3,"Bourke, Mrs. John (Catherine)",female,32,1,1,364849,15.5,,Q
660 | 659,0,2,"Eitemiller, Mr. George Floyd",male,23,0,0,29751,13,,S
661 | 660,0,1,"Newell, Mr. Arthur Webster",male,58,0,2,35273,113.275,D48,C
662 | 661,1,1,"Frauenthal, Dr. Henry William",male,50,2,0,PC 17611,133.65,,S
663 | 662,0,3,"Badt, Mr. Mohamed",male,40,0,0,2623,7.225,,C
664 | 663,0,1,"Colley, Mr. Edward Pomeroy",male,47,0,0,5727,25.5875,E58,S
665 | 664,0,3,"Coleff, Mr. Peju",male,36,0,0,349210,7.4958,,S
666 | 665,1,3,"Lindqvist, Mr. Eino William",male,20,1,0,STON/O 2. 3101285,7.925,,S
667 | 666,0,2,"Hickman, Mr. Lewis",male,32,2,0,S.O.C. 14879,73.5,,S
668 | 667,0,2,"Butler, Mr. Reginald Fenton",male,25,0,0,234686,13,,S
669 | 668,0,3,"Rommetvedt, Mr. Knud Paust",male,,0,0,312993,7.775,,S
670 | 669,0,3,"Cook, Mr. Jacob",male,43,0,0,A/5 3536,8.05,,S
671 | 670,1,1,"Taylor, Mrs. Elmer Zebley (Juliet Cummins Wright)",female,,1,0,19996,52,C126,S
672 | 671,1,2,"Brown, Mrs. Thomas William Solomon (Elizabeth Catherine Ford)",female,40,1,1,29750,39,,S
673 | 672,0,1,"Davidson, Mr. Thornton",male,31,1,0,F.C. 12750,52,B71,S
674 | 673,0,2,"Mitchell, Mr. Henry Michael",male,70,0,0,C.A. 24580,10.5,,S
675 | 674,1,2,"Wilhelms, Mr. Charles",male,31,0,0,244270,13,,S
676 | 675,0,2,"Watson, Mr. Ennis Hastings",male,,0,0,239856,0,,S
677 | 676,0,3,"Edvardsson, Mr. Gustaf Hjalmar",male,18,0,0,349912,7.775,,S
678 | 677,0,3,"Sawyer, Mr. Frederick Charles",male,24.5,0,0,342826,8.05,,S
679 | 678,1,3,"Turja, Miss. Anna Sofia",female,18,0,0,4138,9.8417,,S
680 | 679,0,3,"Goodwin, Mrs. Frederick (Augusta Tyler)",female,43,1,6,CA 2144,46.9,,S
681 | 680,1,1,"Cardeza, Mr. Thomas Drake Martinez",male,36,0,1,PC 17755,512.3292,B51 B53 B55,C
682 | 681,0,3,"Peters, Miss. Katie",female,,0,0,330935,8.1375,,Q
683 | 682,1,1,"Hassab, Mr. Hammad",male,27,0,0,PC 17572,76.7292,D49,C
684 | 683,0,3,"Olsvigen, Mr. Thor Anderson",male,20,0,0,6563,9.225,,S
685 | 684,0,3,"Goodwin, Mr. Charles Edward",male,14,5,2,CA 2144,46.9,,S
686 | 685,0,2,"Brown, Mr. Thomas William Solomon",male,60,1,1,29750,39,,S
687 | 686,0,2,"Laroche, Mr. Joseph Philippe Lemercier",male,25,1,2,SC/Paris 2123,41.5792,,C
688 | 687,0,3,"Panula, Mr. Jaako Arnold",male,14,4,1,3101295,39.6875,,S
689 | 688,0,3,"Dakic, Mr. Branko",male,19,0,0,349228,10.1708,,S
690 | 689,0,3,"Fischer, Mr. Eberhard Thelander",male,18,0,0,350036,7.7958,,S
691 | 690,1,1,"Madill, Miss. Georgette Alexandra",female,15,0,1,24160,211.3375,B5,S
692 | 691,1,1,"Dick, Mr. Albert Adrian",male,31,1,0,17474,57,B20,S
693 | 692,1,3,"Karun, Miss. Manca",female,4,0,1,349256,13.4167,,C
694 | 693,1,3,"Lam, Mr. Ali",male,,0,0,1601,56.4958,,S
695 | 694,0,3,"Saad, Mr. Khalil",male,25,0,0,2672,7.225,,C
696 | 695,0,1,"Weir, Col. John",male,60,0,0,113800,26.55,,S
697 | 696,0,2,"Chapman, Mr. Charles Henry",male,52,0,0,248731,13.5,,S
698 | 697,0,3,"Kelly, Mr. James",male,44,0,0,363592,8.05,,S
699 | 698,1,3,"Mullens, Miss. Katherine ""Katie""",female,,0,0,35852,7.7333,,Q
700 | 699,0,1,"Thayer, Mr. John Borland",male,49,1,1,17421,110.8833,C68,C
701 | 700,0,3,"Humblen, Mr. Adolf Mathias Nicolai Olsen",male,42,0,0,348121,7.65,F G63,S
702 | 701,1,1,"Astor, Mrs. John Jacob (Madeleine Talmadge Force)",female,18,1,0,PC 17757,227.525,C62 C64,C
703 | 702,1,1,"Silverthorne, Mr. Spencer Victor",male,35,0,0,PC 17475,26.2875,E24,S
704 | 703,0,3,"Barbara, Miss. Saiide",female,18,0,1,2691,14.4542,,C
705 | 704,0,3,"Gallagher, Mr. Martin",male,25,0,0,36864,7.7417,,Q
706 | 705,0,3,"Hansen, Mr. Henrik Juul",male,26,1,0,350025,7.8542,,S
707 | 706,0,2,"Morley, Mr. Henry Samuel (""Mr Henry Marshall"")",male,39,0,0,250655,26,,S
708 | 707,1,2,"Kelly, Mrs. Florence ""Fannie""",female,45,0,0,223596,13.5,,S
709 | 708,1,1,"Calderhead, Mr. Edward Pennington",male,42,0,0,PC 17476,26.2875,E24,S
710 | 709,1,1,"Cleaver, Miss. Alice",female,22,0,0,113781,151.55,,S
711 | 710,1,3,"Moubarek, Master. Halim Gonios (""William George"")",male,,1,1,2661,15.2458,,C
712 | 711,1,1,"Mayne, Mlle. Berthe Antonine (""Mrs de Villiers"")",female,24,0,0,PC 17482,49.5042,C90,C
713 | 712,0,1,"Klaber, Mr. Herman",male,,0,0,113028,26.55,C124,S
714 | 713,1,1,"Taylor, Mr. Elmer Zebley",male,48,1,0,19996,52,C126,S
715 | 714,0,3,"Larsson, Mr. August Viktor",male,29,0,0,7545,9.4833,,S
716 | 715,0,2,"Greenberg, Mr. Samuel",male,52,0,0,250647,13,,S
717 | 716,0,3,"Soholt, Mr. Peter Andreas Lauritz Andersen",male,19,0,0,348124,7.65,F G73,S
718 | 717,1,1,"Endres, Miss. Caroline Louise",female,38,0,0,PC 17757,227.525,C45,C
719 | 718,1,2,"Troutt, Miss. Edwina Celia ""Winnie""",female,27,0,0,34218,10.5,E101,S
720 | 719,0,3,"McEvoy, Mr. Michael",male,,0,0,36568,15.5,,Q
721 | 720,0,3,"Johnson, Mr. Malkolm Joackim",male,33,0,0,347062,7.775,,S
722 | 721,1,2,"Harper, Miss. Annie Jessie ""Nina""",female,6,0,1,248727,33,,S
723 | 722,0,3,"Jensen, Mr. Svend Lauritz",male,17,1,0,350048,7.0542,,S
724 | 723,0,2,"Gillespie, Mr. William Henry",male,34,0,0,12233,13,,S
725 | 724,0,2,"Hodges, Mr. Henry Price",male,50,0,0,250643,13,,S
726 | 725,1,1,"Chambers, Mr. Norman Campbell",male,27,1,0,113806,53.1,E8,S
727 | 726,0,3,"Oreskovic, Mr. Luka",male,20,0,0,315094,8.6625,,S
728 | 727,1,2,"Renouf, Mrs. Peter Henry (Lillian Jefferys)",female,30,3,0,31027,21,,S
729 | 728,1,3,"Mannion, Miss. Margareth",female,,0,0,36866,7.7375,,Q
730 | 729,0,2,"Bryhl, Mr. Kurt Arnold Gottfrid",male,25,1,0,236853,26,,S
731 | 730,0,3,"Ilmakangas, Miss. Pieta Sofia",female,25,1,0,STON/O2. 3101271,7.925,,S
732 | 731,1,1,"Allen, Miss. Elisabeth Walton",female,29,0,0,24160,211.3375,B5,S
733 | 732,0,3,"Hassan, Mr. Houssein G N",male,11,0,0,2699,18.7875,,C
734 | 733,0,2,"Knight, Mr. Robert J",male,,0,0,239855,0,,S
735 | 734,0,2,"Berriman, Mr. William John",male,23,0,0,28425,13,,S
736 | 735,0,2,"Troupiansky, Mr. Moses Aaron",male,23,0,0,233639,13,,S
737 | 736,0,3,"Williams, Mr. Leslie",male,28.5,0,0,54636,16.1,,S
738 | 737,0,3,"Ford, Mrs. Edward (Margaret Ann Watson)",female,48,1,3,W./C. 6608,34.375,,S
739 | 738,1,1,"Lesurer, Mr. Gustave J",male,35,0,0,PC 17755,512.3292,B101,C
740 | 739,0,3,"Ivanoff, Mr. Kanio",male,,0,0,349201,7.8958,,S
741 | 740,0,3,"Nankoff, Mr. Minko",male,,0,0,349218,7.8958,,S
742 | 741,1,1,"Hawksford, Mr. Walter James",male,,0,0,16988,30,D45,S
743 | 742,0,1,"Cavendish, Mr. Tyrell William",male,36,1,0,19877,78.85,C46,S
744 | 743,1,1,"Ryerson, Miss. Susan Parker ""Suzette""",female,21,2,2,PC 17608,262.375,B57 B59 B63 B66,C
745 | 744,0,3,"McNamee, Mr. Neal",male,24,1,0,376566,16.1,,S
746 | 745,1,3,"Stranden, Mr. Juho",male,31,0,0,STON/O 2. 3101288,7.925,,S
747 | 746,0,1,"Crosby, Capt. Edward Gifford",male,70,1,1,WE/P 5735,71,B22,S
748 | 747,0,3,"Abbott, Mr. Rossmore Edward",male,16,1,1,C.A. 2673,20.25,,S
749 | 748,1,2,"Sinkkonen, Miss. Anna",female,30,0,0,250648,13,,S
750 | 749,0,1,"Marvin, Mr. Daniel Warner",male,19,1,0,113773,53.1,D30,S
751 | 750,0,3,"Connaghton, Mr. Michael",male,31,0,0,335097,7.75,,Q
752 | 751,1,2,"Wells, Miss. Joan",female,4,1,1,29103,23,,S
753 | 752,1,3,"Moor, Master. Meier",male,6,0,1,392096,12.475,E121,S
754 | 753,0,3,"Vande Velde, Mr. Johannes Joseph",male,33,0,0,345780,9.5,,S
755 | 754,0,3,"Jonkoff, Mr. Lalio",male,23,0,0,349204,7.8958,,S
756 | 755,1,2,"Herman, Mrs. Samuel (Jane Laver)",female,48,1,2,220845,65,,S
757 | 756,1,2,"Hamalainen, Master. Viljo",male,0.67,1,1,250649,14.5,,S
758 | 757,0,3,"Carlsson, Mr. August Sigfrid",male,28,0,0,350042,7.7958,,S
759 | 758,0,2,"Bailey, Mr. Percy Andrew",male,18,0,0,29108,11.5,,S
760 | 759,0,3,"Theobald, Mr. Thomas Leonard",male,34,0,0,363294,8.05,,S
761 | 760,1,1,"Rothes, the Countess. of (Lucy Noel Martha Dyer-Edwards)",female,33,0,0,110152,86.5,B77,S
762 | 761,0,3,"Garfirth, Mr. John",male,,0,0,358585,14.5,,S
763 | 762,0,3,"Nirva, Mr. Iisakki Antino Aijo",male,41,0,0,SOTON/O2 3101272,7.125,,S
764 | 763,1,3,"Barah, Mr. Hanna Assi",male,20,0,0,2663,7.2292,,C
765 | 764,1,1,"Carter, Mrs. William Ernest (Lucile Polk)",female,36,1,2,113760,120,B96 B98,S
766 | 765,0,3,"Eklund, Mr. Hans Linus",male,16,0,0,347074,7.775,,S
767 | 766,1,1,"Hogeboom, Mrs. John C (Anna Andrews)",female,51,1,0,13502,77.9583,D11,S
768 | 767,0,1,"Brewe, Dr. Arthur Jackson",male,,0,0,112379,39.6,,C
769 | 768,0,3,"Mangan, Miss. Mary",female,30.5,0,0,364850,7.75,,Q
770 | 769,0,3,"Moran, Mr. Daniel J",male,,1,0,371110,24.15,,Q
771 | 770,0,3,"Gronnestad, Mr. Daniel Danielsen",male,32,0,0,8471,8.3625,,S
772 | 771,0,3,"Lievens, Mr. Rene Aime",male,24,0,0,345781,9.5,,S
773 | 772,0,3,"Jensen, Mr. Niels Peder",male,48,0,0,350047,7.8542,,S
774 | 773,0,2,"Mack, Mrs. (Mary)",female,57,0,0,S.O./P.P. 3,10.5,E77,S
775 | 774,0,3,"Elias, Mr. Dibo",male,,0,0,2674,7.225,,C
776 | 775,1,2,"Hocking, Mrs. Elizabeth (Eliza Needs)",female,54,1,3,29105,23,,S
777 | 776,0,3,"Myhrman, Mr. Pehr Fabian Oliver Malkolm",male,18,0,0,347078,7.75,,S
778 | 777,0,3,"Tobin, Mr. Roger",male,,0,0,383121,7.75,F38,Q
779 | 778,1,3,"Emanuel, Miss. Virginia Ethel",female,5,0,0,364516,12.475,,S
780 | 779,0,3,"Kilgannon, Mr. Thomas J",male,,0,0,36865,7.7375,,Q
781 | 780,1,1,"Robert, Mrs. Edward Scott (Elisabeth Walton McMillan)",female,43,0,1,24160,211.3375,B3,S
782 | 781,1,3,"Ayoub, Miss. Banoura",female,13,0,0,2687,7.2292,,C
783 | 782,1,1,"Dick, Mrs. Albert Adrian (Vera Gillespie)",female,17,1,0,17474,57,B20,S
784 | 783,0,1,"Long, Mr. Milton Clyde",male,29,0,0,113501,30,D6,S
785 | 784,0,3,"Johnston, Mr. Andrew G",male,,1,2,W./C. 6607,23.45,,S
786 | 785,0,3,"Ali, Mr. William",male,25,0,0,SOTON/O.Q. 3101312,7.05,,S
787 | 786,0,3,"Harmer, Mr. Abraham (David Lishin)",male,25,0,0,374887,7.25,,S
788 | 787,1,3,"Sjoblom, Miss. Anna Sofia",female,18,0,0,3101265,7.4958,,S
789 | 788,0,3,"Rice, Master. George Hugh",male,8,4,1,382652,29.125,,Q
790 | 789,1,3,"Dean, Master. Bertram Vere",male,1,1,2,C.A. 2315,20.575,,S
791 | 790,0,1,"Guggenheim, Mr. Benjamin",male,46,0,0,PC 17593,79.2,B82 B84,C
792 | 791,0,3,"Keane, Mr. Andrew ""Andy""",male,,0,0,12460,7.75,,Q
793 | 792,0,2,"Gaskell, Mr. Alfred",male,16,0,0,239865,26,,S
794 | 793,0,3,"Sage, Miss. Stella Anna",female,,8,2,CA. 2343,69.55,,S
795 | 794,0,1,"Hoyt, Mr. William Fisher",male,,0,0,PC 17600,30.6958,,C
796 | 795,0,3,"Dantcheff, Mr. Ristiu",male,25,0,0,349203,7.8958,,S
797 | 796,0,2,"Otter, Mr. Richard",male,39,0,0,28213,13,,S
798 | 797,1,1,"Leader, Dr. Alice (Farnham)",female,49,0,0,17465,25.9292,D17,S
799 | 798,1,3,"Osman, Mrs. Mara",female,31,0,0,349244,8.6833,,S
800 | 799,0,3,"Ibrahim Shawah, Mr. Yousseff",male,30,0,0,2685,7.2292,,C
801 | 800,0,3,"Van Impe, Mrs. Jean Baptiste (Rosalie Paula Govaert)",female,30,1,1,345773,24.15,,S
802 | 801,0,2,"Ponesell, Mr. Martin",male,34,0,0,250647,13,,S
803 | 802,1,2,"Collyer, Mrs. Harvey (Charlotte Annie Tate)",female,31,1,1,C.A. 31921,26.25,,S
804 | 803,1,1,"Carter, Master. William Thornton II",male,11,1,2,113760,120,B96 B98,S
805 | 804,1,3,"Thomas, Master. Assad Alexander",male,0.42,0,1,2625,8.5167,,C
806 | 805,1,3,"Hedman, Mr. Oskar Arvid",male,27,0,0,347089,6.975,,S
807 | 806,0,3,"Johansson, Mr. Karl Johan",male,31,0,0,347063,7.775,,S
808 | 807,0,1,"Andrews, Mr. Thomas Jr",male,39,0,0,112050,0,A36,S
809 | 808,0,3,"Pettersson, Miss. Ellen Natalia",female,18,0,0,347087,7.775,,S
810 | 809,0,2,"Meyer, Mr. August",male,39,0,0,248723,13,,S
811 | 810,1,1,"Chambers, Mrs. Norman Campbell (Bertha Griggs)",female,33,1,0,113806,53.1,E8,S
812 | 811,0,3,"Alexander, Mr. William",male,26,0,0,3474,7.8875,,S
813 | 812,0,3,"Lester, Mr. James",male,39,0,0,A/4 48871,24.15,,S
814 | 813,0,2,"Slemen, Mr. Richard James",male,35,0,0,28206,10.5,,S
815 | 814,0,3,"Andersson, Miss. Ebba Iris Alfrida",female,6,4,2,347082,31.275,,S
816 | 815,0,3,"Tomlin, Mr. Ernest Portage",male,30.5,0,0,364499,8.05,,S
817 | 816,0,1,"Fry, Mr. Richard",male,,0,0,112058,0,B102,S
818 | 817,0,3,"Heininen, Miss. Wendla Maria",female,23,0,0,STON/O2. 3101290,7.925,,S
819 | 818,0,2,"Mallet, Mr. Albert",male,31,1,1,S.C./PARIS 2079,37.0042,,C
820 | 819,0,3,"Holm, Mr. John Fredrik Alexander",male,43,0,0,C 7075,6.45,,S
821 | 820,0,3,"Skoog, Master. Karl Thorsten",male,10,3,2,347088,27.9,,S
822 | 821,1,1,"Hays, Mrs. Charles Melville (Clara Jennings Gregg)",female,52,1,1,12749,93.5,B69,S
823 | 822,1,3,"Lulic, Mr. Nikola",male,27,0,0,315098,8.6625,,S
824 | 823,0,1,"Reuchlin, Jonkheer. John George",male,38,0,0,19972,0,,S
825 | 824,1,3,"Moor, Mrs. (Beila)",female,27,0,1,392096,12.475,E121,S
826 | 825,0,3,"Panula, Master. Urho Abraham",male,2,4,1,3101295,39.6875,,S
827 | 826,0,3,"Flynn, Mr. John",male,,0,0,368323,6.95,,Q
828 | 827,0,3,"Lam, Mr. Len",male,,0,0,1601,56.4958,,S
829 | 828,1,2,"Mallet, Master. Andre",male,1,0,2,S.C./PARIS 2079,37.0042,,C
830 | 829,1,3,"McCormack, Mr. Thomas Joseph",male,,0,0,367228,7.75,,Q
831 | 830,1,1,"Stone, Mrs. George Nelson (Martha Evelyn)",female,62,0,0,113572,80,B28,
832 | 831,1,3,"Yasbeck, Mrs. Antoni (Selini Alexander)",female,15,1,0,2659,14.4542,,C
833 | 832,1,2,"Richards, Master. George Sibley",male,0.83,1,1,29106,18.75,,S
834 | 833,0,3,"Saad, Mr. Amin",male,,0,0,2671,7.2292,,C
835 | 834,0,3,"Augustsson, Mr. Albert",male,23,0,0,347468,7.8542,,S
836 | 835,0,3,"Allum, Mr. Owen George",male,18,0,0,2223,8.3,,S
837 | 836,1,1,"Compton, Miss. Sara Rebecca",female,39,1,1,PC 17756,83.1583,E49,C
838 | 837,0,3,"Pasic, Mr. Jakob",male,21,0,0,315097,8.6625,,S
839 | 838,0,3,"Sirota, Mr. Maurice",male,,0,0,392092,8.05,,S
840 | 839,1,3,"Chip, Mr. Chang",male,32,0,0,1601,56.4958,,S
841 | 840,1,1,"Marechal, Mr. Pierre",male,,0,0,11774,29.7,C47,C
842 | 841,0,3,"Alhomaki, Mr. Ilmari Rudolf",male,20,0,0,SOTON/O2 3101287,7.925,,S
843 | 842,0,2,"Mudd, Mr. Thomas Charles",male,16,0,0,S.O./P.P. 3,10.5,,S
844 | 843,1,1,"Serepeca, Miss. Augusta",female,30,0,0,113798,31,,C
845 | 844,0,3,"Lemberopolous, Mr. Peter L",male,34.5,0,0,2683,6.4375,,C
846 | 845,0,3,"Culumovic, Mr. Jeso",male,17,0,0,315090,8.6625,,S
847 | 846,0,3,"Abbing, Mr. Anthony",male,42,0,0,C.A. 5547,7.55,,S
848 | 847,0,3,"Sage, Mr. Douglas Bullen",male,,8,2,CA. 2343,69.55,,S
849 | 848,0,3,"Markoff, Mr. Marin",male,35,0,0,349213,7.8958,,C
850 | 849,0,2,"Harper, Rev. John",male,28,0,1,248727,33,,S
851 | 850,1,1,"Goldenberg, Mrs. Samuel L (Edwiga Grabowska)",female,,1,0,17453,89.1042,C92,C
852 | 851,0,3,"Andersson, Master. Sigvard Harald Elias",male,4,4,2,347082,31.275,,S
853 | 852,0,3,"Svensson, Mr. Johan",male,74,0,0,347060,7.775,,S
854 | 853,0,3,"Boulos, Miss. Nourelain",female,9,1,1,2678,15.2458,,C
855 | 854,1,1,"Lines, Miss. Mary Conover",female,16,0,1,PC 17592,39.4,D28,S
856 | 855,0,2,"Carter, Mrs. Ernest Courtenay (Lilian Hughes)",female,44,1,0,244252,26,,S
857 | 856,1,3,"Aks, Mrs. Sam (Leah Rosen)",female,18,0,1,392091,9.35,,S
858 | 857,1,1,"Wick, Mrs. George Dennick (Mary Hitchcock)",female,45,1,1,36928,164.8667,,S
859 | 858,1,1,"Daly, Mr. Peter Denis ",male,51,0,0,113055,26.55,E17,S
860 | 859,1,3,"Baclini, Mrs. Solomon (Latifa Qurban)",female,24,0,3,2666,19.2583,,C
861 | 860,0,3,"Razi, Mr. Raihed",male,,0,0,2629,7.2292,,C
862 | 861,0,3,"Hansen, Mr. Claus Peter",male,41,2,0,350026,14.1083,,S
863 | 862,0,2,"Giles, Mr. Frederick Edward",male,21,1,0,28134,11.5,,S
864 | 863,1,1,"Swift, Mrs. Frederick Joel (Margaret Welles Barron)",female,48,0,0,17466,25.9292,D17,S
865 | 864,0,3,"Sage, Miss. Dorothy Edith ""Dolly""",female,,8,2,CA. 2343,69.55,,S
866 | 865,0,2,"Gill, Mr. John William",male,24,0,0,233866,13,,S
867 | 866,1,2,"Bystrom, Mrs. (Karolina)",female,42,0,0,236852,13,,S
868 | 867,1,2,"Duran y More, Miss. Asuncion",female,27,1,0,SC/PARIS 2149,13.8583,,C
869 | 868,0,1,"Roebling, Mr. Washington Augustus II",male,31,0,0,PC 17590,50.4958,A24,S
870 | 869,0,3,"van Melkebeke, Mr. Philemon",male,,0,0,345777,9.5,,S
871 | 870,1,3,"Johnson, Master. Harold Theodor",male,4,1,1,347742,11.1333,,S
872 | 871,0,3,"Balkic, Mr. Cerin",male,26,0,0,349248,7.8958,,S
873 | 872,1,1,"Beckwith, Mrs. Richard Leonard (Sallie Monypeny)",female,47,1,1,11751,52.5542,D35,S
874 | 873,0,1,"Carlsson, Mr. Frans Olof",male,33,0,0,695,5,B51 B53 B55,S
875 | 874,0,3,"Vander Cruyssen, Mr. Victor",male,47,0,0,345765,9,,S
876 | 875,1,2,"Abelson, Mrs. Samuel (Hannah Wizosky)",female,28,1,0,P/PP 3381,24,,C
877 | 876,1,3,"Najib, Miss. Adele Kiamie ""Jane""",female,15,0,0,2667,7.225,,C
878 | 877,0,3,"Gustafsson, Mr. Alfred Ossian",male,20,0,0,7534,9.8458,,S
879 | 878,0,3,"Petroff, Mr. Nedelio",male,19,0,0,349212,7.8958,,S
880 | 879,0,3,"Laleff, Mr. Kristo",male,,0,0,349217,7.8958,,S
881 | 880,1,1,"Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)",female,56,0,1,11767,83.1583,C50,C
882 | 881,1,2,"Shelley, Mrs. William (Imanita Parrish Hall)",female,25,0,1,230433,26,,S
883 | 882,0,3,"Markun, Mr. Johann",male,33,0,0,349257,7.8958,,S
884 | 883,0,3,"Dahlberg, Miss. Gerda Ulrika",female,22,0,0,7552,10.5167,,S
885 | 884,0,2,"Banfield, Mr. Frederick James",male,28,0,0,C.A./SOTON 34068,10.5,,S
886 | 885,0,3,"Sutehall, Mr. Henry Jr",male,25,0,0,SOTON/OQ 392076,7.05,,S
887 | 886,0,3,"Rice, Mrs. William (Margaret Norton)",female,39,0,5,382652,29.125,,Q
888 | 887,0,2,"Montvila, Rev. Juozas",male,27,0,0,211536,13,,S
889 | 888,1,1,"Graham, Miss. Margaret Edith",female,19,0,0,112053,30,B42,S
890 | 889,0,3,"Johnston, Miss. Catherine Helen ""Carrie""",female,,1,2,W./C. 6607,23.45,,S
891 | 890,1,1,"Behr, Mr. Karl Howell",male,26,0,0,111369,30,C148,C
892 | 891,0,3,"Dooley, Mr. Patrick",male,32,0,0,370376,7.75,,Q
893 |
--------------------------------------------------------------------------------