Короткий ноутбук для линейного дискриминантного анализа (LDA) с пошаговым отбором признаков (включение/исключение), расчетом ковариационных матриц и расстояний Махаланобиса. Вход — Excel data.xlsx, выход — output.xlsx с результатами классификации.
- Читает Excel (
INPUT_PATH, по умолчаниюdata.xlsx) и берет первые 85 строк. - Стандартизирует числовые признаки X1..X9 (все колонки, кроме первой).
- Строит LDA, вычисляет ковариационную матрицу, средние по классам, расстояния Махаланобиса.
- Делает пошаговый отбор признаков: с включением (forward) и с исключением (backward).
- Сохраняет результаты в
OUTPUT_PATH(по умолчаниюoutput.xlsx):- Train sample (класс из обучающей выборки)
- Result Lda (полная модель)
- Result forward (модель с включением)
- Result backward (модель с исключением)
- Python 3.10+
- Зависимости: pandas, numpy, scipy, scikit-learn, openpyxl
Рекомендуется установить из requirements.txt.
# 1) Создать и активировать виртуальное окружение
python3 -m venv .venv
source .venv/bin/activate
# 2) Обновить pip и установить зависимости
pip install --upgrade pip
pip install -r requirements.txt
# 3) Запустить ноутбук (любой способ)
# Вариант A: открыть main.ipynb в VS Code и выполнить ячейки
# Вариант B (если нужно):
# pip install jupyterlab
# jupyter lab# 1) Создать и активировать виртуальное окружение (PowerShell)
py -m venv .venv
.venv\Scripts\Activate.ps1
# 2) Обновить pip и установить зависимости
python -m pip install --upgrade pip
pip install -r requirements.txt
# 3) Запуск ноутбука
# Откройте main.ipynb в VS Code и выполните ячейки
# или установите JupyterLab и запустите его:
# pip install jupyterlab
# jupyter labПримечание: в классической CMD активация окружения — .venv\Scripts\activate.bat.
INPUT_PATH: путь к входному Excel (по умолчаниюdata.xlsx).OUTPUT_PATH: путь для сохранения результатов (по умолчаниюoutput.xlsx).CNT_ENTER: число признаков в forward-модели.CNT_REMOVE: число признаков, исключаемых в backward-процедуре.TRAIN_SAMPLE: словарь вида{класс: [индексы_строк]}— обучающая выборка.- Индексы — это индексы DataFrame после чтения файла (0-based). Убедитесь, что указанные номера существуют.
- Первая колонка — идентификатор/метка (не стандартизируется).
- Далее должны идти числовые признаки
X1..X9. - Используются первые 85 строк файла.
Минимальный пример структуры (заголовки):
<ID-or-Name> X1 X2 ... X9
...
В output.xlsx попадут исходные признаки X1..X9 и дополнительные столбцы:
Train sample— класс для строк, попавших в обучающую выборку.Result Lda— класс по полной LDA-модели.Result forward— класс по модели с включением признаков.Result backward— класс по модели с исключением признаков.
- Откройте Colab → File → Upload notebook и выберите
main.ipynb. - Загрузите
data.xlsxв среду:- Слева вкладка Files → Upload → выберите
data.xlsx, он окажется в/content/data.xlsx; или - Смонтируйте Google Drive:
from google.colab import drive drive.mount('/content/drive') # затем используйте путь вида '/content/drive/MyDrive/путь/к/data.xlsx'
- Слева вкладка Files → Upload → выберите
- Установите (при необходимости) зависимости в первой ячейке Colab:
# Выполните только если библиотек не хватает !pip -q install openpyxl scikit-learn scipy pandas
- В первой ячейке ноутбука обновите пути:
INPUT_PATH = '/content/data.xlsx'(или путь в Google Drive)OUTPUT_PATH = '/content/output.xlsx'
- Выполните все ячейки.
FileNotFoundError: проверьтеINPUT_PATHи расположениеdata.xlsx.ModuleNotFoundError: установите зависимости (см. выше). В Colab выполните ячейку с!pip.- Индексы
TRAIN_SAMPLEне найдены: проверьте, что они соответствуют индексам DataFrame (0-based) и попадают в первые 85 строк.