{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import warnings\n", "warnings.simplefilter(action='ignore')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import urllib.request\n", "import os\n", "\n", "import tensorflow as tf\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "from sklearn import preprocessing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1. 数据预处理" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1.1 读取之前下载的数据集" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "file_path = 'data/titanic3.xls'\n", "all_df = pd.read_excel(file_path)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1.2 把需要的字段选取到 DataFrame 中" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "cols = ['survived', 'name', 'pclass', 'sex', 'age', 'sibsp', 'parch', 'fare', 'embarked']\n", "all_df = all_df[cols]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1.3 将数据以随机方式分为训练数据与测试数据" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "total size: 1309\n", "train size: 1028\n", "test size: 281\n" ] } ], "source": [ "mask = np.random.rand(len(all_df)) < 0.8\n", "train_df = all_df[mask]\n", "test_df = all_df[~mask]\n", "\n", "print('total size:', len(all_df))\n", "print('train size:', len(train_df))\n", "print('test size:', len(test_df))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1.4 创建函数进行数据的预处理" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def preprocess_data(raw_df):\n", " df = raw_df.drop(['name'], axis=1)\n", " age_mean = df['age'].mean()\n", " df['age'] = df['age'].fillna(age_mean)\n", " fare_mean = df['fare'].mean()\n", " df['fare'] = df['fare'].fillna(fare_mean)\n", " df['sex'] = df['sex'].map({'female': 0, 'male': 1}).astype(int)\n", " x_one_hot_df = pd.get_dummies(data=df, columns=['embarked'])\n", " \n", " ndarray = x_one_hot_df.values\n", " label = ndarray[:, 0]\n", " features = ndarray[:, 1:]\n", " \n", " minmax_scale = preprocessing.MinMaxScaler(feature_range=(0, 1))\n", " scaled_features = minmax_scale.fit_transform(features)\n", " \n", " return scaled_features, label" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "train_features, train_label = preprocess_data(train_df)\n", "test_features, test_label = preprocess_data(test_df)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2. 建立模型" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "model = tf.keras.models.Sequential([\n", " tf.keras.layers.Dense(units=40, input_dim=9, kernel_initializer='normal', activation='relu'), # 输入层-隐藏层1(40个神经元)\n", " tf.keras.layers.Dense(units=30, kernel_initializer='normal', activation='relu'), # 隐藏层2(30个神经元)\n", " tf.keras.layers.Dense(units=1, kernel_initializer='normal', activation='sigmoid')\n", "])" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "dense (Dense) (None, 40) 400 \n", "_________________________________________________________________\n", "dense_1 (Dense) (None, 30) 1230 \n", "_________________________________________________________________\n", "dense_2 (Dense) (None, 1) 31 \n", "=================================================================\n", "Total params: 1,661\n", "Trainable params: 1,661\n", "Non-trainable params: 0\n", "_________________________________________________________________\n", "None\n" ] } ], "source": [ "print(model.summary())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3. 开始训练" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train on 925 samples, validate on 103 samples\n", "Epoch 1/30\n", " - 1s - loss: 8.1463 - acc: 0.4216 - val_loss: 8.4040 - val_acc: 0.3010\n", "Epoch 2/30\n", " - 0s - loss: 5.3868 - acc: 0.4616 - val_loss: 2.5593 - val_acc: 0.6796\n", "Epoch 3/30\n", " - 0s - loss: 3.1485 - acc: 0.6270 - val_loss: 2.4892 - val_acc: 0.7087\n", "Epoch 4/30\n", " - 0s - loss: 2.4007 - acc: 0.6389 - val_loss: 2.0968 - val_acc: 0.6990\n", "Epoch 5/30\n", " - 0s - loss: 1.9173 - acc: 0.6865 - val_loss: 1.9336 - val_acc: 0.7184\n", "Epoch 6/30\n", " - 0s - loss: 1.6833 - acc: 0.6973 - val_loss: 1.8348 - val_acc: 0.7087\n", "Epoch 7/30\n", " - 0s - loss: 1.5773 - acc: 0.7027 - val_loss: 1.7284 - val_acc: 0.6893\n", "Epoch 8/30\n", " - 0s - loss: 1.4963 - acc: 0.7016 - val_loss: 1.6070 - val_acc: 0.6990\n", "Epoch 9/30\n", " - 0s - loss: 1.4033 - acc: 0.7124 - val_loss: 1.4921 - val_acc: 0.6990\n", "Epoch 10/30\n", " - 0s - loss: 1.3156 - acc: 0.7157 - val_loss: 1.3886 - val_acc: 0.7087\n", "Epoch 11/30\n", " - 0s - loss: 1.2297 - acc: 0.7157 - val_loss: 1.3000 - val_acc: 0.7379\n", "Epoch 12/30\n", " - 0s - loss: 1.1510 - acc: 0.7189 - val_loss: 1.2083 - val_acc: 0.7573\n", "Epoch 13/30\n", " - 0s - loss: 1.0658 - acc: 0.7232 - val_loss: 1.1581 - val_acc: 0.7573\n", "Epoch 14/30\n", " - 0s - loss: 0.9923 - acc: 0.7254 - val_loss: 1.0806 - val_acc: 0.7476\n", "Epoch 15/30\n", " - 0s - loss: 0.9325 - acc: 0.7243 - val_loss: 1.0436 - val_acc: 0.7573\n", "Epoch 16/30\n", " - 0s - loss: 0.8809 - acc: 0.7395 - val_loss: 0.9649 - val_acc: 0.7476\n", "Epoch 17/30\n", " - 0s - loss: 0.8235 - acc: 0.7362 - val_loss: 0.9419 - val_acc: 0.7573\n", "Epoch 18/30\n", " - 0s - loss: 0.7732 - acc: 0.7514 - val_loss: 0.8900 - val_acc: 0.7670\n", "Epoch 19/30\n", " - 0s - loss: 0.7306 - acc: 0.7470 - val_loss: 0.8177 - val_acc: 0.7670\n", "Epoch 20/30\n", " - 0s - loss: 0.6791 - acc: 0.7535 - val_loss: 0.7596 - val_acc: 0.8058\n", "Epoch 21/30\n", " - 0s - loss: 0.6471 - acc: 0.7589 - val_loss: 0.6909 - val_acc: 0.8058\n", "Epoch 22/30\n", " - 0s - loss: 0.6109 - acc: 0.7568 - val_loss: 0.6526 - val_acc: 0.7864\n", "Epoch 23/30\n", " - 0s - loss: 0.5882 - acc: 0.7665 - val_loss: 0.6018 - val_acc: 0.8252\n", "Epoch 24/30\n", " - 0s - loss: 0.5691 - acc: 0.7611 - val_loss: 0.5623 - val_acc: 0.8058\n", "Epoch 25/30\n", " - 0s - loss: 0.5460 - acc: 0.7751 - val_loss: 0.5346 - val_acc: 0.7961\n", "Epoch 26/30\n", " - 0s - loss: 0.5370 - acc: 0.7805 - val_loss: 0.5119 - val_acc: 0.8058\n", "Epoch 27/30\n", " - 0s - loss: 0.5186 - acc: 0.7827 - val_loss: 0.4994 - val_acc: 0.8350\n", "Epoch 28/30\n", " - 0s - loss: 0.5055 - acc: 0.7859 - val_loss: 0.4754 - val_acc: 0.8252\n", "Epoch 29/30\n", " - 0s - loss: 0.5057 - acc: 0.7924 - val_loss: 0.5464 - val_acc: 0.8155\n", "Epoch 30/30\n", " - 0s - loss: 0.5107 - acc: 0.7881 - val_loss: 0.5017 - val_acc: 0.8252\n" ] } ], "source": [ "train_history = model.fit(x=train_features, y=train_label, validation_split=0.1,\n", " epochs=30, batch_size=50, verbose=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4. 以图形显示训练过程" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "def show_train_history(train_history, train, validation):\n", " plt.plot(train_history.history[train])\n", " plt.plot(train_history.history[validation])\n", " plt.title('Train History')\n", " plt.xlabel('Epoch')\n", " plt.ylabel(train)\n", " plt.legend(['train', 'validation'], loc='upper left')\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show_train_history(train_history, 'acc', 'val_acc')" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show_train_history(train_history, 'loss', 'val_loss')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5. 评估模型的准确率" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "281/281 [==============================] - 0s 54us/step\n", "\n", "accuracy: 0.7864768659941243\n" ] } ], "source": [ "scores = model.evaluate(x=test_features, y=test_label)\n", "print()\n", "print('accuracy:', scores[1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6. 加入 Jack 与 Rose 的数据" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 6.1 建立 Jack 与 Rose 的数据" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "jack_data = pd.Series([0, 'Jack', 3, 'male', 23, 1, 0, 5.0000, 'S'])\n", "rose_data = pd.Series([1, 'Rose', 1, 'female', 20, 1, 0, 100.0000, 'S'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 6.2 创建 Jack 与 Rose 的 DataFrame" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "jr_df = pd.DataFrame([list(jack_data), list(rose_data)], \n", " columns=['survived', 'name', 'pclass', 'sex', 'age', 'sibsp', 'parch', 'fare', 'embarked'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 6.3 将 jf_df 加入到 all_df 的最后" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
survivednamepclasssexagesibspparchfareembarked
00Jack3male23.0105.0S
11Rose1female20.010100.0S
\n", "
" ], "text/plain": [ " survived name pclass sex age sibsp parch fare embarked\n", "0 0 Jack 3 male 23.0 1 0 5.0 S\n", "1 1 Rose 1 female 20.0 1 0 100.0 S" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all_df = pd.concat([all_df, jr_df])\n", "all_df[-2:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 7. 进行预测" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 7.1 执行数据预处理" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "all_features, all_label = preprocess_data(all_df)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 7.2 执行预测" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "all_probability = model.predict(all_features)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 7.3 查看预测结果的前10项" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[0.89957434],\n", " [0.830749 ],\n", " [0.9837351 ],\n", " [0.08564571],\n", " [0.9842621 ],\n", " [0.33270726],\n", " [0.8360097 ],\n", " [0.6762183 ],\n", " [0.94551647],\n", " [0.0848799 ]], dtype=float32)" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all_probability[:10]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 7.4 将 all_df 与 all_probability 整合" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "predicted_all_df = all_df\n", "predicted_all_df.insert(len(all_df.columns), 'probability', all_probability)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 7.5 查看 Jack 与 Rose 预测的生存概率" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
survivednamepclasssexagesibspparchfareembarkedprobability
00Jack3male23.0105.0S0.36610
11Rose1female20.010100.0S0.99245
\n", "
" ], "text/plain": [ " survived name pclass sex age sibsp parch fare embarked \\\n", "0 0 Jack 3 male 23.0 1 0 5.0 S \n", "1 1 Rose 1 female 20.0 1 0 100.0 S \n", "\n", " probability \n", "0 0.36610 \n", "1 0.99245 " ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "predicted_all_df[-2:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 8. 查看生存几率高, 却没有存活样例" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
survivednamepclasssexagesibspparchfareembarkedprobability
20Allison, Miss. Helen Loraine1female2.012151.5500S0.983735
40Allison, Mrs. Hudson J C (Bessie Waldo Daniels)1female25.012151.5500S0.984262
250Birnbaum, Mr. Jakob1male25.00026.0000C0.919381
1050Evans, Miss. Edith Corse1female36.00031.6792C0.994296
1690Isham, Miss. Ann Elizabeth1female50.00028.7125C0.985536
2280Penasco y Castellana, Mr. Victor de Satode1male18.010108.9000C0.959834
3650Carter, Mrs. Ernest Courtenay (Lilian Hughes)2female44.01026.0000S0.963926
3690Chapman, Mrs. John Henry (Sara Elizabeth Lawry)2female29.01026.0000S0.991723
3810Corbett, Mrs. Walter H (Irene Colvin)2female30.00013.0000S0.973334
3820Corey, Mrs. Percy C (Mary Phyllis Elizabeth Mi...2femaleNaN0021.0000S0.970802
4110Funk, Miss. Annie Clemmer2female38.00013.0000S0.944132
4450Hiltunen, Miss. Marta2female18.01113.0000S0.992682
4470Hocking, Mr. Richard George2male23.02111.5000S0.936573
4680Karnes, Mrs. J Frank (Claire Bennett)2female22.00021.0000S0.994749
4750Lahtinen, Mrs. William (Anna Sylfven)2female26.01126.0000S0.993371
5750Turpin, Mrs. William John Robert (Dorothy Ann ...2female27.01021.0000S0.995280
5990Yrois, Miss. Henriette (\"Mrs Harbeck\")2female24.00013.0000S0.993216
6500Attalah, Miss. Malake3female17.00014.4583C0.910254
13040Zabour, Miss. Hileni3female14.51014.4542C0.921603
\n", "
" ], "text/plain": [ " survived name pclass \\\n", "2 0 Allison, Miss. Helen Loraine 1 \n", "4 0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) 1 \n", "25 0 Birnbaum, Mr. Jakob 1 \n", "105 0 Evans, Miss. Edith Corse 1 \n", "169 0 Isham, Miss. Ann Elizabeth 1 \n", "228 0 Penasco y Castellana, Mr. Victor de Satode 1 \n", "365 0 Carter, Mrs. Ernest Courtenay (Lilian Hughes) 2 \n", "369 0 Chapman, Mrs. John Henry (Sara Elizabeth Lawry) 2 \n", "381 0 Corbett, Mrs. Walter H (Irene Colvin) 2 \n", "382 0 Corey, Mrs. Percy C (Mary Phyllis Elizabeth Mi... 2 \n", "411 0 Funk, Miss. Annie Clemmer 2 \n", "445 0 Hiltunen, Miss. Marta 2 \n", "447 0 Hocking, Mr. Richard George 2 \n", "468 0 Karnes, Mrs. J Frank (Claire Bennett) 2 \n", "475 0 Lahtinen, Mrs. William (Anna Sylfven) 2 \n", "575 0 Turpin, Mrs. William John Robert (Dorothy Ann ... 2 \n", "599 0 Yrois, Miss. Henriette (\"Mrs Harbeck\") 2 \n", "650 0 Attalah, Miss. Malake 3 \n", "1304 0 Zabour, Miss. Hileni 3 \n", "\n", " sex age sibsp parch fare embarked probability \n", "2 female 2.0 1 2 151.5500 S 0.983735 \n", "4 female 25.0 1 2 151.5500 S 0.984262 \n", "25 male 25.0 0 0 26.0000 C 0.919381 \n", "105 female 36.0 0 0 31.6792 C 0.994296 \n", "169 female 50.0 0 0 28.7125 C 0.985536 \n", "228 male 18.0 1 0 108.9000 C 0.959834 \n", "365 female 44.0 1 0 26.0000 S 0.963926 \n", "369 female 29.0 1 0 26.0000 S 0.991723 \n", "381 female 30.0 0 0 13.0000 S 0.973334 \n", "382 female NaN 0 0 21.0000 S 0.970802 \n", "411 female 38.0 0 0 13.0000 S 0.944132 \n", "445 female 18.0 1 1 13.0000 S 0.992682 \n", "447 male 23.0 2 1 11.5000 S 0.936573 \n", "468 female 22.0 0 0 21.0000 S 0.994749 \n", "475 female 26.0 1 1 26.0000 S 0.993371 \n", "575 female 27.0 1 0 21.0000 S 0.995280 \n", "599 female 24.0 0 0 13.0000 S 0.993216 \n", "650 female 17.0 0 0 14.4583 C 0.910254 \n", "1304 female 14.5 1 0 14.4542 C 0.921603 " ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "predicted_all_df[(predicted_all_df['survived']==0) & (predicted_all_df['probability'] > 0.9)]" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
survivednamepclasssexagesibspparchfareembarkedprobability
01Allen, Miss. Elisabeth Walton1female29.000000211.3375S0.899574
11Allison, Master. Hudson Trevor1male0.916712151.5500S0.830749
20Allison, Miss. Helen Loraine1female2.000012151.5500S0.983735
30Allison, Mr. Hudson Joshua Creighton1male30.000012151.5500S0.085646
40Allison, Mrs. Hudson J C (Bessie Waldo Daniels)1female25.000012151.5500S0.984262
\n", "
" ], "text/plain": [ " survived name pclass sex \\\n", "0 1 Allen, Miss. Elisabeth Walton 1 female \n", "1 1 Allison, Master. Hudson Trevor 1 male \n", "2 0 Allison, Miss. Helen Loraine 1 female \n", "3 0 Allison, Mr. Hudson Joshua Creighton 1 male \n", "4 0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) 1 female \n", "\n", " age sibsp parch fare embarked probability \n", "0 29.0000 0 0 211.3375 S 0.899574 \n", "1 0.9167 1 2 151.5500 S 0.830749 \n", "2 2.0000 1 2 151.5500 S 0.983735 \n", "3 30.0000 1 2 151.5500 S 0.085646 \n", "4 25.0000 1 2 151.5500 S 0.984262 " ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "predicted_all_df[:5]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "tensorflow-keras-practice", "language": "python", "name": "tensorflow-keras-practice" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }