Files
machine_learning_projects/购物评论 情感分类/泰坦尼克.ipynb
T
吴沂钊 29098aca79 平时作业
Signed-off-by: 吴沂钊 <13190667+Yizhao_Wu4926@user.noreply.gitee.com>
2023-07-15 14:50:33 +00:00

699 lines
98 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "code",
"execution_count": 3,
"id": "e53fa4f2-4529-4db9-affe-3075c1a251ec",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"plt.rcParams['font.family'] = ['serif', 'SimSun']\n",
"plt.rcParams['mathtext.fontset'] = 'cm'"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "69d54897-4b78-418f-940f-ec075be5a62b",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>PassengerId</th>\n",
" <th>Survived</th>\n",
" <th>Pclass</th>\n",
" <th>Age</th>\n",
" <th>SibSp</th>\n",
" <th>Parch</th>\n",
" <th>Fare</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>891.000000</td>\n",
" <td>891.000000</td>\n",
" <td>891.000000</td>\n",
" <td>714.000000</td>\n",
" <td>891.000000</td>\n",
" <td>891.000000</td>\n",
" <td>891.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>446.000000</td>\n",
" <td>0.383838</td>\n",
" <td>2.308642</td>\n",
" <td>29.699118</td>\n",
" <td>0.523008</td>\n",
" <td>0.381594</td>\n",
" <td>32.204208</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>257.353842</td>\n",
" <td>0.486592</td>\n",
" <td>0.836071</td>\n",
" <td>14.526497</td>\n",
" <td>1.102743</td>\n",
" <td>0.806057</td>\n",
" <td>49.693429</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.420000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>223.500000</td>\n",
" <td>0.000000</td>\n",
" <td>2.000000</td>\n",
" <td>20.125000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>7.910400</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>446.000000</td>\n",
" <td>0.000000</td>\n",
" <td>3.000000</td>\n",
" <td>28.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>14.454200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>668.500000</td>\n",
" <td>1.000000</td>\n",
" <td>3.000000</td>\n",
" <td>38.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" <td>31.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>891.000000</td>\n",
" <td>1.000000</td>\n",
" <td>3.000000</td>\n",
" <td>80.000000</td>\n",
" <td>8.000000</td>\n",
" <td>6.000000</td>\n",
" <td>512.329200</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" PassengerId Survived Pclass Age SibSp \\\n",
"count 891.000000 891.000000 891.000000 714.000000 891.000000 \n",
"mean 446.000000 0.383838 2.308642 29.699118 0.523008 \n",
"std 257.353842 0.486592 0.836071 14.526497 1.102743 \n",
"min 1.000000 0.000000 1.000000 0.420000 0.000000 \n",
"25% 223.500000 0.000000 2.000000 20.125000 0.000000 \n",
"50% 446.000000 0.000000 3.000000 28.000000 0.000000 \n",
"75% 668.500000 1.000000 3.000000 38.000000 1.000000 \n",
"max 891.000000 1.000000 3.000000 80.000000 8.000000 \n",
"\n",
" Parch Fare \n",
"count 891.000000 891.000000 \n",
"mean 0.381594 32.204208 \n",
"std 0.806057 49.693429 \n",
"min 0.000000 0.000000 \n",
"25% 0.000000 7.910400 \n",
"50% 0.000000 14.454200 \n",
"75% 0.000000 31.000000 \n",
"max 6.000000 512.329200 "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_base = pd.read_csv(\"train.csv\")\n",
"df = df_base.copy()\n",
"df.describe()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "3ef51cf7-195f-4fc2-8700-1d047e668710",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\LE\\AppData\\Local\\Temp\\ipykernel_4260\\58784124.py:10: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" df[col] = encoder.fit_transform(df[col])\n",
"C:\\Users\\LE\\AppData\\Local\\Temp\\ipykernel_4260\\58784124.py:10: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" df[col] = encoder.fit_transform(df[col])\n",
"C:\\Users\\LE\\AppData\\Local\\Temp\\ipykernel_4260\\58784124.py:12: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" df['Age'] = df['Age'].fillna(int(df['Age'].mean()))\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Pclass</th>\n",
" <th>Sex</th>\n",
" <th>Age</th>\n",
" <th>SibSp</th>\n",
" <th>Parch</th>\n",
" <th>Fare</th>\n",
" <th>Embarked</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>22.0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>7.2500</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>38.0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>71.2833</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>26.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>7.9250</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>35.0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>53.1000</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>35.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>8.0500</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>886</th>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>27.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>13.0000</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>887</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>19.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>30.0000</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>888</th>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>29.0</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>23.4500</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>889</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>26.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>30.0000</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>890</th>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>32.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>7.7500</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>891 rows × 7 columns</p>\n",
"</div>"
],
"text/plain": [
" Pclass Sex Age SibSp Parch Fare Embarked\n",
"0 3 1 22.0 1 0 7.2500 2\n",
"1 1 0 38.0 1 0 71.2833 0\n",
"2 3 0 26.0 0 0 7.9250 2\n",
"3 1 0 35.0 1 0 53.1000 2\n",
"4 3 1 35.0 0 0 8.0500 2\n",
".. ... ... ... ... ... ... ...\n",
"886 2 1 27.0 0 0 13.0000 2\n",
"887 1 0 19.0 0 0 30.0000 2\n",
"888 3 0 29.0 1 2 23.4500 2\n",
"889 1 1 26.0 0 0 30.0000 0\n",
"890 3 1 32.0 0 0 7.7500 1\n",
"\n",
"[891 rows x 7 columns]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cols = ['Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare', 'Embarked']\n",
"df = df_base[cols]\n",
"y = df_base['Survived']\n",
"\n",
"from sklearn.preprocessing import LabelEncoder\n",
"label_encoders = {}\n",
"for col in cols:\n",
" if df[col].dtype == 'object':\n",
" encoder = LabelEncoder()\n",
" df[col] = encoder.fit_transform(df[col])\n",
" label_encoders[col] = encoder\n",
"df['Age'] = df['Age'].fillna(int(df['Age'].mean()))\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "35670fc9-8bef-4d34-8499-7efb66e4d14d",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"from sklearn.preprocessing import StandardScaler\n",
"std_scaler = StandardScaler()\n",
"X = std_scaler.fit_transform(df)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "fa90635f-3899-4fd2-86f5-1125a13942c8",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"from sklearn.model_selection import train_test_split\n",
"X_train, X_test = train_test_split(X, test_size=0.3, random_state=42)\n",
"y_train, y_test = train_test_split(y, test_size=0.3, random_state=42)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "2f01cec1-bed4-481f-814c-930f2da56d55",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'SGD': 0.7625290322580646, 'tree': 0.7737290322580646, 'kneighbor': 0.7913032258064516, 'forest': 0.7898451612903227, 'svc': 0.8234193548387096, 'log': 0.7993161290322581}\n"
]
}
],
"source": [
"from sklearn.model_selection import cross_val_score\n",
"from sklearn.linear_model import SGDClassifier\n",
"from sklearn.tree import DecisionTreeClassifier\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"from sklearn.svm import SVC\n",
"from sklearn.linear_model import LogisticRegression\n",
"models = {}\n",
"fold_scores = {}\n",
"sgd = SGDClassifier(); models['sgd'] = sgd\n",
"fold_scores['SGD'] = np.mean(cross_val_score(sgd, X_train, y_train))\n",
"tree = DecisionTreeClassifier(); models['tree'] = tree\n",
"fold_scores['tree'] = np.mean(cross_val_score(tree, X_train, y_train))\n",
"kneighbor = KNeighborsClassifier(); models['kneighbor'] = kneighbor\n",
"fold_scores['kneighbor'] = np.mean(cross_val_score(kneighbor, X_train, y_train))\n",
"forest = RandomForestClassifier(); models['forest'] = forest\n",
"fold_scores['forest'] = np.mean(cross_val_score(forest, X_train, y_train))\n",
"svc = SVC(); models['svc'] = svc\n",
"fold_scores['svc'] = np.mean(cross_val_score(svc, X_train, y_train))\n",
"logistic = LogisticRegression(); models['log'] = logistic\n",
"fold_scores['log'] = np.mean(cross_val_score(logistic, X_train, y_train))\n",
"print(fold_scores)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "08243392-e962-4a6b-8b0d-90c01c60d15c",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"image/png": "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ERERUd0xKjQUFBQAANRqtaxcrVZL86oihMCiRYuwcOFCPPHEEzVqc8mSJbCzs5NeTk5OxgyFiIiIjGRUaLCxsQFw/1/5D9Lr9dK8qoSGhuLJJ5/EG2+8UeM258+fj5ycHOl15coVxeMgIiIi41kYU9nBwQF2dnbIyMiQlWdkZKB9+/ZVLrtu3TqcPHkS3377ba20qVary+2dICIiorpj9ImQPj4+iIuLk6aFEDh16hR8fX0rXWbHjh3YuXMn9uzZAysrKyQnJ8tOcjSlTSIiIqpfRoeGkJAQHDp0CBcuXAAAhIeHw9zcHEFBQQCA4OBgjB8/Xqp/4MABhISE4N1330V8fDzi4uLwww8/ICYmRnGbRERE1PCMOjwBAL169UJYWBgCAwNhbW0NlUqFiIgI2NraAgAKCwthMBik+sHBwcjKyoKPj4+snQULFihuk4iIiBqe0aEBAAICAhAQEFDhvB07dsimb968WeM2iYiIqOHxgVVERESkCEMDERERKcLQQERERIowNBAREZEiDA1ERESkCEMDERERKcLQQERERIowNBAREZEiDA1ERESkCEMDERERKcLQQERERIowNBAREZEiDA1ERESkCEMDERERKcLQQERERIowNBAREZEiDA1ERESkCEMDERERKcLQQERERIowNBAREZEiDA1ERESkCEMDERERKcLQQERERIowNBAREZEiDA1ERESkCEMDERERKcLQQERERIowNBAREZEiJoWGvXv3wsPDA97e3tBqtYiPj6+yfmlpKT777DNYW1vjyJEj5eaHhoaiR48e0Ol00mvkyJGmdI2IiIjqiIWxC8TGxmLChAmIi4uDRqPBli1b4Ofnh4SEBNja2parf/v2bYwaNQodOnRAYWFhpe2uWLECOp3O2O4QERFRPTF6T8PSpUvh7+8PjUYDABg3bhyKi4sRFhZWYf27d+9i6dKleOutt2rWUyIiImpQRoeGqKgoeHp6/tmASoWePXsiMjKywvpt27aFh4eH6T0kIiKivwSjQkN2djZycnLg6OgoK3d0dERycnKNOrJx40bodDr069cPQUFBSEpKqlF7REREVLuMCg0FBQUAALVaLStXq9XSPFM4OzvD3d0dkZGROHbsGNq1a4eePXvi2rVrlS6j1+uRm5srexEREVHdMSo02NjYALj/B/tBer1emmeKSZMmYfbs2bCw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pHB3dxc9evSol22hus+9pr9l169fF6NGjZK2mddee03o9XohhBAzZ84UrVq1Eq1atRJz5swRiYmJonfv3rLvUGVOnDgh1W3fvr3o3bu37GVlZSV+++03WXvx8fFi/Pjx0ue4bNkyER4eLjQajVCr1UKr1YrExETp/Vi+fLkYMmRIhZ/H2bNnRf/+/YVGoxEjRowQc+fOlfX7wbGVXVFX9n6Utd+9e3fx3XffiUWLFgkHBwdha2srRowYIYS4fyXOq6++KjQajdDpdGLYsGGyK1YMBoOYPn26cHJyEgMHDhQhISFiwIAB0vZZm/hobKJ6cPv2bTRr1kw6pllaWorHHnsMkZGR6NevXwP3jv5qzMzM8OOPP8pOGib6K+DhCaJ6sHjxYmzbtk2a3rBhA5ydneHp6dmAvSIiMg5DA1E98PX1xbp166DT6dC/f3/s378fBw4ckO6sSAT8eUdI4P6dAffu3duwHSJ6CA9PEBERkSLc00BERESKMDQQERGRIgwNREREpAhDAxERESnC0EBERESKMDQQERGRIgwNREREpAhDAxERESnC0EBERESK/H9pV7aXQpj/5QAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 600x300 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"forest.fit(X_train, y_train)\n",
"importances = np.asarray(sorted(zip(forest.feature_importances_, cols), key=lambda x: x[0], reverse=True))\n",
"plt.figure(figsize=(6,3))\n",
"plt.bar(importances[:,1], importances[:,0].astype('float32'), label='重要度')\n",
"plt.title(\"参数重要度\")\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "ad208a89-4068-41d0-9c3a-359f77897370",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sgd训练集准确率: 0.68240, 测试集准确率: 0.73874\n",
"tree训练集准确率: 0.99539, 测试集准确率: 0.69811\n",
"kneighbor训练集准确率: 0.83902, 测试集准确率: 0.79348\n",
"forest训练集准确率: 0.98643, 测试集准确率: 0.76699\n",
"svc训练集准确率: 0.86486, 测试集准确率: 0.84444\n",
"log训练集准确率: 0.74882, 测试集准确率: 0.80198\n"
]
}
],
"source": [
"from sklearn.metrics import precision_score\n",
"for name, model in models.items():\n",
" model.fit(X_train, y_train)\n",
" train_pred = model.predict(X_train)\n",
" print(name+\"训练集准确率:\", f\"{precision_score(y_train, train_pred):.5f}\", end=', ')\n",
" test_pred = model.predict(X_test)\n",
" print(\"测试集准确率:\", f\"{precision_score(y_test, test_pred):.5f}\")"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "267d9096-cbf6-4180-99ae-352c4a549371",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA0UAAAGbCAYAAAALLDvDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABaCUlEQVR4nO3de5xN9f7H8feeu3EZUxi55FLuw7iTKTO5ljgVKiHX06EmuSSZLghzhuMuitLFrURJyKkIp0gJlSTkMsllGGIYwx4ze/3+8LNrZzAze9trz6zX8zzW47TX97vXfJfjzLvPWt/1XTbDMAwBAAAAgEX5mT0AAAAAADATRREAAAAAS6MoAgAAAGBpFEUAAAAALI2iCAAAAIClURQBAAAAsDSKIgAAAACWRlEEAAAAwNIoigAAAABYGkURAAAAAEujKAIAeM2PP/6oLl26qHbt2qpbt67q1KmjJk2aaNCgQdq6dat69OihUqVKyWazqVKlSnrhhReuOEarVq1UokQJlStXTsOHD3fut9vtmj59uqKjo1WvXj3VqVNHderU0YMPPqg5c+YoOTnZm6cKAMhHAsweAADAGn766Sc1bdpUcXFxmjdvnoKCgiRJq1ev1gMPPKAiRYpo3rx5WrZsmR588EE98MADSkhIuOI4a9asUd26dfXmm2+qQYMGkqRjx46pXbt2Cg8P18KFC1WxYkVJUlpamiZOnKjHH39cMTExWr9+vbdOFwCQj9gMwzDMHgQAoOAbOnSoJk2apNOnTyssLMyl7emnn1axYsU0duxYZWZmqly5csrMzNSRI0ecxdNlW7duVd++ffXDDz8498XExOi3337Tzp07FRoaesXP7t27tw4cOEBRBADIFtPnAABekZmZKUlKSkq6oi0hIUFDhw6VJAUEBOixxx7TyZMn9fHHH1/R980331Tfvn2dnz/99FN9+eWX6t+/f7YFkSQNHDhQLVq08MBZAAAKIooiAIBXtGrVSpJ0//3366233tKZM2ecbUWLFlXx4sWdny8XPW+++abLMc6fP6+lS5eqW7duzn0rVqyQJDVr1uyqP7tu3boaMWKE2+cAACiYKIoAAF7Rvn17JSYm6tixY+rbt69KlCihli1b6rXXXlNqaqpL3+rVq+uOO+7Q6tWrdfDgQef+Dz/8UHfffbduuukm574DBw5IkkqXLu2dEwEAFDgURQAArxk+fLiOHDmiWbNmqU2bNtq0aZOefPJJ3XbbbVq3bp1L3759+8rhcOidd95x7vv71DkAADyBoggA4FXh4eHq16+fVq5cqZSUFM2YMUNpaWnq0aOHS79HHnlERYoU0dtvvy3DMLRv3z799ttvatmypUu/SpUqSRJLbgMA8oyiCADgFVu2bNG3337rsq9w4cKKi4vTY489pkOHDun48ePOtiJFiuihhx5SUlKSvvjiC7311lvq1auXbDabyzHat28vSdq0adNVf/b+/fv1+eefiwVXAQDZoSgCAHjFypUrNXny5Gzb/P39FRQUpGLFirnsvzxV7vXXX9f8+fPVq1evK7577733qkWLFpo9e7bOnz9/RbthGOratatee+21KwoqAAAkiiIAgBd9+OGHev/9913u2Hz22WdasGCB+vXrp5CQEJf+0dHRql69upYsWaKaNWvq1ltvzfa4ixcv1s0336z7779fv/32m3N/SkqKevbsqRMnTmjatGk35qQAAPkeL28FAHjF7t27tWDBAq1du1anT59WQECAzpw5oxIlSqh79+566qmn5O/vf8X3JkyYoGHDhmnx4sV66KGHrnp8u92uV199Ve+9954uXLggP79L1/06dOiggQMHqkSJEjfs3AAA+RtFEQAAAABLY/ocAAAAAEujKAIAAABgaRRFAAAAACyNoggAAACApVEUAQAAALA0iiIAAAAAlhZg9gDg+ypWrKjQ0FAFBQVJktLS0rRv3z6VL19eN910kyQpIyND6enpSkpK8tjPXbZsmXr16qU1a9aoYcOGbh/v/PnzuuOOO5ScnKxjx46pRo0aCgoK0sWLF+VwONSsWTP961//UpMmTfL8M6ZOnaqKFSvqgQcecHu87ho1apRiY2MVGxtr9lAA4IYzI6tOnz6tqVOn6oEHHlDdunWv2ZcMAnycAVxHhQoVjAMHDjg/r1u3zpBkvP322859Bw4cMCpUqODRn/vFF18YderUMX7++WePHnfkyJGGJJdzOn78uPH8888b/v7+xoABAwyHw5GnY1eoUMHo2bOnZwbqJknGyJEjzR4GAHiFGVl14MCBK37G9ZBBgG/iThGuKyYmRoUKFbpmn0KFCikmJsajP7dFixb68ccfPXrMqylZsqQSEhJUqVIlPf7447r55ps1cuRIr/xsAID7zMoqTyCDAPPxTBGua+7cuYqIiLhmn4iICM2dO1cLFy5U3bp1ZbPZNGLECI0aNUrNmjVTWFiYihcvLkn64Ycf1LVrV0VFRalevXqqW7euxowZo4yMDOfxZs6cqZo1a8pms+mdd96RJK1bt05169ZVUFCQevXqpVdeeUV33nmnypYtqw4dOig5Odntc/3nP/+p2rVra/z48frjjz+c+xMTE9WkSRM1bNhQUVFRatu2rbZt2+Zs3717t+rWrasjR45o+fLlqlu3rurWrat58+bl+Jwl6bvvvlOrVq1Ut25d1atXT9HR0ZowYYJLnzNnzujpp59WxYoVVb16ddWqVUuvvvqqs/3yn5MkzZo1yzmWNWvWuP3nAwC+KjdZJUkLFy5UVFSUqlatqooVK6pv3746ceKES/93331XDRs2VP369VWnTh21b99ey5Ytc36/Xbt2kqQRI0Y4f9fu3Lkzz+dABgEmMvtWFfKf7KYk/J0ko0yZMsaKFSsMwzCM/fv3G+Hh4YZhGEZiYqLRpUsXw263G4ZhGCdPnjTuuOMOY8iQIS7HuNq0hAoVKhhlypQxFixYYBiGYfzxxx9G5cqVjcceeyxH489u6sJfPffcc4YkY8mSJc59xYoVM7777jvn53fffdcoVqyYcejQoSvGlt3UhZyc89mzZ42bbrrJePPNN537PvzwQ+Ov/zfNyMgw7rjjDqNmzZrGsWPHDMMwjG+++cYoVKiQMW7cOJefKaYuALCwa2XVjBkzDJvNZixfvtwwjEu/f5s3b25ERUU5f09v2LDBCAoKMn755RfDMAwjMzPTGDRokBETE+M8jqemz/0VGQSYgztFuGEiIyPVvn17SVKlSpX0zTffSJJ69eql1157zfkw7E033aQePXpo9uzZMgwjR8cuXry4unXrJkkKDw9X27Zt9cUXX3hk3BUqVJAkHThwwLnv22+/dVns4dFHH1WhQoX07rvv5uiYOTnnXbt26Y8//lC1atWc3+vYsaOef/555+eFCxdq06ZNGjVqlEqVKiVJatKkiR599FElJCQoPT09j2cNANZw9uxZxcfH695771WHDh0kSUWKFNHYsWP1448/6v3335ckbdq0SSEhIc5M8Pf317Bhw9S5c+cbOj4yCDAHRRFumMjISJfPVatWlXSpoHn99dfVrFkz1a5dW3Xr1tW///1vnTt3LsdT4GrUqOHyuUSJEh6ZPvdXNpvN+c/nzp3Tww8/rDp16jinAvzxxx/au3dvjo6Vk3OuXr26ypQpo/vvv18vvfSS83mqhIQE53E+++wzSdKdd97pcvzatWvr7Nmz+u6779w6ZwAo6L7++mudPXs229+jkrR27VpJl55RSk9PV8OGDTVjxgwdOnRIt9xyi5566imvjJMMAryLhRZwwxQtWjTb/f/85z/13//+V2vWrFG9evUkSe+884569+4tu92eo2MXKVLE5bOfn58cDod7A/5/v/32m6RLy7tK0k8//aQ777xTvXv31nfffafg4GBne07Hm5NzLlKkiL777jv95z//0ezZszV27FhVrVpVL730krp37y5Jzvnu9957r8vxz58/r4iICJ06dcq9kweAAu7y79HXXnvNeVfosoiICF24cEGS1KhRI3399deaOHGinn32WQ0YMEDNmzfXxIkT1ahRoxs2PjIIMAdFEbzq/PnzWrRokfr37+/8xexrPvnkE4WGhqply5aSpEWLFunChQsaPXq0M4xyIzfnXKZMGU2dOlUTJ07U559/rrFjx+qxxx7TLbfcopYtW6pEiRKSpP/9738KCwvL/ckBgMVd/j36zDPPaODAgdfs26hRI73//vs6e/asFi9erFGjRqlVq1ZKSkpSeHj4DRkfGQSYg+lz8KrMzExlZWXJz8/1r97Ro0dNGpGr2bNna8eOHXr++eedgXf5Ktpfx5yVlaXjx49f8f3AwEDn/OyUlBStWbMmx+f8008/OacpBAQEqF27dlq5cqUkOacxtG3bVpL0/fffu3w3NTVVHTt2dFmtKCAgwDmW3377TV9//XVu/igAoEBq1qyZihQpcsXvUUkaO3asPvzwQ0mXVp5bvny5pEszH/r27atp06bpzJkzzud9AgMDJcn5u/aXX37RDz/8kOexkUGAeSiK4FVFixZVbGys3n//fe3fv1+S9Pvvv2vWrFmmjuv48eN64YUXFBcXp0GDBrk8WHr5Qdxx48Y5f8H/+9//1vnz5684TqVKlXTo0CFJ0tKlS/Xvf/87x+d88uRJTZo0yWU513Xr1ikgIMD5RvBu3brpjjvu0LBhw5yBeP78eQ0cOFABAQHOt7b/fSyzZs3SnDlz3PozAoCCoGjRokpMTNR7773nfEZGkpYvX64ZM2aocePGkqQ9e/YoMTHROSXM4XDoyy+/VJkyZVSzZk1Jl6bbFSpU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",
"text/plain": [
"<Figure size 1000x400 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from sklearn.metrics import confusion_matrix\n",
"plt.figure(figsize=(10,4))\n",
"plt.subplot(121)\n",
"train_pred = svc.predict(X_train)\n",
"confuse_mat = confusion_matrix(y_train, train_pred)\n",
"sns.heatmap(confuse_mat, annot=True, fmt=\".0f\")\n",
"plt.ylabel('True')\n",
"plt.xlabel('Predict')\n",
"plt.title(\"Train Dataset\")\n",
"plt.subplot(122)\n",
"test_pred = svc.predict(X_test)\n",
"confuse_mat = confusion_matrix(y_test, test_pred)\n",
"sns.heatmap(confuse_mat, annot=True, fmt=\".0f\")\n",
"plt.ylabel('True')\n",
"plt.xlabel('Predict')\n",
"plt.title(\"Test Dataset\")\n",
"plt.suptitle(\"SVC\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "781bd084-7700-4c56-9be7-c3ad3f579bd5",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x1cff6d46c10>]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from sklearn.metrics import roc_curve\n",
"fpr, tpr, thresholds = roc_curve(y_train, train_pred)\n",
"plt.plot(fpr, tpr)\n",
"plt.plot([0,1],[0,1],'m--')"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "8cb92d20-41b7-417b-a6e2-226ebb9c686b",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Survived</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Embarked</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>C</th>\n",
" <td>0.553571</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Q</th>\n",
" <td>0.389610</td>\n",
" </tr>\n",
" <tr>\n",
" <th>S</th>\n",
" <td>0.336957</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Survived\n",
"Embarked \n",
"C 0.553571\n",
"Q 0.389610\n",
"S 0.336957"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df1 = df_base.copy()\n",
"df_base[['Embarked', 'Survived']].groupby(['Embarked']).mean()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "999fa9d2-f9eb-4671-aed3-b17aa4158e16",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"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.11.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}