345 lines
342 KiB
Plaintext
Raw Normal View History

2025-02-22 12:49:13 +04:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Лабораторная работа 7\n",
"Дата сет - продажа домов в округе Кинг"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['id', 'date', 'price', 'bedrooms', 'bathrooms', 'sqft_living',\n",
" 'sqft_lot', 'floors', 'waterfront', 'view', 'condition', 'grade',\n",
" 'sqft_above', 'sqft_basement', 'yr_built', 'yr_renovated', 'zipcode',\n",
" 'lat', 'long', 'sqft_living15', 'sqft_lot15'],\n",
" dtype='object')"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import numpy as np\n",
"import skfuzzy as fuzz\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"\n",
"df_house = pd.read_csv(\".//static//csv//kc_house_data.csv\")\n",
"df_house.columns"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from skfuzzy import control as ctrl\n",
"\n",
"# Определим входные и выходные переменные\n",
"sqft_living = ctrl.Antecedent(df_house['sqft_living'].sort_values(), \"sqft_living\")\n",
"bathrooms = ctrl.Antecedent(df_house['bathrooms'].sort_values(), \"bathrooms\")\n",
"price = ctrl.Consequent(df_house['price'].sort_values(), \"price\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\Users\\user\\Desktop\\MII\\lab1para\\aim\\aimenv\\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": [
"sqft_living['low'] = fuzz.zmf(sqft_living.universe, 0, 5000)\n",
"sqft_living['medium'] = fuzz.trapmf(sqft_living.universe, [3400, 5700, 7800, 9900])\n",
"sqft_living['high'] = fuzz.trimf(sqft_living.universe, [8000, 13580, 13580])\n",
"sqft_living.view()\n",
"\n",
"bathrooms['low'] = fuzz.zmf(bathrooms.universe, 0, 3)\n",
"bathrooms['medium'] = fuzz.trapmf(bathrooms.universe, [1, 3, 4, 6])\n",
"bathrooms['high'] = fuzz.trimf(bathrooms.universe, [5, 8, 8])\n",
"bathrooms.view()\n",
"\n",
"#price['low'] = fuzz.zmf(price.universe, 0, 2500000)\n",
"#price['medium'] = fuzz.trapmf(price.universe, [1500000, 3000000, 4000000, 5500000])\n",
"#price['high'] = fuzz.trimf(price.universe, [4000000, 9000000, 11000000])\n",
"\n",
"# Для более точного определения цены \n",
"price.automf(5, variable_type=\"quant\")\n",
"price.view()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Ручное определение функций принадлежности для price\n",
"price['low'] = fuzz.trimf(price.universe, [0, 0, 500000])\n",
"price['medium'] = fuzz.trimf(price.universe, [250000, 750000, 1250000])\n",
"price['high'] = fuzz.trimf(price.universe, [1000000, 1500000, 2000000])\n",
"\n",
"# Визуализация функций принадлежности для price\n",
"price.view()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Ручное определение функций принадлежности для price\n",
"price['low'] = fuzz.trimf(price.universe, [0, 0, 500000])\n",
"price['medium'] = fuzz.trimf(price.universe, [250000, 750000, 1250000])\n",
"price['high'] = fuzz.trimf(price.universe, [1000000, 1500000, 2000000])\n",
"\n",
"# Визуализация функций принадлежности для price\n",
"price.view()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Результаты оценки:\n",
"Sqft Living | Bathrooms | Actual Price | Inferred Price\n",
" 2000 | 2 | 300000 | 261114.59\n",
" 4000 | 3 | 500000 | 750000.00\n",
" 6000 | 4 | 700000 | 750000.00\n",
" 8000 | 5 | 900000 | 750000.00\n",
"\n",
"Средняя абсолютная ошибка (MAE): 122221.35\n",
"Среднеквадратичная ошибка (RMSE): 149174.46\n"
]
}
],
"source": [
"\n",
"# Определение правил нечеткого вывода\n",
"rule1 = ctrl.Rule(sqft_living['low'] & bathrooms['low'], price['low'])\n",
"rule2 = ctrl.Rule(sqft_living['medium'] & bathrooms['medium'], price['medium'])\n",
"rule3 = ctrl.Rule(sqft_living['high'] & bathrooms['high'], price['high'])\n",
"rule4 = ctrl.Rule(sqft_living['low'] & bathrooms['high'], price['medium'])\n",
"rule5 = ctrl.Rule(sqft_living['high'] & bathrooms['low'], price['medium'])\n",
"\n",
"# Создание системы управления\n",
"price_ctrl = ctrl.ControlSystem([rule1, rule2, rule3, rule4, rule5])\n",
"price_sim = ctrl.ControlSystemSimulation(price_ctrl)\n",
"\n",
"# Функция для нечеткого вывода\n",
"def fuzzy_inference(sqft, bath):\n",
" price_sim.input['sqft_living'] = sqft\n",
" price_sim.input['bathrooms'] = bath\n",
" price_sim.compute()\n",
" return price_sim.output['price']\n",
"\n",
"# Тестовые данные\n",
"test_data = [\n",
" (2000, 2, 300000),\n",
" (4000, 3, 500000),\n",
" (6000, 4, 700000),\n",
" (8000, 5, 900000)\n",
"]\n",
"\n",
"# Оценка системы\n",
"results = []\n",
"for sqft, bath, actual_price in test_data:\n",
" try:\n",
" inferred_price = fuzzy_inference(sqft, bath)\n",
" results.append((sqft, bath, actual_price, inferred_price))\n",
" except ValueError as e:\n",
" print(f\"Ошибка для sqft_living={sqft}, bathrooms={bath}: {e}\")\n",
"\n",
"# Вывод результатов\n",
"print(\"\\nРезультаты оценки:\")\n",
"print(\"Sqft Living | Bathrooms | Actual Price | Inferred Price\")\n",
"for sqft, bath, actual_price, inferred_price in results:\n",
" print(f\"{sqft:11} | {bath:9} | {actual_price:12} | {inferred_price:.2f}\")\n",
"\n",
"# Вычисление метрик качества\n",
"if results:\n",
" actual_prices = [actual for _, _, actual, _ in results]\n",
" inferred_prices = [inferred for _, _, _, inferred in results]\n",
"\n",
" mae = np.mean(np.abs(np.array(actual_prices) - np.array(inferred_prices)))\n",
" rmse = np.sqrt(np.mean((np.array(actual_prices) - np.array(inferred_prices)) ** 2))\n",
"\n",
" print(f\"\\nСредняя абсолютная ошибка (MAE): {mae:.2f}\")\n",
" print(f\"Среднеквадратичная ошибка (RMSE): {rmse:.2f}\")\n",
"else:\n",
" print(\"Нет результатов для оценки.\")"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Результаты оценки:\n",
"Sqft Living | Bathrooms | Actual Price | Inferred Price\n",
" 2000 | 2 | 300000 | 261114.59\n",
" 4000 | 3 | 500000 | 750000.00\n",
" 6000 | 4 | 700000 | 750000.00\n",
" 8000 | 5 | 900000 | 750000.00\n",
"\n",
"Средняя абсолютная ошибка (MAE): 122221.35\n",
"Среднеквадратичная ошибка (RMSE): 149174.46\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"# Вывод результатов\n",
"print(\"\\nРезультаты оценки:\")\n",
"print(\"Sqft Living | Bathrooms | Actual Price | Inferred Price\")\n",
"for sqft, bath, actual_price, inferred_price in results:\n",
" print(f\"{sqft:11} | {bath:9} | {actual_price:12} | {inferred_price:.2f}\")\n",
"\n",
"# Вычисление метрик качества\n",
"if results:\n",
" actual_prices = [actual for _, _, actual, _ in results]\n",
" inferred_prices = [inferred for _, _, _, inferred in results]\n",
"\n",
" mae = np.mean(np.abs(np.array(actual_prices) - np.array(inferred_prices)))\n",
" rmse = np.sqrt(np.mean((np.array(actual_prices) - np.array(inferred_prices)) ** 2))\n",
"\n",
" print(f\"\\nСредняя абсолютная ошибка (MAE): {mae:.2f}\")\n",
" print(f\"Среднеквадратичная ошибка (RMSE): {rmse:.2f}\")\n",
"\n",
" # Построение графика\n",
" plt.figure(figsize=(10, 6))\n",
" plt.plot(actual_prices, label=\"Фактические значения\", marker='o', linestyle='-', color='blue')\n",
" plt.plot(inferred_prices, label=\"Предсказанные значения\", marker='x', linestyle='--', color='red')\n",
" plt.title(\"Сравнение фактических и предсказанных значений цены\")\n",
" plt.xlabel(\"Тестовые примеры\")\n",
" plt.ylabel(\"Цена\")\n",
" plt.legend()\n",
" plt.grid(True)\n",
" plt.show()\n",
"else:\n",
" print(\"Нет результатов для оценки.\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "aimenv",
"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.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}