Анализ и визуализация данных на языке R

Метод k ближайших соседей в R

В данной лекции рассматривается практическая интеграция языка программирования R и платформы визуализации Power BI. Автор демонстрирует, как использовать алгоритмические возможности R (в частности, алгоритм k-ближайших соседей, kNN) внутри Power BI для решения задачи медицинской диагностики. Лекция охватывает полный цикл работы: от установки необходимых пакетов (класс, RTools) и подготовки данных (нормализация, разделение на обучающую и тестовую выборки) до написания R-скрипта, выполнения предсказаний и анализа точности модели с помощью визуальных инструментов Power BI.

Основные мысли

1. Бесшовная интеграция R и Power BI: Power BI позволяет выполнять R-скрипты внутри себя, объединяя вычислительные возможности R с мощными инструментами визуализации Power BI.
2. Практическое применение kNN: Алгоритм k-ближайших соседей используется для классификации опухолей (доброкачественная/злокачественная) на основе метрических характеристик, что потенциально может заменить инвазивную биопсию.
3. Важность нормализации данных: Метрики, измеренные в разных шкалах (десятки, сотни, тысячи), необходимо привести к единому диапазону (например, [0,1]), чтобы каждая из них вносила равный вклад в модель.
4. Роль RTools: Для корректной установки некоторых R-пакетов, требующих компиляции под архитектуру конкретного компьютера, необходим набор инструментов RTools.
5. Оценка качества модели: После обучения модели на части данных (469 строк) её точность проверяется на «невидимых» данных (100 строк) путём сравнения предсказанных значений с реальными диагнозами.
Показывать лекцию целиком
Краткое изложение

Введение: Лекция продолжает курс по анализу данных на R. Основной фокус — работа внутри Power BI с использованием R-скриптов для применения алгоритмов машинного обучения.
Выбор алгоритма: Для демонстрации выбран алгоритм k-ближайших соседей (kNN), который позволяет отнести новый объект к определённому классу на основе «соседей».
Подготовка среды R:
o Для работы требуется установить пакет class, содержащий функцию kNN.
o Для избежания конфликтов при установке пакетов, требующих компиляции, необходимо установить RTools.
Загрузка и подготовка данных:
o Используется медицинский датасет с характеристиками опухолей (31 столбец: радиус, текстура, площадь и т.д.) и диагнозом (B — доброкачественная, M — злокачественная).
o Данные импортируются из CSV-файла, корректируется разделитель (точка на запятую) и заменяются буквенные обозначения диагнозов на слова.
Написание R-скрипта:
o Создаётся функция Normalize для приведения числовых значений к диапазону [0,1].
o Функция применяется ко всем числовым столбцам (с 3-го по 31-й).
o Данные делятся на обучающую выборку (первые 469 строк) и тестовую (последние 100 строк).
o Загружается пакет class и применяется функция knn() с параметром k = 21.
o Создаётся итоговый дата-фрейм Outpood, содержащий ID пациента, предсказанный результат (Result), реальный диагноз (Real).
Анализ результатов в Power BI:
o После выполнения скрипта результат загружается обратно в Power BI.
o С помощью фильтров и визуализации Power BI автор сравнивает реальные и предсказанные диагнозы. Результат: из 100 предсказаний модель ошиблась только в 2 случаях (оба раза — ложнодоброкачественный прогноз).
Заключение: Интеграция R и Power BI работает успешно. Автор анонсирует рассмотрение в будущих лекциях нейронных сетей и кластеризации.

Выводы

1. Эффективность интеграции: Связка R + Power BI является оптимальным решением для задач, требующих как сложных алгоритмических вычислений (R), так и наглядной интерактивной визуализации (Power BI).
2. Работоспособность kNN: Алгоритм k-ближайших соседей показал высокую точность (98%) на реальных медицинских данных, что подтверждает его пригодность для задач классификации.
3. Критическая важность предобработки: Правильная нормализация данных — обязательный этап для корректной работы алгоритмов, основанных на расстояниях (как kNN). Также важно разделение данных на обучающую и тестовую выборки для объективной оценки качества.
4. Внимание к инфраструктуре: Для стабильной работы R-пакетов в различных средах необходимо следить за наличием инструментов компиляции (RTools) и правильно настраивать окружение (например, права администратора).
5. Медицинская интерпретация: Ошибки модели, когда злокачественная опухоль классифицируется как доброкачественная, более критичны, чем наоборот. Даже при высокой точности модели необходимо учитывать контекст предметной области.

Вопросы для самопроверки

1. Для чего в алгоритме k-ближайших соседей необходима нормализация числовых признаков? Что произойдёт, если этого не сделать?
2. Какую функцию в R выполняет пакет RTools и в каких случаях его установка становится обязательной?
3. В приведённом скрипте используется разделение данных: строки 1–469 и 470–569. Как называется первая часть и для чего она используется? Как называется вторая часть и какова её роль?
4. Какой метод нормализации был применён в лекции? Напишите формулу и объясните, почему все нормализованные значения попадают в отрезок от 0 до 1.
5. С какой целью в итоговый дата-фрейм Outpood были добавлены столбцы с реальными диагнозами (Real) и предсказаниями модели (Result), если модель их «не видела» во время обучения?
6. В лекции параметр k (количество соседей) был выбран равным 21. Как вы думаете, что произойдёт с точностью модели, если выбрать k = 1 или очень большое k (например, k = 400)?
7. Автор отметил, что ошибка «злокачественную предсказали как доброкачественную» является плохой с медицинской точки зрения. Почему? Какой тип ошибки (False Positive или False Negative) это представляет?
Вернуться к учебному плану