получше оценки 1

This commit is contained in:
ujijrujijr 2025-02-16 18:04:40 +04:00
parent 3507e1d142
commit 4e8aeacb26

View File

@ -9,7 +9,7 @@
},
{
"cell_type": "code",
"execution_count": 35,
"execution_count": 70,
"metadata": {},
"outputs": [],
"source": [
@ -20,7 +20,7 @@
},
{
"cell_type": "code",
"execution_count": 36,
"execution_count": 71,
"metadata": {},
"outputs": [],
"source": [
@ -47,7 +47,7 @@
},
{
"cell_type": "code",
"execution_count": 37,
"execution_count": 72,
"metadata": {},
"outputs": [],
"source": [
@ -83,7 +83,7 @@
},
{
"cell_type": "code",
"execution_count": 38,
"execution_count": 73,
"metadata": {},
"outputs": [
{
@ -218,7 +218,7 @@
},
{
"cell_type": "code",
"execution_count": 45,
"execution_count": 74,
"metadata": {},
"outputs": [
{
@ -272,7 +272,7 @@
}
],
"conversionMethod": "pd.DataFrame",
"ref": "5922a94b-2599-4b50-a82a-b7ba0c907a61",
"ref": "6df9d4d6-0a40-404e-b085-39cbd7b0c963",
"rows": [
[
"15251",
@ -335,7 +335,7 @@
"450",
"17.99",
"92",
"88.79909989039582"
"89.20378747679185"
],
[
"14595",
@ -447,7 +447,7 @@
"28",
"17.99",
"96",
"89.30806692369116"
"89.60745365568543"
],
[
"11451",
@ -461,7 +461,7 @@
"50",
"19.99",
"68",
"85.46326054861929"
"86.68910788534616"
],
[
"16976",
@ -566,7 +566,7 @@
"696",
"19.99",
"86",
"84.47340305190548"
"86.10011067019401"
],
[
"37115",
@ -601,7 +601,7 @@
"1084",
"19.99",
"84",
"83.92495287088245"
"85.49351318658027"
],
[
"12818",
@ -717,7 +717,7 @@
" <td>4598</td>\n",
" <td>59.99</td>\n",
" <td>92</td>\n",
" <td>28.455605</td>\n",
" <td>49.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27959</th>\n",
@ -748,14 +748,14 @@
"... ... ... ... ...\n",
"2652 55 14.99 74 90.615416\n",
"30351 41 9.99 82 85.367169\n",
"1810 4598 59.99 92 28.455605\n",
"1810 4598 59.99 92 49.500000\n",
"27959 115 2.99 73 74.155404\n",
"2864 15 4.99 86 74.231120\n",
"\n",
"[10142 rows x 4 columns]"
]
},
"execution_count": 45,
"execution_count": 74,
"metadata": {},
"output_type": "execute_result"
}
@ -777,9 +777,9 @@
"rule2 = ctrl.Rule(reviews['many'] & price['medium'], pos['high']) #avg\n",
"rule3 = ctrl.Rule(reviews['many'] & price['expensive'], pos['high']) \n",
"\n",
"rule4 = ctrl.Rule(reviews['few'] & price['cheap'], pos['high']) #avg\n",
"rule4 = ctrl.Rule(reviews['few'] & price['cheap'], pos['high']) \n",
"rule5 = ctrl.Rule(reviews['few'] & price['medium'], pos['higher']) #avg\n",
"rule6 = ctrl.Rule(reviews['few'] & price['expensive'], pos['low'])\n",
"rule6 = ctrl.Rule(reviews['few'] & price['expensive'], pos['average']) #low\n",
"\n",
"rule7 = ctrl.Rule(reviews['avg'] & price['cheap'], pos['average'])\n",
"rule8 = ctrl.Rule(reviews['avg'] & price['medium'], pos['high'])\n",
@ -800,13 +800,11 @@
"\n",
"fuzzy_sys = ctrl.ControlSystemSimulation(ctrl.ControlSystem(fuzzy_rules))\n",
"\n",
"#ТУТ ПОМЕНЯТЬ НАЗВАНИЯ СТОЛБЦОВ И НЕЧЁТКИХ ПЕРЕМЕННЫХ НА СВОИ\n",
"\n",
"def fuzzy_pred(row):\n",
" # al - нечёт. пер. ; al2o3 - столбец датасета\n",
" fuzzy_sys.input[\"reviews\"] = row[\"user_reviews\"]\n",
" fuzzy_sys.input[\"price\"] = row[\"price_original\"]\n",
" fuzzy_sys.compute()\n",
" # return fuzzy_sys.output[\"positive_ratio\"]\n",
" return fuzzy_sys.output[\"pos\"]\n",
"\n",
"from sklearn.model_selection import train_test_split\n",
@ -829,15 +827,15 @@
},
{
"cell_type": "code",
"execution_count": 46,
"execution_count": 75,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"R^2 = -0.6240120497062605\n",
"RMSE = 23.36652781503876\n"
"R^2 = -0.29858167190494145\n",
"RMSE = 20.894606342915804\n"
]
}
],
@ -845,9 +843,9 @@
"#Оценка\n",
"import math\n",
"from sklearn import metrics\n",
"print(f\"R^2 = {metrics.r2_score(result_test[\"positive_ratio\"], result_test[\"positive_ratio_pred\"])}\")\n",
"print(f\"R^2 = {metrics.r2_score(test[\"positive_ratio\"], result_test[\"positive_ratio_pred\"])}\")\n",
"print(f\"RMSE = {math.sqrt(\n",
" metrics.mean_squared_error(result_test[\"positive_ratio\"], result_test[\"positive_ratio_pred\"])\n",
" metrics.mean_squared_error(test[\"positive_ratio\"], result_test[\"positive_ratio_pred\"])\n",
")}\")"
]
},
@ -857,7 +855,7 @@
"source": [
"Оценки показали, что построенная нечёткая система плохо справляется с предсказанием соотношения положительных отзывов к негативным. \n",
"\n",
"Средняя квадратичная ошибка составляет почти 25%, что является большой ошибкой для диапазона от 0 до 100. \n",
"Средняя квадратичная ошибка составляет примерно 20%, что является достаточно большой ошибкой для диапазона от 0 до 100. \n",
"\n",
"Коэффициент детерминации получился отрицательным. Это означает, что система работает хуже, чем простое предсказание средним значением. Это говорит о том, что гипотезы о зависимости положительности отзывов от цены игры и количества отзывов, проявляемые в виде базы нечётких правил, неправильно отражают действительность. \n",
"\n",