diff --git a/density_tree.ipynb b/density_tree.ipynb index 93020e1..78f19e1 100644 --- a/density_tree.ipynb +++ b/density_tree.ipynb @@ -965,7 +965,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -1210,14 +1210,6 @@ "metadata": {}, "output_type": "display_data" }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "c:\\Users\\user\\Projects\\python\\fuzzy\\.venv\\Lib\\site-packages\\skfuzzy\\control\\fuzzyvariable.py:125: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown\n", - " fig.show()\n" - ] - }, { "data": { "image/png": "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", @@ -1241,7 +1233,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -1269,7 +1261,9 @@ " Al2O3\n", " TiO2\n", " Density\n", - " DensityPred\n", + " Real\n", + " Inferred\n", + " RMSE\n", " \n", " \n", " \n", @@ -1279,7 +1273,9 @@ " 0.00\n", " 0.0\n", " 1.06250\n", + " 1.06250\n", " 1.077498\n", + " 0.014998\n", " \n", " \n", " 1\n", @@ -1287,7 +1283,9 @@ " 0.00\n", " 0.0\n", " 1.05979\n", + " 1.05979\n", " 1.076593\n", + " 0.016803\n", " \n", " \n", " 2\n", @@ -1295,7 +1293,9 @@ " 0.00\n", " 0.0\n", " 1.05404\n", + " 1.05404\n", " 1.069156\n", + " 0.015116\n", " \n", " \n", " 3\n", @@ -1303,7 +1303,9 @@ " 0.00\n", " 0.0\n", " 1.05103\n", + " 1.05103\n", " 1.061106\n", + " 0.010076\n", " \n", " \n", " 4\n", @@ -1311,7 +1313,9 @@ " 0.00\n", " 0.0\n", " 1.04794\n", + " 1.04794\n", " 1.045833\n", + " 0.002107\n", " \n", " \n", " 5\n", @@ -1319,7 +1323,9 @@ " 0.00\n", " 0.0\n", " 1.04477\n", + " 1.04477\n", " 1.046360\n", + " 0.001590\n", " \n", " \n", " 6\n", @@ -1327,7 +1333,9 @@ " 0.00\n", " 0.0\n", " 1.03826\n", + " 1.03826\n", " 1.047642\n", + " 0.009382\n", " \n", " \n", " 7\n", @@ -1335,7 +1343,9 @@ " 0.00\n", " 0.0\n", " 1.03484\n", + " 1.03484\n", " 1.046360\n", + " 0.011520\n", " \n", " \n", " 8\n", @@ -1343,7 +1353,9 @@ " 0.00\n", " 0.0\n", " 1.03182\n", + " 1.03182\n", " 1.045833\n", + " 0.014013\n", " \n", " \n", " 9\n", @@ -1351,7 +1363,9 @@ " 0.05\n", " 0.0\n", " 1.08755\n", + " 1.08755\n", " 1.077498\n", + " 0.010052\n", " \n", " \n", " 10\n", @@ -1359,7 +1373,9 @@ " 0.05\n", " 0.0\n", " 1.07105\n", + " 1.07105\n", " 1.067145\n", + " 0.003905\n", " \n", " \n", " 11\n", @@ -1367,7 +1383,9 @@ " 0.05\n", " 0.0\n", " 1.06760\n", + " 1.06760\n", " 1.067145\n", + " 0.000455\n", " \n", " \n", " 12\n", @@ -1375,7 +1393,9 @@ " 0.05\n", " 0.0\n", " 1.06409\n", + " 1.06409\n", " 1.067988\n", + " 0.003898\n", " \n", " \n", " 13\n", @@ -1383,7 +1403,9 @@ " 0.05\n", " 0.0\n", " 1.05691\n", + " 1.05691\n", " 1.062538\n", + " 0.005628\n", " \n", " \n", " 14\n", @@ -1391,37 +1413,43 @@ " 0.05\n", " 0.0\n", " 1.05291\n", + " 1.05291\n", " 1.047191\n", + " 0.005719\n", " \n", " \n", "\n", "" ], "text/plain": [ - " T Al2O3 TiO2 Density DensityPred\n", - "0 20 0.00 0.0 1.06250 1.077498\n", - "1 25 0.00 0.0 1.05979 1.076593\n", - "2 35 0.00 0.0 1.05404 1.069156\n", - "3 40 0.00 0.0 1.05103 1.061106\n", - "4 45 0.00 0.0 1.04794 1.045833\n", - "5 50 0.00 0.0 1.04477 1.046360\n", - "6 60 0.00 0.0 1.03826 1.047642\n", - "7 65 0.00 0.0 1.03484 1.046360\n", - "8 70 0.00 0.0 1.03182 1.045833\n", - "9 20 0.05 0.0 1.08755 1.077498\n", - "10 45 0.05 0.0 1.07105 1.067145\n", - "11 50 0.05 0.0 1.06760 1.067145\n", - "12 55 0.05 0.0 1.06409 1.067988\n", - "13 65 0.05 0.0 1.05691 1.062538\n", - "14 70 0.05 0.0 1.05291 1.047191" + " T Al2O3 TiO2 Density Real Inferred RMSE\n", + "0 20 0.00 0.0 1.06250 1.06250 1.077498 0.014998\n", + "1 25 0.00 0.0 1.05979 1.05979 1.076593 0.016803\n", + "2 35 0.00 0.0 1.05404 1.05404 1.069156 0.015116\n", + "3 40 0.00 0.0 1.05103 1.05103 1.061106 0.010076\n", + "4 45 0.00 0.0 1.04794 1.04794 1.045833 0.002107\n", + "5 50 0.00 0.0 1.04477 1.04477 1.046360 0.001590\n", + "6 60 0.00 0.0 1.03826 1.03826 1.047642 0.009382\n", + "7 65 0.00 0.0 1.03484 1.03484 1.046360 0.011520\n", + "8 70 0.00 0.0 1.03182 1.03182 1.045833 0.014013\n", + "9 20 0.05 0.0 1.08755 1.08755 1.077498 0.010052\n", + "10 45 0.05 0.0 1.07105 1.07105 1.067145 0.003905\n", + "11 50 0.05 0.0 1.06760 1.06760 1.067145 0.000455\n", + "12 55 0.05 0.0 1.06409 1.06409 1.067988 0.003898\n", + "13 65 0.05 0.0 1.05691 1.05691 1.062538 0.005628\n", + "14 70 0.05 0.0 1.05291 1.05291 1.047191 0.005719" ] }, - "execution_count": 13, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ + "from sklearn import metrics\n", + "import math\n", + "\n", + "\n", "def fuzzy_pred(row):\n", " sim.input[\"temp\"] = row[\"T\"]\n", " sim.input[\"al\"] = row[\"Al2O3\"]\n", @@ -1429,14 +1457,20 @@ " sim.compute()\n", " return sim.output[\"density\"]\n", "\n", + "\n", + "def rmse(row):\n", + " return math.sqrt(metrics.mean_squared_error([row[\"Real\"]], [row[\"Inferred\"]]))\n", + "\n", "result_train = density_train.copy()\n", - "result_train[\"DensityPred\"] = result_train.apply(fuzzy_pred, axis=1)\n", + "result_train[\"Real\"] = result_train[\"Density\"]\n", + "result_train[\"Inferred\"] = result_train.apply(fuzzy_pred, axis=1)\n", + "result_train[\"RMSE\"] = result_train.apply(rmse, axis=1)\n", "result_train.head(15)" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -1464,7 +1498,9 @@ " Al2O3\n", " TiO2\n", " Density\n", - " DensityPred\n", + " Real\n", + " Inferred\n", + " RMSE\n", " \n", " \n", " \n", @@ -1474,7 +1510,9 @@ " 0.00\n", " 0.00\n", " 1.05696\n", + " 1.05696\n", " 1.073918\n", + " 0.017\n", " \n", " \n", " 1\n", @@ -1482,7 +1520,9 @@ " 0.00\n", " 0.00\n", " 1.04158\n", + " 1.04158\n", " 1.047642\n", + " 0.006\n", " \n", " \n", " 2\n", @@ -1490,7 +1530,9 @@ " 0.05\n", " 0.00\n", " 1.08438\n", + " 1.08438\n", " 1.076518\n", + " 0.008\n", " \n", " \n", " 3\n", @@ -1498,7 +1540,9 @@ " 0.05\n", " 0.00\n", " 1.08112\n", + " 1.08112\n", " 1.073918\n", + " 0.007\n", " \n", " \n", " 4\n", @@ -1506,7 +1550,9 @@ " 0.05\n", " 0.00\n", " 1.07781\n", + " 1.07781\n", " 1.069156\n", + " 0.009\n", " \n", " \n", " 5\n", @@ -1514,7 +1560,9 @@ " 0.05\n", " 0.00\n", " 1.07446\n", + " 1.07446\n", " 1.067145\n", + " 0.007\n", " \n", " \n", " 6\n", @@ -1522,7 +1570,9 @@ " 0.05\n", " 0.00\n", " 1.06053\n", + " 1.06053\n", " 1.067988\n", + " 0.007\n", " \n", " \n", " 7\n", @@ -1530,7 +1580,9 @@ " 0.30\n", " 0.00\n", " 1.17459\n", + " 1.17459\n", " 1.172492\n", + " 0.002\n", " \n", " \n", " 8\n", @@ -1538,7 +1590,9 @@ " 0.30\n", " 0.00\n", " 1.14812\n", + " 1.14812\n", " 1.136460\n", + " 0.012\n", " \n", " \n", " 9\n", @@ -1546,7 +1600,9 @@ " 0.00\n", " 0.05\n", " 1.07424\n", + " 1.07424\n", " 1.067145\n", + " 0.007\n", " \n", " \n", " 10\n", @@ -1554,7 +1610,9 @@ " 0.00\n", " 0.05\n", " 1.07075\n", + " 1.07075\n", " 1.067145\n", + " 0.004\n", " \n", " \n", " 11\n", @@ -1562,7 +1620,9 @@ " 0.00\n", " 0.05\n", " 1.06721\n", + " 1.06721\n", " 1.067988\n", + " 0.001\n", " \n", " \n", " 12\n", @@ -1570,7 +1630,9 @@ " 0.00\n", " 0.30\n", " 1.22417\n", + " 1.22417\n", " 1.204157\n", + " 0.020\n", " \n", " \n", " 13\n", @@ -1578,7 +1640,9 @@ " 0.00\n", " 0.30\n", " 1.21310\n", + " 1.21310\n", " 1.202348\n", + " 0.011\n", " \n", " \n", " 14\n", @@ -1586,7 +1650,9 @@ " 0.00\n", " 0.30\n", " 1.20265\n", + " 1.20265\n", " 1.203630\n", + " 0.001\n", " \n", " \n", " 15\n", @@ -1594,7 +1660,9 @@ " 0.00\n", " 0.30\n", " 1.18265\n", + " 1.18265\n", " 1.176072\n", + " 0.007\n", " \n", " \n", " 16\n", @@ -1602,47 +1670,53 @@ " 0.00\n", " 0.30\n", " 1.17261\n", + " 1.17261\n", " 1.172492\n", + " 0.000\n", " \n", " \n", "\n", "" ], "text/plain": [ - " T Al2O3 TiO2 Density DensityPred\n", - "0 30 0.00 0.00 1.05696 1.073918\n", - "1 55 0.00 0.00 1.04158 1.047642\n", - "2 25 0.05 0.00 1.08438 1.076518\n", - "3 30 0.05 0.00 1.08112 1.073918\n", - "4 35 0.05 0.00 1.07781 1.069156\n", - "5 40 0.05 0.00 1.07446 1.067145\n", - "6 60 0.05 0.00 1.06053 1.067988\n", - "7 35 0.30 0.00 1.17459 1.172492\n", - "8 65 0.30 0.00 1.14812 1.136460\n", - "9 45 0.00 0.05 1.07424 1.067145\n", - "10 50 0.00 0.05 1.07075 1.067145\n", - "11 55 0.00 0.05 1.06721 1.067988\n", - "12 20 0.00 0.30 1.22417 1.204157\n", - "13 30 0.00 0.30 1.21310 1.202348\n", - "14 40 0.00 0.30 1.20265 1.203630\n", - "15 60 0.00 0.30 1.18265 1.176072\n", - "16 70 0.00 0.30 1.17261 1.172492" + " T Al2O3 TiO2 Density Real Inferred RMSE\n", + "0 30 0.00 0.00 1.05696 1.05696 1.073918 0.017\n", + "1 55 0.00 0.00 1.04158 1.04158 1.047642 0.006\n", + "2 25 0.05 0.00 1.08438 1.08438 1.076518 0.008\n", + "3 30 0.05 0.00 1.08112 1.08112 1.073918 0.007\n", + "4 35 0.05 0.00 1.07781 1.07781 1.069156 0.009\n", + "5 40 0.05 0.00 1.07446 1.07446 1.067145 0.007\n", + "6 60 0.05 0.00 1.06053 1.06053 1.067988 0.007\n", + "7 35 0.30 0.00 1.17459 1.17459 1.172492 0.002\n", + "8 65 0.30 0.00 1.14812 1.14812 1.136460 0.012\n", + "9 45 0.00 0.05 1.07424 1.07424 1.067145 0.007\n", + "10 50 0.00 0.05 1.07075 1.07075 1.067145 0.004\n", + "11 55 0.00 0.05 1.06721 1.06721 1.067988 0.001\n", + "12 20 0.00 0.30 1.22417 1.22417 1.204157 0.020\n", + "13 30 0.00 0.30 1.21310 1.21310 1.202348 0.011\n", + "14 40 0.00 0.30 1.20265 1.20265 1.203630 0.001\n", + "15 60 0.00 0.30 1.18265 1.18265 1.176072 0.007\n", + "16 70 0.00 0.30 1.17261 1.17261 1.172492 0.000" ] }, - "execution_count": 14, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "result_test = density_test.copy()\n", - "result_test[\"DensityPred\"] = result_test.apply(fuzzy_pred, axis=1)\n", + "result_test[\"Real\"] = result_test[\"Density\"]\n", + "result_test[\"Inferred\"] = result_test.apply(fuzzy_pred, axis=1)\n", + "result_test[\"RMSE\"] = result_test.apply(rmse, axis=1)\n", + "# result_test[\"RMSE\"] = result_test[\"RMSE\"].apply(lambda x: \"{:,.4f}\".format(x))\n", + "result_test = result_test.round({\"RMSE\": 3})\n", "result_test" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 25, "metadata": {}, "outputs": [ { @@ -1654,29 +1728,23 @@ " 'R2_test': 0.978451748357252}" ] }, - "execution_count": 15, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "import math\n", - "from sklearn import metrics\n", - "\n", - "\n", "rmetrics = {}\n", "rmetrics[\"RMSE_train\"] = math.sqrt(\n", - " metrics.mean_squared_error(result_train[\"Density\"], result_train[\"DensityPred\"])\n", + " metrics.mean_squared_error(result_train[\"Real\"], result_train[\"Inferred\"])\n", ")\n", "rmetrics[\"RMSE_test\"] = math.sqrt(\n", - " metrics.mean_squared_error(result_test[\"Density\"], result_test[\"DensityPred\"])\n", + " metrics.mean_squared_error(result_test[\"Real\"], result_test[\"Inferred\"])\n", ")\n", "rmetrics[\"RMAE_test\"] = math.sqrt(\n", - " metrics.mean_absolute_error(result_test[\"Density\"], result_test[\"DensityPred\"])\n", - ")\n", - "rmetrics[\"R2_test\"] = metrics.r2_score(\n", - " result_test[\"Density\"], result_test[\"DensityPred\"]\n", + " metrics.mean_absolute_error(result_test[\"Real\"], result_test[\"Inferred\"])\n", ")\n", + "rmetrics[\"R2_test\"] = metrics.r2_score(result_test[\"Real\"], result_test[\"Inferred\"])\n", "\n", "rmetrics" ] diff --git a/viscosity_tree.ipynb b/viscosity_tree.ipynb index 8c39620..d1d6209 100644 --- a/viscosity_tree.ipynb +++ b/viscosity_tree.ipynb @@ -1287,12 +1287,13 @@ "sim.input[\"ti\"] = 0.0\n", "sim.compute()\n", "sim.print_state()\n", + "\n", "display(sim.output[\"viscosity\"])" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -1320,7 +1321,9 @@ " Al2O3\n", " TiO2\n", " Viscosity\n", - " ViscosityPred\n", + " Real\n", + " Inferred\n", + " RMSE\n", " \n", " \n", " \n", @@ -1330,7 +1333,9 @@ " 0.00\n", " 0.0\n", " 3.707\n", + " 3.707\n", " 3.499157\n", + " 0.207843\n", " \n", " \n", " 1\n", @@ -1338,7 +1343,9 @@ " 0.00\n", " 0.0\n", " 3.180\n", + " 3.180\n", " 3.188565\n", + " 0.008565\n", " \n", " \n", " 2\n", @@ -1346,7 +1353,9 @@ " 0.00\n", " 0.0\n", " 2.361\n", + " 2.361\n", " 2.732494\n", + " 0.371494\n", " \n", " \n", " 3\n", @@ -1354,7 +1363,9 @@ " 0.00\n", " 0.0\n", " 1.832\n", + " 1.832\n", " 1.812498\n", + " 0.019502\n", " \n", " \n", " 4\n", @@ -1362,7 +1373,9 @@ " 0.00\n", " 0.0\n", " 1.629\n", + " 1.629\n", " 1.812498\n", + " 0.183498\n", " \n", " \n", " 5\n", @@ -1370,7 +1383,9 @@ " 0.00\n", " 0.0\n", " 1.465\n", + " 1.465\n", " 1.812498\n", + " 0.347498\n", " \n", " \n", " 6\n", @@ -1378,7 +1393,9 @@ " 0.00\n", " 0.0\n", " 1.194\n", + " 1.194\n", " 1.390833\n", + " 0.196833\n", " \n", " \n", " 7\n", @@ -1386,7 +1403,9 @@ " 0.05\n", " 0.0\n", " 4.660\n", + " 4.660\n", " 3.481064\n", + " 1.178936\n", " \n", " \n", " 8\n", @@ -1394,7 +1413,9 @@ " 0.05\n", " 0.0\n", " 3.380\n", + " 3.380\n", " 3.090537\n", + " 0.289463\n", " \n", " \n", " 9\n", @@ -1402,7 +1423,9 @@ " 0.05\n", " 0.0\n", " 2.874\n", + " 2.874\n", " 2.703435\n", + " 0.170565\n", " \n", " \n", " 10\n", @@ -1410,7 +1433,9 @@ " 0.05\n", " 0.0\n", " 2.489\n", + " 2.489\n", " 2.365680\n", + " 0.123320\n", " \n", " \n", " 11\n", @@ -1418,7 +1443,9 @@ " 0.05\n", " 0.0\n", " 1.897\n", + " 1.897\n", " 2.054459\n", + " 0.157459\n", " \n", " \n", " 12\n", @@ -1426,7 +1453,9 @@ " 0.05\n", " 0.0\n", " 1.709\n", + " 1.709\n", " 2.128746\n", + " 0.419746\n", " \n", " \n", " 13\n", @@ -1434,7 +1463,9 @@ " 0.05\n", " 0.0\n", " 1.470\n", + " 1.470\n", " 1.465795\n", + " 0.004205\n", " \n", " \n", " 14\n", @@ -1442,37 +1473,43 @@ " 0.30\n", " 0.0\n", " 6.670\n", + " 6.670\n", " 3.499157\n", + " 3.170843\n", " \n", " \n", "\n", "" ], "text/plain": [ - " T Al2O3 TiO2 Viscosity ViscosityPred\n", - "0 20 0.00 0.0 3.707 3.499157\n", - "1 25 0.00 0.0 3.180 3.188565\n", - "2 35 0.00 0.0 2.361 2.732494\n", - "3 45 0.00 0.0 1.832 1.812498\n", - "4 50 0.00 0.0 1.629 1.812498\n", - "5 55 0.00 0.0 1.465 1.812498\n", - "6 70 0.00 0.0 1.194 1.390833\n", - "7 20 0.05 0.0 4.660 3.481064\n", - "8 30 0.05 0.0 3.380 3.090537\n", - "9 35 0.05 0.0 2.874 2.703435\n", - "10 40 0.05 0.0 2.489 2.365680\n", - "11 50 0.05 0.0 1.897 2.054459\n", - "12 55 0.05 0.0 1.709 2.128746\n", - "13 60 0.05 0.0 1.470 1.465795\n", - "14 20 0.30 0.0 6.670 3.499157" + " T Al2O3 TiO2 Viscosity Real Inferred RMSE\n", + "0 20 0.00 0.0 3.707 3.707 3.499157 0.207843\n", + "1 25 0.00 0.0 3.180 3.180 3.188565 0.008565\n", + "2 35 0.00 0.0 2.361 2.361 2.732494 0.371494\n", + "3 45 0.00 0.0 1.832 1.832 1.812498 0.019502\n", + "4 50 0.00 0.0 1.629 1.629 1.812498 0.183498\n", + "5 55 0.00 0.0 1.465 1.465 1.812498 0.347498\n", + "6 70 0.00 0.0 1.194 1.194 1.390833 0.196833\n", + "7 20 0.05 0.0 4.660 4.660 3.481064 1.178936\n", + "8 30 0.05 0.0 3.380 3.380 3.090537 0.289463\n", + "9 35 0.05 0.0 2.874 2.874 2.703435 0.170565\n", + "10 40 0.05 0.0 2.489 2.489 2.365680 0.123320\n", + "11 50 0.05 0.0 1.897 1.897 2.054459 0.157459\n", + "12 55 0.05 0.0 1.709 1.709 2.128746 0.419746\n", + "13 60 0.05 0.0 1.470 1.470 1.465795 0.004205\n", + "14 20 0.30 0.0 6.670 6.670 3.499157 3.170843" ] }, - "execution_count": 13, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ + "from sklearn import metrics\n", + "import math\n", + "\n", + "\n", "def fuzzy_pred(row):\n", " sim.input[\"temp\"] = row[\"T\"]\n", " sim.input[\"al\"] = row[\"Al2O3\"]\n", @@ -1480,14 +1517,19 @@ " sim.compute()\n", " return sim.output[\"viscosity\"]\n", "\n", + "def rmse(row):\n", + " return math.sqrt(metrics.mean_squared_error([row[\"Real\"]], [row[\"Inferred\"]]))\n", + "\n", "result_train = viscosity_train.copy()\n", - "result_train[\"ViscosityPred\"] = result_train.apply(fuzzy_pred, axis=1)\n", + "result_train[\"Real\"] = result_train[\"Viscosity\"]\n", + "result_train[\"Inferred\"] = result_train.apply(fuzzy_pred, axis=1)\n", + "result_train[\"RMSE\"] = result_train.apply(rmse, axis=1)\n", "result_train.head(15)" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -1515,7 +1557,9 @@ " Al2O3\n", " TiO2\n", " Viscosity\n", - " ViscosityPred\n", + " Real\n", + " Inferred\n", + " RMSE\n", " \n", " \n", " \n", @@ -1525,7 +1569,9 @@ " 0.00\n", " 0.00\n", " 2.716\n", + " 2.716\n", " 3.089540\n", + " 0.374\n", " \n", " \n", " 1\n", @@ -1533,7 +1579,9 @@ " 0.00\n", " 0.00\n", " 2.073\n", + " 2.073\n", " 2.359522\n", + " 0.287\n", " \n", " \n", " 2\n", @@ -1541,7 +1589,9 @@ " 0.00\n", " 0.00\n", " 1.329\n", + " 1.329\n", " 1.465795\n", + " 0.137\n", " \n", " \n", " 3\n", @@ -1549,7 +1599,9 @@ " 0.00\n", " 0.00\n", " 1.211\n", + " 1.211\n", " 1.414928\n", + " 0.204\n", " \n", " \n", " 4\n", @@ -1557,7 +1609,9 @@ " 0.05\n", " 0.00\n", " 4.120\n", + " 4.120\n", " 3.188565\n", + " 0.931\n", " \n", " \n", " 5\n", @@ -1565,7 +1619,9 @@ " 0.05\n", " 0.00\n", " 2.217\n", + " 2.217\n", " 2.045546\n", + " 0.171\n", " \n", " \n", " 6\n", @@ -1573,7 +1629,9 @@ " 0.05\n", " 0.00\n", " 1.315\n", + " 1.315\n", " 1.414928\n", + " 0.100\n", " \n", " \n", " 7\n", @@ -1581,7 +1639,9 @@ " 0.05\n", " 0.00\n", " 1.105\n", + " 1.105\n", " 1.408926\n", + " 0.304\n", " \n", " \n", " 8\n", @@ -1589,7 +1649,9 @@ " 0.30\n", " 0.00\n", " 3.111\n", + " 3.111\n", " 3.499157\n", + " 0.388\n", " \n", " \n", " 9\n", @@ -1597,7 +1659,9 @@ " 0.30\n", " 0.00\n", " 2.735\n", + " 2.735\n", " 3.475062\n", + " 0.740\n", " \n", " \n", " 10\n", @@ -1605,7 +1669,9 @@ " 0.30\n", " 0.00\n", " 1.936\n", + " 1.936\n", " 1.812498\n", + " 0.124\n", " \n", " \n", " 11\n", @@ -1613,7 +1679,9 @@ " 0.00\n", " 0.05\n", " 3.587\n", + " 3.587\n", " 3.111691\n", + " 0.475\n", " \n", " \n", " 12\n", @@ -1621,7 +1689,9 @@ " 0.00\n", " 0.05\n", " 1.953\n", + " 1.953\n", " 2.128746\n", + " 0.176\n", " \n", " \n", " 13\n", @@ -1629,7 +1699,9 @@ " 0.00\n", " 0.05\n", " 1.443\n", + " 1.443\n", " 1.414928\n", + " 0.028\n", " \n", " \n", " 14\n", @@ -1637,7 +1709,9 @@ " 0.00\n", " 0.30\n", " 3.990\n", + " 3.990\n", " 3.475062\n", + " 0.515\n", " \n", " \n", " 15\n", @@ -1645,7 +1719,9 @@ " 0.00\n", " 0.30\n", " 3.189\n", + " 3.189\n", " 3.475062\n", + " 0.286\n", " \n", " \n", " 16\n", @@ -1653,47 +1729,52 @@ " 0.00\n", " 0.30\n", " 2.287\n", + " 2.287\n", " 1.812498\n", + " 0.475\n", " \n", " \n", "\n", "" ], "text/plain": [ - " T Al2O3 TiO2 Viscosity ViscosityPred\n", - "0 30 0.00 0.00 2.716 3.089540\n", - "1 40 0.00 0.00 2.073 2.359522\n", - "2 60 0.00 0.00 1.329 1.465795\n", - "3 65 0.00 0.00 1.211 1.414928\n", - "4 25 0.05 0.00 4.120 3.188565\n", - "5 45 0.05 0.00 2.217 2.045546\n", - "6 65 0.05 0.00 1.315 1.414928\n", - "7 70 0.05 0.00 1.105 1.408926\n", - "8 45 0.30 0.00 3.111 3.499157\n", - "9 50 0.30 0.00 2.735 3.475062\n", - "10 65 0.30 0.00 1.936 1.812498\n", - "11 30 0.00 0.05 3.587 3.111691\n", - "12 55 0.00 0.05 1.953 2.128746\n", - "13 65 0.00 0.05 1.443 1.414928\n", - "14 40 0.00 0.30 3.990 3.475062\n", - "15 50 0.00 0.30 3.189 3.475062\n", - "16 65 0.00 0.30 2.287 1.812498" + " T Al2O3 TiO2 Viscosity Real Inferred RMSE\n", + "0 30 0.00 0.00 2.716 2.716 3.089540 0.374\n", + "1 40 0.00 0.00 2.073 2.073 2.359522 0.287\n", + "2 60 0.00 0.00 1.329 1.329 1.465795 0.137\n", + "3 65 0.00 0.00 1.211 1.211 1.414928 0.204\n", + "4 25 0.05 0.00 4.120 4.120 3.188565 0.931\n", + "5 45 0.05 0.00 2.217 2.217 2.045546 0.171\n", + "6 65 0.05 0.00 1.315 1.315 1.414928 0.100\n", + "7 70 0.05 0.00 1.105 1.105 1.408926 0.304\n", + "8 45 0.30 0.00 3.111 3.111 3.499157 0.388\n", + "9 50 0.30 0.00 2.735 2.735 3.475062 0.740\n", + "10 65 0.30 0.00 1.936 1.936 1.812498 0.124\n", + "11 30 0.00 0.05 3.587 3.587 3.111691 0.475\n", + "12 55 0.00 0.05 1.953 1.953 2.128746 0.176\n", + "13 65 0.00 0.05 1.443 1.443 1.414928 0.028\n", + "14 40 0.00 0.30 3.990 3.990 3.475062 0.515\n", + "15 50 0.00 0.30 3.189 3.189 3.475062 0.286\n", + "16 65 0.00 0.30 2.287 2.287 1.812498 0.475" ] }, - "execution_count": 14, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "result_test = viscosity_test.copy()\n", - "result_test[\"ViscosityPred\"] = result_test.apply(fuzzy_pred, axis=1)\n", + "result_test[\"Real\"] = result_test[\"Viscosity\"]\n", + "result_test[\"Inferred\"] = result_test.apply(fuzzy_pred, axis=1)\n", + "result_test[\"RMSE\"] = result_test.apply(rmse, axis=1)\n", + "result_test = result_test.round({\"RMSE\": 3})\n", "result_test" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -1705,29 +1786,25 @@ " 'R2_test': 0.813200460937507}" ] }, - "execution_count": 15, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import math\n", - "from sklearn import metrics\n", - "\n", "\n", "rmetrics = {}\n", "rmetrics[\"RMSE_train\"] = math.sqrt(\n", - " metrics.mean_squared_error(result_train[\"Viscosity\"], result_train[\"ViscosityPred\"])\n", + " metrics.mean_squared_error(result_train[\"Real\"], result_train[\"Inferred\"])\n", ")\n", "rmetrics[\"RMSE_test\"] = math.sqrt(\n", - " metrics.mean_squared_error(result_test[\"Viscosity\"], result_test[\"ViscosityPred\"])\n", + " metrics.mean_squared_error(result_test[\"Real\"], result_test[\"Inferred\"])\n", ")\n", "rmetrics[\"RMAE_test\"] = math.sqrt(\n", - " metrics.mean_absolute_error(result_test[\"Viscosity\"], result_test[\"ViscosityPred\"])\n", - ")\n", - "rmetrics[\"R2_test\"] = metrics.r2_score(\n", - " result_test[\"Viscosity\"], result_test[\"ViscosityPred\"]\n", + " metrics.mean_absolute_error(result_test[\"Real\"], result_test[\"Inferred\"])\n", ")\n", + "rmetrics[\"R2_test\"] = metrics.r2_score(result_test[\"Real\"], result_test[\"Inferred\"])\n", "\n", "rmetrics" ]