912 lines
255 KiB
Plaintext
912 lines
255 KiB
Plaintext
|
{
|
|||
|
"cells": [
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"Лабораторная 7"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"Информация о диабете индейцев Пима"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 13,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"Index(['Pregnancies', 'Glucose', 'BloodPressure', 'SkinThickness', 'Insulin',\n",
|
|||
|
" 'BMI', 'DiabetesPedigreeFunction', 'Age', 'Outcome'],\n",
|
|||
|
" dtype='object')\n"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/html": [
|
|||
|
"<div>\n",
|
|||
|
"<style scoped>\n",
|
|||
|
" .dataframe tbody tr th:only-of-type {\n",
|
|||
|
" vertical-align: middle;\n",
|
|||
|
" }\n",
|
|||
|
"\n",
|
|||
|
" .dataframe tbody tr th {\n",
|
|||
|
" vertical-align: top;\n",
|
|||
|
" }\n",
|
|||
|
"\n",
|
|||
|
" .dataframe thead th {\n",
|
|||
|
" text-align: right;\n",
|
|||
|
" }\n",
|
|||
|
"</style>\n",
|
|||
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|||
|
" <thead>\n",
|
|||
|
" <tr style=\"text-align: right;\">\n",
|
|||
|
" <th></th>\n",
|
|||
|
" <th>Pregnancies</th>\n",
|
|||
|
" <th>Glucose</th>\n",
|
|||
|
" <th>BloodPressure</th>\n",
|
|||
|
" <th>SkinThickness</th>\n",
|
|||
|
" <th>Insulin</th>\n",
|
|||
|
" <th>BMI</th>\n",
|
|||
|
" <th>DiabetesPedigreeFunction</th>\n",
|
|||
|
" <th>Age</th>\n",
|
|||
|
" <th>Outcome</th>\n",
|
|||
|
" </tr>\n",
|
|||
|
" </thead>\n",
|
|||
|
" <tbody>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>0</th>\n",
|
|||
|
" <td>6</td>\n",
|
|||
|
" <td>148</td>\n",
|
|||
|
" <td>72</td>\n",
|
|||
|
" <td>35</td>\n",
|
|||
|
" <td>0</td>\n",
|
|||
|
" <td>33.6</td>\n",
|
|||
|
" <td>0.627</td>\n",
|
|||
|
" <td>50</td>\n",
|
|||
|
" <td>1</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>1</th>\n",
|
|||
|
" <td>1</td>\n",
|
|||
|
" <td>85</td>\n",
|
|||
|
" <td>66</td>\n",
|
|||
|
" <td>29</td>\n",
|
|||
|
" <td>0</td>\n",
|
|||
|
" <td>26.6</td>\n",
|
|||
|
" <td>0.351</td>\n",
|
|||
|
" <td>31</td>\n",
|
|||
|
" <td>0</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>2</th>\n",
|
|||
|
" <td>8</td>\n",
|
|||
|
" <td>183</td>\n",
|
|||
|
" <td>64</td>\n",
|
|||
|
" <td>0</td>\n",
|
|||
|
" <td>0</td>\n",
|
|||
|
" <td>23.3</td>\n",
|
|||
|
" <td>0.672</td>\n",
|
|||
|
" <td>32</td>\n",
|
|||
|
" <td>1</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>3</th>\n",
|
|||
|
" <td>1</td>\n",
|
|||
|
" <td>89</td>\n",
|
|||
|
" <td>66</td>\n",
|
|||
|
" <td>23</td>\n",
|
|||
|
" <td>94</td>\n",
|
|||
|
" <td>28.1</td>\n",
|
|||
|
" <td>0.167</td>\n",
|
|||
|
" <td>21</td>\n",
|
|||
|
" <td>0</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>4</th>\n",
|
|||
|
" <td>0</td>\n",
|
|||
|
" <td>137</td>\n",
|
|||
|
" <td>40</td>\n",
|
|||
|
" <td>35</td>\n",
|
|||
|
" <td>168</td>\n",
|
|||
|
" <td>43.1</td>\n",
|
|||
|
" <td>2.288</td>\n",
|
|||
|
" <td>33</td>\n",
|
|||
|
" <td>1</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>...</th>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>763</th>\n",
|
|||
|
" <td>10</td>\n",
|
|||
|
" <td>101</td>\n",
|
|||
|
" <td>76</td>\n",
|
|||
|
" <td>48</td>\n",
|
|||
|
" <td>180</td>\n",
|
|||
|
" <td>32.9</td>\n",
|
|||
|
" <td>0.171</td>\n",
|
|||
|
" <td>63</td>\n",
|
|||
|
" <td>0</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>764</th>\n",
|
|||
|
" <td>2</td>\n",
|
|||
|
" <td>122</td>\n",
|
|||
|
" <td>70</td>\n",
|
|||
|
" <td>27</td>\n",
|
|||
|
" <td>0</td>\n",
|
|||
|
" <td>36.8</td>\n",
|
|||
|
" <td>0.340</td>\n",
|
|||
|
" <td>27</td>\n",
|
|||
|
" <td>0</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>765</th>\n",
|
|||
|
" <td>5</td>\n",
|
|||
|
" <td>121</td>\n",
|
|||
|
" <td>72</td>\n",
|
|||
|
" <td>23</td>\n",
|
|||
|
" <td>112</td>\n",
|
|||
|
" <td>26.2</td>\n",
|
|||
|
" <td>0.245</td>\n",
|
|||
|
" <td>30</td>\n",
|
|||
|
" <td>0</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>766</th>\n",
|
|||
|
" <td>1</td>\n",
|
|||
|
" <td>126</td>\n",
|
|||
|
" <td>60</td>\n",
|
|||
|
" <td>0</td>\n",
|
|||
|
" <td>0</td>\n",
|
|||
|
" <td>30.1</td>\n",
|
|||
|
" <td>0.349</td>\n",
|
|||
|
" <td>47</td>\n",
|
|||
|
" <td>1</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>767</th>\n",
|
|||
|
" <td>1</td>\n",
|
|||
|
" <td>93</td>\n",
|
|||
|
" <td>70</td>\n",
|
|||
|
" <td>31</td>\n",
|
|||
|
" <td>0</td>\n",
|
|||
|
" <td>30.4</td>\n",
|
|||
|
" <td>0.315</td>\n",
|
|||
|
" <td>23</td>\n",
|
|||
|
" <td>0</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" </tbody>\n",
|
|||
|
"</table>\n",
|
|||
|
"<p>768 rows × 9 columns</p>\n",
|
|||
|
"</div>"
|
|||
|
],
|
|||
|
"text/plain": [
|
|||
|
" Pregnancies Glucose BloodPressure SkinThickness Insulin BMI \\\n",
|
|||
|
"0 6 148 72 35 0 33.6 \n",
|
|||
|
"1 1 85 66 29 0 26.6 \n",
|
|||
|
"2 8 183 64 0 0 23.3 \n",
|
|||
|
"3 1 89 66 23 94 28.1 \n",
|
|||
|
"4 0 137 40 35 168 43.1 \n",
|
|||
|
".. ... ... ... ... ... ... \n",
|
|||
|
"763 10 101 76 48 180 32.9 \n",
|
|||
|
"764 2 122 70 27 0 36.8 \n",
|
|||
|
"765 5 121 72 23 112 26.2 \n",
|
|||
|
"766 1 126 60 0 0 30.1 \n",
|
|||
|
"767 1 93 70 31 0 30.4 \n",
|
|||
|
"\n",
|
|||
|
" DiabetesPedigreeFunction Age Outcome \n",
|
|||
|
"0 0.627 50 1 \n",
|
|||
|
"1 0.351 31 0 \n",
|
|||
|
"2 0.672 32 1 \n",
|
|||
|
"3 0.167 21 0 \n",
|
|||
|
"4 2.288 33 1 \n",
|
|||
|
".. ... ... ... \n",
|
|||
|
"763 0.171 63 0 \n",
|
|||
|
"764 0.340 27 0 \n",
|
|||
|
"765 0.245 30 0 \n",
|
|||
|
"766 0.349 47 1 \n",
|
|||
|
"767 0.315 23 0 \n",
|
|||
|
"\n",
|
|||
|
"[768 rows x 9 columns]"
|
|||
|
]
|
|||
|
},
|
|||
|
"execution_count": 13,
|
|||
|
"metadata": {},
|
|||
|
"output_type": "execute_result"
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"import pandas as pd\n",
|
|||
|
"import numpy as np\n",
|
|||
|
"import skfuzzy as fuzz\n",
|
|||
|
"from skfuzzy import control as ctrl\n",
|
|||
|
"\n",
|
|||
|
"df = pd.read_csv(\".//scv//diabetes.csv\")\n",
|
|||
|
"print(df.columns)\n",
|
|||
|
"df"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"Создаем лингвистические переменные"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"Входные: аge(возраст) и bmi(ИМТ)\n",
|
|||
|
"\n",
|
|||
|
"Выходные: glucose(давление)"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 14,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [],
|
|||
|
"source": [
|
|||
|
"аge = ctrl.Antecedent(np.arange(df[\"Age\"].min(), df[\"Age\"].max() + 1, 1), \"age\")\n",
|
|||
|
"bmi = ctrl.Antecedent(np.arange(df[\"BMI\"].min(), df[\"BMI\"].max() + 0.1, 0.1), \"bmi\")\n",
|
|||
|
"glucose = ctrl.Consequent(np.arange(df[\"Glucose\"].min(), df[\"Glucose\"].max() + 0.1, 0.1), \"glucose\")"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"Настраиваем их"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 15,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stderr",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"d:\\5_semester\\AIM\\rep\\AIM-PIbd-31-Razubaev-S-M\\.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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
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 640x480 with 1 Axes>"
|
|||
|
]
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"image/png": "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
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 640x480 with 1 Axes>"
|
|||
|
]
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"image/png": "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
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 640x480 with 1 Axes>"
|
|||
|
]
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"аge[\"young\"] = fuzz.zmf(аge.universe, 7, 30)\n",
|
|||
|
"аge[\"middle-aged\"] = fuzz.trapmf(аge.universe, [18, 30, 45, 60])\n",
|
|||
|
"аge[\"old\"] = fuzz.smf(аge.universe, 45, 85)\n",
|
|||
|
"аge.view()\n",
|
|||
|
"\n",
|
|||
|
"bmi[\"low\"] = fuzz.zmf(bmi.universe, 12, 18)\n",
|
|||
|
"bmi[\"normal\"] = fuzz.trapmf(bmi.universe, [16, 19, 24, 27])\n",
|
|||
|
"bmi[\"high\"] = fuzz.smf(bmi.universe, 25, 27)\n",
|
|||
|
"bmi.view()\n",
|
|||
|
"\n",
|
|||
|
"glucose[\"low\"] = fuzz.zmf(glucose.universe, 0, 80)\n",
|
|||
|
"glucose[\"normal\"] = fuzz.trapmf(glucose.universe, [70, 80, 90, 100])\n",
|
|||
|
"glucose[\"high\"] = fuzz.smf(glucose.universe, 90, 180)\n",
|
|||
|
"glucose.view()"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"База нечетких правил:"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 16,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"(<Figure size 640x480 with 1 Axes>, <Axes: >)"
|
|||
|
]
|
|||
|
},
|
|||
|
"execution_count": 16,
|
|||
|
"metadata": {},
|
|||
|
"output_type": "execute_result"
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"image/png": "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
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 640x480 with 1 Axes>"
|
|||
|
]
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"import numpy as np\n",
|
|||
|
"import skfuzzy as fuzz\n",
|
|||
|
"from skfuzzy import control as ctrl\n",
|
|||
|
"\n",
|
|||
|
"rule1 = ctrl.Rule(аge[\"young\"] & bmi[\"low\"], glucose[\"low\"])\n",
|
|||
|
"rule2 = ctrl.Rule(аge[\"young\"] & bmi[\"normal\"], glucose[\"normal\"])\n",
|
|||
|
"rule3 = ctrl.Rule(аge[\"young\"] & bmi[\"high\"], glucose[\"normal\"])\n",
|
|||
|
"\n",
|
|||
|
"rule4 = ctrl.Rule(аge[\"middle-aged\"] & bmi[\"low\"], glucose[\"normal\"])\n",
|
|||
|
"rule5 = ctrl.Rule(аge[\"middle-aged\"] & bmi[\"normal\"], glucose[\"normal\"])\n",
|
|||
|
"rule6 = ctrl.Rule(аge[\"middle-aged\"] & bmi[\"high\"], glucose[\"high\"])\n",
|
|||
|
"\n",
|
|||
|
"rule7 = ctrl.Rule(аge[\"old\"] & bmi[\"low\"], glucose[\"low\"])\n",
|
|||
|
"rule8 = ctrl.Rule(аge[\"old\"] & bmi[\"normal\"], glucose[\"normal\"])\n",
|
|||
|
"rule9 = ctrl.Rule(аge[\"old\"] & bmi[\"high\"], glucose[\"high\"])\n",
|
|||
|
"\n",
|
|||
|
"rule1.view()"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"Создание нечеткой системы и добавление нечетких правил в базу знаний нечеткой системы"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 17,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stderr",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"d:\\5_semester\\AIM\\rep\\AIM-PIbd-31-Razubaev-S-M\\.venv\\Lib\\site-packages\\skfuzzy\\control\\controlsystem.py:135: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown\n",
|
|||
|
" fig.show()\n"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"image/png": "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
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 640x480 with 1 Axes>"
|
|||
|
]
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"glucose_ctrl = ctrl.ControlSystem(\n",
|
|||
|
" [\n",
|
|||
|
" rule1,\n",
|
|||
|
" rule2,\n",
|
|||
|
" rule3,\n",
|
|||
|
" rule4,\n",
|
|||
|
" rule5,\n",
|
|||
|
" rule6,\n",
|
|||
|
" rule7,\n",
|
|||
|
" rule8,\n",
|
|||
|
" rule9,\n",
|
|||
|
" ]\n",
|
|||
|
")\n",
|
|||
|
"\n",
|
|||
|
"glucose_simulation = ctrl.ControlSystemSimulation(glucose_ctrl)\n",
|
|||
|
"\n",
|
|||
|
"glucose_ctrl.view()"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"Проверка расчета выходной переменной"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 19,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"=============\n",
|
|||
|
" Antecedents \n",
|
|||
|
"=============\n",
|
|||
|
"Antecedent: age = 31\n",
|
|||
|
" - young : 0.0\n",
|
|||
|
" - middle-aged : 1.0\n",
|
|||
|
" - old : 0.0\n",
|
|||
|
"Antecedent: bmi = 25\n",
|
|||
|
" - low : 0.0\n",
|
|||
|
" - normal : 0.6666666666666666\n",
|
|||
|
" - high : 0.0\n",
|
|||
|
"\n",
|
|||
|
"=======\n",
|
|||
|
" Rules \n",
|
|||
|
"=======\n",
|
|||
|
"RULE #0:\n",
|
|||
|
" IF age[young] AND bmi[low] THEN glucose[low]\n",
|
|||
|
"\tAND aggregation function : fmin\n",
|
|||
|
"\tOR aggregation function : fmax\n",
|
|||
|
"\n",
|
|||
|
" Aggregation (IF-clause):\n",
|
|||
|
" - age[young] : 0.0\n",
|
|||
|
" - bmi[low] : 0.0\n",
|
|||
|
" age[young] AND bmi[low] = 0.0\n",
|
|||
|
" Activation (THEN-clause):\n",
|
|||
|
" glucose[low] : 0.0\n",
|
|||
|
"\n",
|
|||
|
"RULE #1:\n",
|
|||
|
" IF age[young] AND bmi[normal] THEN glucose[normal]\n",
|
|||
|
"\tAND aggregation function : fmin\n",
|
|||
|
"\tOR aggregation function : fmax\n",
|
|||
|
"\n",
|
|||
|
" Aggregation (IF-clause):\n",
|
|||
|
" - age[young] : 0.0\n",
|
|||
|
" - bmi[normal] : 0.6666666666666666\n",
|
|||
|
" age[young] AND bmi[normal] = 0.0\n",
|
|||
|
" Activation (THEN-clause):\n",
|
|||
|
" glucose[normal] : 0.0\n",
|
|||
|
"\n",
|
|||
|
"RULE #2:\n",
|
|||
|
" IF age[young] AND bmi[high] THEN glucose[normal]\n",
|
|||
|
"\tAND aggregation function : fmin\n",
|
|||
|
"\tOR aggregation function : fmax\n",
|
|||
|
"\n",
|
|||
|
" Aggregation (IF-clause):\n",
|
|||
|
" - age[young] : 0.0\n",
|
|||
|
" - bmi[high] : 0.0\n",
|
|||
|
" age[young] AND bmi[high] = 0.0\n",
|
|||
|
" Activation (THEN-clause):\n",
|
|||
|
" glucose[normal] : 0.0\n",
|
|||
|
"\n",
|
|||
|
"RULE #3:\n",
|
|||
|
" IF age[middle-aged] AND bmi[low] THEN glucose[normal]\n",
|
|||
|
"\tAND aggregation function : fmin\n",
|
|||
|
"\tOR aggregation function : fmax\n",
|
|||
|
"\n",
|
|||
|
" Aggregation (IF-clause):\n",
|
|||
|
" - age[middle-aged] : 1.0\n",
|
|||
|
" - bmi[low] : 0.0\n",
|
|||
|
" age[middle-aged] AND bmi[low] = 0.0\n",
|
|||
|
" Activation (THEN-clause):\n",
|
|||
|
" glucose[normal] : 0.0\n",
|
|||
|
"\n",
|
|||
|
"RULE #4:\n",
|
|||
|
" IF age[middle-aged] AND bmi[normal] THEN glucose[normal]\n",
|
|||
|
"\tAND aggregation function : fmin\n",
|
|||
|
"\tOR aggregation function : fmax\n",
|
|||
|
"\n",
|
|||
|
" Aggregation (IF-clause):\n",
|
|||
|
" - age[middle-aged] : 1.0\n",
|
|||
|
" - bmi[normal] : 0.6666666666666666\n",
|
|||
|
" age[middle-aged] AND bmi[normal] = 0.6666666666666666\n",
|
|||
|
" Activation (THEN-clause):\n",
|
|||
|
" glucose[normal] : 0.6666666666666666\n",
|
|||
|
"\n",
|
|||
|
"RULE #5:\n",
|
|||
|
" IF age[middle-aged] AND bmi[high] THEN glucose[high]\n",
|
|||
|
"\tAND aggregation function : fmin\n",
|
|||
|
"\tOR aggregation function : fmax\n",
|
|||
|
"\n",
|
|||
|
" Aggregation (IF-clause):\n",
|
|||
|
" - age[middle-aged] : 1.0\n",
|
|||
|
" - bmi[high] : 0.0\n",
|
|||
|
" age[middle-aged] AND bmi[high] = 0.0\n",
|
|||
|
" Activation (THEN-clause):\n",
|
|||
|
" glucose[high] : 0.0\n",
|
|||
|
"\n",
|
|||
|
"RULE #6:\n",
|
|||
|
" IF age[old] AND bmi[low] THEN glucose[low]\n",
|
|||
|
"\tAND aggregation function : fmin\n",
|
|||
|
"\tOR aggregation function : fmax\n",
|
|||
|
"\n",
|
|||
|
" Aggregation (IF-clause):\n",
|
|||
|
" - age[old] : 0.0\n",
|
|||
|
" - bmi[low] : 0.0\n",
|
|||
|
" age[old] AND bmi[low] = 0.0\n",
|
|||
|
" Activation (THEN-clause):\n",
|
|||
|
" glucose[low] : 0.0\n",
|
|||
|
"\n",
|
|||
|
"RULE #7:\n",
|
|||
|
" IF age[old] AND bmi[normal] THEN glucose[normal]\n",
|
|||
|
"\tAND aggregation function : fmin\n",
|
|||
|
"\tOR aggregation function : fmax\n",
|
|||
|
"\n",
|
|||
|
" Aggregation (IF-clause):\n",
|
|||
|
" - age[old] : 0.0\n",
|
|||
|
" - bmi[normal] : 0.6666666666666666\n",
|
|||
|
" age[old] AND bmi[normal] = 0.0\n",
|
|||
|
" Activation (THEN-clause):\n",
|
|||
|
" glucose[normal] : 0.0\n",
|
|||
|
"\n",
|
|||
|
"RULE #8:\n",
|
|||
|
" IF age[old] AND bmi[high] THEN glucose[high]\n",
|
|||
|
"\tAND aggregation function : fmin\n",
|
|||
|
"\tOR aggregation function : fmax\n",
|
|||
|
"\n",
|
|||
|
" Aggregation (IF-clause):\n",
|
|||
|
" - age[old] : 0.0\n",
|
|||
|
" - bmi[high] : 0.0\n",
|
|||
|
" age[old] AND bmi[high] = 0.0\n",
|
|||
|
" Activation (THEN-clause):\n",
|
|||
|
" glucose[high] : 0.0\n",
|
|||
|
"\n",
|
|||
|
"\n",
|
|||
|
"==============================\n",
|
|||
|
" Intermediaries and Conquests \n",
|
|||
|
"==============================\n",
|
|||
|
"Consequent: glucose = 85.00000000000001\n",
|
|||
|
" low:\n",
|
|||
|
" Accumulate using accumulation_max : 0.0\n",
|
|||
|
" normal:\n",
|
|||
|
" Accumulate using accumulation_max : 0.6666666666666666\n",
|
|||
|
" high:\n",
|
|||
|
" Accumulate using accumulation_max : 0.0\n",
|
|||
|
"\n"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"np.float64(85.00000000000001)"
|
|||
|
]
|
|||
|
},
|
|||
|
"execution_count": 19,
|
|||
|
"metadata": {},
|
|||
|
"output_type": "execute_result"
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"glucose_simulation.input[\"age\"] = 31\n",
|
|||
|
"glucose_simulation.input[\"bmi\"] = 25\n",
|
|||
|
"glucose_simulation.compute()\n",
|
|||
|
"\n",
|
|||
|
"glucose_simulation.print_state()\n",
|
|||
|
"glucose_simulation.output[\"glucose\"]"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"Визуализации функции принадлежности"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 20,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stderr",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"d:\\5_semester\\AIM\\rep\\AIM-PIbd-31-Razubaev-S-M\\.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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
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 640x480 with 1 Axes>"
|
|||
|
]
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"glucose.view(sim=glucose_simulation)"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"Оценка качества"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 25,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/html": [
|
|||
|
"<div>\n",
|
|||
|
"<style scoped>\n",
|
|||
|
" .dataframe tbody tr th:only-of-type {\n",
|
|||
|
" vertical-align: middle;\n",
|
|||
|
" }\n",
|
|||
|
"\n",
|
|||
|
" .dataframe tbody tr th {\n",
|
|||
|
" vertical-align: top;\n",
|
|||
|
" }\n",
|
|||
|
"\n",
|
|||
|
" .dataframe thead th {\n",
|
|||
|
" text-align: right;\n",
|
|||
|
" }\n",
|
|||
|
"</style>\n",
|
|||
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|||
|
" <thead>\n",
|
|||
|
" <tr style=\"text-align: right;\">\n",
|
|||
|
" <th></th>\n",
|
|||
|
" <th>Age</th>\n",
|
|||
|
" <th>BMI</th>\n",
|
|||
|
" <th>Glucose</th>\n",
|
|||
|
" <th>glucose_pred</th>\n",
|
|||
|
" </tr>\n",
|
|||
|
" </thead>\n",
|
|||
|
" <tbody>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>115</th>\n",
|
|||
|
" <td>61</td>\n",
|
|||
|
" <td>31.2</td>\n",
|
|||
|
" <td>146</td>\n",
|
|||
|
" <td>156.076444</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>116</th>\n",
|
|||
|
" <td>38</td>\n",
|
|||
|
" <td>34.0</td>\n",
|
|||
|
" <td>124</td>\n",
|
|||
|
" <td>164.363268</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>117</th>\n",
|
|||
|
" <td>25</td>\n",
|
|||
|
" <td>33.7</td>\n",
|
|||
|
" <td>78</td>\n",
|
|||
|
" <td>155.611863</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>118</th>\n",
|
|||
|
" <td>22</td>\n",
|
|||
|
" <td>28.2</td>\n",
|
|||
|
" <td>97</td>\n",
|
|||
|
" <td>142.749562</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>119</th>\n",
|
|||
|
" <td>21</td>\n",
|
|||
|
" <td>23.2</td>\n",
|
|||
|
" <td>99</td>\n",
|
|||
|
" <td>85.000000</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>120</th>\n",
|
|||
|
" <td>25</td>\n",
|
|||
|
" <td>53.2</td>\n",
|
|||
|
" <td>162</td>\n",
|
|||
|
" <td>155.611863</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>121</th>\n",
|
|||
|
" <td>24</td>\n",
|
|||
|
" <td>34.2</td>\n",
|
|||
|
" <td>111</td>\n",
|
|||
|
" <td>152.260658</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>122</th>\n",
|
|||
|
" <td>23</td>\n",
|
|||
|
" <td>33.6</td>\n",
|
|||
|
" <td>107</td>\n",
|
|||
|
" <td>148.066203</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>123</th>\n",
|
|||
|
" <td>69</td>\n",
|
|||
|
" <td>26.8</td>\n",
|
|||
|
" <td>132</td>\n",
|
|||
|
" <td>158.239802</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>124</th>\n",
|
|||
|
" <td>23</td>\n",
|
|||
|
" <td>33.3</td>\n",
|
|||
|
" <td>113</td>\n",
|
|||
|
" <td>148.066203</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>125</th>\n",
|
|||
|
" <td>26</td>\n",
|
|||
|
" <td>55.0</td>\n",
|
|||
|
" <td>88</td>\n",
|
|||
|
" <td>158.305050</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>126</th>\n",
|
|||
|
" <td>30</td>\n",
|
|||
|
" <td>42.9</td>\n",
|
|||
|
" <td>120</td>\n",
|
|||
|
" <td>164.363268</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>127</th>\n",
|
|||
|
" <td>23</td>\n",
|
|||
|
" <td>33.3</td>\n",
|
|||
|
" <td>118</td>\n",
|
|||
|
" <td>148.066203</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>128</th>\n",
|
|||
|
" <td>40</td>\n",
|
|||
|
" <td>34.5</td>\n",
|
|||
|
" <td>117</td>\n",
|
|||
|
" <td>164.363268</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>129</th>\n",
|
|||
|
" <td>62</td>\n",
|
|||
|
" <td>27.9</td>\n",
|
|||
|
" <td>105</td>\n",
|
|||
|
" <td>156.763261</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>130</th>\n",
|
|||
|
" <td>33</td>\n",
|
|||
|
" <td>29.7</td>\n",
|
|||
|
" <td>173</td>\n",
|
|||
|
" <td>164.363268</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" </tbody>\n",
|
|||
|
"</table>\n",
|
|||
|
"</div>"
|
|||
|
],
|
|||
|
"text/plain": [
|
|||
|
" Age BMI Glucose glucose_pred\n",
|
|||
|
"115 61 31.2 146 156.076444\n",
|
|||
|
"116 38 34.0 124 164.363268\n",
|
|||
|
"117 25 33.7 78 155.611863\n",
|
|||
|
"118 22 28.2 97 142.749562\n",
|
|||
|
"119 21 23.2 99 85.000000\n",
|
|||
|
"120 25 53.2 162 155.611863\n",
|
|||
|
"121 24 34.2 111 152.260658\n",
|
|||
|
"122 23 33.6 107 148.066203\n",
|
|||
|
"123 69 26.8 132 158.239802\n",
|
|||
|
"124 23 33.3 113 148.066203\n",
|
|||
|
"125 26 55.0 88 158.305050\n",
|
|||
|
"126 30 42.9 120 164.363268\n",
|
|||
|
"127 23 33.3 118 148.066203\n",
|
|||
|
"128 40 34.5 117 164.363268\n",
|
|||
|
"129 62 27.9 105 156.763261\n",
|
|||
|
"130 33 29.7 173 164.363268"
|
|||
|
]
|
|||
|
},
|
|||
|
"execution_count": 25,
|
|||
|
"metadata": {},
|
|||
|
"output_type": "execute_result"
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"def fuzzy_pred(row):\n",
|
|||
|
" glucose_simulation.input[\"age\"] = row[\"Age\"]\n",
|
|||
|
" glucose_simulation.input[\"bmi\"] = row[\"BMI\"]\n",
|
|||
|
" glucose_simulation.compute()\n",
|
|||
|
" return glucose_simulation.output[\"glucose\"]\n",
|
|||
|
"\n",
|
|||
|
"result = df.copy()\n",
|
|||
|
"\n",
|
|||
|
"result[\"glucose_pred\"] = result.apply(fuzzy_pred, axis=1)\n",
|
|||
|
"\n",
|
|||
|
"result.loc[115:130, [\"Age\", \"BMI\", \"Glucose\", \"glucose_pred\"]]"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 29,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"{'RMSE': 44.436073098835, 'RMAE': 6.078634343122391, 'R2': -0.9341083419845992}"
|
|||
|
]
|
|||
|
},
|
|||
|
"execution_count": 29,
|
|||
|
"metadata": {},
|
|||
|
"output_type": "execute_result"
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"import math\n",
|
|||
|
"from sklearn import metrics\n",
|
|||
|
"\n",
|
|||
|
"rmetrics = {}\n",
|
|||
|
"rmetrics[\"RMSE\"] = math.sqrt(\n",
|
|||
|
" metrics.mean_squared_error(result[\"Glucose\"], result[\"glucose_pred\"])\n",
|
|||
|
")\n",
|
|||
|
"rmetrics[\"RMAE\"] = math.sqrt(\n",
|
|||
|
" metrics.mean_absolute_error(result[\"Glucose\"], result[\"glucose_pred\"])\n",
|
|||
|
")\n",
|
|||
|
"rmetrics[\"R2\"] = metrics.r2_score(\n",
|
|||
|
" result[\"Glucose\"], result[\"glucose_pred\"]\n",
|
|||
|
")\n",
|
|||
|
"rmetrics"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"Вывод: данные прогнозируются с низкой точностью и допускается множество ошибок"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"metadata": {
|
|||
|
"kernelspec": {
|
|||
|
"display_name": ".venv",
|
|||
|
"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.12.6"
|
|||
|
}
|
|||
|
},
|
|||
|
"nbformat": 4,
|
|||
|
"nbformat_minor": 2
|
|||
|
}
|