1109 lines
266 KiB
Plaintext
1109 lines
266 KiB
Plaintext
|
{
|
|||
|
"cells": [
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"## Датасет: [Tesla Insider Trading](https://www.kaggle.com/datasets/ilyaryabov/tesla-insider-trading).\n",
|
|||
|
"\n",
|
|||
|
"### Описание датасета:\n",
|
|||
|
"\n",
|
|||
|
"Датасет представляет собой выборку операций с ценными бумагами компании Tesla, совершённых инсайдерами, и является частью более крупного проекта \"Insider Trading S&P500 – Inside Info\". Данные охватывают транзакции с участием крупных акционеров и должностных лиц компании, включая такие операции, как покупка, продажа и опционы, начиная с 10 ноября 2021 года и до 27 июля 2022 года.\n",
|
|||
|
"\n",
|
|||
|
"---\n",
|
|||
|
"\n",
|
|||
|
"### Анализ сведений:\n",
|
|||
|
"\n",
|
|||
|
"**Проблемная область:**\n",
|
|||
|
"Проблемная область данного датасета касается анализа инсайдерских сделок в публичных компаниях, а также их влияния на ценообразование акций. Инсайдерские транзакции, совершаемые людьми с доступом к непубличной информации (такими как руководители, крупные акционеры или члены совета директоров), могут быть индикаторами будущих изменений стоимости акций. Исследование таких транзакций помогает понять, как информация внутри компании отражается в действиях ключевых участников, и может выявить паттерны поведения, которые влияют на рынки.\n",
|
|||
|
"\n",
|
|||
|
"**Актуальность:**\n",
|
|||
|
"Анализ инсайдерских сделок становится особенно важным в условиях высокой волатильности рынка и неопределенности. Инвесторы, аналитики и компании используют такие данные, чтобы лучше понимать сигналы от крупных акционеров и должностных лиц. Действия инсайдеров, такие как покупки и продажи акций, нередко рассматриваются как индикаторы доверия к компании, что может оказывать значительное влияние на рыночные ожидания и прогнозы.\n",
|
|||
|
"\n",
|
|||
|
"**Объекты наблюдений:**\n",
|
|||
|
"Объектами наблюдений в датасете являются инсайдеры компании Tesla — лица, имеющие значительное влияние на управление и информацию компании. Каждый объект характеризуется различными параметрами, включая должность, тип транзакции, количество акций и общую стоимость сделок.\n",
|
|||
|
"\n",
|
|||
|
"**Атрибуты объектов:**\n",
|
|||
|
"- Insider Trading: ФИО лица, совершившего транзакцию.\n",
|
|||
|
"- Relationship: Должность или статус данного лица в компании Tesla.\n",
|
|||
|
"- Date: Дата завершения транзакции.\n",
|
|||
|
"- Transaction: Тип транзакции.\n",
|
|||
|
"- Cost: Цена одной акции на момент совершения транзакции.\n",
|
|||
|
"- Shares: Количество акций, участвующих в транзакции.\n",
|
|||
|
"- Value ($): Общая стоимость транзакции в долларах США.\n",
|
|||
|
"- Shares Total: Общее количество акций, принадлежащих этому лицу после завершения данной транзакции.\n",
|
|||
|
"- SEC Form 4: Дата записи транзакции в форме SEC Form 4, обязательной для отчётности о сделках инсайдеров.\n",
|
|||
|
"\n",
|
|||
|
"---"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"### Выгрузка данных из файла в DataFrame:"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 1,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [],
|
|||
|
"source": [
|
|||
|
"import pandas as pd\n",
|
|||
|
"from pandas import DataFrame\n",
|
|||
|
"\n",
|
|||
|
"\n",
|
|||
|
"df: DataFrame = pd.read_csv(\"..//static//csv//TSLA.csv\")\n",
|
|||
|
"\n",
|
|||
|
"# Преобразование типов данных\n",
|
|||
|
"df[\"Insider Trading\"] = df[\"Insider Trading\"].astype(\"category\") # Преобразование в категорию\n",
|
|||
|
"df[\"Relationship\"] = df[\"Relationship\"].astype(\"category\") # Преобразование в категорию\n",
|
|||
|
"df[\"Transaction\"] = df[\"Transaction\"].astype(\"category\") # Преобразование в категорию\n",
|
|||
|
"df[\"Cost\"] = pd.to_numeric(df[\"Cost\"], errors=\"coerce\") # Преобразование в float\n",
|
|||
|
"df[\"Shares\"] = pd.to_numeric(df[\"Shares\"].str.replace(\",\", \"\"), errors=\"coerce\") # Преобразование в float с удалением запятых\n",
|
|||
|
"df[\"Value ($)\"] = pd.to_numeric(df[\"Value ($)\"].str.replace(\",\", \"\"), errors=\"coerce\") # Преобразование в float с удалением запятых\n",
|
|||
|
"df[\"Shares Total\"] = pd.to_numeric(df[\"Shares Total\"].str.replace(\",\", \"\"), errors=\"coerce\") # Преобразование в float с удалением запятых"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"### Краткая информация о DataFrame:"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 2,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"<class 'pandas.core.frame.DataFrame'>\n",
|
|||
|
"RangeIndex: 156 entries, 0 to 155\n",
|
|||
|
"Data columns (total 9 columns):\n",
|
|||
|
" # Column Non-Null Count Dtype \n",
|
|||
|
"--- ------ -------------- ----- \n",
|
|||
|
" 0 Insider Trading 156 non-null category\n",
|
|||
|
" 1 Relationship 156 non-null category\n",
|
|||
|
" 2 Date 156 non-null object \n",
|
|||
|
" 3 Transaction 156 non-null category\n",
|
|||
|
" 4 Cost 156 non-null float64 \n",
|
|||
|
" 5 Shares 156 non-null int64 \n",
|
|||
|
" 6 Value ($) 156 non-null int64 \n",
|
|||
|
" 7 Shares Total 156 non-null int64 \n",
|
|||
|
" 8 SEC Form 4 156 non-null object \n",
|
|||
|
"dtypes: category(3), float64(1), int64(3), object(2)\n",
|
|||
|
"memory usage: 8.6+ KB\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>count</th>\n",
|
|||
|
" <th>mean</th>\n",
|
|||
|
" <th>std</th>\n",
|
|||
|
" <th>min</th>\n",
|
|||
|
" <th>25%</th>\n",
|
|||
|
" <th>50%</th>\n",
|
|||
|
" <th>75%</th>\n",
|
|||
|
" <th>max</th>\n",
|
|||
|
" </tr>\n",
|
|||
|
" </thead>\n",
|
|||
|
" <tbody>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>Cost</th>\n",
|
|||
|
" <td>156.0</td>\n",
|
|||
|
" <td>4.787856e+02</td>\n",
|
|||
|
" <td>4.489229e+02</td>\n",
|
|||
|
" <td>0.0</td>\n",
|
|||
|
" <td>50.5225</td>\n",
|
|||
|
" <td>240.225</td>\n",
|
|||
|
" <td>9.341075e+02</td>\n",
|
|||
|
" <td>1.171040e+03</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>Shares</th>\n",
|
|||
|
" <td>156.0</td>\n",
|
|||
|
" <td>5.404666e+05</td>\n",
|
|||
|
" <td>1.530835e+06</td>\n",
|
|||
|
" <td>121.0</td>\n",
|
|||
|
" <td>3500.0000</td>\n",
|
|||
|
" <td>10500.000</td>\n",
|
|||
|
" <td>3.017978e+05</td>\n",
|
|||
|
" <td>1.192000e+07</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>Value ($)</th>\n",
|
|||
|
" <td>156.0</td>\n",
|
|||
|
" <td>1.818582e+08</td>\n",
|
|||
|
" <td>4.131734e+08</td>\n",
|
|||
|
" <td>0.0</td>\n",
|
|||
|
" <td>271008.0000</td>\n",
|
|||
|
" <td>2026823.000</td>\n",
|
|||
|
" <td>1.487132e+08</td>\n",
|
|||
|
" <td>2.278695e+09</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>Shares Total</th>\n",
|
|||
|
" <td>156.0</td>\n",
|
|||
|
" <td>3.347679e+07</td>\n",
|
|||
|
" <td>9.553593e+07</td>\n",
|
|||
|
" <td>49.0</td>\n",
|
|||
|
" <td>25103.5000</td>\n",
|
|||
|
" <td>73488.000</td>\n",
|
|||
|
" <td>1.507274e+06</td>\n",
|
|||
|
" <td>4.554674e+08</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" </tbody>\n",
|
|||
|
"</table>\n",
|
|||
|
"</div>"
|
|||
|
],
|
|||
|
"text/plain": [
|
|||
|
" count mean std min 25% \\\n",
|
|||
|
"Cost 156.0 4.787856e+02 4.489229e+02 0.0 50.5225 \n",
|
|||
|
"Shares 156.0 5.404666e+05 1.530835e+06 121.0 3500.0000 \n",
|
|||
|
"Value ($) 156.0 1.818582e+08 4.131734e+08 0.0 271008.0000 \n",
|
|||
|
"Shares Total 156.0 3.347679e+07 9.553593e+07 49.0 25103.5000 \n",
|
|||
|
"\n",
|
|||
|
" 50% 75% max \n",
|
|||
|
"Cost 240.225 9.341075e+02 1.171040e+03 \n",
|
|||
|
"Shares 10500.000 3.017978e+05 1.192000e+07 \n",
|
|||
|
"Value ($) 2026823.000 1.487132e+08 2.278695e+09 \n",
|
|||
|
"Shares Total 73488.000 1.507274e+06 4.554674e+08 "
|
|||
|
]
|
|||
|
},
|
|||
|
"execution_count": 2,
|
|||
|
"metadata": {},
|
|||
|
"output_type": "execute_result"
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"# Краткая информация о DataFrame\n",
|
|||
|
"df.info()\n",
|
|||
|
"\n",
|
|||
|
"# Статистическое описание числовых столбцов\n",
|
|||
|
"df.describe().transpose()"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"### Выбор входных и выходных переменных:\n",
|
|||
|
"\n",
|
|||
|
"**Входные переменные:**\n",
|
|||
|
"\n",
|
|||
|
"На основании анализа датасета можно выделить следующие ключевые параметры, которые могут влиять на принятие решения об изменении стоимости акций:\n",
|
|||
|
"- Transaction (Тип транзакции): Категориальная переменная, указывающая на тип операции (Sale, Option Exercise).\n",
|
|||
|
"- Cost (Цена акции): Числовая переменная, показывающая стоимость одной акции на момент совершения транзакции.\n",
|
|||
|
"- Shares (Количество акций): Числовая переменная, указывающая количество акций в транзакции.\n",
|
|||
|
"- Value ($): Числовая переменная, представляющая общую стоимость транзакции.\n",
|
|||
|
"\n",
|
|||
|
"**Выходная переменная:**\n",
|
|||
|
"\n",
|
|||
|
"Impact on Stock Price (Влияние на цену акций): Лингвистическая переменная, описывающая потенциальное влияние транзакции на рыночную цену акций Tesla. Может принимать значения: \"Low\", \"Medium\", \"High\".\n",
|
|||
|
"\n",
|
|||
|
"---"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"### Определение лингвистических переменных:\n",
|
|||
|
"\n",
|
|||
|
"**Лингвистическая переменная** – это переменная, значениями которой являются слова или фразы вместо чисел. Она используется в нечеткой логике и теории нечетких множеств для описания понятий, которые нельзя точно выразить числовыми значениями.\n",
|
|||
|
"\n",
|
|||
|
"Для каждой переменной определим количество термов, типы и параметры функций принадлежности."
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 3,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [],
|
|||
|
"source": [
|
|||
|
"import numpy as np\n",
|
|||
|
"from skfuzzy import control as ctrl\n",
|
|||
|
"\n",
|
|||
|
"\n",
|
|||
|
"transaction = ctrl.Antecedent(np.arange(0, 2, 1), \"Transaction\")\n",
|
|||
|
"cost = ctrl.Antecedent(np.arange(0, 1200, 1), \"Cost\")\n",
|
|||
|
"shares = ctrl.Antecedent(np.arange(0, 12000000, 1), \"Shares\")\n",
|
|||
|
"value = ctrl.Antecedent(np.arange(0, 2.3e9, 1e6), \"Value\")\n",
|
|||
|
"impact = ctrl.Consequent(np.arange(0, 1, 0.01), \"Impact\")"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"### Определение нечетких переменных:"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 4,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stderr",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"d:\\ULSTU\\Семестр 5\\AIM-PIbd-31-Masenkin-M-S\\aimenv\\Lib\\site-packages\\skfuzzy\\control\\fuzzyvariable.py:125: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown\n",
|
|||
|
" fig.show()\n",
|
|||
|
"d:\\ULSTU\\Семестр 5\\AIM-PIbd-31-Masenkin-M-S\\aimenv\\Lib\\site-packages\\IPython\\core\\events.py:82: UserWarning: Creating legend with loc=\"best\" can be slow with large amounts of data.\n",
|
|||
|
" func(*args, **kwargs)\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"
|
|||
|
},
|
|||
|
{
|
|||
|
"name": "stderr",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"d:\\ULSTU\\Семестр 5\\AIM-PIbd-31-Masenkin-M-S\\aimenv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Creating legend with loc=\"best\" can be slow with large amounts of data.\n",
|
|||
|
" fig.canvas.print_figure(bytes_io, **kw)\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": [
|
|||
|
"import skfuzzy as fuzz\n",
|
|||
|
"\n",
|
|||
|
"\n",
|
|||
|
"transaction[\"Option Exercise\"] = fuzz.trimf(transaction.universe, [0, 0, 1])\n",
|
|||
|
"transaction[\"Sale\"] = fuzz.trimf(transaction.universe, [0, 1, 1])\n",
|
|||
|
"transaction.view()\n",
|
|||
|
"\n",
|
|||
|
"# cost[\"Low\"] = fuzz.zmf(cost.universe, 0, 300)\n",
|
|||
|
"# cost[\"Medium\"] = fuzz.trimf(cost.universe, [250, 500, 750])\n",
|
|||
|
"# cost[\"High\"] = fuzz.smf(cost.universe, 700, 1200)\n",
|
|||
|
"cost.automf(3, names=[\"Low\", \"Medium\", \"High\"])\n",
|
|||
|
"cost.view()\n",
|
|||
|
"\n",
|
|||
|
"# shares[\"Few\"] = fuzz.zmf(shares.universe, 0, 20000)\n",
|
|||
|
"# shares[\"Moderate\"] = fuzz.trimf(shares.universe, [10000, 50000, 500000])\n",
|
|||
|
"# shares[\"Many\"] = fuzz.smf(shares.universe, 400000, 12000000)\n",
|
|||
|
"shares.automf(3, names=[\"Few\", \"Moderate\", \"Many\"])\n",
|
|||
|
"shares.view()\n",
|
|||
|
"\n",
|
|||
|
"# value[\"Low\"] = fuzz.zmf(value.universe, 0, 5e7)\n",
|
|||
|
"# value[\"Medium\"] = fuzz.trimf(value.universe, [5e7, 1e8, 1e9])\n",
|
|||
|
"# value[\"High\"] = fuzz.smf(value.universe, 1e9, 2.3e9)\n",
|
|||
|
"value.automf(3, names=[\"Low\", \"Medium\", \"High\"])\n",
|
|||
|
"value.view()\n",
|
|||
|
"\n",
|
|||
|
"impact[\"Low\"] = fuzz.trimf(impact.universe, [0, 0.3, 0.5])\n",
|
|||
|
"impact[\"Medium\"] = fuzz.trimf(impact.universe, [0.3, 0.5, 0.7])\n",
|
|||
|
"impact[\"High\"] = fuzz.trimf(impact.universe, [0.5, 0.7, 1])\n",
|
|||
|
"impact.view()"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"### Определение нечётких правил:"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 5,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [],
|
|||
|
"source": [
|
|||
|
"rule1 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"Low\"] & shares[\"Few\"] & value[\"Low\"], impact[\"Low\"])\n",
|
|||
|
"rule2 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"Low\"] & shares[\"Few\"] & value[\"Medium\"], impact[\"Low\"])\n",
|
|||
|
"rule3 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"Low\"] & shares[\"Few\"] & value[\"High\"], impact[\"Medium\"])\n",
|
|||
|
"rule4 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"Low\"] & shares[\"Moderate\"] & value[\"Low\"], impact[\"Low\"])\n",
|
|||
|
"rule5 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"Low\"] & shares[\"Moderate\"] & value[\"Medium\"], impact[\"Medium\"])\n",
|
|||
|
"rule6 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"Low\"] & shares[\"Moderate\"] & value[\"High\"], impact[\"High\"])\n",
|
|||
|
"rule7 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"Low\"] & shares[\"Many\"] & value[\"Low\"], impact[\"Medium\"])\n",
|
|||
|
"rule8 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"Low\"] & shares[\"Many\"] & value[\"Medium\"], impact[\"High\"])\n",
|
|||
|
"rule9 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"Low\"] & shares[\"Many\"] & value[\"High\"], impact[\"High\"])\n",
|
|||
|
"rule10 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"Medium\"] & shares[\"Few\"] & value[\"Low\"], impact[\"Low\"])\n",
|
|||
|
"rule11 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"Medium\"] & shares[\"Few\"] & value[\"Medium\"], impact[\"Medium\"])\n",
|
|||
|
"rule12 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"Medium\"] & shares[\"Few\"] & value[\"High\"], impact[\"Medium\"])\n",
|
|||
|
"rule13 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"Medium\"] & shares[\"Moderate\"] & value[\"Low\"], impact[\"Medium\"])\n",
|
|||
|
"rule14 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"Medium\"] & shares[\"Moderate\"] & value[\"Medium\"], impact[\"High\"])\n",
|
|||
|
"rule15 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"Medium\"] & shares[\"Moderate\"] & value[\"High\"], impact[\"High\"])\n",
|
|||
|
"rule16 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"Medium\"] & shares[\"Many\"] & value[\"Low\"], impact[\"High\"])\n",
|
|||
|
"rule17 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"Medium\"] & shares[\"Many\"] & value[\"Medium\"], impact[\"High\"])\n",
|
|||
|
"rule18 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"Medium\"] & shares[\"Many\"] & value[\"High\"], impact[\"High\"])\n",
|
|||
|
"rule19 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"High\"] & shares[\"Few\"] & value[\"Low\"], impact[\"Medium\"])\n",
|
|||
|
"rule20 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"High\"] & shares[\"Few\"] & value[\"Medium\"], impact[\"High\"])\n",
|
|||
|
"rule21 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"High\"] & shares[\"Few\"] & value[\"High\"], impact[\"High\"])\n",
|
|||
|
"rule22 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"High\"] & shares[\"Moderate\"] & value[\"Low\"], impact[\"High\"])\n",
|
|||
|
"rule23 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"High\"] & shares[\"Moderate\"] & value[\"Medium\"], impact[\"High\"])\n",
|
|||
|
"rule24 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"High\"] & shares[\"Moderate\"] & value[\"High\"], impact[\"High\"])\n",
|
|||
|
"rule25 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"High\"] & shares[\"Many\"] & value[\"Low\"], impact[\"High\"])\n",
|
|||
|
"rule26 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"High\"] & shares[\"Many\"] & value[\"Medium\"], impact[\"High\"])\n",
|
|||
|
"rule27 = ctrl.Rule(transaction[\"Option Exercise\"] & cost[\"High\"] & shares[\"Many\"] & value[\"High\"], impact[\"High\"])\n",
|
|||
|
"\n",
|
|||
|
"rule28 = ctrl.Rule(transaction[\"Sale\"] & cost[\"Low\"] & shares[\"Few\"] & value[\"Low\"], impact[\"Low\"])\n",
|
|||
|
"rule29 = ctrl.Rule(transaction[\"Sale\"] & cost[\"Low\"] & shares[\"Few\"] & value[\"Medium\"], impact[\"Low\"])\n",
|
|||
|
"rule30 = ctrl.Rule(transaction[\"Sale\"] & cost[\"Low\"] & shares[\"Few\"] & value[\"High\"], impact[\"Medium\"])\n",
|
|||
|
"rule31 = ctrl.Rule(transaction[\"Sale\"] & cost[\"Low\"] & shares[\"Moderate\"] & value[\"Low\"], impact[\"Low\"])\n",
|
|||
|
"rule32 = ctrl.Rule(transaction[\"Sale\"] & cost[\"Low\"] & shares[\"Moderate\"] & value[\"Medium\"], impact[\"Medium\"])\n",
|
|||
|
"rule33 = ctrl.Rule(transaction[\"Sale\"] & cost[\"Low\"] & shares[\"Moderate\"] & value[\"High\"], impact[\"High\"])\n",
|
|||
|
"rule34 = ctrl.Rule(transaction[\"Sale\"] & cost[\"Low\"] & shares[\"Many\"] & value[\"Low\"], impact[\"Medium\"])\n",
|
|||
|
"rule35 = ctrl.Rule(transaction[\"Sale\"] & cost[\"Low\"] & shares[\"Many\"] & value[\"Medium\"], impact[\"High\"])\n",
|
|||
|
"rule36 = ctrl.Rule(transaction[\"Sale\"] & cost[\"Low\"] & shares[\"Many\"] & value[\"High\"], impact[\"High\"])\n",
|
|||
|
"rule37 = ctrl.Rule(transaction[\"Sale\"] & cost[\"Medium\"] & shares[\"Few\"] & value[\"Low\"], impact[\"Low\"])\n",
|
|||
|
"rule38 = ctrl.Rule(transaction[\"Sale\"] & cost[\"Medium\"] & shares[\"Few\"] & value[\"Medium\"], impact[\"Medium\"])\n",
|
|||
|
"rule39 = ctrl.Rule(transaction[\"Sale\"] & cost[\"Medium\"] & shares[\"Few\"] & value[\"High\"], impact[\"Medium\"])\n",
|
|||
|
"rule40 = ctrl.Rule(transaction[\"Sale\"] & cost[\"Medium\"] & shares[\"Moderate\"] & value[\"Low\"], impact[\"Medium\"])\n",
|
|||
|
"rule41 = ctrl.Rule(transaction[\"Sale\"] & cost[\"Medium\"] & shares[\"Moderate\"] & value[\"Medium\"], impact[\"High\"])\n",
|
|||
|
"rule42 = ctrl.Rule(transaction[\"Sale\"] & cost[\"Medium\"] & shares[\"Moderate\"] & value[\"High\"], impact[\"High\"])\n",
|
|||
|
"rule43 = ctrl.Rule(transaction[\"Sale\"] & cost[\"Medium\"] & shares[\"Many\"] & value[\"Low\"], impact[\"High\"])\n",
|
|||
|
"rule44 = ctrl.Rule(transaction[\"Sale\"] & cost[\"Medium\"] & shares[\"Many\"] & value[\"Medium\"], impact[\"High\"])\n",
|
|||
|
"rule45 = ctrl.Rule(transaction[\"Sale\"] & cost[\"Medium\"] & shares[\"Many\"] & value[\"High\"], impact[\"High\"])\n",
|
|||
|
"rule46 = ctrl.Rule(transaction[\"Sale\"] & cost[\"High\"] & shares[\"Few\"] & value[\"Low\"], impact[\"Medium\"])\n",
|
|||
|
"rule47 = ctrl.Rule(transaction[\"Sale\"] & cost[\"High\"] & shares[\"Few\"] & value[\"Medium\"], impact[\"High\"])\n",
|
|||
|
"rule48 = ctrl.Rule(transaction[\"Sale\"] & cost[\"High\"] & shares[\"Few\"] & value[\"High\"], impact[\"High\"])\n",
|
|||
|
"rule49 = ctrl.Rule(transaction[\"Sale\"] & cost[\"High\"] & shares[\"Moderate\"] & value[\"Low\"], impact[\"High\"])\n",
|
|||
|
"rule50 = ctrl.Rule(transaction[\"Sale\"] & cost[\"High\"] & shares[\"Moderate\"] & value[\"Medium\"], impact[\"High\"])\n",
|
|||
|
"rule51 = ctrl.Rule(transaction[\"Sale\"] & cost[\"High\"] & shares[\"Moderate\"] & value[\"High\"], impact[\"High\"])\n",
|
|||
|
"rule52 = ctrl.Rule(transaction[\"Sale\"] & cost[\"High\"] & shares[\"Many\"] & value[\"Low\"], impact[\"High\"])\n",
|
|||
|
"rule53 = ctrl.Rule(transaction[\"Sale\"] & cost[\"High\"] & shares[\"Many\"] & value[\"Medium\"], impact[\"High\"])\n",
|
|||
|
"rule54 = ctrl.Rule(transaction[\"Sale\"] & cost[\"High\"] & shares[\"Many\"] & value[\"High\"], impact[\"High\"])\n",
|
|||
|
"# Мне не понравилось"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"### Создание нечеткой системы:"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 6,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"text/plain": [
|
|||
|
"[IF ((Transaction[Option Exercise] AND Cost[Low]) AND Shares[Few]) AND Value[Low] THEN Impact[Low]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[Low]) AND Shares[Few]) AND Value[Medium] THEN Impact[Low]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[Low]) AND Shares[Few]) AND Value[High] THEN Impact[Medium]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[Low]) AND Shares[Moderate]) AND Value[Low] THEN Impact[Low]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[Low]) AND Shares[Moderate]) AND Value[Medium] THEN Impact[Medium]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[Low]) AND Shares[Moderate]) AND Value[High] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[Low]) AND Shares[Many]) AND Value[Low] THEN Impact[Medium]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[Low]) AND Shares[Many]) AND Value[Medium] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[Low]) AND Shares[Many]) AND Value[High] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[Medium]) AND Shares[Few]) AND Value[Low] THEN Impact[Low]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[Medium]) AND Shares[Few]) AND Value[Medium] THEN Impact[Medium]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[Medium]) AND Shares[Few]) AND Value[High] THEN Impact[Medium]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[Medium]) AND Shares[Moderate]) AND Value[Low] THEN Impact[Medium]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[Medium]) AND Shares[Moderate]) AND Value[Medium] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[Medium]) AND Shares[Moderate]) AND Value[High] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[Medium]) AND Shares[Many]) AND Value[Low] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[Medium]) AND Shares[Many]) AND Value[Medium] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[Medium]) AND Shares[Many]) AND Value[High] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[High]) AND Shares[Few]) AND Value[Low] THEN Impact[Medium]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[High]) AND Shares[Few]) AND Value[Medium] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[High]) AND Shares[Few]) AND Value[High] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[High]) AND Shares[Moderate]) AND Value[Low] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[High]) AND Shares[Moderate]) AND Value[Medium] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[High]) AND Shares[Moderate]) AND Value[High] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[High]) AND Shares[Many]) AND Value[Low] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[High]) AND Shares[Many]) AND Value[Medium] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Option Exercise] AND Cost[High]) AND Shares[Many]) AND Value[High] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[Low]) AND Shares[Few]) AND Value[Low] THEN Impact[Low]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[Low]) AND Shares[Few]) AND Value[Medium] THEN Impact[Low]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[Low]) AND Shares[Few]) AND Value[High] THEN Impact[Medium]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[Low]) AND Shares[Moderate]) AND Value[Low] THEN Impact[Low]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[Low]) AND Shares[Moderate]) AND Value[Medium] THEN Impact[Medium]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[Low]) AND Shares[Moderate]) AND Value[High] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[Low]) AND Shares[Many]) AND Value[Low] THEN Impact[Medium]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[Low]) AND Shares[Many]) AND Value[Medium] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[Low]) AND Shares[Many]) AND Value[High] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[Medium]) AND Shares[Few]) AND Value[Low] THEN Impact[Low]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[Medium]) AND Shares[Few]) AND Value[Medium] THEN Impact[Medium]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[Medium]) AND Shares[Few]) AND Value[High] THEN Impact[Medium]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[Medium]) AND Shares[Moderate]) AND Value[Low] THEN Impact[Medium]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[Medium]) AND Shares[Moderate]) AND Value[Medium] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[Medium]) AND Shares[Moderate]) AND Value[High] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[Medium]) AND Shares[Many]) AND Value[Low] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[Medium]) AND Shares[Many]) AND Value[Medium] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[Medium]) AND Shares[Many]) AND Value[High] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[High]) AND Shares[Few]) AND Value[Low] THEN Impact[Medium]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[High]) AND Shares[Few]) AND Value[Medium] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[High]) AND Shares[Few]) AND Value[High] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[High]) AND Shares[Moderate]) AND Value[Low] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[High]) AND Shares[Moderate]) AND Value[Medium] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[High]) AND Shares[Moderate]) AND Value[High] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[High]) AND Shares[Many]) AND Value[Low] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[High]) AND Shares[Many]) AND Value[Medium] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax,\n",
|
|||
|
" IF ((Transaction[Sale] AND Cost[High]) AND Shares[Many]) AND Value[High] THEN Impact[High]\n",
|
|||
|
" \tAND aggregation function : fmin\n",
|
|||
|
" \tOR aggregation function : fmax]"
|
|||
|
]
|
|||
|
},
|
|||
|
"execution_count": 6,
|
|||
|
"metadata": {},
|
|||
|
"output_type": "execute_result"
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"fuzzy_rules: list[ctrl.Rule] = [\n",
|
|||
|
" rule1,\n",
|
|||
|
" rule2,\n",
|
|||
|
" rule3,\n",
|
|||
|
" rule4,\n",
|
|||
|
" rule5,\n",
|
|||
|
" rule6,\n",
|
|||
|
" rule7,\n",
|
|||
|
" rule8,\n",
|
|||
|
" rule9,\n",
|
|||
|
" rule10,\n",
|
|||
|
" rule11,\n",
|
|||
|
" rule12,\n",
|
|||
|
" rule13,\n",
|
|||
|
" rule14,\n",
|
|||
|
" rule15,\n",
|
|||
|
" rule16,\n",
|
|||
|
" rule17,\n",
|
|||
|
" rule18,\n",
|
|||
|
" rule19,\n",
|
|||
|
" rule20,\n",
|
|||
|
" rule21,\n",
|
|||
|
" rule22,\n",
|
|||
|
" rule23,\n",
|
|||
|
" rule24,\n",
|
|||
|
" rule25,\n",
|
|||
|
" rule26,\n",
|
|||
|
" rule27,\n",
|
|||
|
" rule28,\n",
|
|||
|
" rule29,\n",
|
|||
|
" rule30,\n",
|
|||
|
" rule31,\n",
|
|||
|
" rule32,\n",
|
|||
|
" rule33,\n",
|
|||
|
" rule34,\n",
|
|||
|
" rule35,\n",
|
|||
|
" rule36,\n",
|
|||
|
" rule37,\n",
|
|||
|
" rule38,\n",
|
|||
|
" rule39,\n",
|
|||
|
" rule40,\n",
|
|||
|
" rule41,\n",
|
|||
|
" rule42,\n",
|
|||
|
" rule43,\n",
|
|||
|
" rule44,\n",
|
|||
|
" rule45,\n",
|
|||
|
" rule46,\n",
|
|||
|
" rule47,\n",
|
|||
|
" rule48,\n",
|
|||
|
" rule49,\n",
|
|||
|
" rule50,\n",
|
|||
|
" rule51,\n",
|
|||
|
" rule52,\n",
|
|||
|
" rule53,\n",
|
|||
|
" rule54,\n",
|
|||
|
"]\n",
|
|||
|
"\n",
|
|||
|
"# Создание системы управления\n",
|
|||
|
"impact_ctrl = ctrl.ControlSystem(fuzzy_rules)\n",
|
|||
|
"\n",
|
|||
|
"# Стимуляция системы управления\n",
|
|||
|
"impact_sim = ctrl.ControlSystemSimulation(impact_ctrl)\n",
|
|||
|
"\n",
|
|||
|
"fuzzy_rules"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "markdown",
|
|||
|
"metadata": {},
|
|||
|
"source": [
|
|||
|
"### Тестирование нечёткой системы:"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 7,
|
|||
|
"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>Transaction</th>\n",
|
|||
|
" <th>Cost</th>\n",
|
|||
|
" <th>Shares</th>\n",
|
|||
|
" <th>Value ($)</th>\n",
|
|||
|
" <th>Predicted Impact</th>\n",
|
|||
|
" </tr>\n",
|
|||
|
" </thead>\n",
|
|||
|
" <tbody>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>56</th>\n",
|
|||
|
" <td>Option Exercise</td>\n",
|
|||
|
" <td>55.32</td>\n",
|
|||
|
" <td>2500</td>\n",
|
|||
|
" <td>138300</td>\n",
|
|||
|
" <td>0.266602</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>138</th>\n",
|
|||
|
" <td>Option Exercise</td>\n",
|
|||
|
" <td>6.24</td>\n",
|
|||
|
" <td>2152681</td>\n",
|
|||
|
" <td>13432729</td>\n",
|
|||
|
" <td>0.274953</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>123</th>\n",
|
|||
|
" <td>Option Exercise</td>\n",
|
|||
|
" <td>6.24</td>\n",
|
|||
|
" <td>2134440</td>\n",
|
|||
|
" <td>13318906</td>\n",
|
|||
|
" <td>0.274941</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>128</th>\n",
|
|||
|
" <td>Sale</td>\n",
|
|||
|
" <td>1021.56</td>\n",
|
|||
|
" <td>543452</td>\n",
|
|||
|
" <td>555171415</td>\n",
|
|||
|
" <td>0.533072</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>127</th>\n",
|
|||
|
" <td>Sale</td>\n",
|
|||
|
" <td>1044.54</td>\n",
|
|||
|
" <td>390639</td>\n",
|
|||
|
" <td>408039939</td>\n",
|
|||
|
" <td>0.520312</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>66</th>\n",
|
|||
|
" <td>Sale</td>\n",
|
|||
|
" <td>722.10</td>\n",
|
|||
|
" <td>3500</td>\n",
|
|||
|
" <td>2527350</td>\n",
|
|||
|
" <td>0.312546</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>42</th>\n",
|
|||
|
" <td>Option Exercise</td>\n",
|
|||
|
" <td>0.00</td>\n",
|
|||
|
" <td>8228</td>\n",
|
|||
|
" <td>0</td>\n",
|
|||
|
" <td>0.266667</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>26</th>\n",
|
|||
|
" <td>Sale</td>\n",
|
|||
|
" <td>179.57</td>\n",
|
|||
|
" <td>10500</td>\n",
|
|||
|
" <td>1885485</td>\n",
|
|||
|
" <td>0.266098</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>134</th>\n",
|
|||
|
" <td>Option Exercise</td>\n",
|
|||
|
" <td>0.00</td>\n",
|
|||
|
" <td>3283</td>\n",
|
|||
|
" <td>0</td>\n",
|
|||
|
" <td>0.266667</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>79</th>\n",
|
|||
|
" <td>Sale</td>\n",
|
|||
|
" <td>987.53</td>\n",
|
|||
|
" <td>215528</td>\n",
|
|||
|
" <td>212841259</td>\n",
|
|||
|
" <td>0.460339</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>131</th>\n",
|
|||
|
" <td>Sale</td>\n",
|
|||
|
" <td>980.47</td>\n",
|
|||
|
" <td>917</td>\n",
|
|||
|
" <td>899091</td>\n",
|
|||
|
" <td>0.386775</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>36</th>\n",
|
|||
|
" <td>Sale</td>\n",
|
|||
|
" <td>300.59</td>\n",
|
|||
|
" <td>3750</td>\n",
|
|||
|
" <td>1127212</td>\n",
|
|||
|
" <td>0.262058</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>75</th>\n",
|
|||
|
" <td>Option Exercise</td>\n",
|
|||
|
" <td>62.72</td>\n",
|
|||
|
" <td>3500</td>\n",
|
|||
|
" <td>219520</td>\n",
|
|||
|
" <td>0.266626</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>22</th>\n",
|
|||
|
" <td>Option Exercise</td>\n",
|
|||
|
" <td>0.00</td>\n",
|
|||
|
" <td>16871</td>\n",
|
|||
|
" <td>0</td>\n",
|
|||
|
" <td>0.266666</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>135</th>\n",
|
|||
|
" <td>Option Exercise</td>\n",
|
|||
|
" <td>6.24</td>\n",
|
|||
|
" <td>2133441</td>\n",
|
|||
|
" <td>13312672</td>\n",
|
|||
|
" <td>0.274941</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" </tbody>\n",
|
|||
|
"</table>\n",
|
|||
|
"</div>"
|
|||
|
],
|
|||
|
"text/plain": [
|
|||
|
" Transaction Cost Shares Value ($) Predicted Impact\n",
|
|||
|
"56 Option Exercise 55.32 2500 138300 0.266602\n",
|
|||
|
"138 Option Exercise 6.24 2152681 13432729 0.274953\n",
|
|||
|
"123 Option Exercise 6.24 2134440 13318906 0.274941\n",
|
|||
|
"128 Sale 1021.56 543452 555171415 0.533072\n",
|
|||
|
"127 Sale 1044.54 390639 408039939 0.520312\n",
|
|||
|
"66 Sale 722.10 3500 2527350 0.312546\n",
|
|||
|
"42 Option Exercise 0.00 8228 0 0.266667\n",
|
|||
|
"26 Sale 179.57 10500 1885485 0.266098\n",
|
|||
|
"134 Option Exercise 0.00 3283 0 0.266667\n",
|
|||
|
"79 Sale 987.53 215528 212841259 0.460339\n",
|
|||
|
"131 Sale 980.47 917 899091 0.386775\n",
|
|||
|
"36 Sale 300.59 3750 1127212 0.262058\n",
|
|||
|
"75 Option Exercise 62.72 3500 219520 0.266626\n",
|
|||
|
"22 Option Exercise 0.00 16871 0 0.266666\n",
|
|||
|
"135 Option Exercise 6.24 2133441 13312672 0.274941"
|
|||
|
]
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
},
|
|||
|
{
|
|||
|
"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>Transaction</th>\n",
|
|||
|
" <th>Cost</th>\n",
|
|||
|
" <th>Shares</th>\n",
|
|||
|
" <th>Value ($)</th>\n",
|
|||
|
" <th>Predicted Impact</th>\n",
|
|||
|
" </tr>\n",
|
|||
|
" </thead>\n",
|
|||
|
" <tbody>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>96</th>\n",
|
|||
|
" <td>Option Exercise</td>\n",
|
|||
|
" <td>62.72</td>\n",
|
|||
|
" <td>3500</td>\n",
|
|||
|
" <td>219520</td>\n",
|
|||
|
" <td>0.266626</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>69</th>\n",
|
|||
|
" <td>Sale</td>\n",
|
|||
|
" <td>887.99</td>\n",
|
|||
|
" <td>121</td>\n",
|
|||
|
" <td>107447</td>\n",
|
|||
|
" <td>0.358446</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>82</th>\n",
|
|||
|
" <td>Sale</td>\n",
|
|||
|
" <td>889.08</td>\n",
|
|||
|
" <td>2258486</td>\n",
|
|||
|
" <td>2007978676</td>\n",
|
|||
|
" <td>0.635263</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>76</th>\n",
|
|||
|
" <td>Sale</td>\n",
|
|||
|
" <td>899.42</td>\n",
|
|||
|
" <td>3500</td>\n",
|
|||
|
" <td>3147970</td>\n",
|
|||
|
" <td>0.362990</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>114</th>\n",
|
|||
|
" <td>Sale</td>\n",
|
|||
|
" <td>979.69</td>\n",
|
|||
|
" <td>340564</td>\n",
|
|||
|
" <td>333647031</td>\n",
|
|||
|
" <td>0.484696</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>29</th>\n",
|
|||
|
" <td>Sale</td>\n",
|
|||
|
" <td>208.58</td>\n",
|
|||
|
" <td>9650000</td>\n",
|
|||
|
" <td>2012758726</td>\n",
|
|||
|
" <td>0.677352</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>94</th>\n",
|
|||
|
" <td>Option Exercise</td>\n",
|
|||
|
" <td>52.38</td>\n",
|
|||
|
" <td>25000</td>\n",
|
|||
|
" <td>1309500</td>\n",
|
|||
|
" <td>0.268332</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>132</th>\n",
|
|||
|
" <td>Option Exercise</td>\n",
|
|||
|
" <td>0.00</td>\n",
|
|||
|
" <td>1786</td>\n",
|
|||
|
" <td>0</td>\n",
|
|||
|
" <td>0.266667</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>93</th>\n",
|
|||
|
" <td>Option Exercise</td>\n",
|
|||
|
" <td>0.00</td>\n",
|
|||
|
" <td>1786</td>\n",
|
|||
|
" <td>0</td>\n",
|
|||
|
" <td>0.266667</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>139</th>\n",
|
|||
|
" <td>Sale</td>\n",
|
|||
|
" <td>1171.04</td>\n",
|
|||
|
" <td>126471</td>\n",
|
|||
|
" <td>148102963</td>\n",
|
|||
|
" <td>0.531335</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>19</th>\n",
|
|||
|
" <td>Sale</td>\n",
|
|||
|
" <td>178.07</td>\n",
|
|||
|
" <td>3768</td>\n",
|
|||
|
" <td>670935</td>\n",
|
|||
|
" <td>0.265018</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>90</th>\n",
|
|||
|
" <td>Sale</td>\n",
|
|||
|
" <td>845.39</td>\n",
|
|||
|
" <td>1535</td>\n",
|
|||
|
" <td>1297675</td>\n",
|
|||
|
" <td>0.347088</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>15</th>\n",
|
|||
|
" <td>Sale</td>\n",
|
|||
|
" <td>158.37</td>\n",
|
|||
|
" <td>6870000</td>\n",
|
|||
|
" <td>1088011570</td>\n",
|
|||
|
" <td>0.566694</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>125</th>\n",
|
|||
|
" <td>Sale</td>\n",
|
|||
|
" <td>965.62</td>\n",
|
|||
|
" <td>764980</td>\n",
|
|||
|
" <td>738683277</td>\n",
|
|||
|
" <td>0.537231</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>24</th>\n",
|
|||
|
" <td>Sale</td>\n",
|
|||
|
" <td>189.50</td>\n",
|
|||
|
" <td>3750</td>\n",
|
|||
|
" <td>710625</td>\n",
|
|||
|
" <td>0.264788</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" </tbody>\n",
|
|||
|
"</table>\n",
|
|||
|
"</div>"
|
|||
|
],
|
|||
|
"text/plain": [
|
|||
|
" Transaction Cost Shares Value ($) Predicted Impact\n",
|
|||
|
"96 Option Exercise 62.72 3500 219520 0.266626\n",
|
|||
|
"69 Sale 887.99 121 107447 0.358446\n",
|
|||
|
"82 Sale 889.08 2258486 2007978676 0.635263\n",
|
|||
|
"76 Sale 899.42 3500 3147970 0.362990\n",
|
|||
|
"114 Sale 979.69 340564 333647031 0.484696\n",
|
|||
|
"29 Sale 208.58 9650000 2012758726 0.677352\n",
|
|||
|
"94 Option Exercise 52.38 25000 1309500 0.268332\n",
|
|||
|
"132 Option Exercise 0.00 1786 0 0.266667\n",
|
|||
|
"93 Option Exercise 0.00 1786 0 0.266667\n",
|
|||
|
"139 Sale 1171.04 126471 148102963 0.531335\n",
|
|||
|
"19 Sale 178.07 3768 670935 0.265018\n",
|
|||
|
"90 Sale 845.39 1535 1297675 0.347088\n",
|
|||
|
"15 Sale 158.37 6870000 1088011570 0.566694\n",
|
|||
|
"125 Sale 965.62 764980 738683277 0.537231\n",
|
|||
|
"24 Sale 189.50 3750 710625 0.264788"
|
|||
|
]
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"from sklearn.model_selection import train_test_split\n",
|
|||
|
"\n",
|
|||
|
"\n",
|
|||
|
"# Функция для предсказания значений\n",
|
|||
|
"def predict_value(row):\n",
|
|||
|
" impact_sim.input[\"Transaction\"] = row[\"Transaction\"]\n",
|
|||
|
" impact_sim.input[\"Cost\"] = row[\"Cost\"]\n",
|
|||
|
" impact_sim.input[\"Shares\"] = row[\"Shares\"]\n",
|
|||
|
" impact_sim.input[\"Value\"] = row[\"Value ($)\"]\n",
|
|||
|
" impact_sim.compute()\n",
|
|||
|
" return impact_sim.output[\"Impact\"]\n",
|
|||
|
"\n",
|
|||
|
"\n",
|
|||
|
"# Выбор нужных столбцов\n",
|
|||
|
"data: DataFrame = df[[\"Transaction\", \"Cost\", \"Shares\", \"Value ($)\"]]\n",
|
|||
|
"\n",
|
|||
|
"# Разделение данных на обучающую и тестовую выборки (80% / 20%)\n",
|
|||
|
"train_data, test_data = train_test_split(data, test_size=0.2, random_state=42)\n",
|
|||
|
"\n",
|
|||
|
"# Применение модели к обучающей выборке\n",
|
|||
|
"train_data[\"Predicted Impact\"] = train_data.apply(predict_value, axis=1)\n",
|
|||
|
"display(train_data.head(15))\n",
|
|||
|
"\n",
|
|||
|
"# Применение модели к тестовой выборке\n",
|
|||
|
"test_data[\"Predicted Impact\"] = test_data.apply(predict_value, axis=1)\n",
|
|||
|
"display(test_data.head(15))"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"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.8"
|
|||
|
}
|
|||
|
},
|
|||
|
"nbformat": 4,
|
|||
|
"nbformat_minor": 2
|
|||
|
}
|