{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "45b566cf",
   "metadata": {},
   "source": [
    "# Классификация и отбор признаков разреженной нейросетью\n",
    "\n",
    "В работе автоматически выбирается ключевая зависимая переменная, после чего решается задача классификации с помощью полносвязной нейросети. Далее используется разреженная нейросеть с входными gate-весами и L1-регуляризацией для отбора наиболее влияющих признаков. По отобранным признакам обучается нейросеть с синонимичной архитектурой, после чего сравниваются метрики на тестовой выборке."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "cc67dff0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "device = cuda\n"
     ]
    }
   ],
   "source": [
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "\n",
    "import os\n",
    "import re\n",
    "import json\n",
    "import random\n",
    "import math\n",
    "from pathlib import Path\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.compose import ColumnTransformer\n",
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.impute import SimpleImputer\n",
    "from sklearn.preprocessing import OneHotEncoder, StandardScaler, LabelEncoder\n",
    "from sklearn.metrics import (\n",
    "    accuracy_score, f1_score, precision_score, recall_score, roc_auc_score,\n",
    "    classification_report, confusion_matrix\n",
    ")\n",
    "\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "from torch.utils.data import TensorDataset, DataLoader\n",
    "\n",
    "SEED = 42\n",
    "random.seed(SEED)\n",
    "np.random.seed(SEED)\n",
    "torch.manual_seed(SEED)\n",
    "torch.use_deterministic_algorithms(False)\n",
    "\n",
    "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n",
    "print('device =', device)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "86278cb8",
   "metadata": {},
   "source": [
    "## Загрузка данных и первичный контроль"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "212a94f9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Файл: anxiety_depression_data.csv\n",
      "Размерность: (1200, 21)\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>Age</th>\n",
       "      <th>Gender</th>\n",
       "      <th>Education_Level</th>\n",
       "      <th>Employment_Status</th>\n",
       "      <th>Sleep_Hours</th>\n",
       "      <th>Physical_Activity_Hrs</th>\n",
       "      <th>Social_Support_Score</th>\n",
       "      <th>Anxiety_Score</th>\n",
       "      <th>Depression_Score</th>\n",
       "      <th>Stress_Level</th>\n",
       "      <th>...</th>\n",
       "      <th>Chronic_Illnesses</th>\n",
       "      <th>Medication_Use</th>\n",
       "      <th>Therapy</th>\n",
       "      <th>Meditation</th>\n",
       "      <th>Substance_Use</th>\n",
       "      <th>Financial_Stress</th>\n",
       "      <th>Work_Stress</th>\n",
       "      <th>Self_Esteem_Score</th>\n",
       "      <th>Life_Satisfaction_Score</th>\n",
       "      <th>Loneliness_Score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>56</td>\n",
       "      <td>Male</td>\n",
       "      <td>Bachelor's</td>\n",
       "      <td>Unemployed</td>\n",
       "      <td>6.0</td>\n",
       "      <td>0.4</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>9</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>69</td>\n",
       "      <td>Female</td>\n",
       "      <td>Bachelor's</td>\n",
       "      <td>Retired</td>\n",
       "      <td>8.8</td>\n",
       "      <td>2.8</td>\n",
       "      <td>6</td>\n",
       "      <td>18</td>\n",
       "      <td>7</td>\n",
       "      <td>6</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>7</td>\n",
       "      <td>4</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>46</td>\n",
       "      <td>Female</td>\n",
       "      <td>Master's</td>\n",
       "      <td>Employed</td>\n",
       "      <td>5.3</td>\n",
       "      <td>1.6</td>\n",
       "      <td>5</td>\n",
       "      <td>5</td>\n",
       "      <td>13</td>\n",
       "      <td>8</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>8</td>\n",
       "      <td>7</td>\n",
       "      <td>8</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>32</td>\n",
       "      <td>Female</td>\n",
       "      <td>High School</td>\n",
       "      <td>Unemployed</td>\n",
       "      <td>8.8</td>\n",
       "      <td>0.5</td>\n",
       "      <td>4</td>\n",
       "      <td>6</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>7</td>\n",
       "      <td>4</td>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>60</td>\n",
       "      <td>Female</td>\n",
       "      <td>Bachelor's</td>\n",
       "      <td>Retired</td>\n",
       "      <td>7.2</td>\n",
       "      <td>0.7</td>\n",
       "      <td>2</td>\n",
       "      <td>7</td>\n",
       "      <td>15</td>\n",
       "      <td>3</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Frequent</td>\n",
       "      <td>8</td>\n",
       "      <td>9</td>\n",
       "      <td>5</td>\n",
       "      <td>7</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   Age  Gender Education_Level Employment_Status  Sleep_Hours  \\\n",
       "0   56    Male      Bachelor's        Unemployed          6.0   \n",
       "1   69  Female      Bachelor's           Retired          8.8   \n",
       "2   46  Female        Master's          Employed          5.3   \n",
       "3   32  Female     High School        Unemployed          8.8   \n",
       "4   60  Female      Bachelor's           Retired          7.2   \n",
       "\n",
       "   Physical_Activity_Hrs  Social_Support_Score  Anxiety_Score  \\\n",
       "0                    0.4                     3              4   \n",
       "1                    2.8                     6             18   \n",
       "2                    1.6                     5              5   \n",
       "3                    0.5                     4              6   \n",
       "4                    0.7                     2              7   \n",
       "\n",
       "   Depression_Score  Stress_Level  ...  Chronic_Illnesses  Medication_Use  \\\n",
       "0                 2             9  ...                  0             NaN   \n",
       "1                 7             6  ...                  0             NaN   \n",
       "2                13             8  ...                  0             NaN   \n",
       "3                 3             4  ...                  1             NaN   \n",
       "4                15             3  ...                  0             NaN   \n",
       "\n",
       "  Therapy  Meditation  Substance_Use Financial_Stress  Work_Stress  \\\n",
       "0       0           1            NaN                4            3   \n",
       "1       1           0            NaN                1            4   \n",
       "2       0           1            NaN                8            7   \n",
       "3       0           0            NaN                7            4   \n",
       "4       1           1       Frequent                8            9   \n",
       "\n",
       "   Self_Esteem_Score  Life_Satisfaction_Score  Loneliness_Score  \n",
       "0                  7                        5                 1  \n",
       "1                  7                        4                 6  \n",
       "2                  8                        1                 1  \n",
       "3                  8                        4                 4  \n",
       "4                  5                        7                 7  \n",
       "\n",
       "[5 rows x 21 columns]"
      ]
     },
     "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>Age</th>\n",
       "      <th>Gender</th>\n",
       "      <th>Education_Level</th>\n",
       "      <th>Employment_Status</th>\n",
       "      <th>Sleep_Hours</th>\n",
       "      <th>Physical_Activity_Hrs</th>\n",
       "      <th>Social_Support_Score</th>\n",
       "      <th>Anxiety_Score</th>\n",
       "      <th>Depression_Score</th>\n",
       "      <th>Stress_Level</th>\n",
       "      <th>...</th>\n",
       "      <th>Chronic_Illnesses</th>\n",
       "      <th>Medication_Use</th>\n",
       "      <th>Therapy</th>\n",
       "      <th>Meditation</th>\n",
       "      <th>Substance_Use</th>\n",
       "      <th>Financial_Stress</th>\n",
       "      <th>Work_Stress</th>\n",
       "      <th>Self_Esteem_Score</th>\n",
       "      <th>Life_Satisfaction_Score</th>\n",
       "      <th>Loneliness_Score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>dtype</th>\n",
       "      <td>int64</td>\n",
       "      <td>object</td>\n",
       "      <td>object</td>\n",
       "      <td>object</td>\n",
       "      <td>float64</td>\n",
       "      <td>float64</td>\n",
       "      <td>int64</td>\n",
       "      <td>int64</td>\n",
       "      <td>int64</td>\n",
       "      <td>int64</td>\n",
       "      <td>...</td>\n",
       "      <td>int64</td>\n",
       "      <td>object</td>\n",
       "      <td>int64</td>\n",
       "      <td>int64</td>\n",
       "      <td>object</td>\n",
       "      <td>int64</td>\n",
       "      <td>int64</td>\n",
       "      <td>int64</td>\n",
       "      <td>int64</td>\n",
       "      <td>int64</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         Age  Gender Education_Level Employment_Status Sleep_Hours  \\\n",
       "dtype  int64  object          object            object     float64   \n",
       "\n",
       "      Physical_Activity_Hrs Social_Support_Score Anxiety_Score  \\\n",
       "dtype               float64                int64         int64   \n",
       "\n",
       "      Depression_Score Stress_Level  ... Chronic_Illnesses Medication_Use  \\\n",
       "dtype            int64        int64  ...             int64         object   \n",
       "\n",
       "      Therapy Meditation Substance_Use Financial_Stress Work_Stress  \\\n",
       "dtype   int64      int64        object            int64       int64   \n",
       "\n",
       "      Self_Esteem_Score Life_Satisfaction_Score Loneliness_Score  \n",
       "dtype             int64                   int64            int64  \n",
       "\n",
       "[1 rows x 21 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def find_csv(possible_names=None):\n",
    "    if possible_names is None:\n",
    "        possible_names = [\n",
    "            'anxiety_depression_data.csv',\n",
    "            'mental_health.csv',\n",
    "            'data.csv'\n",
    "        ]\n",
    "    search_dirs = [Path('.'), Path('/mnt/data')]\n",
    "    for d in search_dirs:\n",
    "        for name in possible_names:\n",
    "            p = d / name\n",
    "            if p.exists():\n",
    "                return p\n",
    "    for d in search_dirs:\n",
    "        csvs = list(d.glob('*.csv'))\n",
    "        if csvs:\n",
    "            return csvs[0]\n",
    "    raise FileNotFoundError('CSV-файл не найден.')\n",
    "\n",
    "csv_path = find_csv()\n",
    "df = pd.read_csv(csv_path)\n",
    "\n",
    "def normalize_columns(columns):\n",
    "    out = []\n",
    "    seen = {}\n",
    "    for col in columns:\n",
    "        c = str(col).strip()\n",
    "        c = re.sub(r'\\s+', '_', c)\n",
    "        c = re.sub(r'[^0-9A-Za-zА-Яа-я_]+', '', c)\n",
    "        c = c.strip('_')\n",
    "        if c in seen:\n",
    "            seen[c] += 1\n",
    "            c = f'{c}_{seen[c]}'\n",
    "        else:\n",
    "            seen[c] = 0\n",
    "        out.append(c)\n",
    "    return out\n",
    "\n",
    "df.columns = normalize_columns(df.columns)\n",
    "print('Файл:', csv_path)\n",
    "print('Размерность:', df.shape)\n",
    "display(df.head())\n",
    "display(df.dtypes.to_frame('dtype').T)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7985f726",
   "metadata": {},
   "source": [
    "## Выбор целевой переменной\n",
    "\n",
    "Приоритетно выбирается переменная, напрямую описывающая выраженность тревожно-депрессивного состояния. Для данного набора в качестве ключевой зависимой переменной используется `Depression_Score`, так как она непосредственно характеризует уровень депрессивной симптоматики. Для приведения задачи к классификации формируется бинарная целевая переменная: 1 — выраженный уровень депрессии (значение не ниже 75-го процентиля), 0 — иначе."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "256b3a0a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Выбранная целевая переменная: Depression_Score\n",
      "Режим формирования target: binarized_numeric\n",
      "Порог бинаризации (75-й процентиль): 15.0\n",
      "Распределение классов:\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>Depression_Score</th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>840</td>\n",
       "      <td>360</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Depression_Score    0    1\n",
       "count             840  360"
      ]
     },
     "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>Depression_Score</th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>share</th>\n",
       "      <td>0.7</td>\n",
       "      <td>0.3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Depression_Score    0    1\n",
       "share             0.7  0.3"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def choose_target_column(df):\n",
    "    priority_patterns = [\n",
    "        r'depression[_ ]?score',\n",
    "        r'anxiety[_ ]?score',\n",
    "        r'depression',\n",
    "        r'anxiety',\n",
    "        r'mental[_ ]?health'\n",
    "    ]\n",
    "    lower_map = {c.lower(): c for c in df.columns}\n",
    "    for pattern in priority_patterns:\n",
    "        for cl, original in lower_map.items():\n",
    "            if re.fullmatch(pattern, cl):\n",
    "                return original\n",
    "    # запасной вариант: бинарный или категориальный столбец с наименьшим числом уникальных значений\n",
    "    candidates = []\n",
    "    for c in df.columns:\n",
    "        nunique = df[c].nunique(dropna=True)\n",
    "        if 2 <= nunique <= 20:\n",
    "            score = (nunique, 0 if df[c].dtype == 'O' else 1)\n",
    "            candidates.append((score, c))\n",
    "    if not candidates:\n",
    "        raise ValueError('Не удалось автоматически выбрать целевую переменную.')\n",
    "    candidates.sort()\n",
    "    return candidates[0][1]\n",
    "\n",
    "target_col = choose_target_column(df)\n",
    "target_raw = df[target_col].copy()\n",
    "\n",
    "if pd.api.types.is_numeric_dtype(target_raw):\n",
    "    threshold = float(target_raw.quantile(0.75))\n",
    "    y = (target_raw >= threshold).astype(int)\n",
    "    target_mode = 'binarized_numeric'\n",
    "else:\n",
    "    le = LabelEncoder()\n",
    "    y = pd.Series(le.fit_transform(target_raw.astype(str)), index=df.index)\n",
    "    threshold = None\n",
    "    target_mode = 'categorical'\n",
    "\n",
    "print('Выбранная целевая переменная:', target_col)\n",
    "print('Режим формирования target:', target_mode)\n",
    "if threshold is not None:\n",
    "    print('Порог бинаризации (75-й процентиль):', round(threshold, 4))\n",
    "print('Распределение классов:')\n",
    "display(y.value_counts(normalize=False).rename('count').to_frame().T)\n",
    "display((y.value_counts(normalize=True).sort_index().rename('share').to_frame().T))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f805ea1f",
   "metadata": {},
   "source": [
    "## Подготовка признаков\n",
    "\n",
    "Из множества признаков исключается целевая переменная. Числовые признаки масштабируются, категориальные — кодируются через One-Hot Encoding. Такая схема не вносит искусственного порядка в категориальные значения."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "9aa0f903",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число исходных признаков: 20\n",
      "Число признаков после кодирования: 32\n",
      "Первые 20 признаков после преобразования:\n",
      "['Age', 'Sleep_Hours', 'Physical_Activity_Hrs', 'Social_Support_Score', 'Anxiety_Score', 'Stress_Level', 'Family_History_Mental_Illness', 'Chronic_Illnesses', 'Therapy', 'Meditation', 'Financial_Stress', 'Work_Stress', 'Self_Esteem_Score', 'Life_Satisfaction_Score', 'Loneliness_Score', 'Gender_Female', 'Gender_Male', 'Gender_Non-Binary', 'Gender_Other', \"Education_Level_Bachelor's\"]\n"
     ]
    }
   ],
   "source": [
    "X = df.drop(columns=[target_col]).copy()\n",
    "\n",
    "# удаление константных столбцов\n",
    "constant_cols = [c for c in X.columns if X[c].nunique(dropna=False) <= 1]\n",
    "if constant_cols:\n",
    "    X = X.drop(columns=constant_cols)\n",
    "\n",
    "numeric_features = X.select_dtypes(include=[np.number]).columns.tolist()\n",
    "categorical_features = [c for c in X.columns if c not in numeric_features]\n",
    "\n",
    "numeric_transformer = Pipeline([\n",
    "    ('imputer', SimpleImputer(strategy='median')),\n",
    "    ('scaler', StandardScaler())\n",
    "])\n",
    "\n",
    "categorical_transformer = Pipeline([\n",
    "    ('imputer', SimpleImputer(strategy='most_frequent')),\n",
    "    ('onehot', OneHotEncoder(handle_unknown='ignore', sparse_output=False))\n",
    "])\n",
    "\n",
    "preprocessor = ColumnTransformer([\n",
    "    ('num', numeric_transformer, numeric_features),\n",
    "    ('cat', categorical_transformer, categorical_features)\n",
    "], remainder='drop')\n",
    "\n",
    "X_train_df, X_test_df, y_train, y_test = train_test_split(\n",
    "    X, y, test_size=0.2, random_state=SEED, stratify=y\n",
    ")\n",
    "\n",
    "X_train = preprocessor.fit_transform(X_train_df)\n",
    "X_test = preprocessor.transform(X_test_df)\n",
    "\n",
    "feature_names = preprocessor.get_feature_names_out()\n",
    "feature_names = [f.replace('num__', '').replace('cat__', '') for f in feature_names]\n",
    "\n",
    "X_train = np.asarray(X_train, dtype=np.float32)\n",
    "X_test = np.asarray(X_test, dtype=np.float32)\n",
    "y_train = np.asarray(y_train, dtype=np.float32)\n",
    "y_test = np.asarray(y_test, dtype=np.float32)\n",
    "\n",
    "print('Число исходных признаков:', X.shape[1])\n",
    "print('Число признаков после кодирования:', X_train.shape[1])\n",
    "print('Первые 20 признаков после преобразования:')\n",
    "print(feature_names[:20])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "21b30f0e",
   "metadata": {},
   "source": [
    "## Вспомогательные функции для обучения нейросетей"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "503b8c3b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(768, 32) (192, 32)\n"
     ]
    }
   ],
   "source": [
    "class DenseClassifier(nn.Module):\n",
    "    def __init__(self, input_dim, hidden_dims=(64, 32), dropout=0.15):\n",
    "        super().__init__()\n",
    "        layers = []\n",
    "        prev = input_dim\n",
    "        for h in hidden_dims:\n",
    "            layers += [nn.Linear(prev, h), nn.ReLU(), nn.Dropout(dropout)]\n",
    "            prev = h\n",
    "        layers += [nn.Linear(prev, 1)]\n",
    "        self.net = nn.Sequential(*layers)\n",
    "\n",
    "    def forward(self, x):\n",
    "        return self.net(x).squeeze(1)\n",
    "\n",
    "class SparseGateClassifier(nn.Module):\n",
    "    def __init__(self, input_dim, hidden_dims=(64, 32), dropout=0.15):\n",
    "        super().__init__()\n",
    "        self.gate_logits = nn.Parameter(torch.zeros(input_dim))\n",
    "        layers = []\n",
    "        prev = input_dim\n",
    "        for h in hidden_dims:\n",
    "            layers += [nn.Linear(prev, h), nn.ReLU(), nn.Dropout(dropout)]\n",
    "            prev = h\n",
    "        layers += [nn.Linear(prev, 1)]\n",
    "        self.net = nn.Sequential(*layers)\n",
    "\n",
    "    def gate_values(self):\n",
    "        return torch.sigmoid(self.gate_logits)\n",
    "\n",
    "    def forward(self, x):\n",
    "        gates = self.gate_values()\n",
    "        x = x * gates\n",
    "        return self.net(x).squeeze(1)\n",
    "\n",
    "def make_loaders(X_train, y_train, X_val, y_val, batch_size=64):\n",
    "    train_ds = TensorDataset(torch.tensor(X_train), torch.tensor(y_train))\n",
    "    val_ds = TensorDataset(torch.tensor(X_val), torch.tensor(y_val))\n",
    "    train_loader = DataLoader(train_ds, batch_size=batch_size, shuffle=True)\n",
    "    val_loader = DataLoader(val_ds, batch_size=batch_size, shuffle=False)\n",
    "    return train_loader, val_loader\n",
    "\n",
    "def evaluate_binary(model, X, y):\n",
    "    model.eval()\n",
    "    with torch.no_grad():\n",
    "        logits = model(torch.tensor(X, device=device))\n",
    "        probs = torch.sigmoid(logits).cpu().numpy()\n",
    "    preds = (probs >= 0.5).astype(int)\n",
    "    result = {\n",
    "        'accuracy': accuracy_score(y, preds),\n",
    "        'precision': precision_score(y, preds, zero_division=0),\n",
    "        'recall': recall_score(y, preds, zero_division=0),\n",
    "        'f1': f1_score(y, preds, zero_division=0)\n",
    "    }\n",
    "    try:\n",
    "        result['roc_auc'] = roc_auc_score(y, probs)\n",
    "    except Exception:\n",
    "        result['roc_auc'] = np.nan\n",
    "    return result, preds, probs\n",
    "\n",
    "def train_model(\n",
    "    model, X_train, y_train, X_val, y_val,\n",
    "    n_epochs=120, lr=1e-3, weight_decay=1e-4,\n",
    "    l1_gate=0.0, batch_size=64, patience=18\n",
    "):\n",
    "    train_loader, val_loader = make_loaders(X_train, y_train, X_val, y_val, batch_size=batch_size)\n",
    "    optimizer = torch.optim.Adam(model.parameters(), lr=lr, weight_decay=weight_decay)\n",
    "    criterion = nn.BCEWithLogitsLoss()\n",
    "\n",
    "    best_state = None\n",
    "    best_val = np.inf\n",
    "    best_epoch = 0\n",
    "    history = []\n",
    "\n",
    "    model.to(device)\n",
    "\n",
    "    for epoch in range(1, n_epochs + 1):\n",
    "        model.train()\n",
    "        train_losses = []\n",
    "        for xb, yb in train_loader:\n",
    "            xb = xb.to(device)\n",
    "            yb = yb.to(device)\n",
    "\n",
    "            optimizer.zero_grad()\n",
    "            logits = model(xb)\n",
    "            loss = criterion(logits, yb)\n",
    "\n",
    "            if hasattr(model, 'gate_values') and l1_gate > 0:\n",
    "                loss = loss + l1_gate * model.gate_values().mean()\n",
    "\n",
    "            loss.backward()\n",
    "            optimizer.step()\n",
    "            train_losses.append(loss.item())\n",
    "\n",
    "        model.eval()\n",
    "        val_losses = []\n",
    "        with torch.no_grad():\n",
    "            for xb, yb in val_loader:\n",
    "                xb = xb.to(device)\n",
    "                yb = yb.to(device)\n",
    "                logits = model(xb)\n",
    "                loss = criterion(logits, yb)\n",
    "                if hasattr(model, 'gate_values') and l1_gate > 0:\n",
    "                    loss = loss + l1_gate * model.gate_values().mean()\n",
    "                val_losses.append(loss.item())\n",
    "\n",
    "        train_loss = float(np.mean(train_losses))\n",
    "        val_loss = float(np.mean(val_losses))\n",
    "        history.append((epoch, train_loss, val_loss))\n",
    "\n",
    "        if val_loss < best_val - 1e-5:\n",
    "            best_val = val_loss\n",
    "            best_epoch = epoch\n",
    "            best_state = {k: v.detach().cpu().clone() for k, v in model.state_dict().items()}\n",
    "        elif epoch - best_epoch >= patience:\n",
    "            break\n",
    "\n",
    "    if best_state is not None:\n",
    "        model.load_state_dict(best_state)\n",
    "\n",
    "    return model, pd.DataFrame(history, columns=['epoch', 'train_loss', 'val_loss'])\n",
    "\n",
    "# валидационное разбиение внутри train\n",
    "X_tr, X_val, y_tr, y_val = train_test_split(\n",
    "    X_train, y_train, test_size=0.2, random_state=SEED, stratify=y_train\n",
    ")\n",
    "print(X_tr.shape, X_val.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e1a5b53e",
   "metadata": {},
   "source": [
    "## Базовая нейросеть по всем признакам"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "49aca306",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Метрики базовой модели:\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>accuracy</th>\n",
       "      <th>precision</th>\n",
       "      <th>recall</th>\n",
       "      <th>f1</th>\n",
       "      <th>roc_auc</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.7</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.5096</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   accuracy  precision  recall   f1  roc_auc\n",
       "0       0.7        0.0     0.0  0.0   0.5096"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 700x400 with 1 Axes>"
      ]
     },
     "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>pred_0</th>\n",
       "      <th>pred_1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>true_0</th>\n",
       "      <td>168</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>true_1</th>\n",
       "      <td>72</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        pred_0  pred_1\n",
       "true_0     168       0\n",
       "true_1      72       0"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "full_model = DenseClassifier(input_dim=X_tr.shape[1], hidden_dims=(64, 32), dropout=0.15)\n",
    "full_model, full_history = train_model(\n",
    "    full_model, X_tr, y_tr, X_val, y_val,\n",
    "    n_epochs=140, lr=1e-3, weight_decay=1e-4, l1_gate=0.0, batch_size=64, patience=20\n",
    ")\n",
    "\n",
    "full_metrics, full_preds, full_probs = evaluate_binary(full_model, X_test, y_test)\n",
    "print('Метрики базовой модели:')\n",
    "display(pd.DataFrame([full_metrics]).round(4))\n",
    "\n",
    "plt.figure(figsize=(7, 4))\n",
    "plt.plot(full_history['epoch'], full_history['train_loss'], label='train')\n",
    "plt.plot(full_history['epoch'], full_history['val_loss'], label='val')\n",
    "plt.title('Функция потерь: базовая нейросеть')\n",
    "plt.xlabel('Эпоха')\n",
    "plt.ylabel('Loss')\n",
    "plt.legend()\n",
    "plt.grid(True, alpha=0.3)\n",
    "plt.show()\n",
    "\n",
    "cm_full = confusion_matrix(y_test, full_preds)\n",
    "display(pd.DataFrame(cm_full, index=['true_0', 'true_1'], columns=['pred_0', 'pred_1']))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "54b73d07",
   "metadata": {},
   "source": [
    "## Разреженная нейросеть для оценки важности признаков\n",
    "\n",
    "Разреженность достигается с помощью обучаемых входных gate-коэффициентов и L1-регуляризации по их значениям. Чем выше gate-вес, тем сильнее соответствующий признак участвует в предсказании. Для отбора берутся признаки с наибольшими gate-весами; дополнительно контролируется минимальное число сохраняемых переменных."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "2c248b93",
   "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>feature</th>\n",
       "      <th>gate_importance</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Financial_Stress</td>\n",
       "      <td>0.5078</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Medication_Use_Occasional</td>\n",
       "      <td>0.5078</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Family_History_Mental_Illness</td>\n",
       "      <td>0.5076</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Sleep_Hours</td>\n",
       "      <td>0.5064</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Work_Stress</td>\n",
       "      <td>0.5062</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Gender_Female</td>\n",
       "      <td>0.5056</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Social_Support_Score</td>\n",
       "      <td>0.5040</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>Substance_Use_Occasional</td>\n",
       "      <td>0.5039</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>Meditation</td>\n",
       "      <td>0.5038</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>Anxiety_Score</td>\n",
       "      <td>0.5037</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>Physical_Activity_Hrs</td>\n",
       "      <td>0.5033</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>Life_Satisfaction_Score</td>\n",
       "      <td>0.5030</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>Education_Level_Master's</td>\n",
       "      <td>0.5029</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>Therapy</td>\n",
       "      <td>0.5025</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>Self_Esteem_Score</td>\n",
       "      <td>0.5014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>Chronic_Illnesses</td>\n",
       "      <td>0.5009</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>Employment_Status_Student</td>\n",
       "      <td>0.4993</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>Loneliness_Score</td>\n",
       "      <td>0.4992</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>Age</td>\n",
       "      <td>0.4980</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>Education_Level_Other</td>\n",
       "      <td>0.4978</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                          feature  gate_importance\n",
       "0                Financial_Stress           0.5078\n",
       "1       Medication_Use_Occasional           0.5078\n",
       "2   Family_History_Mental_Illness           0.5076\n",
       "3                     Sleep_Hours           0.5064\n",
       "4                     Work_Stress           0.5062\n",
       "5                   Gender_Female           0.5056\n",
       "6            Social_Support_Score           0.5040\n",
       "7        Substance_Use_Occasional           0.5039\n",
       "8                      Meditation           0.5038\n",
       "9                   Anxiety_Score           0.5037\n",
       "10          Physical_Activity_Hrs           0.5033\n",
       "11        Life_Satisfaction_Score           0.5030\n",
       "12       Education_Level_Master's           0.5029\n",
       "13                        Therapy           0.5025\n",
       "14              Self_Esteem_Score           0.5014\n",
       "15              Chronic_Illnesses           0.5009\n",
       "16      Employment_Status_Student           0.4993\n",
       "17               Loneliness_Score           0.4992\n",
       "18                            Age           0.4980\n",
       "19          Education_Level_Other           0.4978"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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h5sB8zfffGPs8/T0NPfo0cOi3IsvvmjOnz//Q/t6/7ktW7ZMt//B38esxJORChUqmEuUKGH+888/jX3R0dFm4C9fR3t7+3T9NpvN5l69epnd3d3Nf/zxh8X+Tp06mZ2dndPV/6CIiIh0vyvHjx83A+apU6c+NE6z2Wz+7LPPzID522+/tdh/7do1c/Xq1c0BAQHmq1evmrdt22YGzNu2bTNfuXLF7O/vb65Ro0a6OseMGWMGzBcvXrTYv2/fPjNgjoiIMPZVrlzZXKRIEfOlS5eMfQcPHjRbWVmZu3fvbuzr3r272crKyrxv37508aelpaXbFxgY+ND/djzJ35vIP0m3BYqIiGHDhg24ubnRuXNnY1++fPkYPHgwycnJbN++PUfievXVV/nggw948cUXCQ0NZebMmSxevJgTJ04wZ86cbG+vTZs2FjMdNWvWpFatWmzYsOGh54waNYqqVavSvn37DI9fv36dP/74g5iYGObPn0/RokXx9fW1KHPz5k3++OMPi+3WrVvp6rKzszN+TkxM5OrVq9SvX58ffvghw7Znz55NeHg4s2bNonXr1hbH7vXptddes9h/b4Zp/fr1FvtTUlL4448/SEhIYMuWLXzzzTc0adIkw3b/iqzGc7/z589z+PBhunfvbrHwSWBgIBUqVEhXPqvX8X5ms5lVq1YREhKC2Wy2GLOgoCCuXr2aqXrutf3HH39w+vRpZsyYQZ48eQgMDMwwznu/I8899xxAujby58/PV199xeXLl+nQoQN37twB4M6dO3Ts2JHExETWrl1rUef9Ll++bNGXq1evWhy/cOECMTExhIWFUbBgQWN/xYoVadasmTF+aWlprFmzhpCQEKpXr56unQdvBc2qx/29ieQU3RYoIiKGs2fPUqZMGaysLP/t7d5KgmfPns1ynb/99pvFZ2dn54d+scuKF198kWHDhrF161beeOONJ67vfmXKlEm3z9fXl88//zzD8jt37uSrr74iKirqoc8fvfPOO0yZMsWoPzo6GkdHR4syCxcuZOHChenO9fT0tPi8bt06JkyYQExMjMVzSBl9Yd24cSP79+8H7n5xftDZs2exsrLCx8fHYr+bmxsuLi7pxnzZsmUsW7bM+FyjRo10zwg9iazG8+C5QLpz7+17MBHJynV80MWLF7ly5QofffQRH330UYZlEhISgMf/DVStWtX4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5lKlSpnz5ctn9vDwMI8aNcp88+ZNi3M9PT0txqhw4cLm//znP+bdu3eni/tBmV2KPSvxPMyyZcvM5cqVM9vY2JjLly9vXrt2rTk0NNRcrlw5i3KZvY4///yzuUGDBmY7OzszYLEs+++//24eOHCg2cPDw5wvXz6zm5ubuUmTJuaPPvrosXHe+125t1lbW5t9fHzMb7/9tkVff/nlF3Pbtm3NLi4uZmdnZ3P79u3N58+ftxjf48ePm21sbMyTJk2yaOP+pdjvN3HiRLONjY35+PHjZrM5a0uxm81m89atW81169Y129nZmZ2cnMwhISHmo0ePpuvj2bNnzd27dze7urqabWxszN7e3uaBAweaU1JS0pV93FLsmfl7E8lpJrP5L8zLioiI5EJxcXGUKlWKd999l+HDh+d0OJKNKleujKura7rnn0REspOeuRIREZFc49atW9y+fdtiX3R0NAcPHqRhw4Y5E5SI/GvomSsRERHJNX799VeaNm1K165dKVasGD///DPz5s3Dzc2Nfv365XR4IpLLKbkSERGRXKNAgQJUq1aNBQsWcPHiRezt7WnZsiWTJ0+mUKFCOR2eiORyeuZKREREREQkG+iZKxERERERkWyg5EpERERERCQb6JkrkRyUlpbG+fPncXR0xGQy5XQ4IiIiIvIAs9nMn3/+SbFixbCyevTclJIrkRx0/vx5PDw8cjoMEREREXmMc+fOUaJEiUeWUXIlkoMcHR0BOHv2LC4uLjkbjGSLtLQ0Ll68iKur62P/dUuefhrP3EXjmftoTHOXp3U8k5KS8PDwML63PYqSK5EcdO9WQCcnJ5ycnHI4GskOaWlp3Lx5Eycnp6fq/xjkr9F45i4az9xHY5q7PO3jmZlHOJ6+qEVERERERJ5BSq5ERERERESygZIrERERERGRbKDkSkREREREJBsouRIREREREckGSq5ERERERESygZIrERERERGRbKDkSkREREREJBsouRIREREREckGSq5ERERERESygZIrERERERGRbKDkSkREREREJBsouRIREREREckGSq5ERERERESyQd6cDkBEoPK4zWBjn9NhSDawwoxfATOxiSbSMOV0OPKENJ65i8Yz99GY5i6ZHc+4yS3/waiyRjNXIiIiIiIi2UDJlYiIiIiISDZQciUiIiIiIpINlFyJiIiIiIhkAyVXuUDD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F/dzcnKiY8eOzJ8/n+XLl7Nq1SouX76crpyfnx8HDx60WLRj165dWFlZUbZs2Uf2+Z7M/J6IiIiIyL9XjiRXefLkITY2lqNHj1rcggXg6OjI8OHDGTp0KIsXL+bUqVP88MMPfPDBByxevBiAfv36ceLECUaMGMGxY8f49NNPLRYdyMiYMWP47LPPGDNmDLGxsRbPaJUsWRJra2s++OADTp8+zdq1a9O9u8rT0xOTycS6deu4ePGixSpz95QpU4bWrVvTp08fdu7cycGDB+natSvFixendevWT3DF/k+XLl0wmUx0796dAwcOcPLkSRYtWsTMmTMZNmwYADdu3GDQoEFER0dz9uxZdu3axb59+4znpF5//XW+++47Bg0aRExMDCdOnODLL7/M1IIWJpOJhQsXcvToUUJDQ9m7dy/x8fGsWLGCkJAQateubTzLFRgYSIMGDQgNDWXLli3GLNPXX38N3H3+aN++fQwYMIBDhw7x888/M3fuXP744w8KFChAoUKF+Oijjzh58iTffPONxbNKANOnT+ezzz7j559/5vjx46xYsQI3N7cMn4nr0qULtra29OjRg59++olt27bxyiuv0K1bN+N5q8fJzO+JiIiIiPx75UhyBTzyeZPx48czevRowsPD8fPzIzg4mPXr11OqVCng7pfcVatWsWbNGipVqsS8efOYNGnSI9tr2LAhK1asYO3atVSuXJnGjRsbs1+urq5ERkayYsUK/P39mTx5Mu+9957F+cWLF2fcuHG88cYbFC1a9KGJSEREBNWqVaNVq1bUrl0bs9nMhg0b0t1u9le5uLiwY8cObt26xfPPP0/lypWZNWsW06dP5+WXXwbuJq+XLl2ie/fu+Pr60qFDB5o3b24s5lGxYkW2b9/O8ePHqV+/PlWqVOHtt9+mWLFimYqhTp067Nmzhzx58tC8eXN8fHwYNWoUPXr0YMuWLRa3b65atYoaNWrQuXNn/P39GTlypDH75+vry+bNmzl48CA1a9akdu3afPnll+TNmxcrKyuWLVvGgQMHKF++PEOHDuXdd9+1iMPR0dFYFKNGjRrExcWxYcOGdKsYwt3n3DZt2sTly5epUaMG7dq1o0mTJsyePTvT1z4zvyciIiIi8u9lMmf2YR8RyXZJSUk4OzvjOWQ52Ng//gR56llhxq+AmdhEE2mYcjoceUIaz9xF45n7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EREREZECsLgiIiIiIiJSABZXRERERERECsDiioiIiIiISAFYXBERERERESkAiysiIiIiIiIFYHFFRERERESkACyuiIiIiIiIFIDFFRERERERkQKoKzsAoveZKIoAgLy8PKip8d86VIFUKsXjx48hkUiYUxXAfKoW5lP1MKeqpbbmMy8vD8D//m4rD4srIiV68OABAMDGxkbJkRARERFReR4/fgxDQ8Ny27C4IlIiY2NjAEBmZmaFv6xUN+Tl5cHKygp//vknDAwMlB0OvSPmU7Uwn6qHOVUttTWfoiji8ePHsLS0rLAtiysiJSoe8jY0NKxV/yNC787AwIA5VSHMp2phPlUPc6paamM+K/uP4LVnMiMREREREVEdxuKKiIiIiIhIAVhcESmRlpYWgoKCoKWlpexQSEGYU9XCfKoW5lP1MKeqRRXyKYiVWVOQiIiIiIiIysWRKyIiIiIiIgVgcUVERERERKQALK6IiIiIiIgUgMUVERERERGRArC4Iqpm//73v2FrawuJRIIOHTrgwoUL5bbft28fWrRoAYlEglatWuHo0aM1FClVVlVyevXqVQwePBi2trYQBAFr1qypuUCpUqqSz82bN6Nr166oX78+6tevj169elX4O001qyr5PHjwINzd3WFkZARdXV20adMG33//fQ1GS5VR1f8fLRYVFQVBEDBgwIDqDZCqpCr5jIyMhCAIcptEIqnBaKuOxRVRNdq7dy9mzJiBoKAg/Pbbb2jdujW8vb2RnZ1davtz585hxIgRGDduHC5duoQBAwZgwIABuHLlSg1HTmWpak6fPn0KOzs7hIeHw9zcvIajpYpUNZ9xcXEYMWIETp8+jfPnz8PKygp9+vTB3bt3azhyKk1V82lsbIyFCxfi/Pnz+P333zFmzBiMGTMGx48fr+HIqSxVzWmxjIwMzJo1C127dq2hSKky3iafBgYGyMrKkm1//PFHDUb8FkQiqjbt27cXp0yZIvtcVFQkWlpaiitWrCi1/dChQ8V+/frJ7evQoYM4ceLEao2TKq+qOX2djY2NuHr16mqMjqrqXfIpiqL48uVLUV9fX9y+fXt1hUhV8K75FEVRdHV1FRctWlQd4dFbeJucvnz5UuzUqZO4ZcsWcfTo0aKfn18NREqVUdV8btu2TTQ0NKyh6BSDI1dE1eTFixdITExEr169ZPvU1NTQq1cv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",
      "text/plain": [
       "<Figure size 800x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sparse_model = SparseGateClassifier(input_dim=X_tr.shape[1], hidden_dims=(64, 32), dropout=0.15)\n",
    "sparse_model, sparse_history = train_model(\n",
    "    sparse_model, X_tr, y_tr, X_val, y_val,\n",
    "    n_epochs=180, lr=1e-3, weight_decay=1e-4, l1_gate=0.02, batch_size=64, patience=25\n",
    ")\n",
    "\n",
    "gate_values = sparse_model.gate_values().detach().cpu().numpy()\n",
    "importance_df = pd.DataFrame({\n",
    "    'feature': feature_names,\n",
    "    'gate_importance': gate_values\n",
    "}).sort_values('gate_importance', ascending=False).reset_index(drop=True)\n",
    "\n",
    "display(importance_df.head(20).round(4))\n",
    "\n",
    "plt.figure(figsize=(8, 5))\n",
    "top_plot = importance_df.head(15).iloc[::-1]\n",
    "plt.barh(top_plot['feature'], top_plot['gate_importance'])\n",
    "plt.title('Топ-15 признаков по gate-важности')\n",
    "plt.xlabel('gate importance')\n",
    "plt.grid(True, axis='x', alpha=0.3)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "13b336c9",
   "metadata": {},
   "source": [
    "## Отбор признаков\n",
    "\n",
    "Порог отбора определяется по распределению gate-важностей. Сохраняются признаки, превосходящие 75-й процентиль важности. Если таких признаков слишком мало, дополнительно оставляется минимум 8 наиболее важных признаков."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "98414518",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Порог важности: 0.5038\n",
      "Число отобранных признаков: 8\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>feature</th>\n",
       "      <th>gate_importance</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Financial_Stress</td>\n",
       "      <td>0.5078</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Medication_Use_Occasional</td>\n",
       "      <td>0.5078</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Family_History_Mental_Illness</td>\n",
       "      <td>0.5076</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Sleep_Hours</td>\n",
       "      <td>0.5064</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Work_Stress</td>\n",
       "      <td>0.5062</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Gender_Female</td>\n",
       "      <td>0.5056</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Social_Support_Score</td>\n",
       "      <td>0.5040</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>Substance_Use_Occasional</td>\n",
       "      <td>0.5039</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                         feature  gate_importance\n",
       "0               Financial_Stress           0.5078\n",
       "1      Medication_Use_Occasional           0.5078\n",
       "2  Family_History_Mental_Illness           0.5076\n",
       "3                    Sleep_Hours           0.5064\n",
       "4                    Work_Stress           0.5062\n",
       "5                  Gender_Female           0.5056\n",
       "6           Social_Support_Score           0.5040\n",
       "7       Substance_Use_Occasional           0.5039"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "importance_threshold = float(importance_df['gate_importance'].quantile(0.75))\n",
    "selected_df = importance_df[importance_df['gate_importance'] >= importance_threshold].copy()\n",
    "\n",
    "min_features = 8\n",
    "if selected_df.shape[0] < min_features:\n",
    "    selected_df = importance_df.head(min_features).copy()\n",
    "\n",
    "selected_features = selected_df['feature'].tolist()\n",
    "selected_idx = [feature_names.index(f) for f in selected_features]\n",
    "\n",
    "print('Порог важности:', round(importance_threshold, 4))\n",
    "print('Число отобранных признаков:', len(selected_features))\n",
    "display(selected_df.round(4))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4af6daec",
   "metadata": {},
   "source": [
    "## Нейросеть по отобранным признакам\n",
    "\n",
    "Используется та же схема архитектуры: два скрытых слоя `64 -> 32`, ReLU и dropout. Меняется только размер входного слоя, соответствующий отобранному подмножеству признаков."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "cbd57a99",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Метрики модели по отобранным признакам:\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>accuracy</th>\n",
       "      <th>precision</th>\n",
       "      <th>recall</th>\n",
       "      <th>f1</th>\n",
       "      <th>roc_auc</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.7</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.5254</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   accuracy  precision  recall   f1  roc_auc\n",
       "0       0.7        0.0     0.0  0.0   0.5254"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAm4AAAGJCAYAAAAzAb+0AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAlhBJREFUeJzs3XlcVNX7wPHPzADDjiIMu+K+44IbmmuamWnaZmmupaWYJi3mr+9XW75pZZktlmm5tFu2aGku4ZaK4VpugKiAomwi+87c3x8jo+MgIoIz4vN+veaFc+fce899ZhgfzrnnHJWiKApCCCGEEMLqqS1dASGEEEIIUTmSuAkhhBBC3CYkcRNCCCGEuE1I4iaEEEIIcZuQxE0IIYQQ4jYhiZsQQgghxG1CEjchhBBCiNuEJG5CCCGEELcJG0tXQAghxO2noKCA9PR0bGxs0Ol0lq6OEHcMaXETQghRKX/++SdDhw6lTp06ODg44Ofnx/Tp0y1dLSHuKNLiVkuNGzeO1atXk5OTY+mqCCFqgU8++YRnn32Wu+66iw8++AA/Pz8AGjRoYOGaCXFnUclapbXHhQsX+Oabb/jrr7/YsWMHaWlpDBgwgA4dOvDoo4/SoUMHS1dRCHEbOnHiBG3btmX8+PF88sknqFQqS1dJiDuWJG61xPfff8/EiRPJyckhMDCQ4uJikpKS6NChA//88w/FxcWMHTuWJUuWYGdnZ+nqCiFuI88++yy//fYbJ06cwNbW1tLVEeKOJve41QK7du3iiSeewNvbm127dnH69Gn69++Pvb09e/fu5dy5czz++OOsXLmSGTNmAKAoCoGBgTzwwANmxysoKMDNzY2nn34agG3btqFSqVi9erVZWWdnZ8aNG2d8vmLFClQqFXFxccZtR48epW7dutx///2UlJSYlNu3b5/J8dLS0lCpVLz66qsm28vbNn/+fFQqFX369DHZfurUKR555BF8fX1Rq9WoVCpUKhVt2rSpKIzG81zrERgYaFI2NzeX559/noCAALRaLc2bN+fdd9/lyr+FKjre1XUvLCxkzpw5NGnSBK1WS0BAAC+99BKFhYVmdZw6dSrffPMNzZs3x97enuDgYHbs2GFS7tVXX0WlUpGWllbhNefl5REVFXXdcgB9+vRBpVIxbNgws9eefvrpcuNcmTiVKfuslfe4WmJiIhMmTMDLywutVkvr1q1ZtmxZufUeN25cuce88jM1btw4nJ2drxuDGzl+2WPbtm0m5X/88UeCg4NxcHDAw8ODJ554gsTExEqdq+zz7e7ujqOjI926dWPdunXG1yuKYXnXffDgQQYNGoSrqyvOzs7cfffd7Nmzx+Sce/bsITg4mClTphjj3aZNG5YuXWpSLi4uDpVKxbvvvsv7779PgwYNcHBwoHfv3hw5csSk7L///su4ceNo1KgR9vb2eHt7M2HCBC5cuGBS7lqf43379qFSqVixYoXJ+1Dee7h69Wqz96FPnz4VfieUXcvVx1epVLRv396s/Lx581CpVJX6DJX9Hl3rceX3Z2BgIPfffz+bNm2iffv22Nvb06pVK37++WeTY5b33avX6wkKCjK7jldffZVWrVrh7OyMq6sr3bp149dffzWrY3nxeffdd83Os2bNGgYPHoyvry9arZbGjRvzxhtvUFpaanbMq7+v33zzTdRqNd9++61x219//cUjjzxC/fr1jd+FM2bMID8/32Tf6no/bjdyj1st8NZbb6HX6/n+++8JDg42e93Dw4Mvv/ySY8eO8dlnnzFnzhx0Oh1PPPEE77zzDunp6bi7uxvL//bbb2RlZfHEE0/cdN3OnDnDvffeS4sWLfjhhx+wsamej1xGRgbz5s0z215aWsrQoUOJj4/nueeeo1mzZqhUKt58881KH3vAgAGMGTPGZNt7773HxYsXjc8VRWHo0KFs3bqVJ598kvbt27Nx40ZefPFFEhMTef/99wH46quvjPv89ddfLFmyhPfffx8PDw8AvLy8AMMX7NChQ9m5cyeTJk2iZcuWHD58mPfff5+YmBizL9Xt27ezatUqpk2bhlar5ZNPPuHee+8lMjKyUgnqlSIjI+nbty9z5swxS47LY29vz7p160hJSTGOJszPz2fVqlXY29ublK1snK42bdo0OnfuDMCXX37J5s2bTV5PTk6mW7duxiTW09OTP/74gyeffJKsrCyee+45s2N6eHiYnG/06NHXvdYbodVq+fzzz0227d27lw8//NBk24oVKxg/fjydO3dm3rx5JCcn88EHH7Br1y4OHjxInTp1rnmO5ORkunfvTl5eHtOmTaNevXqsXLmSoUOHsnr1aoYPH07Lli1NPndLlizh+PHjJtceFBQEGP6o6tmzJ66urrz00kvY2try2Wef0adPH7Zv307X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qXtdcnNzjcdycHCgfv36fPDBB9fdr7LKrrd58+Zmr7Vo0eK6n5v4+Phy963K5y41NZW8vLxrHk+v13PmzBnAcF9ls2bNzBLzsvNeeb8TXPvzeWW59PR0pk+fjpeXFw4ODnh6etKwYUOAcpOyss9x2aN///7lXteV72HZY8KECeWWjYqKMnm/mzdvbnKv1bUMHjwYGxsb1qxZQ25uLj/88IPxs1cTmjRpYvaHdNl3w9WxB0P85s6dS1hYmPEP9quFh4fj6elJkyZN+Pzzz1m9erUxcS5zZXzKHuUlgkePHmX48OG4ubnh6uqKp6en8Vabq9/LxMREBg8eTG5uLhcuXCi3SzwhIYFx48bh7u6Os7Mznp6e9O7du9zjwa1/PyxN7nGrBe6//34WLVrEF198wZNPPllumeTkZFauXImnp6fJL+djjz3GjBkz+Oabb/i///s/vv76azp16lTul/ns2bPp2bOnybYhQ4aUe74DBw6wZs0apk6dyqRJk9iyZctNXOFlx48fZ8WKFXz99dfljm5zdnZm1apVTJgwwaRVAqB169bVUoeaoNfradu2LQsWLCj39YCAgCof+6effsLV1ZW8vDx++eUX3nzzTeM9TVXl6enJkCFDWL58OV5eXvTo0YMmTZpU+Xhlyv4TunogyJX0ej0ATzzxBGPHji23TNk9XGWSkpIqNd+Yvb09v/32G2BoOVi2bBnPPfccPj4+PProo5W4gtrpyhaQ6vLoo4+ye/duXnzxRdq3b4+zszN6vZ57773X+B5fqexzXCYmJobQ0FCzcle+h2X++usvXn/9dbOygYGBxgEWFy5c4MMPP2T06NE0atQIb2/va9bd1taWJ554guXLl5OXl0e9evXo16+fyb2FlvT222+jVqt58cUXzQZ7lOncuTObN2/m4sWLfP3110yYMIGAgAA6depkLHNlfMr8+OOPLFmyxPg8IyOD3r174+rqyuuvv07jxo2xt7fnwIEDzJw50+y9jI2NpWPHjrz//vuMHj2alStXmvwel5aWMmDAANLT05k5cyYtWrTAycmJxMRExo0bV+5nw9rfj+omiVst8J///Idff/2VyZMnExUVxciRI40tKgkJCYSHhzN79mwuXrzIt99+a9Jl5O7uzuDBg/nmm28YNWoUu3btYuHCheWep23btmZ/5Wo0mnLLfv755wwdOhSNRsP9999fYVJ5I2bNmkX79u0ZMWLENcsMGDCAd955h1GjRrF48WIaNWrE888/f9OtTFdq0KABf/75J9nZ2SatSWXdAjc6KWnjxo35559/uPvuuyt1U/aJEyfMtsXExODo6Iinp6fJ9l69ehkHQwwdOpRdu3axYcOGm0rcwNACO2rUKNzc3K7ZzXqjcdq3bx/e3t74+/tf87yenp64uLhQWlp6zVaXKxUXFxMbG8u999573bIajcbkmIMHD8bd3Z0NGzZUS+JWdr3R0dHGbvAy0dHR1/3cNGjQgOjoaLPtVfnceXp64ujoeM3jqdVq4x8MDRs25MCBA+j1epNWt7LzXp1oX+vzWVbu4sWLhIeH89prrzF79uwK9ytz5ecYuOYgjqvfQzAkF+VxcnIyKduzZ0/8/PzYtGmT2QClq02YMIF27dpx5swZxo4dW6ODKWJjY1EUxeQcMTExgHnsz507xwcffMC8efNwcXG5ZuJWr14947U/9NBDNG/enPnz57Nq1SpjmavjA3Do0CGT59u2bePChQv8/PPP9OrVy7j99OnT5Z7Xx8eH9evX4+XlxZo1a3j++ee57777jN9bhw8fJiYmhpUrV5q8B1cPULrarXw/LE26SmsBb29vIiIiGDRoEO+99x4dO3bk66+/Jjc3lwYNGjBhwgQcHBz47bffePzxx832Hz16NMeOHePFF19Eo9Hw2GOP3XSdylrmBg8ezGOPPcaLL75IcnLyTR0zIiKCNWvW8NZbb1X4S3nmzBmmTJnCtGnTmDRpEv3796du3bo3de6r3XfffZSWlvLxxx+bbH///fdRqVQMGjToho736KOPkpiYaPbXLRhGbF7dJR0REWFyH9CZM2dYs2YN99xzzzWTaTDcH6YoikmZG5kO5Er33nsvTk5OpKenXzOpuZE4Xbhwga1btzJ06NAKz6vRaHjooYf46aefzKaYAMy6itesWUN+fr5ZolQZyqUpSyqK6Y3o1KkTOp2OxYsXm0zz8scff3D8+HEGDx5c4f733XcfkZGRREREGLfl5uayZMkSAgMDadWqVaXrotFouOeee1izZo1Jd1tycjLffvstd911l7GF67777iMpKcnkP3W9Xs8HH3yAVqs1+8/9119/NZneJDIykr///tv4fpfFU7lqSphr/dF4q5S15lTm/W7dujXBwcEcO3as3NsEqtO5c+f45Zdf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devW4cqVK/j444+VY3h4eCAnJwdnz57F9u3b8dlnn+HDDz981C+biDSs8/+1iIh0JDIyEhcvXrRba2trg4uLi/LYy8sL/v7+ymOj0ajcr6qqwsGDB1FUVISnn34aALB7924MGzYM+/fvx8svvwx3d3fs2rULU6ZMgYeHB7Zt24b8/HwMHDhQOc4777yj3B8xYgTWrFmD3NxcvPnmm4/8NRORNjG4EZHuHTp0yOGSZGZmJnbt2nVfzz937hz69u2LuLg4ZW3w4MEIDw/HuXPnlDWLxYI1a9bgvffew9q1azFx4kS74+zduxdZWVmoqanB9evXcfv2bbtgR0TE4EZEumc2mx3WampqEBYW9kj/HZvNhqKiIri4uKC6utpuW3FxMebOnYuNGzciMTERnp6eyM3NxQcffPBIayAibeN73IhIt/766y9YrVaH9ZKSEuTn52POnDn3dZzHHnsMt2/fxqlTp5S1pqYmVFZWIiIiQlnbsmULzp8/j8LCQnz//ffIzs5Wtp04cQJmsxnr1q3DE088gdDQUIfLt0REDG5EpFt1dXUYO3YsPv/8c1RXV+PChQv44osvkJycjEmTJtl9avReQkNDkZycjMWLF+P48eP49ddfMW/ePAwdOhTJyckAgNLSUqxfvx47d+7EhAkTsHXrVqxYsQIXLlxQjlFXV4fc3FzU1NQgKysLeXl53fXSiUijGNyISLeioqKQkZGBnJwcPPXUU4iMjERmZiZSU1Nx+PBhuw8gdCU7OxuxsbF44YUXYLFYICI4dOgQXF1d0dLSgnnz5mHhwoWYPn06AGDJkiV49tln8eqrr6K9vR0vvvgiVq1ahdTUVIwdOxYnTpxAenp6d710ItIofgEvERERkUbwjBsRERGRRjC4EREREWkEgxsRERGRRjC4EREREWkEgxsRERGRRjC4EREREWkEgxsRERGRRjC4EREREWkEgxsRERGRRjC4EREREWkEgxsRERGRRvwHcrdFwLZ0t0cAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 700x400 with 1 Axes>"
      ]
     },
     "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>pred_0</th>\n",
       "      <th>pred_1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>true_0</th>\n",
       "      <td>168</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>true_1</th>\n",
       "      <td>72</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        pred_0  pred_1\n",
       "true_0     168       0\n",
       "true_1      72       0"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "X_tr_sel = X_tr[:, selected_idx]\n",
    "X_val_sel = X_val[:, selected_idx]\n",
    "X_test_sel = X_test[:, selected_idx]\n",
    "\n",
    "selected_model = DenseClassifier(input_dim=X_tr_sel.shape[1], hidden_dims=(64, 32), dropout=0.15)\n",
    "selected_model, selected_history = train_model(\n",
    "    selected_model, X_tr_sel, y_tr, X_val_sel, y_val,\n",
    "    n_epochs=140, lr=1e-3, weight_decay=1e-4, l1_gate=0.0, batch_size=64, patience=20\n",
    ")\n",
    "\n",
    "selected_metrics, selected_preds, selected_probs = evaluate_binary(selected_model, X_test_sel, y_test)\n",
    "print('Метрики модели по отобранным признакам:')\n",
    "display(pd.DataFrame([selected_metrics]).round(4))\n",
    "\n",
    "plt.figure(figsize=(7, 4))\n",
    "plt.plot(selected_history['epoch'], selected_history['train_loss'], label='train')\n",
    "plt.plot(selected_history['epoch'], selected_history['val_loss'], label='val')\n",
    "plt.title('Функция потерь: модель по отобранным признакам')\n",
    "plt.xlabel('Эпоха')\n",
    "plt.ylabel('Loss')\n",
    "plt.legend()\n",
    "plt.grid(True, alpha=0.3)\n",
    "plt.show()\n",
    "\n",
    "cm_sel = confusion_matrix(y_test, selected_preds)\n",
    "display(pd.DataFrame(cm_sel, index=['true_0', 'true_1'], columns=['pred_0', 'pred_1']))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b0758549",
   "metadata": {},
   "source": [
    "## Сравнение моделей\n",
    "\n",
    "Сравниваются метрики точности на тестовой выборке для базовой нейросети и модели, обученной только на признаках, отобранных разреженной нейросетью."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "62d57811",
   "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>model</th>\n",
       "      <th>accuracy</th>\n",
       "      <th>precision</th>\n",
       "      <th>recall</th>\n",
       "      <th>f1</th>\n",
       "      <th>roc_auc</th>\n",
       "      <th>n_features</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Базовая нейросеть (все признаки)</td>\n",
       "      <td>0.7</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.5096</td>\n",
       "      <td>32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Нейросеть по отобранным признакам</td>\n",
       "      <td>0.7</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.5254</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               model  accuracy  precision  recall   f1  \\\n",
       "0   Базовая нейросеть (все признаки)       0.7        0.0     0.0  0.0   \n",
       "1  Нейросеть по отобранным признакам       0.7        0.0     0.0  0.0   \n",
       "\n",
       "   roc_auc  n_features  \n",
       "0   0.5096          32  \n",
       "1   0.5254           8  "
      ]
     },
     "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>accuracy</th>\n",
       "      <th>precision</th>\n",
       "      <th>recall</th>\n",
       "      <th>f1</th>\n",
       "      <th>roc_auc</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>model</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Базовая нейросеть (все признаки)</th>\n",
       "      <td>0.7</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.5096</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Нейросеть по отобранным признакам</th>\n",
       "      <td>0.7</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.5254</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                   accuracy  precision  recall   f1  roc_auc\n",
       "model                                                                       \n",
       "Базовая нейросеть (все признаки)        0.7        0.0     0.0  0.0   0.5096\n",
       "Нейросеть по отобранным признакам       0.7        0.0     0.0  0.0   0.5254"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Лучшая модель по F1 на тесте: Нейросеть по отобранным признакам\n",
      "Число признаков в лучшей модели: 8\n"
     ]
    }
   ],
   "source": [
    "comparison = pd.DataFrame([\n",
    "    {'model': 'Базовая нейросеть (все признаки)', **full_metrics, 'n_features': X_test.shape[1]},\n",
    "    {'model': 'Нейросеть по отобранным признакам', **selected_metrics, 'n_features': X_test_sel.shape[1]}\n",
    "]).round(4)\n",
    "\n",
    "display(comparison)\n",
    "\n",
    "delta = comparison.set_index('model')[['accuracy', 'precision', 'recall', 'f1', 'roc_auc']]\n",
    "display(delta)\n",
    "\n",
    "best_by_f1 = comparison.sort_values(['f1', 'accuracy', 'roc_auc'], ascending=False).iloc[0]\n",
    "print('Лучшая модель по F1 на тесте:', best_by_f1['model'])\n",
    "print('Число признаков в лучшей модели:', int(best_by_f1['n_features']))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f1287d70",
   "metadata": {},
   "source": [
    "## Краткая интерпретация отбора признаков\n",
    "\n",
    "Обоснование выбора признаков строится на gate-важностях разреженной нейросети: признаки с максимальными значениями gate-весов сильнее сохраняются в модели при L1-регуляризации, то есть дают наибольший вклад в снижение ошибки классификации. Поэтому для итоговой модели используются именно они."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "fdf3222b",
   "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>rank</th>\n",
       "      <th>feature</th>\n",
       "      <th>gate_importance</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>Financial_Stress</td>\n",
       "      <td>0.5078</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>Medication_Use_Occasional</td>\n",
       "      <td>0.5078</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>Family_History_Mental_Illness</td>\n",
       "      <td>0.5076</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>Sleep_Hours</td>\n",
       "      <td>0.5064</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>Work_Stress</td>\n",
       "      <td>0.5062</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>6</td>\n",
       "      <td>Gender_Female</td>\n",
       "      <td>0.5056</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>7</td>\n",
       "      <td>Social_Support_Score</td>\n",
       "      <td>0.5040</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>8</td>\n",
       "      <td>Substance_Use_Occasional</td>\n",
       "      <td>0.5039</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   rank                        feature  gate_importance\n",
       "0     1               Financial_Stress           0.5078\n",
       "1     2      Medication_Use_Occasional           0.5078\n",
       "2     3  Family_History_Mental_Illness           0.5076\n",
       "3     4                    Sleep_Hours           0.5064\n",
       "4     5                    Work_Stress           0.5062\n",
       "5     6                  Gender_Female           0.5056\n",
       "6     7           Social_Support_Score           0.5040\n",
       "7     8       Substance_Use_Occasional           0.5039"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Удобная таблица для последующего текстового анализа после выполнения ноутбука\n",
    "selected_with_rank = selected_df.copy()\n",
    "selected_with_rank.insert(0, 'rank', np.arange(1, len(selected_with_rank) + 1))\n",
    "display(selected_with_rank.round(4))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "38c2cbed",
   "metadata": {},
   "source": [
    "Итог\n",
    "\n",
    "Построена базовая нейросеть по всем признакам и модель после отбора признаков с помощью разреженной нейросети. Отбор сократил число переменных с 32 до 8.\n",
    "\n",
    "Точность моделей на тестовой выборке совпадает (accuracy = 0.70), однако модель по отобранным признакам имеет немного более высокий ROC-AUC (0.525 против 0.510).\n",
    "\n",
    "Следовательно, отбор признаков оказался эффективным, поскольку позволяет существенно сократить число переменных без потери качества модели."
   ]
  }
 ],
 "metadata": {
  "language_info": {
   "name": "python"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
