1442 lines
432 KiB
Plaintext
1442 lines
432 KiB
Plaintext
|
{
|
|||
|
"cells": [
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"## **Лабораторная 7**\n"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 3,
|
|||
|
"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>Unnamed: 0</th>\n",
|
|||
|
" <th>carat</th>\n",
|
|||
|
" <th>cut</th>\n",
|
|||
|
" <th>color</th>\n",
|
|||
|
" <th>clarity</th>\n",
|
|||
|
" <th>depth</th>\n",
|
|||
|
" <th>table</th>\n",
|
|||
|
" <th>price</th>\n",
|
|||
|
" <th>x</th>\n",
|
|||
|
" <th>y</th>\n",
|
|||
|
" <th>z</th>\n",
|
|||
|
" </tr>\n",
|
|||
|
" </thead>\n",
|
|||
|
" <tbody>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>0</th>\n",
|
|||
|
" <td>1</td>\n",
|
|||
|
" <td>0.23</td>\n",
|
|||
|
" <td>Ideal</td>\n",
|
|||
|
" <td>E</td>\n",
|
|||
|
" <td>SI2</td>\n",
|
|||
|
" <td>61.5</td>\n",
|
|||
|
" <td>55.0</td>\n",
|
|||
|
" <td>326</td>\n",
|
|||
|
" <td>3.95</td>\n",
|
|||
|
" <td>3.98</td>\n",
|
|||
|
" <td>2.43</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>1</th>\n",
|
|||
|
" <td>2</td>\n",
|
|||
|
" <td>0.21</td>\n",
|
|||
|
" <td>Premium</td>\n",
|
|||
|
" <td>E</td>\n",
|
|||
|
" <td>SI1</td>\n",
|
|||
|
" <td>59.8</td>\n",
|
|||
|
" <td>61.0</td>\n",
|
|||
|
" <td>326</td>\n",
|
|||
|
" <td>3.89</td>\n",
|
|||
|
" <td>3.84</td>\n",
|
|||
|
" <td>2.31</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>2</th>\n",
|
|||
|
" <td>3</td>\n",
|
|||
|
" <td>0.23</td>\n",
|
|||
|
" <td>Good</td>\n",
|
|||
|
" <td>E</td>\n",
|
|||
|
" <td>VS1</td>\n",
|
|||
|
" <td>56.9</td>\n",
|
|||
|
" <td>65.0</td>\n",
|
|||
|
" <td>327</td>\n",
|
|||
|
" <td>4.05</td>\n",
|
|||
|
" <td>4.07</td>\n",
|
|||
|
" <td>2.31</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>3</th>\n",
|
|||
|
" <td>4</td>\n",
|
|||
|
" <td>0.29</td>\n",
|
|||
|
" <td>Premium</td>\n",
|
|||
|
" <td>I</td>\n",
|
|||
|
" <td>VS2</td>\n",
|
|||
|
" <td>62.4</td>\n",
|
|||
|
" <td>58.0</td>\n",
|
|||
|
" <td>334</td>\n",
|
|||
|
" <td>4.20</td>\n",
|
|||
|
" <td>4.23</td>\n",
|
|||
|
" <td>2.63</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>4</th>\n",
|
|||
|
" <td>5</td>\n",
|
|||
|
" <td>0.31</td>\n",
|
|||
|
" <td>Good</td>\n",
|
|||
|
" <td>J</td>\n",
|
|||
|
" <td>SI2</td>\n",
|
|||
|
" <td>63.3</td>\n",
|
|||
|
" <td>58.0</td>\n",
|
|||
|
" <td>335</td>\n",
|
|||
|
" <td>4.34</td>\n",
|
|||
|
" <td>4.35</td>\n",
|
|||
|
" <td>2.75</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",
|
|||
|
" <td>...</td>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>53938</th>\n",
|
|||
|
" <td>53939</td>\n",
|
|||
|
" <td>0.86</td>\n",
|
|||
|
" <td>Premium</td>\n",
|
|||
|
" <td>H</td>\n",
|
|||
|
" <td>SI2</td>\n",
|
|||
|
" <td>61.0</td>\n",
|
|||
|
" <td>58.0</td>\n",
|
|||
|
" <td>2757</td>\n",
|
|||
|
" <td>6.15</td>\n",
|
|||
|
" <td>6.12</td>\n",
|
|||
|
" <td>3.74</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>53939</th>\n",
|
|||
|
" <td>53940</td>\n",
|
|||
|
" <td>0.75</td>\n",
|
|||
|
" <td>Ideal</td>\n",
|
|||
|
" <td>D</td>\n",
|
|||
|
" <td>SI2</td>\n",
|
|||
|
" <td>62.2</td>\n",
|
|||
|
" <td>55.0</td>\n",
|
|||
|
" <td>2757</td>\n",
|
|||
|
" <td>5.83</td>\n",
|
|||
|
" <td>5.87</td>\n",
|
|||
|
" <td>3.64</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>53940</th>\n",
|
|||
|
" <td>53941</td>\n",
|
|||
|
" <td>0.71</td>\n",
|
|||
|
" <td>Premium</td>\n",
|
|||
|
" <td>E</td>\n",
|
|||
|
" <td>SI1</td>\n",
|
|||
|
" <td>60.5</td>\n",
|
|||
|
" <td>55.0</td>\n",
|
|||
|
" <td>2756</td>\n",
|
|||
|
" <td>5.79</td>\n",
|
|||
|
" <td>5.74</td>\n",
|
|||
|
" <td>3.49</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>53941</th>\n",
|
|||
|
" <td>53942</td>\n",
|
|||
|
" <td>0.71</td>\n",
|
|||
|
" <td>Premium</td>\n",
|
|||
|
" <td>F</td>\n",
|
|||
|
" <td>SI1</td>\n",
|
|||
|
" <td>59.8</td>\n",
|
|||
|
" <td>62.0</td>\n",
|
|||
|
" <td>2756</td>\n",
|
|||
|
" <td>5.74</td>\n",
|
|||
|
" <td>5.73</td>\n",
|
|||
|
" <td>3.43</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>53942</th>\n",
|
|||
|
" <td>53943</td>\n",
|
|||
|
" <td>0.70</td>\n",
|
|||
|
" <td>Very Good</td>\n",
|
|||
|
" <td>E</td>\n",
|
|||
|
" <td>VS2</td>\n",
|
|||
|
" <td>60.5</td>\n",
|
|||
|
" <td>59.0</td>\n",
|
|||
|
" <td>2757</td>\n",
|
|||
|
" <td>5.71</td>\n",
|
|||
|
" <td>5.76</td>\n",
|
|||
|
" <td>3.47</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" </tbody>\n",
|
|||
|
"</table>\n",
|
|||
|
"<p>53943 rows × 11 columns</p>\n",
|
|||
|
"</div>"
|
|||
|
],
|
|||
|
"text/plain": [
|
|||
|
" Unnamed: 0 carat cut color clarity depth table price x \\\n",
|
|||
|
"0 1 0.23 Ideal E SI2 61.5 55.0 326 3.95 \n",
|
|||
|
"1 2 0.21 Premium E SI1 59.8 61.0 326 3.89 \n",
|
|||
|
"2 3 0.23 Good E VS1 56.9 65.0 327 4.05 \n",
|
|||
|
"3 4 0.29 Premium I VS2 62.4 58.0 334 4.20 \n",
|
|||
|
"4 5 0.31 Good J SI2 63.3 58.0 335 4.34 \n",
|
|||
|
"... ... ... ... ... ... ... ... ... ... \n",
|
|||
|
"53938 53939 0.86 Premium H SI2 61.0 58.0 2757 6.15 \n",
|
|||
|
"53939 53940 0.75 Ideal D SI2 62.2 55.0 2757 5.83 \n",
|
|||
|
"53940 53941 0.71 Premium E SI1 60.5 55.0 2756 5.79 \n",
|
|||
|
"53941 53942 0.71 Premium F SI1 59.8 62.0 2756 5.74 \n",
|
|||
|
"53942 53943 0.70 Very Good E VS2 60.5 59.0 2757 5.71 \n",
|
|||
|
"\n",
|
|||
|
" y z \n",
|
|||
|
"0 3.98 2.43 \n",
|
|||
|
"1 3.84 2.31 \n",
|
|||
|
"2 4.07 2.31 \n",
|
|||
|
"3 4.23 2.63 \n",
|
|||
|
"4 4.35 2.75 \n",
|
|||
|
"... ... ... \n",
|
|||
|
"53938 6.12 3.74 \n",
|
|||
|
"53939 5.87 3.64 \n",
|
|||
|
"53940 5.74 3.49 \n",
|
|||
|
"53941 5.73 3.43 \n",
|
|||
|
"53942 5.76 3.47 \n",
|
|||
|
"\n",
|
|||
|
"[53943 rows x 11 columns]"
|
|||
|
]
|
|||
|
},
|
|||
|
"execution_count": 3,
|
|||
|
"metadata": {},
|
|||
|
"output_type": "execute_result"
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"import numpy as np\n",
|
|||
|
"import pandas as pd\n",
|
|||
|
"import skfuzzy as fuzz\n",
|
|||
|
"import skfuzzy.control as ctrl\n",
|
|||
|
"\n",
|
|||
|
"df = pd.read_csv(\".//static//csv//Diamonds Prices2022.csv\")\n",
|
|||
|
"\n",
|
|||
|
"df"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"#### **Определение входных и выходных переменных**"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"выведем все уникальные значения встолбце глубина"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 4,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"['SI2' 'SI1' 'VS1' 'VS2' 'VVS2' 'VVS1' 'I1' 'IF']\n"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"unique_values = df['clarity'].unique()\n",
|
|||
|
"\n",
|
|||
|
"print(unique_values)"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"Закодируем глубину и в дальнейшем будем использовать новый столбец"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 55,
|
|||
|
"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>Unnamed: 0</th>\n",
|
|||
|
" <th>carat</th>\n",
|
|||
|
" <th>cut</th>\n",
|
|||
|
" <th>color</th>\n",
|
|||
|
" <th>clarity</th>\n",
|
|||
|
" <th>depth</th>\n",
|
|||
|
" <th>table</th>\n",
|
|||
|
" <th>price</th>\n",
|
|||
|
" <th>x</th>\n",
|
|||
|
" <th>y</th>\n",
|
|||
|
" <th>z</th>\n",
|
|||
|
" <th>clarity_encoded</th>\n",
|
|||
|
" </tr>\n",
|
|||
|
" </thead>\n",
|
|||
|
" <tbody>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>0</th>\n",
|
|||
|
" <td>1</td>\n",
|
|||
|
" <td>0.23</td>\n",
|
|||
|
" <td>Ideal</td>\n",
|
|||
|
" <td>E</td>\n",
|
|||
|
" <td>SI2</td>\n",
|
|||
|
" <td>61.5</td>\n",
|
|||
|
" <td>55.0</td>\n",
|
|||
|
" <td>326</td>\n",
|
|||
|
" <td>3.95</td>\n",
|
|||
|
" <td>3.98</td>\n",
|
|||
|
" <td>2.43</td>\n",
|
|||
|
" <td>2</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>1</th>\n",
|
|||
|
" <td>2</td>\n",
|
|||
|
" <td>0.21</td>\n",
|
|||
|
" <td>Premium</td>\n",
|
|||
|
" <td>E</td>\n",
|
|||
|
" <td>SI1</td>\n",
|
|||
|
" <td>59.8</td>\n",
|
|||
|
" <td>61.0</td>\n",
|
|||
|
" <td>326</td>\n",
|
|||
|
" <td>3.89</td>\n",
|
|||
|
" <td>3.84</td>\n",
|
|||
|
" <td>2.31</td>\n",
|
|||
|
" <td>3</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>2</th>\n",
|
|||
|
" <td>3</td>\n",
|
|||
|
" <td>0.23</td>\n",
|
|||
|
" <td>Good</td>\n",
|
|||
|
" <td>E</td>\n",
|
|||
|
" <td>VS1</td>\n",
|
|||
|
" <td>56.9</td>\n",
|
|||
|
" <td>65.0</td>\n",
|
|||
|
" <td>327</td>\n",
|
|||
|
" <td>4.05</td>\n",
|
|||
|
" <td>4.07</td>\n",
|
|||
|
" <td>2.31</td>\n",
|
|||
|
" <td>5</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>3</th>\n",
|
|||
|
" <td>4</td>\n",
|
|||
|
" <td>0.29</td>\n",
|
|||
|
" <td>Premium</td>\n",
|
|||
|
" <td>I</td>\n",
|
|||
|
" <td>VS2</td>\n",
|
|||
|
" <td>62.4</td>\n",
|
|||
|
" <td>58.0</td>\n",
|
|||
|
" <td>334</td>\n",
|
|||
|
" <td>4.20</td>\n",
|
|||
|
" <td>4.23</td>\n",
|
|||
|
" <td>2.63</td>\n",
|
|||
|
" <td>4</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>4</th>\n",
|
|||
|
" <td>5</td>\n",
|
|||
|
" <td>0.31</td>\n",
|
|||
|
" <td>Good</td>\n",
|
|||
|
" <td>J</td>\n",
|
|||
|
" <td>SI2</td>\n",
|
|||
|
" <td>63.3</td>\n",
|
|||
|
" <td>58.0</td>\n",
|
|||
|
" <td>335</td>\n",
|
|||
|
" <td>4.34</td>\n",
|
|||
|
" <td>4.35</td>\n",
|
|||
|
" <td>2.75</td>\n",
|
|||
|
" <td>2</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>...</th>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>53938</th>\n",
|
|||
|
" <td>53939</td>\n",
|
|||
|
" <td>0.86</td>\n",
|
|||
|
" <td>Premium</td>\n",
|
|||
|
" <td>H</td>\n",
|
|||
|
" <td>SI2</td>\n",
|
|||
|
" <td>61.0</td>\n",
|
|||
|
" <td>58.0</td>\n",
|
|||
|
" <td>2757</td>\n",
|
|||
|
" <td>6.15</td>\n",
|
|||
|
" <td>6.12</td>\n",
|
|||
|
" <td>3.74</td>\n",
|
|||
|
" <td>2</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>53939</th>\n",
|
|||
|
" <td>53940</td>\n",
|
|||
|
" <td>0.75</td>\n",
|
|||
|
" <td>Ideal</td>\n",
|
|||
|
" <td>D</td>\n",
|
|||
|
" <td>SI2</td>\n",
|
|||
|
" <td>62.2</td>\n",
|
|||
|
" <td>55.0</td>\n",
|
|||
|
" <td>2757</td>\n",
|
|||
|
" <td>5.83</td>\n",
|
|||
|
" <td>5.87</td>\n",
|
|||
|
" <td>3.64</td>\n",
|
|||
|
" <td>2</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>53940</th>\n",
|
|||
|
" <td>53941</td>\n",
|
|||
|
" <td>0.71</td>\n",
|
|||
|
" <td>Premium</td>\n",
|
|||
|
" <td>E</td>\n",
|
|||
|
" <td>SI1</td>\n",
|
|||
|
" <td>60.5</td>\n",
|
|||
|
" <td>55.0</td>\n",
|
|||
|
" <td>2756</td>\n",
|
|||
|
" <td>5.79</td>\n",
|
|||
|
" <td>5.74</td>\n",
|
|||
|
" <td>3.49</td>\n",
|
|||
|
" <td>3</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>53941</th>\n",
|
|||
|
" <td>53942</td>\n",
|
|||
|
" <td>0.71</td>\n",
|
|||
|
" <td>Premium</td>\n",
|
|||
|
" <td>F</td>\n",
|
|||
|
" <td>SI1</td>\n",
|
|||
|
" <td>59.8</td>\n",
|
|||
|
" <td>62.0</td>\n",
|
|||
|
" <td>2756</td>\n",
|
|||
|
" <td>5.74</td>\n",
|
|||
|
" <td>5.73</td>\n",
|
|||
|
" <td>3.43</td>\n",
|
|||
|
" <td>3</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>53942</th>\n",
|
|||
|
" <td>53943</td>\n",
|
|||
|
" <td>0.70</td>\n",
|
|||
|
" <td>Very Good</td>\n",
|
|||
|
" <td>E</td>\n",
|
|||
|
" <td>VS2</td>\n",
|
|||
|
" <td>60.5</td>\n",
|
|||
|
" <td>59.0</td>\n",
|
|||
|
" <td>2757</td>\n",
|
|||
|
" <td>5.71</td>\n",
|
|||
|
" <td>5.76</td>\n",
|
|||
|
" <td>3.47</td>\n",
|
|||
|
" <td>4</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" </tbody>\n",
|
|||
|
"</table>\n",
|
|||
|
"<p>53943 rows × 12 columns</p>\n",
|
|||
|
"</div>"
|
|||
|
],
|
|||
|
"text/plain": [
|
|||
|
" Unnamed: 0 carat cut color clarity depth table price x \\\n",
|
|||
|
"0 1 0.23 Ideal E SI2 61.5 55.0 326 3.95 \n",
|
|||
|
"1 2 0.21 Premium E SI1 59.8 61.0 326 3.89 \n",
|
|||
|
"2 3 0.23 Good E VS1 56.9 65.0 327 4.05 \n",
|
|||
|
"3 4 0.29 Premium I VS2 62.4 58.0 334 4.20 \n",
|
|||
|
"4 5 0.31 Good J SI2 63.3 58.0 335 4.34 \n",
|
|||
|
"... ... ... ... ... ... ... ... ... ... \n",
|
|||
|
"53938 53939 0.86 Premium H SI2 61.0 58.0 2757 6.15 \n",
|
|||
|
"53939 53940 0.75 Ideal D SI2 62.2 55.0 2757 5.83 \n",
|
|||
|
"53940 53941 0.71 Premium E SI1 60.5 55.0 2756 5.79 \n",
|
|||
|
"53941 53942 0.71 Premium F SI1 59.8 62.0 2756 5.74 \n",
|
|||
|
"53942 53943 0.70 Very Good E VS2 60.5 59.0 2757 5.71 \n",
|
|||
|
"\n",
|
|||
|
" y z clarity_encoded \n",
|
|||
|
"0 3.98 2.43 2 \n",
|
|||
|
"1 3.84 2.31 3 \n",
|
|||
|
"2 4.07 2.31 5 \n",
|
|||
|
"3 4.23 2.63 4 \n",
|
|||
|
"4 4.35 2.75 2 \n",
|
|||
|
"... ... ... ... \n",
|
|||
|
"53938 6.12 3.74 2 \n",
|
|||
|
"53939 5.87 3.64 2 \n",
|
|||
|
"53940 5.74 3.49 3 \n",
|
|||
|
"53941 5.73 3.43 3 \n",
|
|||
|
"53942 5.76 3.47 4 \n",
|
|||
|
"\n",
|
|||
|
"[53943 rows x 12 columns]"
|
|||
|
]
|
|||
|
},
|
|||
|
"execution_count": 55,
|
|||
|
"metadata": {},
|
|||
|
"output_type": "execute_result"
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"clarity_mapping = {\n",
|
|||
|
" 'I1': 1,\n",
|
|||
|
" 'SI2': 2,\n",
|
|||
|
" 'SI1': 3,\n",
|
|||
|
" 'VS2': 4,\n",
|
|||
|
" 'VS1': 5,\n",
|
|||
|
" 'VVS2': 6,\n",
|
|||
|
" 'VVS1': 7,\n",
|
|||
|
" 'IF': 8\n",
|
|||
|
"}\n",
|
|||
|
"\n",
|
|||
|
"df['clarity_encoded'] = df['clarity'].map(clarity_mapping)\n",
|
|||
|
"\n",
|
|||
|
"df"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"определим минимальные и максимальные значения"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 56,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"0.2\n",
|
|||
|
"5.01\n",
|
|||
|
"1\n",
|
|||
|
"8\n",
|
|||
|
"326\n",
|
|||
|
"18823\n"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"carat_min = df[\"carat\"].min()\n",
|
|||
|
"carat_max = df[\"carat\"].max()\n",
|
|||
|
"\n",
|
|||
|
"clarity_min = df[\"clarity_encoded\"].min()\n",
|
|||
|
"clarity_max = df[\"clarity_encoded\"].max()\n",
|
|||
|
"\n",
|
|||
|
"price_min = df[\"price\"].min()\n",
|
|||
|
"price_max = df[\"price\"].max()\n",
|
|||
|
"\n",
|
|||
|
"print(carat_min)\n",
|
|||
|
"print(carat_max)\n",
|
|||
|
"\n",
|
|||
|
"print(clarity_min)\n",
|
|||
|
"print(clarity_max)\n",
|
|||
|
"\n",
|
|||
|
"print(price_min)\n",
|
|||
|
"print(price_max)\n"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"определим входные и выходные переменные"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 57,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [],
|
|||
|
"source": [
|
|||
|
"carat = ctrl.Antecedent(np.linspace(carat_min, carat_max, 100), 'carat')\n",
|
|||
|
"clarity = ctrl.Antecedent(np.arange(clarity_min, clarity_max + 1, 1), 'clarity')\n",
|
|||
|
"price = ctrl.Consequent(np.linspace(price_min, price_max+100, 100), 'price')"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"#### **создание лингвистических переменных**"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 58,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stderr",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"c:\\D\\semester5\\mii\\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": [
|
|||
|
"carat[\"малый\"] = fuzz.zmf(carat.universe, carat_min, carat_min + 1.6)\n",
|
|||
|
"carat[\"средний\"] = fuzz.trapmf(carat.universe, [1, 2, 3, 4])\n",
|
|||
|
"carat[\"большой\"] = fuzz.smf(carat.universe, carat_max - 1.6, carat_max)\n",
|
|||
|
"carat.view()\n",
|
|||
|
"\n",
|
|||
|
"clarity[\"низкий\"] = fuzz.zmf(clarity.universe, 1, 3)\n",
|
|||
|
"clarity[\"средний\"] = fuzz.trapmf(clarity.universe, [2, 4, 5, 7])\n",
|
|||
|
"clarity[\"высокий\"] = fuzz.smf(clarity.universe, 6, 8)\n",
|
|||
|
"clarity.view()\n",
|
|||
|
"\n",
|
|||
|
"price[\"дешевый\"] = fuzz.zmf(price.universe, price_min, price_min + 8000)\n",
|
|||
|
"price[\"средний\"] = fuzz.trapmf(price.universe, [price_min + 2000, price_min + 8000, price_max - 8000, price_max - 2000])\n",
|
|||
|
"price[\"дорогой\"] = fuzz.smf(price.universe, price_max - 8000, price_max)\n",
|
|||
|
"price.view()"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"#### **Определение правил**"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 59,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"(<Figure size 640x480 with 1 Axes>, <Axes: >)"
|
|||
|
]
|
|||
|
},
|
|||
|
"execution_count": 59,
|
|||
|
"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": [
|
|||
|
"rule1 = ctrl.Rule(carat[\"малый\"] & clarity[\"низкий\"], price[\"дешевый\"])\n",
|
|||
|
"rule2 = ctrl.Rule(carat[\"малый\"] & clarity[\"средний\"], price[\"средний\"])\n",
|
|||
|
"rule3 = ctrl.Rule(carat[\"малый\"] & clarity[\"высокий\"], price[\"средний\"])\n",
|
|||
|
"\n",
|
|||
|
"rule4 = ctrl.Rule(carat[\"средний\"] & clarity[\"низкий\"], price[\"средний\"])\n",
|
|||
|
"rule5 = ctrl.Rule(carat[\"средний\"] & clarity[\"средний\"], price[\"средний\"])\n",
|
|||
|
"rule6 = ctrl.Rule(carat[\"средний\"] & clarity[\"высокий\"], price[\"дорогой\"])\n",
|
|||
|
"\n",
|
|||
|
"rule7 = ctrl.Rule(carat[\"большой\"] & clarity[\"низкий\"], price[\"средний\"])\n",
|
|||
|
"rule8 = ctrl.Rule(carat[\"большой\"] & clarity[\"средний\"], price[\"дорогой\"])\n",
|
|||
|
"rule9 = ctrl.Rule(carat[\"большой\"] & clarity[\"высокий\"], price[\"дорогой\"])\n",
|
|||
|
"\n",
|
|||
|
"rule1.view()"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"#### **Создание нечеткой системы и добавление нечетких правил в базу знаний нечеткой системы**"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": null,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [],
|
|||
|
"source": [
|
|||
|
"# Создание нечеткой системы управления\n",
|
|||
|
"price_ctrl = ctrl.ControlSystem([\n",
|
|||
|
" rule1, rule2, rule3,\n",
|
|||
|
" rule4, rule5, rule6,\n",
|
|||
|
" rule7, rule8, rule9\n",
|
|||
|
"])\n",
|
|||
|
"\n",
|
|||
|
"# Создание симулятора системы управления\n",
|
|||
|
"price_simulation = ctrl.ControlSystemSimulation(price_ctrl)\n",
|
|||
|
"\n",
|
|||
|
"\n"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"#### **Расчета выходной переменной**"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": null,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"=============\n",
|
|||
|
" Antecedents \n",
|
|||
|
"=============\n",
|
|||
|
"Antecedent: carat = 4\n",
|
|||
|
" - малый : 0.0\n",
|
|||
|
" - средний : 0.008118188118188345\n",
|
|||
|
" - большой : 0.2722612727655344\n",
|
|||
|
"Antecedent: clarity = 4\n",
|
|||
|
" - низкий : 0.0\n",
|
|||
|
" - средний : 1.0\n",
|
|||
|
" - высокий : 0.0\n",
|
|||
|
"\n",
|
|||
|
"=======\n",
|
|||
|
" Rules \n",
|
|||
|
"=======\n",
|
|||
|
"RULE #0:\n",
|
|||
|
" IF carat[малый] AND clarity[низкий] THEN price[дешевый]\n",
|
|||
|
"\tAND aggregation function : fmin\n",
|
|||
|
"\tOR aggregation function : fmax\n",
|
|||
|
"\n",
|
|||
|
" Aggregation (IF-clause):\n",
|
|||
|
" - carat[малый] : 0.0\n",
|
|||
|
" - clarity[низкий] : 0.0\n",
|
|||
|
" carat[малый] AND clarity[низкий] = 0.0\n",
|
|||
|
" Activation (THEN-clause):\n",
|
|||
|
" price[дешевый] : 0.0\n",
|
|||
|
"\n",
|
|||
|
"RULE #1:\n",
|
|||
|
" IF carat[малый] AND clarity[средний] THEN price[средний]\n",
|
|||
|
"\tAND aggregation function : fmin\n",
|
|||
|
"\tOR aggregation function : fmax\n",
|
|||
|
"\n",
|
|||
|
" Aggregation (IF-clause):\n",
|
|||
|
" - carat[малый] : 0.0\n",
|
|||
|
" - clarity[средний] : 1.0\n",
|
|||
|
" carat[малый] AND clarity[средний] = 0.0\n",
|
|||
|
" Activation (THEN-clause):\n",
|
|||
|
" price[средний] : 0.0\n",
|
|||
|
"\n",
|
|||
|
"RULE #2:\n",
|
|||
|
" IF carat[малый] AND clarity[высокий] THEN price[средний]\n",
|
|||
|
"\tAND aggregation function : fmin\n",
|
|||
|
"\tOR aggregation function : fmax\n",
|
|||
|
"\n",
|
|||
|
" Aggregation (IF-clause):\n",
|
|||
|
" - carat[малый] : 0.0\n",
|
|||
|
" - clarity[высокий] : 0.0\n",
|
|||
|
" carat[малый] AND clarity[высокий] = 0.0\n",
|
|||
|
" Activation (THEN-clause):\n",
|
|||
|
" price[средний] : 0.0\n",
|
|||
|
"\n",
|
|||
|
"RULE #3:\n",
|
|||
|
" IF carat[средний] AND clarity[низкий] THEN price[средний]\n",
|
|||
|
"\tAND aggregation function : fmin\n",
|
|||
|
"\tOR aggregation function : fmax\n",
|
|||
|
"\n",
|
|||
|
" Aggregation (IF-clause):\n",
|
|||
|
" - carat[средний] : 0.008118188118188345\n",
|
|||
|
" - clarity[низкий] : 0.0\n",
|
|||
|
" carat[средний] AND clarity[низкий] = 0.0\n",
|
|||
|
" Activation (THEN-clause):\n",
|
|||
|
" price[средний] : 0.0\n",
|
|||
|
"\n",
|
|||
|
"RULE #4:\n",
|
|||
|
" IF carat[средний] AND clarity[средний] THEN price[средний]\n",
|
|||
|
"\tAND aggregation function : fmin\n",
|
|||
|
"\tOR aggregation function : fmax\n",
|
|||
|
"\n",
|
|||
|
" Aggregation (IF-clause):\n",
|
|||
|
" - carat[средний] : 0.008118188118188345\n",
|
|||
|
" - clarity[средний] : 1.0\n",
|
|||
|
" carat[средний] AND clarity[средний] = 0.008118188118188345\n",
|
|||
|
" Activation (THEN-clause):\n",
|
|||
|
" price[средний] : 0.008118188118188345\n",
|
|||
|
"\n",
|
|||
|
"RULE #5:\n",
|
|||
|
" IF carat[средний] AND clarity[высокий] THEN price[дорогой]\n",
|
|||
|
"\tAND aggregation function : fmin\n",
|
|||
|
"\tOR aggregation function : fmax\n",
|
|||
|
"\n",
|
|||
|
" Aggregation (IF-clause):\n",
|
|||
|
" - carat[средний] : 0.008118188118188345\n",
|
|||
|
" - clarity[высокий] : 0.0\n",
|
|||
|
" carat[средний] AND clarity[высокий] = 0.0\n",
|
|||
|
" Activation (THEN-clause):\n",
|
|||
|
" price[дорогой] : 0.0\n",
|
|||
|
"\n",
|
|||
|
"RULE #6:\n",
|
|||
|
" IF carat[большой] AND clarity[низкий] THEN price[средний]\n",
|
|||
|
"\tAND aggregation function : fmin\n",
|
|||
|
"\tOR aggregation function : fmax\n",
|
|||
|
"\n",
|
|||
|
" Aggregation (IF-clause):\n",
|
|||
|
" - carat[большой] : 0.2722612727655344\n",
|
|||
|
" - clarity[низкий] : 0.0\n",
|
|||
|
" carat[большой] AND clarity[низкий] = 0.0\n",
|
|||
|
" Activation (THEN-clause):\n",
|
|||
|
" price[средний] : 0.0\n",
|
|||
|
"\n",
|
|||
|
"RULE #7:\n",
|
|||
|
" IF carat[большой] AND clarity[средний] THEN price[дорогой]\n",
|
|||
|
"\tAND aggregation function : fmin\n",
|
|||
|
"\tOR aggregation function : fmax\n",
|
|||
|
"\n",
|
|||
|
" Aggregation (IF-clause):\n",
|
|||
|
" - carat[большой] : 0.2722612727655344\n",
|
|||
|
" - clarity[средний] : 1.0\n",
|
|||
|
" carat[большой] AND clarity[средний] = 0.2722612727655344\n",
|
|||
|
" Activation (THEN-clause):\n",
|
|||
|
" price[дорогой] : 0.2722612727655344\n",
|
|||
|
"\n",
|
|||
|
"RULE #8:\n",
|
|||
|
" IF carat[большой] AND clarity[высокий] THEN price[дорогой]\n",
|
|||
|
"\tAND aggregation function : fmin\n",
|
|||
|
"\tOR aggregation function : fmax\n",
|
|||
|
"\n",
|
|||
|
" Aggregation (IF-clause):\n",
|
|||
|
" - carat[большой] : 0.2722612727655344\n",
|
|||
|
" - clarity[высокий] : 0.0\n",
|
|||
|
" carat[большой] AND clarity[высокий] = 0.0\n",
|
|||
|
" Activation (THEN-clause):\n",
|
|||
|
" price[дорогой] : 0.0\n",
|
|||
|
"\n",
|
|||
|
"\n",
|
|||
|
"==============================\n",
|
|||
|
" Intermediaries and Conquests \n",
|
|||
|
"==============================\n",
|
|||
|
"Consequent: price = 15439.380575289844\n",
|
|||
|
" дешевый:\n",
|
|||
|
" Accumulate using accumulation_max : 0.0\n",
|
|||
|
" средний:\n",
|
|||
|
" Accumulate using accumulation_max : 0.008118188118188345\n",
|
|||
|
" дорогой:\n",
|
|||
|
" Accumulate using accumulation_max : 0.2722612727655344\n",
|
|||
|
"\n",
|
|||
|
"Предсказанная цена бриллианта: 15439.380575289844\n"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"# Установка входных значений\n",
|
|||
|
"price_simulation.input[\"carat\"] = 4\n",
|
|||
|
"price_simulation.input[\"clarity\"] = 4\n",
|
|||
|
"\n",
|
|||
|
"# Выполнение вычислений\n",
|
|||
|
"price_simulation.compute()\n",
|
|||
|
"\n",
|
|||
|
"# Вывод текущего состояния системы\n",
|
|||
|
"price_simulation.print_state()\n",
|
|||
|
"\n",
|
|||
|
"# Получение предсказанного значения цены\n",
|
|||
|
"predicted_price = price_simulation.output[\"price\"]\n",
|
|||
|
"print(f\"Предсказанная цена бриллианта: {predicted_price}\")\n"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"#### **Визуализация функции принадлежности для выходной переменной**"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 62,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"image/png": "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
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 640x480 with 1 Axes>"
|
|||
|
]
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"price.view(sim=price_simulation)"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"#### **Оценка качества полученной нечеткой системы**"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"**Визуализация поверхностей вывода**"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": null,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"image/png": "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Bz9IWVkZDz74IB/96Efp7+/nc5/7XGrfBx54gFtuuYU5c+bw/ve/n7q6Og4cOMCvfvWrlIDft28f27dvp76+nr/5m7+htLSUH//4x9x2223893//Ny972cuKdp4Gw7RAGwwXge985zsayPrPBdAf+9jHxvzuwoUL9R133JFz789+9rMa0N/73vey3q+U0rfccosuKyvT+/bt01pr7TiOnjdvnn71q1+dsfYLX/iCFkLoY8eO5T2fj370oxrQpaWl+qabbtL/+I//qJ955pkx6377299qQP/f//1fxu2XX365vvbaa1M/r1u3Tt988815H/Pd7363zvYn/Oijj2pA//CHP8y4/b777htz+8KFCzWgH3/88THHGA6HdVtbW+r2b3zjGxrQDz30UN7jqqqq0uvWrcu75n3ve58G9O7du7XWWn/sYx/Lei7u+6SlpSV125o1azKeq9FrGxsbdSwWS93uvh9+8YtfpG7z+t76yU9+4umcXf7t3/5NAzoQCOgXvvCF+h/+4R/0o48+qh3HyVj30EMPZd23paVFA/o73/lO6rY77rhDA/pv/uZvxjye+7ydO3cu4/bh4eExa++8805dUlKiI5GI1lpr27b1okWL9MKFC3VPT0/GWqVU6v9f9KIX6bVr16Z+z71/27ZtetmyZXmfD4PhUsSk0gwXla9+9as88MADGf8mw0MPPcTf/u3f8t73vpc3vOENWdd86lOf4le/+hX33nsvq1evBkBKyetf/3r+93//l4GBgdTaH/7wh2zbtm1MgfhoPvGJT/CjH/2IDRs28Nvf/paPfOQjNDY2snHjRg4cOJBad/311zN37lx++MMfpm7bu3cvu3fv5i/+4i9St1VVVbFv3z6OHDky7ufgJz/5CZWVldxwww10dnam/jU2NlJWVjamAHj16tVs3bo19fOVV14JwHXXXceCBQvG3H7s2LG8jz8wMEB5eXneNe79/f393k/MI+94xzsyImLvete78Pl8/OY3vyn6Y43mLW95C/fddx8veMEL+OMf/8inPvUprr76apYtW8bjjz8+qb3f9a53eV6bHoUbGBigs7OTq6++muHhYQ4ePAjAzp07aWlp4QMf+MCYGiU3stbd3c2DDz7Iq171qtQ+nZ2ddHV1ceONN3LkyBFOnjw5qfMyGKYbRhgZLipXXHEF119/fca/idLe3s6rX/1qtm/fzhe+8IWsa+677z4+8YlP8Ld/+7fcfvvtGfe98Y1vZGRkhJ/97GcAHDp0iGeeeSanwBrNa1/7Wh599FF6enq4//77ed3rXsfOnTu59dZbiUQiwHkB9vOf/5zh4WEgIb5CoVCqngXgk5/8JL29vSxfvpy1a9dy1113sXv3bk/HceTIEfr6+pg1axYzZ87M+Dc4ODimCDhd/ABUVlYCMH/+/Ky3j67XGU15eXmGuMyGe38hATURli1blvFzWVkZc+bMGVfL/WS48cYb+e1vf0tvby+PPPII7373u2lra+OWW26ZcAG2z+cbV2pu3759vOxlL6OyspKKigpmzpyZEt59fX1Aoh4KEl1+uTh69Chaa/7hH/5hzHvJTS8/35oLDM99TI2R4ZIjWwFpLBbjFa94BcFgkB//+Mf4fGPf2i0tLbz+9a/nhhtu4NOf/vSY+1evXk1jYyM/+MEPeOMb38gPfvA
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 1000x700 with 1 Axes>"
|
|||
|
]
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"import numpy as np\n",
|
|||
|
"import matplotlib.pyplot as plt\n",
|
|||
|
"from mpl_toolkits.mplot3d import Axes3D\n",
|
|||
|
"\n",
|
|||
|
"carat_values = np.linspace(carat_min, carat_max, 30)\n",
|
|||
|
"clarity_values = np.linspace(clarity_min, clarity_max, 30)\n",
|
|||
|
"\n",
|
|||
|
"price_results = np.zeros((len(carat_values), len(clarity_values)))\n",
|
|||
|
"\n",
|
|||
|
"for i, c in enumerate(carat_values):\n",
|
|||
|
" for j, cl in enumerate(clarity_values):\n",
|
|||
|
" price_simulation.input[\"carat\"] = c\n",
|
|||
|
" price_simulation.input[\"clarity\"] = cl\n",
|
|||
|
" price_simulation.compute()\n",
|
|||
|
" price_results[i, j] = price_simulation.output[\"price\"]\n",
|
|||
|
"\n",
|
|||
|
"X, Y = np.meshgrid(carat_values, clarity_values)\n",
|
|||
|
"fig = plt.figure(figsize=(10, 7))\n",
|
|||
|
"ax = fig.add_subplot(111, projection=\"3d\")\n",
|
|||
|
"\n",
|
|||
|
"ax.plot_surface(X, Y, price_results.T, cmap=\"viridis\")\n",
|
|||
|
"ax.set_xlabel(\"Carat\")\n",
|
|||
|
"ax.set_ylabel(\"Clarity\")\n",
|
|||
|
"ax.set_zlabel(\"Predicted Price\")\n",
|
|||
|
"ax.set_title(\"Fuzzy System Output Surface\")\n",
|
|||
|
"\n",
|
|||
|
"plt.show()"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"Вывод: на графике видно, что с увеличением карат и чистоты цены растет.\n"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"**Расчёт метрики ошибки (MSE, RMSE, MAE)**"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 73,
|
|||
|
"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>Unnamed: 0</th>\n",
|
|||
|
" <th>carat</th>\n",
|
|||
|
" <th>cut</th>\n",
|
|||
|
" <th>color</th>\n",
|
|||
|
" <th>clarity</th>\n",
|
|||
|
" <th>depth</th>\n",
|
|||
|
" <th>table</th>\n",
|
|||
|
" <th>price</th>\n",
|
|||
|
" <th>x</th>\n",
|
|||
|
" <th>y</th>\n",
|
|||
|
" <th>z</th>\n",
|
|||
|
" <th>clarity_encoded</th>\n",
|
|||
|
" <th>predicted_price</th>\n",
|
|||
|
" </tr>\n",
|
|||
|
" </thead>\n",
|
|||
|
" <tbody>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>0</th>\n",
|
|||
|
" <td>1</td>\n",
|
|||
|
" <td>0.23</td>\n",
|
|||
|
" <td>Ideal</td>\n",
|
|||
|
" <td>E</td>\n",
|
|||
|
" <td>SI2</td>\n",
|
|||
|
" <td>61.5</td>\n",
|
|||
|
" <td>55.0</td>\n",
|
|||
|
" <td>326</td>\n",
|
|||
|
" <td>3.95</td>\n",
|
|||
|
" <td>3.98</td>\n",
|
|||
|
" <td>2.43</td>\n",
|
|||
|
" <td>2</td>\n",
|
|||
|
" <td>3076.895809</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>1</th>\n",
|
|||
|
" <td>2</td>\n",
|
|||
|
" <td>0.21</td>\n",
|
|||
|
" <td>Premium</td>\n",
|
|||
|
" <td>E</td>\n",
|
|||
|
" <td>SI1</td>\n",
|
|||
|
" <td>59.8</td>\n",
|
|||
|
" <td>61.0</td>\n",
|
|||
|
" <td>326</td>\n",
|
|||
|
" <td>3.89</td>\n",
|
|||
|
" <td>3.84</td>\n",
|
|||
|
" <td>2.31</td>\n",
|
|||
|
" <td>3</td>\n",
|
|||
|
" <td>9574.193342</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>2</th>\n",
|
|||
|
" <td>3</td>\n",
|
|||
|
" <td>0.23</td>\n",
|
|||
|
" <td>Good</td>\n",
|
|||
|
" <td>E</td>\n",
|
|||
|
" <td>VS1</td>\n",
|
|||
|
" <td>56.9</td>\n",
|
|||
|
" <td>65.0</td>\n",
|
|||
|
" <td>327</td>\n",
|
|||
|
" <td>4.05</td>\n",
|
|||
|
" <td>4.07</td>\n",
|
|||
|
" <td>2.31</td>\n",
|
|||
|
" <td>5</td>\n",
|
|||
|
" <td>9574.364217</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>3</th>\n",
|
|||
|
" <td>4</td>\n",
|
|||
|
" <td>0.29</td>\n",
|
|||
|
" <td>Premium</td>\n",
|
|||
|
" <td>I</td>\n",
|
|||
|
" <td>VS2</td>\n",
|
|||
|
" <td>62.4</td>\n",
|
|||
|
" <td>58.0</td>\n",
|
|||
|
" <td>334</td>\n",
|
|||
|
" <td>4.20</td>\n",
|
|||
|
" <td>4.23</td>\n",
|
|||
|
" <td>2.63</td>\n",
|
|||
|
" <td>4</td>\n",
|
|||
|
" <td>9574.337143</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>4</th>\n",
|
|||
|
" <td>5</td>\n",
|
|||
|
" <td>0.31</td>\n",
|
|||
|
" <td>Good</td>\n",
|
|||
|
" <td>J</td>\n",
|
|||
|
" <td>SI2</td>\n",
|
|||
|
" <td>63.3</td>\n",
|
|||
|
" <td>58.0</td>\n",
|
|||
|
" <td>335</td>\n",
|
|||
|
" <td>4.34</td>\n",
|
|||
|
" <td>4.35</td>\n",
|
|||
|
" <td>2.75</td>\n",
|
|||
|
" <td>2</td>\n",
|
|||
|
" <td>3076.895809</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>5</th>\n",
|
|||
|
" <td>6</td>\n",
|
|||
|
" <td>0.24</td>\n",
|
|||
|
" <td>Very Good</td>\n",
|
|||
|
" <td>J</td>\n",
|
|||
|
" <td>VVS2</td>\n",
|
|||
|
" <td>62.8</td>\n",
|
|||
|
" <td>57.0</td>\n",
|
|||
|
" <td>336</td>\n",
|
|||
|
" <td>3.94</td>\n",
|
|||
|
" <td>3.96</td>\n",
|
|||
|
" <td>2.48</td>\n",
|
|||
|
" <td>6</td>\n",
|
|||
|
" <td>9574.193342</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>6</th>\n",
|
|||
|
" <td>7</td>\n",
|
|||
|
" <td>0.24</td>\n",
|
|||
|
" <td>Very Good</td>\n",
|
|||
|
" <td>I</td>\n",
|
|||
|
" <td>VVS1</td>\n",
|
|||
|
" <td>62.3</td>\n",
|
|||
|
" <td>57.0</td>\n",
|
|||
|
" <td>336</td>\n",
|
|||
|
" <td>3.95</td>\n",
|
|||
|
" <td>3.98</td>\n",
|
|||
|
" <td>2.47</td>\n",
|
|||
|
" <td>7</td>\n",
|
|||
|
" <td>9574.193342</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>7</th>\n",
|
|||
|
" <td>8</td>\n",
|
|||
|
" <td>0.26</td>\n",
|
|||
|
" <td>Very Good</td>\n",
|
|||
|
" <td>H</td>\n",
|
|||
|
" <td>SI1</td>\n",
|
|||
|
" <td>61.9</td>\n",
|
|||
|
" <td>55.0</td>\n",
|
|||
|
" <td>337</td>\n",
|
|||
|
" <td>4.07</td>\n",
|
|||
|
" <td>4.11</td>\n",
|
|||
|
" <td>2.53</td>\n",
|
|||
|
" <td>3</td>\n",
|
|||
|
" <td>9574.193342</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>8</th>\n",
|
|||
|
" <td>9</td>\n",
|
|||
|
" <td>0.22</td>\n",
|
|||
|
" <td>Fair</td>\n",
|
|||
|
" <td>E</td>\n",
|
|||
|
" <td>VS2</td>\n",
|
|||
|
" <td>65.1</td>\n",
|
|||
|
" <td>61.0</td>\n",
|
|||
|
" <td>337</td>\n",
|
|||
|
" <td>3.87</td>\n",
|
|||
|
" <td>3.78</td>\n",
|
|||
|
" <td>2.49</td>\n",
|
|||
|
" <td>4</td>\n",
|
|||
|
" <td>9574.361648</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>9</th>\n",
|
|||
|
" <td>10</td>\n",
|
|||
|
" <td>0.23</td>\n",
|
|||
|
" <td>Very Good</td>\n",
|
|||
|
" <td>H</td>\n",
|
|||
|
" <td>VS1</td>\n",
|
|||
|
" <td>59.4</td>\n",
|
|||
|
" <td>61.0</td>\n",
|
|||
|
" <td>338</td>\n",
|
|||
|
" <td>4.00</td>\n",
|
|||
|
" <td>4.05</td>\n",
|
|||
|
" <td>2.39</td>\n",
|
|||
|
" <td>5</td>\n",
|
|||
|
" <td>9574.364217</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>10</th>\n",
|
|||
|
" <td>11</td>\n",
|
|||
|
" <td>0.30</td>\n",
|
|||
|
" <td>Good</td>\n",
|
|||
|
" <td>J</td>\n",
|
|||
|
" <td>SI1</td>\n",
|
|||
|
" <td>64.0</td>\n",
|
|||
|
" <td>55.0</td>\n",
|
|||
|
" <td>339</td>\n",
|
|||
|
" <td>4.25</td>\n",
|
|||
|
" <td>4.28</td>\n",
|
|||
|
" <td>2.73</td>\n",
|
|||
|
" <td>3</td>\n",
|
|||
|
" <td>9574.193342</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>11</th>\n",
|
|||
|
" <td>12</td>\n",
|
|||
|
" <td>0.23</td>\n",
|
|||
|
" <td>Ideal</td>\n",
|
|||
|
" <td>J</td>\n",
|
|||
|
" <td>VS1</td>\n",
|
|||
|
" <td>62.8</td>\n",
|
|||
|
" <td>56.0</td>\n",
|
|||
|
" <td>340</td>\n",
|
|||
|
" <td>3.93</td>\n",
|
|||
|
" <td>3.90</td>\n",
|
|||
|
" <td>2.46</td>\n",
|
|||
|
" <td>5</td>\n",
|
|||
|
" <td>9574.364217</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>12</th>\n",
|
|||
|
" <td>13</td>\n",
|
|||
|
" <td>0.22</td>\n",
|
|||
|
" <td>Premium</td>\n",
|
|||
|
" <td>F</td>\n",
|
|||
|
" <td>SI1</td>\n",
|
|||
|
" <td>60.4</td>\n",
|
|||
|
" <td>61.0</td>\n",
|
|||
|
" <td>342</td>\n",
|
|||
|
" <td>3.88</td>\n",
|
|||
|
" <td>3.84</td>\n",
|
|||
|
" <td>2.33</td>\n",
|
|||
|
" <td>3</td>\n",
|
|||
|
" <td>9574.193342</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>13</th>\n",
|
|||
|
" <td>14</td>\n",
|
|||
|
" <td>0.31</td>\n",
|
|||
|
" <td>Ideal</td>\n",
|
|||
|
" <td>J</td>\n",
|
|||
|
" <td>SI2</td>\n",
|
|||
|
" <td>62.2</td>\n",
|
|||
|
" <td>54.0</td>\n",
|
|||
|
" <td>344</td>\n",
|
|||
|
" <td>4.35</td>\n",
|
|||
|
" <td>4.37</td>\n",
|
|||
|
" <td>2.71</td>\n",
|
|||
|
" <td>2</td>\n",
|
|||
|
" <td>3076.895809</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>14</th>\n",
|
|||
|
" <td>15</td>\n",
|
|||
|
" <td>0.20</td>\n",
|
|||
|
" <td>Premium</td>\n",
|
|||
|
" <td>E</td>\n",
|
|||
|
" <td>SI2</td>\n",
|
|||
|
" <td>60.2</td>\n",
|
|||
|
" <td>62.0</td>\n",
|
|||
|
" <td>345</td>\n",
|
|||
|
" <td>3.79</td>\n",
|
|||
|
" <td>3.75</td>\n",
|
|||
|
" <td>2.27</td>\n",
|
|||
|
" <td>2</td>\n",
|
|||
|
" <td>3076.895809</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" </tbody>\n",
|
|||
|
"</table>\n",
|
|||
|
"</div>"
|
|||
|
],
|
|||
|
"text/plain": [
|
|||
|
" Unnamed: 0 carat cut color clarity depth table price x \\\n",
|
|||
|
"0 1 0.23 Ideal E SI2 61.5 55.0 326 3.95 \n",
|
|||
|
"1 2 0.21 Premium E SI1 59.8 61.0 326 3.89 \n",
|
|||
|
"2 3 0.23 Good E VS1 56.9 65.0 327 4.05 \n",
|
|||
|
"3 4 0.29 Premium I VS2 62.4 58.0 334 4.20 \n",
|
|||
|
"4 5 0.31 Good J SI2 63.3 58.0 335 4.34 \n",
|
|||
|
"5 6 0.24 Very Good J VVS2 62.8 57.0 336 3.94 \n",
|
|||
|
"6 7 0.24 Very Good I VVS1 62.3 57.0 336 3.95 \n",
|
|||
|
"7 8 0.26 Very Good H SI1 61.9 55.0 337 4.07 \n",
|
|||
|
"8 9 0.22 Fair E VS2 65.1 61.0 337 3.87 \n",
|
|||
|
"9 10 0.23 Very Good H VS1 59.4 61.0 338 4.00 \n",
|
|||
|
"10 11 0.30 Good J SI1 64.0 55.0 339 4.25 \n",
|
|||
|
"11 12 0.23 Ideal J VS1 62.8 56.0 340 3.93 \n",
|
|||
|
"12 13 0.22 Premium F SI1 60.4 61.0 342 3.88 \n",
|
|||
|
"13 14 0.31 Ideal J SI2 62.2 54.0 344 4.35 \n",
|
|||
|
"14 15 0.20 Premium E SI2 60.2 62.0 345 3.79 \n",
|
|||
|
"\n",
|
|||
|
" y z clarity_encoded predicted_price \n",
|
|||
|
"0 3.98 2.43 2 3076.895809 \n",
|
|||
|
"1 3.84 2.31 3 9574.193342 \n",
|
|||
|
"2 4.07 2.31 5 9574.364217 \n",
|
|||
|
"3 4.23 2.63 4 9574.337143 \n",
|
|||
|
"4 4.35 2.75 2 3076.895809 \n",
|
|||
|
"5 3.96 2.48 6 9574.193342 \n",
|
|||
|
"6 3.98 2.47 7 9574.193342 \n",
|
|||
|
"7 4.11 2.53 3 9574.193342 \n",
|
|||
|
"8 3.78 2.49 4 9574.361648 \n",
|
|||
|
"9 4.05 2.39 5 9574.364217 \n",
|
|||
|
"10 4.28 2.73 3 9574.193342 \n",
|
|||
|
"11 3.90 2.46 5 9574.364217 \n",
|
|||
|
"12 3.84 2.33 3 9574.193342 \n",
|
|||
|
"13 4.37 2.71 2 3076.895809 \n",
|
|||
|
"14 3.75 2.27 2 3076.895809 "
|
|||
|
]
|
|||
|
},
|
|||
|
"execution_count": 73,
|
|||
|
"metadata": {},
|
|||
|
"output_type": "execute_result"
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"import pandas as pd\n",
|
|||
|
"import numpy as np\n",
|
|||
|
"import skfuzzy as fuzz\n",
|
|||
|
"import math\n",
|
|||
|
"from sklearn import metrics\n",
|
|||
|
"\n",
|
|||
|
"def fuzzy_pred(row):\n",
|
|||
|
" price_simulation.input[\"carat\"] = row[\"carat\"]\n",
|
|||
|
" price_simulation.input[\"clarity\"] = row[\"clarity_encoded\"] # Используйте закодированное значение для clarity\n",
|
|||
|
" price_simulation.compute()\n",
|
|||
|
" return price_simulation.output[\"price\"]\n",
|
|||
|
"\n",
|
|||
|
"# Создание столбца с предсказанными значениями\n",
|
|||
|
"df[\"predicted_price\"] = df.apply(lambda row: fuzzy_pred(row), axis=1)\n",
|
|||
|
"\n",
|
|||
|
"df.head(15)\n"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": null,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"{'RMSE': 6462.175875046708, 'RMAE': 75.51441400264844, 'R2': -1.6240000161602959}\n"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"\n",
|
|||
|
"metrics_results = {}\n",
|
|||
|
"metrics_results[\"RMSE\"] = math.sqrt(metrics.mean_squared_error(df[\"price\"], df[\"predicted_price\"]))\n",
|
|||
|
"metrics_results[\"RMAE\"] = math.sqrt(metrics.mean_absolute_error(df[\"price\"], df[\"predicted_price\"]))\n",
|
|||
|
"metrics_results[\"R2\"] = metrics.r2_score(df[\"price\"], df[\"predicted_price\"])\n",
|
|||
|
"\n",
|
|||
|
"\n",
|
|||
|
"print(metrics_results)"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"На основе результатов модели (RMSE, RMAE и R²), можно сделать следующие выводы:\n",
|
|||
|
"\n",
|
|||
|
"RMSE: Это среднеквадратичная ошибка модели, которая измеряет среднее отклонение предсказанных значений от фактических. В данном случае значение RMSE составляет 6462.18, что указывает на то, что модель в среднем ошибается на эту величину, в ъорошей можели этот показатель должен быть меньше\n",
|
|||
|
"\n",
|
|||
|
"RMAE: Это корень из среднего абсолютного отклонения, который также показывает ошибку модели, но в терминах абсолютных отклонений, а не квадратов. В данном случае RMAE составляет 75.51, что также указывает на значительную ошибку в предсказаниях. \n",
|
|||
|
"\n",
|
|||
|
"R²: Этот показатель измеряет, насколько хорошо модель объясняет вариацию зависимой переменной. В данном случае значение R² = -1.62 — это очень низкое значение, что говорит о том, что модель плохо объясняет данные и может быть неадекватной для предсказания цен. Обычно R² должно быть как можно ближе к 1 для хорошей модели, и значения меньше 0 указывают на крайне слабую модель."
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"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.6"
|
|||
|
}
|
|||
|
},
|
|||
|
"nbformat": 4,
|
|||
|
"nbformat_minor": 2
|
|||
|
}
|