2243 lines
84 KiB
Plaintext
2243 lines
84 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# 3.16 实战Kaggle比赛:房价预测"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"1.2.0\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# 如果没有安装pandas,则反注释下面一行\n",
|
|
"# !pip install pandas\n",
|
|
"\n",
|
|
"%matplotlib inline\n",
|
|
"import torch\n",
|
|
"import torch.nn as nn\n",
|
|
"import numpy as np\n",
|
|
"import pandas as pd\n",
|
|
"import sys\n",
|
|
"sys.path.append(\"..\") \n",
|
|
"import d2lzh_pytorch as d2l\n",
|
|
"\n",
|
|
"print(torch.__version__)\n",
|
|
"torch.set_default_tensor_type(torch.FloatTensor)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 3.16.2 获取和读取数据集"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"train_data = pd.read_csv('../../data/kaggle_house/train.csv')\n",
|
|
"test_data = pd.read_csv('../../data/kaggle_house/test.csv')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(1460, 81)"
|
|
]
|
|
},
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"train_data.shape"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(1459, 80)"
|
|
]
|
|
},
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"test_data.shape"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<style>\n",
|
|
" .dataframe thead tr:only-child th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: left;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>Id</th>\n",
|
|
" <th>MSSubClass</th>\n",
|
|
" <th>MSZoning</th>\n",
|
|
" <th>LotFrontage</th>\n",
|
|
" <th>SaleType</th>\n",
|
|
" <th>SaleCondition</th>\n",
|
|
" <th>SalePrice</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>1</td>\n",
|
|
" <td>60</td>\n",
|
|
" <td>RL</td>\n",
|
|
" <td>65.0</td>\n",
|
|
" <td>WD</td>\n",
|
|
" <td>Normal</td>\n",
|
|
" <td>208500</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>2</td>\n",
|
|
" <td>20</td>\n",
|
|
" <td>RL</td>\n",
|
|
" <td>80.0</td>\n",
|
|
" <td>WD</td>\n",
|
|
" <td>Normal</td>\n",
|
|
" <td>181500</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>3</td>\n",
|
|
" <td>60</td>\n",
|
|
" <td>RL</td>\n",
|
|
" <td>68.0</td>\n",
|
|
" <td>WD</td>\n",
|
|
" <td>Normal</td>\n",
|
|
" <td>223500</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>4</td>\n",
|
|
" <td>70</td>\n",
|
|
" <td>RL</td>\n",
|
|
" <td>60.0</td>\n",
|
|
" <td>WD</td>\n",
|
|
" <td>Abnorml</td>\n",
|
|
" <td>140000</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" Id MSSubClass MSZoning LotFrontage SaleType SaleCondition SalePrice\n",
|
|
"0 1 60 RL 65.0 WD Normal 208500\n",
|
|
"1 2 20 RL 80.0 WD Normal 181500\n",
|
|
"2 3 60 RL 68.0 WD Normal 223500\n",
|
|
"3 4 70 RL 60.0 WD Abnorml 140000"
|
|
]
|
|
},
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"train_data.iloc[0:4, [0, 1, 2, 3, -3, -2, -1]]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"all_features = pd.concat((train_data.iloc[:, 1:-1], test_data.iloc[:, 1:]))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 3.16.3 预处理数据"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"numeric_features = all_features.dtypes[all_features.dtypes != 'object'].index\n",
|
|
"all_features[numeric_features] = all_features[numeric_features].apply(\n",
|
|
" lambda x: (x - x.mean()) / (x.std()))\n",
|
|
"# 标准化后,每个数值特征的均值变为0,所以可以直接用0来替换缺失值\n",
|
|
"all_features[numeric_features] = all_features[numeric_features].fillna(0)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(2919, 331)"
|
|
]
|
|
},
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# dummy_na=True将缺失值也当作合法的特征值并为其创建指示特征\n",
|
|
"all_features = pd.get_dummies(all_features, dummy_na=True)\n",
|
|
"all_features.shape"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"n_train = train_data.shape[0]\n",
|
|
"train_features = torch.tensor(all_features[:n_train].values, dtype=torch.float)\n",
|
|
"test_features = torch.tensor(all_features[n_train:].values, dtype=torch.float)\n",
|
|
"train_labels = torch.tensor(train_data.SalePrice.values, dtype=torch.float).view(-1, 1)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 3.16.4 训练模型"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"loss = torch.nn.MSELoss()\n",
|
|
"\n",
|
|
"def get_net(feature_num):\n",
|
|
" net = nn.Linear(feature_num, 1)\n",
|
|
" for param in net.parameters():\n",
|
|
" nn.init.normal_(param, mean=0, std=0.01)\n",
|
|
" return net"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def log_rmse(net, features, labels):\n",
|
|
" with torch.no_grad():\n",
|
|
" # 将小于1的值设成1,使得取对数时数值更稳定\n",
|
|
" clipped_preds = torch.max(net(features), torch.tensor(1.0))\n",
|
|
" rmse = torch.sqrt(loss(clipped_preds.log(), labels.log()))\n",
|
|
" return rmse.item()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def train(net, train_features, train_labels, test_features, test_labels,\n",
|
|
" num_epochs, learning_rate, weight_decay, batch_size):\n",
|
|
" train_ls, test_ls = [], []\n",
|
|
" dataset = torch.utils.data.TensorDataset(train_features, train_labels)\n",
|
|
" train_iter = torch.utils.data.DataLoader(dataset, batch_size, shuffle=True)\n",
|
|
" # 这里使用了Adam优化算法\n",
|
|
" optimizer = torch.optim.Adam(params=net.parameters(), lr=learning_rate, weight_decay=weight_decay) \n",
|
|
" net = net.float()\n",
|
|
" for epoch in range(num_epochs):\n",
|
|
" for X, y in train_iter:\n",
|
|
" l = loss(net(X.float()), y.float())\n",
|
|
" optimizer.zero_grad()\n",
|
|
" l.backward()\n",
|
|
" optimizer.step()\n",
|
|
" train_ls.append(log_rmse(net, train_features, train_labels))\n",
|
|
" if test_labels is not None:\n",
|
|
" test_ls.append(log_rmse(net, test_features, test_labels))\n",
|
|
" return train_ls, test_ls"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 3.16.5 $K$折交叉验证"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def get_k_fold_data(k, i, X, y):\n",
|
|
" # 返回第i折交叉验证时所需要的训练和验证数据\n",
|
|
" assert k > 1\n",
|
|
" fold_size = X.shape[0] // k\n",
|
|
" X_train, y_train = None, None\n",
|
|
" for j in range(k):\n",
|
|
" idx = slice(j * fold_size, (j + 1) * fold_size)\n",
|
|
" X_part, y_part = X[idx, :], y[idx]\n",
|
|
" if j == i:\n",
|
|
" X_valid, y_valid = X_part, y_part\n",
|
|
" elif X_train is None:\n",
|
|
" X_train, y_train = X_part, y_part\n",
|
|
" else:\n",
|
|
" X_train = torch.cat((X_train, X_part), dim=0)\n",
|
|
" y_train = torch.cat((y_train, y_part), dim=0)\n",
|
|
" return X_train, y_train, X_valid, y_valid"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def k_fold(k, X_train, y_train, num_epochs,\n",
|
|
" learning_rate, weight_decay, batch_size):\n",
|
|
" train_l_sum, valid_l_sum = 0, 0\n",
|
|
" for i in range(k):\n",
|
|
" data = get_k_fold_data(k, i, X_train, y_train)\n",
|
|
" net = get_net(X_train.shape[1])\n",
|
|
" train_ls, valid_ls = train(net, *data, num_epochs, learning_rate,\n",
|
|
" weight_decay, batch_size)\n",
|
|
" train_l_sum += train_ls[-1]\n",
|
|
" valid_l_sum += valid_ls[-1]\n",
|
|
" if i == 0:\n",
|
|
" d2l.semilogy(range(1, num_epochs + 1), train_ls, 'epochs', 'rmse',\n",
|
|
" range(1, num_epochs + 1), valid_ls,\n",
|
|
" ['train', 'valid'])\n",
|
|
" print('fold %d, train rmse %f, valid rmse %f' % (i, train_ls[-1], valid_ls[-1]))\n",
|
|
" return train_l_sum / k, valid_l_sum / k"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 3.16.6 模型选择"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"fold 0, train rmse 0.170585, valid rmse 0.156860\n",
|
|
"fold 1, train rmse 0.162552, valid rmse 0.190944\n",
|
|
"fold 2, train rmse 0.164199, valid rmse 0.168767\n",
|
|
"fold 3, train rmse 0.168698, valid rmse 0.154873\n",
|
|
"fold 4, train rmse 0.163213, valid rmse 0.183080\n",
|
|
"5-fold validation: avg train rmse 0.165849, avg valid rmse 0.170905\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
|
|
"<svg height=\"184pt\" version=\"1.1\" viewBox=\"0 0 251 184\" width=\"251pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
" <defs>\n",
|
|
" <style type=\"text/css\">\n",
|
|
"*{stroke-linecap:butt;stroke-linejoin:round;}\n",
|
|
" </style>\n",
|
|
" </defs>\n",
|
|
" <g id=\"figure_1\">\n",
|
|
" <g id=\"patch_1\">\n",
|
|
" <path d=\"M 0 184.15625 \n",
|
|
"L 251.478125 184.15625 \n",
|
|
"L 251.478125 -0 \n",
|
|
"L 0 -0 \n",
|
|
"z\n",
|
|
"\" style=\"fill:none;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_1\">\n",
|
|
" <g id=\"patch_2\">\n",
|
|
" <path d=\"M 45.478125 146.6 \n",
|
|
"L 240.778125 146.6 \n",
|
|
"L 240.778125 10.7 \n",
|
|
"L 45.478125 10.7 \n",
|
|
"z\n",
|
|
"\" style=\"fill:#ffffff;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"matplotlib.axis_1\">\n",
|
|
" <g id=\"xtick_1\">\n",
|
|
" <g id=\"line2d_1\">\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 0 0 \n",
|
|
"L 0 3.5 \n",
|
|
"\" id=\"m9cbda39ac0\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
|
|
" </defs>\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"52.562009\" xlink:href=\"#m9cbda39ac0\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_1\">\n",
|
|
" <!-- 0 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 31.78125 66.40625 \n",
|
|
"Q 24.171875 66.40625 20.328125 58.90625 \n",
|
|
"Q 16.5 51.421875 16.5 36.375 \n",
|
|
"Q 16.5 21.390625 20.328125 13.890625 \n",
|
|
"Q 24.171875 6.390625 31.78125 6.390625 \n",
|
|
"Q 39.453125 6.390625 43.28125 13.890625 \n",
|
|
"Q 47.125 21.390625 47.125 36.375 \n",
|
|
"Q 47.125 51.421875 43.28125 58.90625 \n",
|
|
"Q 39.453125 66.40625 31.78125 66.40625 \n",
|
|
"z\n",
|
|
"M 31.78125 74.21875 \n",
|
|
"Q 44.046875 74.21875 50.515625 64.515625 \n",
|
|
"Q 56.984375 54.828125 56.984375 36.375 \n",
|
|
"Q 56.984375 17.96875 50.515625 8.265625 \n",
|
|
"Q 44.046875 -1.421875 31.78125 -1.421875 \n",
|
|
"Q 19.53125 -1.421875 13.0625 8.265625 \n",
|
|
"Q 6.59375 17.96875 6.59375 36.375 \n",
|
|
"Q 6.59375 54.828125 13.0625 64.515625 \n",
|
|
"Q 19.53125 74.21875 31.78125 74.21875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-30\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(49.380759 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_2\">\n",
|
|
" <g id=\"line2d_2\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"88.429778\" xlink:href=\"#m9cbda39ac0\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_2\">\n",
|
|
" <!-- 20 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 19.1875 8.296875 \n",
|
|
"L 53.609375 8.296875 \n",
|
|
"L 53.609375 0 \n",
|
|
"L 7.328125 0 \n",
|
|
"L 7.328125 8.296875 \n",
|
|
"Q 12.9375 14.109375 22.625 23.890625 \n",
|
|
"Q 32.328125 33.6875 34.8125 36.53125 \n",
|
|
"Q 39.546875 41.84375 41.421875 45.53125 \n",
|
|
"Q 43.3125 49.21875 43.3125 52.78125 \n",
|
|
"Q 43.3125 58.59375 39.234375 62.25 \n",
|
|
"Q 35.15625 65.921875 28.609375 65.921875 \n",
|
|
"Q 23.96875 65.921875 18.8125 64.3125 \n",
|
|
"Q 13.671875 62.703125 7.8125 59.421875 \n",
|
|
"L 7.8125 69.390625 \n",
|
|
"Q 13.765625 71.78125 18.9375 73 \n",
|
|
"Q 24.125 74.21875 28.421875 74.21875 \n",
|
|
"Q 39.75 74.21875 46.484375 68.546875 \n",
|
|
"Q 53.21875 62.890625 53.21875 53.421875 \n",
|
|
"Q 53.21875 48.921875 51.53125 44.890625 \n",
|
|
"Q 49.859375 40.875 45.40625 35.40625 \n",
|
|
"Q 44.1875 33.984375 37.640625 27.21875 \n",
|
|
"Q 31.109375 20.453125 19.1875 8.296875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-32\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(82.067278 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_3\">\n",
|
|
" <g id=\"line2d_3\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"124.297546\" xlink:href=\"#m9cbda39ac0\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_3\">\n",
|
|
" <!-- 40 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 37.796875 64.3125 \n",
|
|
"L 12.890625 25.390625 \n",
|
|
"L 37.796875 25.390625 \n",
|
|
"z\n",
|
|
"M 35.203125 72.90625 \n",
|
|
"L 47.609375 72.90625 \n",
|
|
"L 47.609375 25.390625 \n",
|
|
"L 58.015625 25.390625 \n",
|
|
"L 58.015625 17.1875 \n",
|
|
"L 47.609375 17.1875 \n",
|
|
"L 47.609375 0 \n",
|
|
"L 37.796875 0 \n",
|
|
"L 37.796875 17.1875 \n",
|
|
"L 4.890625 17.1875 \n",
|
|
"L 4.890625 26.703125 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-34\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(117.935046 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-34\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_4\">\n",
|
|
" <g id=\"line2d_4\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"160.165315\" xlink:href=\"#m9cbda39ac0\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_4\">\n",
|
|
" <!-- 60 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 33.015625 40.375 \n",
|
|
"Q 26.375 40.375 22.484375 35.828125 \n",
|
|
"Q 18.609375 31.296875 18.609375 23.390625 \n",
|
|
"Q 18.609375 15.53125 22.484375 10.953125 \n",
|
|
"Q 26.375 6.390625 33.015625 6.390625 \n",
|
|
"Q 39.65625 6.390625 43.53125 10.953125 \n",
|
|
"Q 47.40625 15.53125 47.40625 23.390625 \n",
|
|
"Q 47.40625 31.296875 43.53125 35.828125 \n",
|
|
"Q 39.65625 40.375 33.015625 40.375 \n",
|
|
"z\n",
|
|
"M 52.59375 71.296875 \n",
|
|
"L 52.59375 62.3125 \n",
|
|
"Q 48.875 64.0625 45.09375 64.984375 \n",
|
|
"Q 41.3125 65.921875 37.59375 65.921875 \n",
|
|
"Q 27.828125 65.921875 22.671875 59.328125 \n",
|
|
"Q 17.53125 52.734375 16.796875 39.40625 \n",
|
|
"Q 19.671875 43.65625 24.015625 45.921875 \n",
|
|
"Q 28.375 48.1875 33.59375 48.1875 \n",
|
|
"Q 44.578125 48.1875 50.953125 41.515625 \n",
|
|
"Q 57.328125 34.859375 57.328125 23.390625 \n",
|
|
"Q 57.328125 12.15625 50.6875 5.359375 \n",
|
|
"Q 44.046875 -1.421875 33.015625 -1.421875 \n",
|
|
"Q 20.359375 -1.421875 13.671875 8.265625 \n",
|
|
"Q 6.984375 17.96875 6.984375 36.375 \n",
|
|
"Q 6.984375 53.65625 15.1875 63.9375 \n",
|
|
"Q 23.390625 74.21875 37.203125 74.21875 \n",
|
|
"Q 40.921875 74.21875 44.703125 73.484375 \n",
|
|
"Q 48.484375 72.75 52.59375 71.296875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-36\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(153.802815 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-36\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_5\">\n",
|
|
" <g id=\"line2d_5\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"196.033084\" xlink:href=\"#m9cbda39ac0\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_5\">\n",
|
|
" <!-- 80 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 31.78125 34.625 \n",
|
|
"Q 24.75 34.625 20.71875 30.859375 \n",
|
|
"Q 16.703125 27.09375 16.703125 20.515625 \n",
|
|
"Q 16.703125 13.921875 20.71875 10.15625 \n",
|
|
"Q 24.75 6.390625 31.78125 6.390625 \n",
|
|
"Q 38.8125 6.390625 42.859375 10.171875 \n",
|
|
"Q 46.921875 13.96875 46.921875 20.515625 \n",
|
|
"Q 46.921875 27.09375 42.890625 30.859375 \n",
|
|
"Q 38.875 34.625 31.78125 34.625 \n",
|
|
"z\n",
|
|
"M 21.921875 38.8125 \n",
|
|
"Q 15.578125 40.375 12.03125 44.71875 \n",
|
|
"Q 8.5 49.078125 8.5 55.328125 \n",
|
|
"Q 8.5 64.0625 14.71875 69.140625 \n",
|
|
"Q 20.953125 74.21875 31.78125 74.21875 \n",
|
|
"Q 42.671875 74.21875 48.875 69.140625 \n",
|
|
"Q 55.078125 64.0625 55.078125 55.328125 \n",
|
|
"Q 55.078125 49.078125 51.53125 44.71875 \n",
|
|
"Q 48 40.375 41.703125 38.8125 \n",
|
|
"Q 48.828125 37.15625 52.796875 32.3125 \n",
|
|
"Q 56.78125 27.484375 56.78125 20.515625 \n",
|
|
"Q 56.78125 9.90625 50.3125 4.234375 \n",
|
|
"Q 43.84375 -1.421875 31.78125 -1.421875 \n",
|
|
"Q 19.734375 -1.421875 13.25 4.234375 \n",
|
|
"Q 6.78125 9.90625 6.78125 20.515625 \n",
|
|
"Q 6.78125 27.484375 10.78125 32.3125 \n",
|
|
"Q 14.796875 37.15625 21.921875 38.8125 \n",
|
|
"z\n",
|
|
"M 18.3125 54.390625 \n",
|
|
"Q 18.3125 48.734375 21.84375 45.5625 \n",
|
|
"Q 25.390625 42.390625 31.78125 42.390625 \n",
|
|
"Q 38.140625 42.390625 41.71875 45.5625 \n",
|
|
"Q 45.3125 48.734375 45.3125 54.390625 \n",
|
|
"Q 45.3125 60.0625 41.71875 63.234375 \n",
|
|
"Q 38.140625 66.40625 31.78125 66.40625 \n",
|
|
"Q 25.390625 66.40625 21.84375 63.234375 \n",
|
|
"Q 18.3125 60.0625 18.3125 54.390625 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-38\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(189.670584 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-38\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_6\">\n",
|
|
" <g id=\"line2d_6\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"231.900852\" xlink:href=\"#m9cbda39ac0\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_6\">\n",
|
|
" <!-- 100 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 12.40625 8.296875 \n",
|
|
"L 28.515625 8.296875 \n",
|
|
"L 28.515625 63.921875 \n",
|
|
"L 10.984375 60.40625 \n",
|
|
"L 10.984375 69.390625 \n",
|
|
"L 28.421875 72.90625 \n",
|
|
"L 38.28125 72.90625 \n",
|
|
"L 38.28125 8.296875 \n",
|
|
"L 54.390625 8.296875 \n",
|
|
"L 54.390625 0 \n",
|
|
"L 12.40625 0 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-31\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(222.357102 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_7\">\n",
|
|
" <!-- epochs -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 56.203125 29.59375 \n",
|
|
"L 56.203125 25.203125 \n",
|
|
"L 14.890625 25.203125 \n",
|
|
"Q 15.484375 15.921875 20.484375 11.0625 \n",
|
|
"Q 25.484375 6.203125 34.421875 6.203125 \n",
|
|
"Q 39.59375 6.203125 44.453125 7.46875 \n",
|
|
"Q 49.3125 8.734375 54.109375 11.28125 \n",
|
|
"L 54.109375 2.78125 \n",
|
|
"Q 49.265625 0.734375 44.1875 -0.34375 \n",
|
|
"Q 39.109375 -1.421875 33.890625 -1.421875 \n",
|
|
"Q 20.796875 -1.421875 13.15625 6.1875 \n",
|
|
"Q 5.515625 13.8125 5.515625 26.8125 \n",
|
|
"Q 5.515625 40.234375 12.765625 48.109375 \n",
|
|
"Q 20.015625 56 32.328125 56 \n",
|
|
"Q 43.359375 56 49.78125 48.890625 \n",
|
|
"Q 56.203125 41.796875 56.203125 29.59375 \n",
|
|
"z\n",
|
|
"M 47.21875 32.234375 \n",
|
|
"Q 47.125 39.59375 43.09375 43.984375 \n",
|
|
"Q 39.0625 48.390625 32.421875 48.390625 \n",
|
|
"Q 24.90625 48.390625 20.390625 44.140625 \n",
|
|
"Q 15.875 39.890625 15.1875 32.171875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-65\"/>\n",
|
|
" <path d=\"M 18.109375 8.203125 \n",
|
|
"L 18.109375 -20.796875 \n",
|
|
"L 9.078125 -20.796875 \n",
|
|
"L 9.078125 54.6875 \n",
|
|
"L 18.109375 54.6875 \n",
|
|
"L 18.109375 46.390625 \n",
|
|
"Q 20.953125 51.265625 25.265625 53.625 \n",
|
|
"Q 29.59375 56 35.59375 56 \n",
|
|
"Q 45.5625 56 51.78125 48.09375 \n",
|
|
"Q 58.015625 40.1875 58.015625 27.296875 \n",
|
|
"Q 58.015625 14.40625 51.78125 6.484375 \n",
|
|
"Q 45.5625 -1.421875 35.59375 -1.421875 \n",
|
|
"Q 29.59375 -1.421875 25.265625 0.953125 \n",
|
|
"Q 20.953125 3.328125 18.109375 8.203125 \n",
|
|
"z\n",
|
|
"M 48.6875 27.296875 \n",
|
|
"Q 48.6875 37.203125 44.609375 42.84375 \n",
|
|
"Q 40.53125 48.484375 33.40625 48.484375 \n",
|
|
"Q 26.265625 48.484375 22.1875 42.84375 \n",
|
|
"Q 18.109375 37.203125 18.109375 27.296875 \n",
|
|
"Q 18.109375 17.390625 22.1875 11.75 \n",
|
|
"Q 26.265625 6.109375 33.40625 6.109375 \n",
|
|
"Q 40.53125 6.109375 44.609375 11.75 \n",
|
|
"Q 48.6875 17.390625 48.6875 27.296875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-70\"/>\n",
|
|
" <path d=\"M 30.609375 48.390625 \n",
|
|
"Q 23.390625 48.390625 19.1875 42.75 \n",
|
|
"Q 14.984375 37.109375 14.984375 27.296875 \n",
|
|
"Q 14.984375 17.484375 19.15625 11.84375 \n",
|
|
"Q 23.34375 6.203125 30.609375 6.203125 \n",
|
|
"Q 37.796875 6.203125 41.984375 11.859375 \n",
|
|
"Q 46.1875 17.53125 46.1875 27.296875 \n",
|
|
"Q 46.1875 37.015625 41.984375 42.703125 \n",
|
|
"Q 37.796875 48.390625 30.609375 48.390625 \n",
|
|
"z\n",
|
|
"M 30.609375 56 \n",
|
|
"Q 42.328125 56 49.015625 48.375 \n",
|
|
"Q 55.71875 40.765625 55.71875 27.296875 \n",
|
|
"Q 55.71875 13.875 49.015625 6.21875 \n",
|
|
"Q 42.328125 -1.421875 30.609375 -1.421875 \n",
|
|
"Q 18.84375 -1.421875 12.171875 6.21875 \n",
|
|
"Q 5.515625 13.875 5.515625 27.296875 \n",
|
|
"Q 5.515625 40.765625 12.171875 48.375 \n",
|
|
"Q 18.84375 56 30.609375 56 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-6f\"/>\n",
|
|
" <path d=\"M 48.78125 52.59375 \n",
|
|
"L 48.78125 44.1875 \n",
|
|
"Q 44.96875 46.296875 41.140625 47.34375 \n",
|
|
"Q 37.3125 48.390625 33.40625 48.390625 \n",
|
|
"Q 24.65625 48.390625 19.8125 42.84375 \n",
|
|
"Q 14.984375 37.3125 14.984375 27.296875 \n",
|
|
"Q 14.984375 17.28125 19.8125 11.734375 \n",
|
|
"Q 24.65625 6.203125 33.40625 6.203125 \n",
|
|
"Q 37.3125 6.203125 41.140625 7.25 \n",
|
|
"Q 44.96875 8.296875 48.78125 10.40625 \n",
|
|
"L 48.78125 2.09375 \n",
|
|
"Q 45.015625 0.34375 40.984375 -0.53125 \n",
|
|
"Q 36.96875 -1.421875 32.421875 -1.421875 \n",
|
|
"Q 20.0625 -1.421875 12.78125 6.34375 \n",
|
|
"Q 5.515625 14.109375 5.515625 27.296875 \n",
|
|
"Q 5.515625 40.671875 12.859375 48.328125 \n",
|
|
"Q 20.21875 56 33.015625 56 \n",
|
|
"Q 37.15625 56 41.109375 55.140625 \n",
|
|
"Q 45.0625 54.296875 48.78125 52.59375 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-63\"/>\n",
|
|
" <path d=\"M 54.890625 33.015625 \n",
|
|
"L 54.890625 0 \n",
|
|
"L 45.90625 0 \n",
|
|
"L 45.90625 32.71875 \n",
|
|
"Q 45.90625 40.484375 42.875 44.328125 \n",
|
|
"Q 39.84375 48.1875 33.796875 48.1875 \n",
|
|
"Q 26.515625 48.1875 22.3125 43.546875 \n",
|
|
"Q 18.109375 38.921875 18.109375 30.90625 \n",
|
|
"L 18.109375 0 \n",
|
|
"L 9.078125 0 \n",
|
|
"L 9.078125 75.984375 \n",
|
|
"L 18.109375 75.984375 \n",
|
|
"L 18.109375 46.1875 \n",
|
|
"Q 21.34375 51.125 25.703125 53.5625 \n",
|
|
"Q 30.078125 56 35.796875 56 \n",
|
|
"Q 45.21875 56 50.046875 50.171875 \n",
|
|
"Q 54.890625 44.34375 54.890625 33.015625 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-68\"/>\n",
|
|
" <path d=\"M 44.28125 53.078125 \n",
|
|
"L 44.28125 44.578125 \n",
|
|
"Q 40.484375 46.53125 36.375 47.5 \n",
|
|
"Q 32.28125 48.484375 27.875 48.484375 \n",
|
|
"Q 21.1875 48.484375 17.84375 46.4375 \n",
|
|
"Q 14.5 44.390625 14.5 40.28125 \n",
|
|
"Q 14.5 37.15625 16.890625 35.375 \n",
|
|
"Q 19.28125 33.59375 26.515625 31.984375 \n",
|
|
"L 29.59375 31.296875 \n",
|
|
"Q 39.15625 29.25 43.1875 25.515625 \n",
|
|
"Q 47.21875 21.78125 47.21875 15.09375 \n",
|
|
"Q 47.21875 7.46875 41.1875 3.015625 \n",
|
|
"Q 35.15625 -1.421875 24.609375 -1.421875 \n",
|
|
"Q 20.21875 -1.421875 15.453125 -0.5625 \n",
|
|
"Q 10.6875 0.296875 5.421875 2 \n",
|
|
"L 5.421875 11.28125 \n",
|
|
"Q 10.40625 8.6875 15.234375 7.390625 \n",
|
|
"Q 20.0625 6.109375 24.8125 6.109375 \n",
|
|
"Q 31.15625 6.109375 34.5625 8.28125 \n",
|
|
"Q 37.984375 10.453125 37.984375 14.40625 \n",
|
|
"Q 37.984375 18.0625 35.515625 20.015625 \n",
|
|
"Q 33.0625 21.96875 24.703125 23.78125 \n",
|
|
"L 21.578125 24.515625 \n",
|
|
"Q 13.234375 26.265625 9.515625 29.90625 \n",
|
|
"Q 5.8125 33.546875 5.8125 39.890625 \n",
|
|
"Q 5.8125 47.609375 11.28125 51.796875 \n",
|
|
"Q 16.75 56 26.8125 56 \n",
|
|
"Q 31.78125 56 36.171875 55.265625 \n",
|
|
"Q 40.578125 54.546875 44.28125 53.078125 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-73\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(125.295312 174.876562)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\"/>\n",
|
|
" <use x=\"61.523438\" xlink:href=\"#DejaVuSans-70\"/>\n",
|
|
" <use x=\"125\" xlink:href=\"#DejaVuSans-6f\"/>\n",
|
|
" <use x=\"186.181641\" xlink:href=\"#DejaVuSans-63\"/>\n",
|
|
" <use x=\"241.162109\" xlink:href=\"#DejaVuSans-68\"/>\n",
|
|
" <use x=\"304.541016\" xlink:href=\"#DejaVuSans-73\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"matplotlib.axis_2\">\n",
|
|
" <g id=\"ytick_1\">\n",
|
|
" <g id=\"line2d_7\">\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 0 0 \n",
|
|
"L -3.5 0 \n",
|
|
"\" id=\"m0df7c1c40c\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
|
|
" </defs>\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"45.478125\" xlink:href=\"#m0df7c1c40c\" y=\"68.335611\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_8\">\n",
|
|
" <!-- $\\mathdefault{10^{0}}$ -->\n",
|
|
" <g transform=\"translate(20.878125 72.13483)scale(0.1 -0.1)\">\n",
|
|
" <use transform=\"translate(0 0.765625)\" xlink:href=\"#DejaVuSans-31\"/>\n",
|
|
" <use transform=\"translate(63.623047 0.765625)\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use transform=\"translate(128.203125 39.046875)scale(0.7)\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_2\">\n",
|
|
" <g id=\"line2d_8\">\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 0 0 \n",
|
|
"L -2 0 \n",
|
|
"\" id=\"m8231d37304\" style=\"stroke:#000000;stroke-width:0.6;\"/>\n",
|
|
" </defs>\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m8231d37304\" y=\"130.962604\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_3\">\n",
|
|
" <g id=\"line2d_9\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m8231d37304\" y=\"115.185008\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_4\">\n",
|
|
" <g id=\"line2d_10\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m8231d37304\" y=\"103.990626\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_5\">\n",
|
|
" <g id=\"line2d_11\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m8231d37304\" y=\"95.307589\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_6\">\n",
|
|
" <g id=\"line2d_12\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m8231d37304\" y=\"88.213031\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_7\">\n",
|
|
" <g id=\"line2d_13\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m8231d37304\" y=\"82.214667\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_8\">\n",
|
|
" <g id=\"line2d_14\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m8231d37304\" y=\"77.018649\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_9\">\n",
|
|
" <g id=\"line2d_15\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m8231d37304\" y=\"72.435435\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_10\">\n",
|
|
" <g id=\"line2d_16\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m8231d37304\" y=\"41.363634\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_11\">\n",
|
|
" <g id=\"line2d_17\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m8231d37304\" y=\"25.586038\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_12\">\n",
|
|
" <g id=\"line2d_18\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m8231d37304\" y=\"14.391656\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_9\">\n",
|
|
" <!-- rmse -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 41.109375 46.296875 \n",
|
|
"Q 39.59375 47.171875 37.8125 47.578125 \n",
|
|
"Q 36.03125 48 33.890625 48 \n",
|
|
"Q 26.265625 48 22.1875 43.046875 \n",
|
|
"Q 18.109375 38.09375 18.109375 28.8125 \n",
|
|
"L 18.109375 0 \n",
|
|
"L 9.078125 0 \n",
|
|
"L 9.078125 54.6875 \n",
|
|
"L 18.109375 54.6875 \n",
|
|
"L 18.109375 46.1875 \n",
|
|
"Q 20.953125 51.171875 25.484375 53.578125 \n",
|
|
"Q 30.03125 56 36.53125 56 \n",
|
|
"Q 37.453125 56 38.578125 55.875 \n",
|
|
"Q 39.703125 55.765625 41.0625 55.515625 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-72\"/>\n",
|
|
" <path d=\"M 52 44.1875 \n",
|
|
"Q 55.375 50.25 60.0625 53.125 \n",
|
|
"Q 64.75 56 71.09375 56 \n",
|
|
"Q 79.640625 56 84.28125 50.015625 \n",
|
|
"Q 88.921875 44.046875 88.921875 33.015625 \n",
|
|
"L 88.921875 0 \n",
|
|
"L 79.890625 0 \n",
|
|
"L 79.890625 32.71875 \n",
|
|
"Q 79.890625 40.578125 77.09375 44.375 \n",
|
|
"Q 74.3125 48.1875 68.609375 48.1875 \n",
|
|
"Q 61.625 48.1875 57.5625 43.546875 \n",
|
|
"Q 53.515625 38.921875 53.515625 30.90625 \n",
|
|
"L 53.515625 0 \n",
|
|
"L 44.484375 0 \n",
|
|
"L 44.484375 32.71875 \n",
|
|
"Q 44.484375 40.625 41.703125 44.40625 \n",
|
|
"Q 38.921875 48.1875 33.109375 48.1875 \n",
|
|
"Q 26.21875 48.1875 22.15625 43.53125 \n",
|
|
"Q 18.109375 38.875 18.109375 30.90625 \n",
|
|
"L 18.109375 0 \n",
|
|
"L 9.078125 0 \n",
|
|
"L 9.078125 54.6875 \n",
|
|
"L 18.109375 54.6875 \n",
|
|
"L 18.109375 46.1875 \n",
|
|
"Q 21.1875 51.21875 25.484375 53.609375 \n",
|
|
"Q 29.78125 56 35.6875 56 \n",
|
|
"Q 41.65625 56 45.828125 52.96875 \n",
|
|
"Q 50 49.953125 52 44.1875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-6d\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(14.798437 91.25625)rotate(-90)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\"/>\n",
|
|
" <use x=\"41.097656\" xlink:href=\"#DejaVuSans-6d\"/>\n",
|
|
" <use x=\"138.509766\" xlink:href=\"#DejaVuSans-73\"/>\n",
|
|
" <use x=\"190.609375\" xlink:href=\"#DejaVuSans-65\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_19\">\n",
|
|
" <path clip-path=\"url(#pc3e955fbac)\" d=\"M 54.355398 17.001134 \n",
|
|
"L 56.148786 24.909917 \n",
|
|
"L 57.942175 30.397923 \n",
|
|
"L 59.735563 34.754751 \n",
|
|
"L 61.528951 38.476424 \n",
|
|
"L 63.32234 41.791275 \n",
|
|
"L 65.115728 44.800958 \n",
|
|
"L 66.909117 47.577396 \n",
|
|
"L 68.702505 50.191764 \n",
|
|
"L 70.495894 52.660515 \n",
|
|
"L 72.289282 55.005123 \n",
|
|
"L 74.08267 57.274561 \n",
|
|
"L 75.876059 59.458168 \n",
|
|
"L 77.669447 61.584599 \n",
|
|
"L 79.462836 63.627917 \n",
|
|
"L 81.256224 65.64058 \n",
|
|
"L 83.049613 67.600657 \n",
|
|
"L 84.843001 69.523884 \n",
|
|
"L 86.636389 71.411236 \n",
|
|
"L 88.429778 73.265861 \n",
|
|
"L 90.223166 75.091231 \n",
|
|
"L 92.016555 76.919688 \n",
|
|
"L 93.809943 78.684504 \n",
|
|
"L 95.603332 80.45601 \n",
|
|
"L 97.39672 82.205819 \n",
|
|
"L 99.190108 83.944751 \n",
|
|
"L 100.983497 85.642831 \n",
|
|
"L 102.776885 87.322234 \n",
|
|
"L 104.570274 89.004337 \n",
|
|
"L 106.363662 90.667668 \n",
|
|
"L 108.157051 92.320817 \n",
|
|
"L 109.950439 93.95716 \n",
|
|
"L 111.743827 95.553102 \n",
|
|
"L 113.537216 97.169642 \n",
|
|
"L 115.330604 98.740953 \n",
|
|
"L 117.123993 100.316339 \n",
|
|
"L 118.917381 101.871769 \n",
|
|
"L 120.71077 103.394345 \n",
|
|
"L 122.504158 104.886998 \n",
|
|
"L 124.297546 106.38468 \n",
|
|
"L 126.090935 107.885664 \n",
|
|
"L 127.884323 109.313768 \n",
|
|
"L 129.677712 110.724587 \n",
|
|
"L 131.4711 112.129574 \n",
|
|
"L 133.264489 113.484804 \n",
|
|
"L 135.057877 114.828187 \n",
|
|
"L 136.851265 116.130407 \n",
|
|
"L 138.644654 117.395066 \n",
|
|
"L 140.438042 118.602498 \n",
|
|
"L 142.231431 119.793694 \n",
|
|
"L 144.024819 120.922426 \n",
|
|
"L 145.818208 122.03506 \n",
|
|
"L 147.611596 123.104268 \n",
|
|
"L 149.404985 124.116232 \n",
|
|
"L 151.198373 125.093996 \n",
|
|
"L 152.991761 126.045222 \n",
|
|
"L 154.78515 126.909673 \n",
|
|
"L 156.578538 127.726408 \n",
|
|
"L 158.371927 128.51667 \n",
|
|
"L 160.165315 129.251248 \n",
|
|
"L 161.958704 129.968652 \n",
|
|
"L 163.752092 130.611628 \n",
|
|
"L 165.54548 131.225066 \n",
|
|
"L 167.338869 131.794043 \n",
|
|
"L 169.132257 132.326251 \n",
|
|
"L 170.925646 132.828702 \n",
|
|
"L 172.719034 133.283332 \n",
|
|
"L 174.512423 133.707402 \n",
|
|
"L 176.305811 134.068025 \n",
|
|
"L 178.099199 134.404668 \n",
|
|
"L 179.892588 134.734639 \n",
|
|
"L 181.685976 135.020394 \n",
|
|
"L 183.479365 135.278846 \n",
|
|
"L 185.272753 135.508238 \n",
|
|
"L 187.066142 135.711964 \n",
|
|
"L 188.85953 135.89982 \n",
|
|
"L 190.652918 136.067486 \n",
|
|
"L 192.446307 136.214503 \n",
|
|
"L 194.239695 136.342774 \n",
|
|
"L 196.033084 136.464095 \n",
|
|
"L 197.826472 136.565648 \n",
|
|
"L 199.619861 136.656755 \n",
|
|
"L 201.413249 136.729522 \n",
|
|
"L 203.206637 136.803176 \n",
|
|
"L 205.000026 136.844677 \n",
|
|
"L 206.793414 136.914753 \n",
|
|
"L 208.586803 136.945721 \n",
|
|
"L 210.380191 136.994134 \n",
|
|
"L 212.17358 137.001566 \n",
|
|
"L 213.966968 137.034654 \n",
|
|
"L 215.760356 137.062557 \n",
|
|
"L 217.553745 137.074855 \n",
|
|
"L 219.347133 137.092194 \n",
|
|
"L 221.140522 137.089652 \n",
|
|
"L 222.93391 137.084036 \n",
|
|
"L 224.727299 137.111812 \n",
|
|
"L 226.520687 137.126993 \n",
|
|
"L 228.314075 137.123565 \n",
|
|
"L 230.107464 137.152467 \n",
|
|
"L 231.900852 137.153001 \n",
|
|
"\" style=\"fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_20\">\n",
|
|
" <path clip-path=\"url(#pc3e955fbac)\" d=\"M 54.355398 16.877273 \n",
|
|
"L 56.148786 24.74281 \n",
|
|
"L 57.942175 30.1982 \n",
|
|
"L 59.735563 34.530701 \n",
|
|
"L 61.528951 38.236568 \n",
|
|
"L 63.32234 41.533934 \n",
|
|
"L 65.115728 44.524218 \n",
|
|
"L 66.909117 47.282683 \n",
|
|
"L 68.702505 49.882009 \n",
|
|
"L 70.495894 52.332684 \n",
|
|
"L 72.289282 54.6633 \n",
|
|
"L 74.08267 56.914223 \n",
|
|
"L 75.876059 59.08388 \n",
|
|
"L 77.669447 61.195256 \n",
|
|
"L 79.462836 63.224209 \n",
|
|
"L 81.256224 65.221766 \n",
|
|
"L 83.049613 67.172077 \n",
|
|
"L 84.843001 69.082149 \n",
|
|
"L 86.636389 70.956954 \n",
|
|
"L 88.429778 72.801716 \n",
|
|
"L 90.223166 74.615027 \n",
|
|
"L 92.016555 76.432364 \n",
|
|
"L 93.809943 78.188745 \n",
|
|
"L 95.603332 79.953894 \n",
|
|
"L 97.39672 81.697599 \n",
|
|
"L 99.190108 83.431169 \n",
|
|
"L 100.983497 85.125311 \n",
|
|
"L 102.776885 86.806245 \n",
|
|
"L 104.570274 88.485313 \n",
|
|
"L 106.363662 90.149984 \n",
|
|
"L 108.157051 91.804194 \n",
|
|
"L 109.950439 93.448947 \n",
|
|
"L 111.743827 95.053219 \n",
|
|
"L 113.537216 96.679758 \n",
|
|
"L 115.330604 98.265564 \n",
|
|
"L 117.123993 99.856674 \n",
|
|
"L 118.917381 101.429453 \n",
|
|
"L 120.71077 102.975714 \n",
|
|
"L 122.504158 104.496713 \n",
|
|
"L 124.297546 106.025993 \n",
|
|
"L 126.090935 107.562807 \n",
|
|
"L 127.884323 109.032601 \n",
|
|
"L 129.677712 110.490891 \n",
|
|
"L 131.4711 111.947614 \n",
|
|
"L 133.264489 113.359542 \n",
|
|
"L 135.057877 114.765211 \n",
|
|
"L 136.851265 116.137581 \n",
|
|
"L 138.644654 117.479725 \n",
|
|
"L 140.438042 118.774057 \n",
|
|
"L 142.231431 120.063831 \n",
|
|
"L 144.024819 121.286023 \n",
|
|
"L 145.818208 122.495832 \n",
|
|
"L 147.611596 123.669293 \n",
|
|
"L 149.404985 124.78607 \n",
|
|
"L 151.198373 125.875296 \n",
|
|
"L 152.991761 126.94578 \n",
|
|
"L 154.78515 127.929428 \n",
|
|
"L 156.578538 128.867047 \n",
|
|
"L 158.371927 129.778085 \n",
|
|
"L 160.165315 130.638562 \n",
|
|
"L 161.958704 131.481675 \n",
|
|
"L 163.752092 132.237928 \n",
|
|
"L 165.54548 132.967165 \n",
|
|
"L 167.338869 133.653236 \n",
|
|
"L 169.132257 134.298126 \n",
|
|
"L 170.925646 134.907143 \n",
|
|
"L 172.719034 135.471923 \n",
|
|
"L 174.512423 135.995669 \n",
|
|
"L 176.305811 136.442755 \n",
|
|
"L 178.099199 136.870653 \n",
|
|
"L 179.892588 137.279989 \n",
|
|
"L 181.685976 137.65302 \n",
|
|
"L 183.479365 137.985923 \n",
|
|
"L 185.272753 138.263687 \n",
|
|
"L 187.066142 138.531772 \n",
|
|
"L 188.85953 138.775714 \n",
|
|
"L 190.652918 138.993352 \n",
|
|
"L 192.446307 139.179128 \n",
|
|
"L 194.239695 139.354599 \n",
|
|
"L 196.033084 139.521739 \n",
|
|
"L 197.826472 139.656345 \n",
|
|
"L 199.619861 139.775965 \n",
|
|
"L 201.413249 139.881607 \n",
|
|
"L 203.206637 139.973706 \n",
|
|
"L 205.000026 140.053302 \n",
|
|
"L 206.793414 140.15466 \n",
|
|
"L 208.586803 140.196712 \n",
|
|
"L 210.380191 140.252862 \n",
|
|
"L 212.17358 140.277452 \n",
|
|
"L 213.966968 140.311062 \n",
|
|
"L 215.760356 140.344461 \n",
|
|
"L 217.553745 140.363353 \n",
|
|
"L 219.347133 140.381922 \n",
|
|
"L 221.140522 140.380068 \n",
|
|
"L 222.93391 140.371073 \n",
|
|
"L 224.727299 140.400263 \n",
|
|
"L 226.520687 140.417474 \n",
|
|
"L 228.314075 140.412942 \n",
|
|
"L 230.107464 140.422727 \n",
|
|
"L 231.900852 140.416997 \n",
|
|
"\" style=\"fill:none;stroke:#ff7f0e;stroke-dasharray:1.5,2.475;stroke-dashoffset:0;stroke-width:1.5;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_3\">\n",
|
|
" <path d=\"M 45.478125 146.6 \n",
|
|
"L 45.478125 10.7 \n",
|
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_4\">\n",
|
|
" <path d=\"M 240.778125 146.6 \n",
|
|
"L 240.778125 10.7 \n",
|
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_5\">\n",
|
|
" <path d=\"M 45.478125 146.6 \n",
|
|
"L 240.778125 146.6 \n",
|
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_6\">\n",
|
|
" <path d=\"M 45.478125 10.7 \n",
|
|
"L 240.778125 10.7 \n",
|
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"legend_1\">\n",
|
|
" <g id=\"patch_7\">\n",
|
|
" <path d=\"M 177.826562 48.05625 \n",
|
|
"L 233.778125 48.05625 \n",
|
|
"Q 235.778125 48.05625 235.778125 46.05625 \n",
|
|
"L 235.778125 17.7 \n",
|
|
"Q 235.778125 15.7 233.778125 15.7 \n",
|
|
"L 177.826562 15.7 \n",
|
|
"Q 175.826562 15.7 175.826562 17.7 \n",
|
|
"L 175.826562 46.05625 \n",
|
|
"Q 175.826562 48.05625 177.826562 48.05625 \n",
|
|
"z\n",
|
|
"\" style=\"fill:#ffffff;opacity:0.8;stroke:#cccccc;stroke-linejoin:miter;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_21\">\n",
|
|
" <path d=\"M 179.826562 23.798437 \n",
|
|
"L 199.826562 23.798437 \n",
|
|
"\" style=\"fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_22\"/>\n",
|
|
" <g id=\"text_10\">\n",
|
|
" <!-- train -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 18.3125 70.21875 \n",
|
|
"L 18.3125 54.6875 \n",
|
|
"L 36.8125 54.6875 \n",
|
|
"L 36.8125 47.703125 \n",
|
|
"L 18.3125 47.703125 \n",
|
|
"L 18.3125 18.015625 \n",
|
|
"Q 18.3125 11.328125 20.140625 9.421875 \n",
|
|
"Q 21.96875 7.515625 27.59375 7.515625 \n",
|
|
"L 36.8125 7.515625 \n",
|
|
"L 36.8125 0 \n",
|
|
"L 27.59375 0 \n",
|
|
"Q 17.1875 0 13.234375 3.875 \n",
|
|
"Q 9.28125 7.765625 9.28125 18.015625 \n",
|
|
"L 9.28125 47.703125 \n",
|
|
"L 2.6875 47.703125 \n",
|
|
"L 2.6875 54.6875 \n",
|
|
"L 9.28125 54.6875 \n",
|
|
"L 9.28125 70.21875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-74\"/>\n",
|
|
" <path d=\"M 34.28125 27.484375 \n",
|
|
"Q 23.390625 27.484375 19.1875 25 \n",
|
|
"Q 14.984375 22.515625 14.984375 16.5 \n",
|
|
"Q 14.984375 11.71875 18.140625 8.90625 \n",
|
|
"Q 21.296875 6.109375 26.703125 6.109375 \n",
|
|
"Q 34.1875 6.109375 38.703125 11.40625 \n",
|
|
"Q 43.21875 16.703125 43.21875 25.484375 \n",
|
|
"L 43.21875 27.484375 \n",
|
|
"z\n",
|
|
"M 52.203125 31.203125 \n",
|
|
"L 52.203125 0 \n",
|
|
"L 43.21875 0 \n",
|
|
"L 43.21875 8.296875 \n",
|
|
"Q 40.140625 3.328125 35.546875 0.953125 \n",
|
|
"Q 30.953125 -1.421875 24.3125 -1.421875 \n",
|
|
"Q 15.921875 -1.421875 10.953125 3.296875 \n",
|
|
"Q 6 8.015625 6 15.921875 \n",
|
|
"Q 6 25.140625 12.171875 29.828125 \n",
|
|
"Q 18.359375 34.515625 30.609375 34.515625 \n",
|
|
"L 43.21875 34.515625 \n",
|
|
"L 43.21875 35.40625 \n",
|
|
"Q 43.21875 41.609375 39.140625 45 \n",
|
|
"Q 35.0625 48.390625 27.6875 48.390625 \n",
|
|
"Q 23 48.390625 18.546875 47.265625 \n",
|
|
"Q 14.109375 46.140625 10.015625 43.890625 \n",
|
|
"L 10.015625 52.203125 \n",
|
|
"Q 14.9375 54.109375 19.578125 55.046875 \n",
|
|
"Q 24.21875 56 28.609375 56 \n",
|
|
"Q 40.484375 56 46.34375 49.84375 \n",
|
|
"Q 52.203125 43.703125 52.203125 31.203125 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-61\"/>\n",
|
|
" <path d=\"M 9.421875 54.6875 \n",
|
|
"L 18.40625 54.6875 \n",
|
|
"L 18.40625 0 \n",
|
|
"L 9.421875 0 \n",
|
|
"z\n",
|
|
"M 9.421875 75.984375 \n",
|
|
"L 18.40625 75.984375 \n",
|
|
"L 18.40625 64.59375 \n",
|
|
"L 9.421875 64.59375 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-69\"/>\n",
|
|
" <path d=\"M 54.890625 33.015625 \n",
|
|
"L 54.890625 0 \n",
|
|
"L 45.90625 0 \n",
|
|
"L 45.90625 32.71875 \n",
|
|
"Q 45.90625 40.484375 42.875 44.328125 \n",
|
|
"Q 39.84375 48.1875 33.796875 48.1875 \n",
|
|
"Q 26.515625 48.1875 22.3125 43.546875 \n",
|
|
"Q 18.109375 38.921875 18.109375 30.90625 \n",
|
|
"L 18.109375 0 \n",
|
|
"L 9.078125 0 \n",
|
|
"L 9.078125 54.6875 \n",
|
|
"L 18.109375 54.6875 \n",
|
|
"L 18.109375 46.1875 \n",
|
|
"Q 21.34375 51.125 25.703125 53.5625 \n",
|
|
"Q 30.078125 56 35.796875 56 \n",
|
|
"Q 45.21875 56 50.046875 50.171875 \n",
|
|
"Q 54.890625 44.34375 54.890625 33.015625 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-6e\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(207.826562 27.298437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-74\"/>\n",
|
|
" <use x=\"39.208984\" xlink:href=\"#DejaVuSans-72\"/>\n",
|
|
" <use x=\"80.322266\" xlink:href=\"#DejaVuSans-61\"/>\n",
|
|
" <use x=\"141.601562\" xlink:href=\"#DejaVuSans-69\"/>\n",
|
|
" <use x=\"169.384766\" xlink:href=\"#DejaVuSans-6e\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_23\">\n",
|
|
" <path d=\"M 179.826562 38.476562 \n",
|
|
"L 199.826562 38.476562 \n",
|
|
"\" style=\"fill:none;stroke:#ff7f0e;stroke-dasharray:1.5,2.475;stroke-dashoffset:0;stroke-width:1.5;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_24\"/>\n",
|
|
" <g id=\"text_11\">\n",
|
|
" <!-- valid -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 2.984375 54.6875 \n",
|
|
"L 12.5 54.6875 \n",
|
|
"L 29.59375 8.796875 \n",
|
|
"L 46.6875 54.6875 \n",
|
|
"L 56.203125 54.6875 \n",
|
|
"L 35.6875 0 \n",
|
|
"L 23.484375 0 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-76\"/>\n",
|
|
" <path d=\"M 9.421875 75.984375 \n",
|
|
"L 18.40625 75.984375 \n",
|
|
"L 18.40625 0 \n",
|
|
"L 9.421875 0 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-6c\"/>\n",
|
|
" <path d=\"M 45.40625 46.390625 \n",
|
|
"L 45.40625 75.984375 \n",
|
|
"L 54.390625 75.984375 \n",
|
|
"L 54.390625 0 \n",
|
|
"L 45.40625 0 \n",
|
|
"L 45.40625 8.203125 \n",
|
|
"Q 42.578125 3.328125 38.25 0.953125 \n",
|
|
"Q 33.9375 -1.421875 27.875 -1.421875 \n",
|
|
"Q 17.96875 -1.421875 11.734375 6.484375 \n",
|
|
"Q 5.515625 14.40625 5.515625 27.296875 \n",
|
|
"Q 5.515625 40.1875 11.734375 48.09375 \n",
|
|
"Q 17.96875 56 27.875 56 \n",
|
|
"Q 33.9375 56 38.25 53.625 \n",
|
|
"Q 42.578125 51.265625 45.40625 46.390625 \n",
|
|
"z\n",
|
|
"M 14.796875 27.296875 \n",
|
|
"Q 14.796875 17.390625 18.875 11.75 \n",
|
|
"Q 22.953125 6.109375 30.078125 6.109375 \n",
|
|
"Q 37.203125 6.109375 41.296875 11.75 \n",
|
|
"Q 45.40625 17.390625 45.40625 27.296875 \n",
|
|
"Q 45.40625 37.203125 41.296875 42.84375 \n",
|
|
"Q 37.203125 48.484375 30.078125 48.484375 \n",
|
|
"Q 22.953125 48.484375 18.875 42.84375 \n",
|
|
"Q 14.796875 37.203125 14.796875 27.296875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-64\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(207.826562 41.976562)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-76\"/>\n",
|
|
" <use x=\"59.179688\" xlink:href=\"#DejaVuSans-61\"/>\n",
|
|
" <use x=\"120.458984\" xlink:href=\"#DejaVuSans-6c\"/>\n",
|
|
" <use x=\"148.242188\" xlink:href=\"#DejaVuSans-69\"/>\n",
|
|
" <use x=\"176.025391\" xlink:href=\"#DejaVuSans-64\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <defs>\n",
|
|
" <clipPath id=\"pc3e955fbac\">\n",
|
|
" <rect height=\"135.9\" width=\"195.3\" x=\"45.478125\" y=\"10.7\"/>\n",
|
|
" </clipPath>\n",
|
|
" </defs>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x10b283d30>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"k, num_epochs, lr, weight_decay, batch_size = 5, 100, 5, 0, 64\n",
|
|
"train_l, valid_l = k_fold(k, train_features, train_labels, num_epochs, lr, weight_decay, batch_size)\n",
|
|
"print('%d-fold validation: avg train rmse %f, avg valid rmse %f' % (k, train_l, valid_l))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## 3.16.7 预测并在Kaggle提交结果"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"def train_and_pred(train_features, test_features, train_labels, test_data,\n",
|
|
" num_epochs, lr, weight_decay, batch_size):\n",
|
|
" net = get_net(train_features.shape[1])\n",
|
|
" train_ls, _ = train(net, train_features, train_labels, None, None,\n",
|
|
" num_epochs, lr, weight_decay, batch_size)\n",
|
|
" d2l.semilogy(range(1, num_epochs + 1), train_ls, 'epochs', 'rmse')\n",
|
|
" print('train rmse %f' % train_ls[-1])\n",
|
|
" preds = net(test_features).detach().numpy()\n",
|
|
" test_data['SalePrice'] = pd.Series(preds.reshape(1, -1)[0])\n",
|
|
" submission = pd.concat([test_data['Id'], test_data['SalePrice']], axis=1)\n",
|
|
" # submission.to_csv('./submission.csv', index=False)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"train rmse 0.162085\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/svg+xml": [
|
|
"<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
|
|
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
"<!-- Created with matplotlib (http://matplotlib.org/) -->\n",
|
|
"<svg height=\"184pt\" version=\"1.1\" viewBox=\"0 0 251 184\" width=\"251pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
" <defs>\n",
|
|
" <style type=\"text/css\">\n",
|
|
"*{stroke-linecap:butt;stroke-linejoin:round;}\n",
|
|
" </style>\n",
|
|
" </defs>\n",
|
|
" <g id=\"figure_1\">\n",
|
|
" <g id=\"patch_1\">\n",
|
|
" <path d=\"M 0 184.15625 \n",
|
|
"L 251.478125 184.15625 \n",
|
|
"L 251.478125 -0 \n",
|
|
"L 0 -0 \n",
|
|
"z\n",
|
|
"\" style=\"fill:none;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"axes_1\">\n",
|
|
" <g id=\"patch_2\">\n",
|
|
" <path d=\"M 45.478125 146.6 \n",
|
|
"L 240.778125 146.6 \n",
|
|
"L 240.778125 10.7 \n",
|
|
"L 45.478125 10.7 \n",
|
|
"z\n",
|
|
"\" style=\"fill:#ffffff;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"matplotlib.axis_1\">\n",
|
|
" <g id=\"xtick_1\">\n",
|
|
" <g id=\"line2d_1\">\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 0 0 \n",
|
|
"L 0 3.5 \n",
|
|
"\" id=\"me383947859\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
|
|
" </defs>\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"52.562009\" xlink:href=\"#me383947859\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_1\">\n",
|
|
" <!-- 0 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 31.78125 66.40625 \n",
|
|
"Q 24.171875 66.40625 20.328125 58.90625 \n",
|
|
"Q 16.5 51.421875 16.5 36.375 \n",
|
|
"Q 16.5 21.390625 20.328125 13.890625 \n",
|
|
"Q 24.171875 6.390625 31.78125 6.390625 \n",
|
|
"Q 39.453125 6.390625 43.28125 13.890625 \n",
|
|
"Q 47.125 21.390625 47.125 36.375 \n",
|
|
"Q 47.125 51.421875 43.28125 58.90625 \n",
|
|
"Q 39.453125 66.40625 31.78125 66.40625 \n",
|
|
"z\n",
|
|
"M 31.78125 74.21875 \n",
|
|
"Q 44.046875 74.21875 50.515625 64.515625 \n",
|
|
"Q 56.984375 54.828125 56.984375 36.375 \n",
|
|
"Q 56.984375 17.96875 50.515625 8.265625 \n",
|
|
"Q 44.046875 -1.421875 31.78125 -1.421875 \n",
|
|
"Q 19.53125 -1.421875 13.0625 8.265625 \n",
|
|
"Q 6.59375 17.96875 6.59375 36.375 \n",
|
|
"Q 6.59375 54.828125 13.0625 64.515625 \n",
|
|
"Q 19.53125 74.21875 31.78125 74.21875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-30\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(49.380759 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_2\">\n",
|
|
" <g id=\"line2d_2\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"88.429778\" xlink:href=\"#me383947859\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_2\">\n",
|
|
" <!-- 20 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 19.1875 8.296875 \n",
|
|
"L 53.609375 8.296875 \n",
|
|
"L 53.609375 0 \n",
|
|
"L 7.328125 0 \n",
|
|
"L 7.328125 8.296875 \n",
|
|
"Q 12.9375 14.109375 22.625 23.890625 \n",
|
|
"Q 32.328125 33.6875 34.8125 36.53125 \n",
|
|
"Q 39.546875 41.84375 41.421875 45.53125 \n",
|
|
"Q 43.3125 49.21875 43.3125 52.78125 \n",
|
|
"Q 43.3125 58.59375 39.234375 62.25 \n",
|
|
"Q 35.15625 65.921875 28.609375 65.921875 \n",
|
|
"Q 23.96875 65.921875 18.8125 64.3125 \n",
|
|
"Q 13.671875 62.703125 7.8125 59.421875 \n",
|
|
"L 7.8125 69.390625 \n",
|
|
"Q 13.765625 71.78125 18.9375 73 \n",
|
|
"Q 24.125 74.21875 28.421875 74.21875 \n",
|
|
"Q 39.75 74.21875 46.484375 68.546875 \n",
|
|
"Q 53.21875 62.890625 53.21875 53.421875 \n",
|
|
"Q 53.21875 48.921875 51.53125 44.890625 \n",
|
|
"Q 49.859375 40.875 45.40625 35.40625 \n",
|
|
"Q 44.1875 33.984375 37.640625 27.21875 \n",
|
|
"Q 31.109375 20.453125 19.1875 8.296875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-32\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(82.067278 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_3\">\n",
|
|
" <g id=\"line2d_3\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"124.297546\" xlink:href=\"#me383947859\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_3\">\n",
|
|
" <!-- 40 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 37.796875 64.3125 \n",
|
|
"L 12.890625 25.390625 \n",
|
|
"L 37.796875 25.390625 \n",
|
|
"z\n",
|
|
"M 35.203125 72.90625 \n",
|
|
"L 47.609375 72.90625 \n",
|
|
"L 47.609375 25.390625 \n",
|
|
"L 58.015625 25.390625 \n",
|
|
"L 58.015625 17.1875 \n",
|
|
"L 47.609375 17.1875 \n",
|
|
"L 47.609375 0 \n",
|
|
"L 37.796875 0 \n",
|
|
"L 37.796875 17.1875 \n",
|
|
"L 4.890625 17.1875 \n",
|
|
"L 4.890625 26.703125 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-34\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(117.935046 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-34\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_4\">\n",
|
|
" <g id=\"line2d_4\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"160.165315\" xlink:href=\"#me383947859\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_4\">\n",
|
|
" <!-- 60 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 33.015625 40.375 \n",
|
|
"Q 26.375 40.375 22.484375 35.828125 \n",
|
|
"Q 18.609375 31.296875 18.609375 23.390625 \n",
|
|
"Q 18.609375 15.53125 22.484375 10.953125 \n",
|
|
"Q 26.375 6.390625 33.015625 6.390625 \n",
|
|
"Q 39.65625 6.390625 43.53125 10.953125 \n",
|
|
"Q 47.40625 15.53125 47.40625 23.390625 \n",
|
|
"Q 47.40625 31.296875 43.53125 35.828125 \n",
|
|
"Q 39.65625 40.375 33.015625 40.375 \n",
|
|
"z\n",
|
|
"M 52.59375 71.296875 \n",
|
|
"L 52.59375 62.3125 \n",
|
|
"Q 48.875 64.0625 45.09375 64.984375 \n",
|
|
"Q 41.3125 65.921875 37.59375 65.921875 \n",
|
|
"Q 27.828125 65.921875 22.671875 59.328125 \n",
|
|
"Q 17.53125 52.734375 16.796875 39.40625 \n",
|
|
"Q 19.671875 43.65625 24.015625 45.921875 \n",
|
|
"Q 28.375 48.1875 33.59375 48.1875 \n",
|
|
"Q 44.578125 48.1875 50.953125 41.515625 \n",
|
|
"Q 57.328125 34.859375 57.328125 23.390625 \n",
|
|
"Q 57.328125 12.15625 50.6875 5.359375 \n",
|
|
"Q 44.046875 -1.421875 33.015625 -1.421875 \n",
|
|
"Q 20.359375 -1.421875 13.671875 8.265625 \n",
|
|
"Q 6.984375 17.96875 6.984375 36.375 \n",
|
|
"Q 6.984375 53.65625 15.1875 63.9375 \n",
|
|
"Q 23.390625 74.21875 37.203125 74.21875 \n",
|
|
"Q 40.921875 74.21875 44.703125 73.484375 \n",
|
|
"Q 48.484375 72.75 52.59375 71.296875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-36\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(153.802815 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-36\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_5\">\n",
|
|
" <g id=\"line2d_5\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"196.033084\" xlink:href=\"#me383947859\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_5\">\n",
|
|
" <!-- 80 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 31.78125 34.625 \n",
|
|
"Q 24.75 34.625 20.71875 30.859375 \n",
|
|
"Q 16.703125 27.09375 16.703125 20.515625 \n",
|
|
"Q 16.703125 13.921875 20.71875 10.15625 \n",
|
|
"Q 24.75 6.390625 31.78125 6.390625 \n",
|
|
"Q 38.8125 6.390625 42.859375 10.171875 \n",
|
|
"Q 46.921875 13.96875 46.921875 20.515625 \n",
|
|
"Q 46.921875 27.09375 42.890625 30.859375 \n",
|
|
"Q 38.875 34.625 31.78125 34.625 \n",
|
|
"z\n",
|
|
"M 21.921875 38.8125 \n",
|
|
"Q 15.578125 40.375 12.03125 44.71875 \n",
|
|
"Q 8.5 49.078125 8.5 55.328125 \n",
|
|
"Q 8.5 64.0625 14.71875 69.140625 \n",
|
|
"Q 20.953125 74.21875 31.78125 74.21875 \n",
|
|
"Q 42.671875 74.21875 48.875 69.140625 \n",
|
|
"Q 55.078125 64.0625 55.078125 55.328125 \n",
|
|
"Q 55.078125 49.078125 51.53125 44.71875 \n",
|
|
"Q 48 40.375 41.703125 38.8125 \n",
|
|
"Q 48.828125 37.15625 52.796875 32.3125 \n",
|
|
"Q 56.78125 27.484375 56.78125 20.515625 \n",
|
|
"Q 56.78125 9.90625 50.3125 4.234375 \n",
|
|
"Q 43.84375 -1.421875 31.78125 -1.421875 \n",
|
|
"Q 19.734375 -1.421875 13.25 4.234375 \n",
|
|
"Q 6.78125 9.90625 6.78125 20.515625 \n",
|
|
"Q 6.78125 27.484375 10.78125 32.3125 \n",
|
|
"Q 14.796875 37.15625 21.921875 38.8125 \n",
|
|
"z\n",
|
|
"M 18.3125 54.390625 \n",
|
|
"Q 18.3125 48.734375 21.84375 45.5625 \n",
|
|
"Q 25.390625 42.390625 31.78125 42.390625 \n",
|
|
"Q 38.140625 42.390625 41.71875 45.5625 \n",
|
|
"Q 45.3125 48.734375 45.3125 54.390625 \n",
|
|
"Q 45.3125 60.0625 41.71875 63.234375 \n",
|
|
"Q 38.140625 66.40625 31.78125 66.40625 \n",
|
|
"Q 25.390625 66.40625 21.84375 63.234375 \n",
|
|
"Q 18.3125 60.0625 18.3125 54.390625 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-38\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(189.670584 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-38\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"xtick_6\">\n",
|
|
" <g id=\"line2d_6\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"231.900852\" xlink:href=\"#me383947859\" y=\"146.6\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_6\">\n",
|
|
" <!-- 100 -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 12.40625 8.296875 \n",
|
|
"L 28.515625 8.296875 \n",
|
|
"L 28.515625 63.921875 \n",
|
|
"L 10.984375 60.40625 \n",
|
|
"L 10.984375 69.390625 \n",
|
|
"L 28.421875 72.90625 \n",
|
|
"L 38.28125 72.90625 \n",
|
|
"L 38.28125 8.296875 \n",
|
|
"L 54.390625 8.296875 \n",
|
|
"L 54.390625 0 \n",
|
|
"L 12.40625 0 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-31\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(222.357102 161.198437)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
|
|
" <use x=\"63.623047\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use x=\"127.246094\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_7\">\n",
|
|
" <!-- epochs -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 56.203125 29.59375 \n",
|
|
"L 56.203125 25.203125 \n",
|
|
"L 14.890625 25.203125 \n",
|
|
"Q 15.484375 15.921875 20.484375 11.0625 \n",
|
|
"Q 25.484375 6.203125 34.421875 6.203125 \n",
|
|
"Q 39.59375 6.203125 44.453125 7.46875 \n",
|
|
"Q 49.3125 8.734375 54.109375 11.28125 \n",
|
|
"L 54.109375 2.78125 \n",
|
|
"Q 49.265625 0.734375 44.1875 -0.34375 \n",
|
|
"Q 39.109375 -1.421875 33.890625 -1.421875 \n",
|
|
"Q 20.796875 -1.421875 13.15625 6.1875 \n",
|
|
"Q 5.515625 13.8125 5.515625 26.8125 \n",
|
|
"Q 5.515625 40.234375 12.765625 48.109375 \n",
|
|
"Q 20.015625 56 32.328125 56 \n",
|
|
"Q 43.359375 56 49.78125 48.890625 \n",
|
|
"Q 56.203125 41.796875 56.203125 29.59375 \n",
|
|
"z\n",
|
|
"M 47.21875 32.234375 \n",
|
|
"Q 47.125 39.59375 43.09375 43.984375 \n",
|
|
"Q 39.0625 48.390625 32.421875 48.390625 \n",
|
|
"Q 24.90625 48.390625 20.390625 44.140625 \n",
|
|
"Q 15.875 39.890625 15.1875 32.171875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-65\"/>\n",
|
|
" <path d=\"M 18.109375 8.203125 \n",
|
|
"L 18.109375 -20.796875 \n",
|
|
"L 9.078125 -20.796875 \n",
|
|
"L 9.078125 54.6875 \n",
|
|
"L 18.109375 54.6875 \n",
|
|
"L 18.109375 46.390625 \n",
|
|
"Q 20.953125 51.265625 25.265625 53.625 \n",
|
|
"Q 29.59375 56 35.59375 56 \n",
|
|
"Q 45.5625 56 51.78125 48.09375 \n",
|
|
"Q 58.015625 40.1875 58.015625 27.296875 \n",
|
|
"Q 58.015625 14.40625 51.78125 6.484375 \n",
|
|
"Q 45.5625 -1.421875 35.59375 -1.421875 \n",
|
|
"Q 29.59375 -1.421875 25.265625 0.953125 \n",
|
|
"Q 20.953125 3.328125 18.109375 8.203125 \n",
|
|
"z\n",
|
|
"M 48.6875 27.296875 \n",
|
|
"Q 48.6875 37.203125 44.609375 42.84375 \n",
|
|
"Q 40.53125 48.484375 33.40625 48.484375 \n",
|
|
"Q 26.265625 48.484375 22.1875 42.84375 \n",
|
|
"Q 18.109375 37.203125 18.109375 27.296875 \n",
|
|
"Q 18.109375 17.390625 22.1875 11.75 \n",
|
|
"Q 26.265625 6.109375 33.40625 6.109375 \n",
|
|
"Q 40.53125 6.109375 44.609375 11.75 \n",
|
|
"Q 48.6875 17.390625 48.6875 27.296875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-70\"/>\n",
|
|
" <path d=\"M 30.609375 48.390625 \n",
|
|
"Q 23.390625 48.390625 19.1875 42.75 \n",
|
|
"Q 14.984375 37.109375 14.984375 27.296875 \n",
|
|
"Q 14.984375 17.484375 19.15625 11.84375 \n",
|
|
"Q 23.34375 6.203125 30.609375 6.203125 \n",
|
|
"Q 37.796875 6.203125 41.984375 11.859375 \n",
|
|
"Q 46.1875 17.53125 46.1875 27.296875 \n",
|
|
"Q 46.1875 37.015625 41.984375 42.703125 \n",
|
|
"Q 37.796875 48.390625 30.609375 48.390625 \n",
|
|
"z\n",
|
|
"M 30.609375 56 \n",
|
|
"Q 42.328125 56 49.015625 48.375 \n",
|
|
"Q 55.71875 40.765625 55.71875 27.296875 \n",
|
|
"Q 55.71875 13.875 49.015625 6.21875 \n",
|
|
"Q 42.328125 -1.421875 30.609375 -1.421875 \n",
|
|
"Q 18.84375 -1.421875 12.171875 6.21875 \n",
|
|
"Q 5.515625 13.875 5.515625 27.296875 \n",
|
|
"Q 5.515625 40.765625 12.171875 48.375 \n",
|
|
"Q 18.84375 56 30.609375 56 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-6f\"/>\n",
|
|
" <path d=\"M 48.78125 52.59375 \n",
|
|
"L 48.78125 44.1875 \n",
|
|
"Q 44.96875 46.296875 41.140625 47.34375 \n",
|
|
"Q 37.3125 48.390625 33.40625 48.390625 \n",
|
|
"Q 24.65625 48.390625 19.8125 42.84375 \n",
|
|
"Q 14.984375 37.3125 14.984375 27.296875 \n",
|
|
"Q 14.984375 17.28125 19.8125 11.734375 \n",
|
|
"Q 24.65625 6.203125 33.40625 6.203125 \n",
|
|
"Q 37.3125 6.203125 41.140625 7.25 \n",
|
|
"Q 44.96875 8.296875 48.78125 10.40625 \n",
|
|
"L 48.78125 2.09375 \n",
|
|
"Q 45.015625 0.34375 40.984375 -0.53125 \n",
|
|
"Q 36.96875 -1.421875 32.421875 -1.421875 \n",
|
|
"Q 20.0625 -1.421875 12.78125 6.34375 \n",
|
|
"Q 5.515625 14.109375 5.515625 27.296875 \n",
|
|
"Q 5.515625 40.671875 12.859375 48.328125 \n",
|
|
"Q 20.21875 56 33.015625 56 \n",
|
|
"Q 37.15625 56 41.109375 55.140625 \n",
|
|
"Q 45.0625 54.296875 48.78125 52.59375 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-63\"/>\n",
|
|
" <path d=\"M 54.890625 33.015625 \n",
|
|
"L 54.890625 0 \n",
|
|
"L 45.90625 0 \n",
|
|
"L 45.90625 32.71875 \n",
|
|
"Q 45.90625 40.484375 42.875 44.328125 \n",
|
|
"Q 39.84375 48.1875 33.796875 48.1875 \n",
|
|
"Q 26.515625 48.1875 22.3125 43.546875 \n",
|
|
"Q 18.109375 38.921875 18.109375 30.90625 \n",
|
|
"L 18.109375 0 \n",
|
|
"L 9.078125 0 \n",
|
|
"L 9.078125 75.984375 \n",
|
|
"L 18.109375 75.984375 \n",
|
|
"L 18.109375 46.1875 \n",
|
|
"Q 21.34375 51.125 25.703125 53.5625 \n",
|
|
"Q 30.078125 56 35.796875 56 \n",
|
|
"Q 45.21875 56 50.046875 50.171875 \n",
|
|
"Q 54.890625 44.34375 54.890625 33.015625 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-68\"/>\n",
|
|
" <path d=\"M 44.28125 53.078125 \n",
|
|
"L 44.28125 44.578125 \n",
|
|
"Q 40.484375 46.53125 36.375 47.5 \n",
|
|
"Q 32.28125 48.484375 27.875 48.484375 \n",
|
|
"Q 21.1875 48.484375 17.84375 46.4375 \n",
|
|
"Q 14.5 44.390625 14.5 40.28125 \n",
|
|
"Q 14.5 37.15625 16.890625 35.375 \n",
|
|
"Q 19.28125 33.59375 26.515625 31.984375 \n",
|
|
"L 29.59375 31.296875 \n",
|
|
"Q 39.15625 29.25 43.1875 25.515625 \n",
|
|
"Q 47.21875 21.78125 47.21875 15.09375 \n",
|
|
"Q 47.21875 7.46875 41.1875 3.015625 \n",
|
|
"Q 35.15625 -1.421875 24.609375 -1.421875 \n",
|
|
"Q 20.21875 -1.421875 15.453125 -0.5625 \n",
|
|
"Q 10.6875 0.296875 5.421875 2 \n",
|
|
"L 5.421875 11.28125 \n",
|
|
"Q 10.40625 8.6875 15.234375 7.390625 \n",
|
|
"Q 20.0625 6.109375 24.8125 6.109375 \n",
|
|
"Q 31.15625 6.109375 34.5625 8.28125 \n",
|
|
"Q 37.984375 10.453125 37.984375 14.40625 \n",
|
|
"Q 37.984375 18.0625 35.515625 20.015625 \n",
|
|
"Q 33.0625 21.96875 24.703125 23.78125 \n",
|
|
"L 21.578125 24.515625 \n",
|
|
"Q 13.234375 26.265625 9.515625 29.90625 \n",
|
|
"Q 5.8125 33.546875 5.8125 39.890625 \n",
|
|
"Q 5.8125 47.609375 11.28125 51.796875 \n",
|
|
"Q 16.75 56 26.8125 56 \n",
|
|
"Q 31.78125 56 36.171875 55.265625 \n",
|
|
"Q 40.578125 54.546875 44.28125 53.078125 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-73\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(125.295312 174.876562)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-65\"/>\n",
|
|
" <use x=\"61.523438\" xlink:href=\"#DejaVuSans-70\"/>\n",
|
|
" <use x=\"125\" xlink:href=\"#DejaVuSans-6f\"/>\n",
|
|
" <use x=\"186.181641\" xlink:href=\"#DejaVuSans-63\"/>\n",
|
|
" <use x=\"241.162109\" xlink:href=\"#DejaVuSans-68\"/>\n",
|
|
" <use x=\"304.541016\" xlink:href=\"#DejaVuSans-73\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"matplotlib.axis_2\">\n",
|
|
" <g id=\"ytick_1\">\n",
|
|
" <g id=\"line2d_7\">\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 0 0 \n",
|
|
"L -3.5 0 \n",
|
|
"\" id=\"mf4b47cc8b8\" style=\"stroke:#000000;stroke-width:0.8;\"/>\n",
|
|
" </defs>\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"45.478125\" xlink:href=\"#mf4b47cc8b8\" y=\"67.605387\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_8\">\n",
|
|
" <!-- $\\mathdefault{10^{0}}$ -->\n",
|
|
" <g transform=\"translate(20.878125 71.404605)scale(0.1 -0.1)\">\n",
|
|
" <use transform=\"translate(0 0.765625)\" xlink:href=\"#DejaVuSans-31\"/>\n",
|
|
" <use transform=\"translate(63.623047 0.765625)\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" <use transform=\"translate(128.203125 39.046875)scale(0.7)\" xlink:href=\"#DejaVuSans-30\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_2\">\n",
|
|
" <g id=\"line2d_8\">\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 0 0 \n",
|
|
"L -2 0 \n",
|
|
"\" id=\"m5bb3ee9e0a\" style=\"stroke:#000000;stroke-width:0.6;\"/>\n",
|
|
" </defs>\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m5bb3ee9e0a\" y=\"132.011168\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_3\">\n",
|
|
" <g id=\"line2d_9\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m5bb3ee9e0a\" y=\"115.785443\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_4\">\n",
|
|
" <g id=\"line2d_10\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m5bb3ee9e0a\" y=\"104.273108\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_5\">\n",
|
|
" <g id=\"line2d_11\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m5bb3ee9e0a\" y=\"95.343447\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_6\">\n",
|
|
" <g id=\"line2d_12\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m5bb3ee9e0a\" y=\"88.047383\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_7\">\n",
|
|
" <g id=\"line2d_13\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m5bb3ee9e0a\" y=\"81.878648\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_8\">\n",
|
|
" <g id=\"line2d_14\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m5bb3ee9e0a\" y=\"76.535048\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_9\">\n",
|
|
" <g id=\"line2d_15\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m5bb3ee9e0a\" y=\"71.821658\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_10\">\n",
|
|
" <g id=\"line2d_16\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m5bb3ee9e0a\" y=\"39.867326\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_11\">\n",
|
|
" <g id=\"line2d_17\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m5bb3ee9e0a\" y=\"23.641601\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"ytick_12\">\n",
|
|
" <g id=\"line2d_18\">\n",
|
|
" <g>\n",
|
|
" <use style=\"stroke:#000000;stroke-width:0.6;\" x=\"45.478125\" xlink:href=\"#m5bb3ee9e0a\" y=\"12.129266\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"text_9\">\n",
|
|
" <!-- rmse -->\n",
|
|
" <defs>\n",
|
|
" <path d=\"M 41.109375 46.296875 \n",
|
|
"Q 39.59375 47.171875 37.8125 47.578125 \n",
|
|
"Q 36.03125 48 33.890625 48 \n",
|
|
"Q 26.265625 48 22.1875 43.046875 \n",
|
|
"Q 18.109375 38.09375 18.109375 28.8125 \n",
|
|
"L 18.109375 0 \n",
|
|
"L 9.078125 0 \n",
|
|
"L 9.078125 54.6875 \n",
|
|
"L 18.109375 54.6875 \n",
|
|
"L 18.109375 46.1875 \n",
|
|
"Q 20.953125 51.171875 25.484375 53.578125 \n",
|
|
"Q 30.03125 56 36.53125 56 \n",
|
|
"Q 37.453125 56 38.578125 55.875 \n",
|
|
"Q 39.703125 55.765625 41.0625 55.515625 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-72\"/>\n",
|
|
" <path d=\"M 52 44.1875 \n",
|
|
"Q 55.375 50.25 60.0625 53.125 \n",
|
|
"Q 64.75 56 71.09375 56 \n",
|
|
"Q 79.640625 56 84.28125 50.015625 \n",
|
|
"Q 88.921875 44.046875 88.921875 33.015625 \n",
|
|
"L 88.921875 0 \n",
|
|
"L 79.890625 0 \n",
|
|
"L 79.890625 32.71875 \n",
|
|
"Q 79.890625 40.578125 77.09375 44.375 \n",
|
|
"Q 74.3125 48.1875 68.609375 48.1875 \n",
|
|
"Q 61.625 48.1875 57.5625 43.546875 \n",
|
|
"Q 53.515625 38.921875 53.515625 30.90625 \n",
|
|
"L 53.515625 0 \n",
|
|
"L 44.484375 0 \n",
|
|
"L 44.484375 32.71875 \n",
|
|
"Q 44.484375 40.625 41.703125 44.40625 \n",
|
|
"Q 38.921875 48.1875 33.109375 48.1875 \n",
|
|
"Q 26.21875 48.1875 22.15625 43.53125 \n",
|
|
"Q 18.109375 38.875 18.109375 30.90625 \n",
|
|
"L 18.109375 0 \n",
|
|
"L 9.078125 0 \n",
|
|
"L 9.078125 54.6875 \n",
|
|
"L 18.109375 54.6875 \n",
|
|
"L 18.109375 46.1875 \n",
|
|
"Q 21.1875 51.21875 25.484375 53.609375 \n",
|
|
"Q 29.78125 56 35.6875 56 \n",
|
|
"Q 41.65625 56 45.828125 52.96875 \n",
|
|
"Q 50 49.953125 52 44.1875 \n",
|
|
"z\n",
|
|
"\" id=\"DejaVuSans-6d\"/>\n",
|
|
" </defs>\n",
|
|
" <g transform=\"translate(14.798437 91.25625)rotate(-90)scale(0.1 -0.1)\">\n",
|
|
" <use xlink:href=\"#DejaVuSans-72\"/>\n",
|
|
" <use x=\"41.097656\" xlink:href=\"#DejaVuSans-6d\"/>\n",
|
|
" <use x=\"138.509766\" xlink:href=\"#DejaVuSans-73\"/>\n",
|
|
" <use x=\"190.609375\" xlink:href=\"#DejaVuSans-65\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <g id=\"line2d_19\">\n",
|
|
" <path clip-path=\"url(#p6a29150b6d)\" d=\"M 54.355398 16.877273 \n",
|
|
"L 56.148786 25.502057 \n",
|
|
"L 57.942175 31.493647 \n",
|
|
"L 59.735563 36.308553 \n",
|
|
"L 61.528951 40.456809 \n",
|
|
"L 63.32234 44.156215 \n",
|
|
"L 65.115728 47.526167 \n",
|
|
"L 66.909117 50.680151 \n",
|
|
"L 68.702505 53.648029 \n",
|
|
"L 70.495894 56.468061 \n",
|
|
"L 72.289282 59.165187 \n",
|
|
"L 74.08267 61.760012 \n",
|
|
"L 75.876059 64.289173 \n",
|
|
"L 77.669447 66.732586 \n",
|
|
"L 79.462836 69.133274 \n",
|
|
"L 81.256224 71.48934 \n",
|
|
"L 83.049613 73.781223 \n",
|
|
"L 84.843001 76.047718 \n",
|
|
"L 86.636389 78.266966 \n",
|
|
"L 88.429778 80.470223 \n",
|
|
"L 90.223166 82.639554 \n",
|
|
"L 92.016555 84.781375 \n",
|
|
"L 93.809943 86.899779 \n",
|
|
"L 95.603332 89.000132 \n",
|
|
"L 97.39672 91.069474 \n",
|
|
"L 99.190108 93.102127 \n",
|
|
"L 100.983497 95.13849 \n",
|
|
"L 102.776885 97.13509 \n",
|
|
"L 104.570274 99.138971 \n",
|
|
"L 106.363662 101.092147 \n",
|
|
"L 108.157051 103.019018 \n",
|
|
"L 109.950439 104.928386 \n",
|
|
"L 111.743827 106.802608 \n",
|
|
"L 113.537216 108.644709 \n",
|
|
"L 115.330604 110.471673 \n",
|
|
"L 117.123993 112.21339 \n",
|
|
"L 118.917381 113.955378 \n",
|
|
"L 120.71077 115.636479 \n",
|
|
"L 122.504158 117.260403 \n",
|
|
"L 124.297546 118.88593 \n",
|
|
"L 126.090935 120.420919 \n",
|
|
"L 127.884323 121.871376 \n",
|
|
"L 129.677712 123.287551 \n",
|
|
"L 131.4711 124.636373 \n",
|
|
"L 133.264489 125.908761 \n",
|
|
"L 135.057877 127.150846 \n",
|
|
"L 136.851265 128.263479 \n",
|
|
"L 138.644654 129.351956 \n",
|
|
"L 140.438042 130.337587 \n",
|
|
"L 142.231431 131.279188 \n",
|
|
"L 144.024819 132.140447 \n",
|
|
"L 145.818208 132.934413 \n",
|
|
"L 147.611596 133.663889 \n",
|
|
"L 149.404985 134.34163 \n",
|
|
"L 151.198373 134.933824 \n",
|
|
"L 152.991761 135.493066 \n",
|
|
"L 154.78515 135.992847 \n",
|
|
"L 156.578538 136.423869 \n",
|
|
"L 158.371927 136.832602 \n",
|
|
"L 160.165315 137.191606 \n",
|
|
"L 161.958704 137.505904 \n",
|
|
"L 163.752092 137.781634 \n",
|
|
"L 165.54548 138.030128 \n",
|
|
"L 167.338869 138.2541 \n",
|
|
"L 169.132257 138.453358 \n",
|
|
"L 170.925646 138.618746 \n",
|
|
"L 172.719034 138.765091 \n",
|
|
"L 174.512423 138.894413 \n",
|
|
"L 176.305811 139.005418 \n",
|
|
"L 178.099199 139.100245 \n",
|
|
"L 179.892588 139.182038 \n",
|
|
"L 181.685976 139.246804 \n",
|
|
"L 183.479365 139.310817 \n",
|
|
"L 185.272753 139.373541 \n",
|
|
"L 187.066142 139.408724 \n",
|
|
"L 188.85953 139.454843 \n",
|
|
"L 190.652918 139.49031 \n",
|
|
"L 192.446307 139.525002 \n",
|
|
"L 194.239695 139.536699 \n",
|
|
"L 196.033084 139.582962 \n",
|
|
"L 197.826472 139.609637 \n",
|
|
"L 199.619861 139.628164 \n",
|
|
"L 201.413249 139.64444 \n",
|
|
"L 203.206637 139.646205 \n",
|
|
"L 205.000026 139.670965 \n",
|
|
"L 206.793414 139.728301 \n",
|
|
"L 208.586803 139.769303 \n",
|
|
"L 210.380191 139.807111 \n",
|
|
"L 212.17358 139.838246 \n",
|
|
"L 213.966968 139.85717 \n",
|
|
"L 215.760356 139.897744 \n",
|
|
"L 217.553745 139.924074 \n",
|
|
"L 219.347133 140.023765 \n",
|
|
"L 221.140522 140.039044 \n",
|
|
"L 222.93391 140.083295 \n",
|
|
"L 224.727299 140.130508 \n",
|
|
"L 226.520687 140.239265 \n",
|
|
"L 228.314075 140.248616 \n",
|
|
"L 230.107464 140.362162 \n",
|
|
"L 231.900852 140.422727 \n",
|
|
"\" style=\"fill:none;stroke:#1f77b4;stroke-linecap:square;stroke-width:1.5;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_3\">\n",
|
|
" <path d=\"M 45.478125 146.6 \n",
|
|
"L 45.478125 10.7 \n",
|
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_4\">\n",
|
|
" <path d=\"M 240.778125 146.6 \n",
|
|
"L 240.778125 10.7 \n",
|
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_5\">\n",
|
|
" <path d=\"M 45.478125 146.6 \n",
|
|
"L 240.778125 146.6 \n",
|
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
|
" </g>\n",
|
|
" <g id=\"patch_6\">\n",
|
|
" <path d=\"M 45.478125 10.7 \n",
|
|
"L 240.778125 10.7 \n",
|
|
"\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" </g>\n",
|
|
" <defs>\n",
|
|
" <clipPath id=\"p6a29150b6d\">\n",
|
|
" <rect height=\"135.9\" width=\"195.3\" x=\"45.478125\" y=\"10.7\"/>\n",
|
|
" </clipPath>\n",
|
|
" </defs>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x11f34cef0>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"train_and_pred(train_features, test_features, train_labels, test_data, num_epochs, lr, weight_decay, batch_size)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"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.6.2"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|