Диагностика рака — Random Forest
Мы собираемся использовать тот же набор данных, который мы использовали в статье о персональном диагностике рака, которая была опубликована ранее.
Мы не будем заниматься исследовательским анализом данных, а сразу приступим к реализации модели машинного обучения набора данных.
В Random Forests у нас есть
- Деревья решений как базовые обучающиеся
- Выборка строк с заменой
- Выборка столбцов/функций
- Агрегация для генерации меток
При использовании случайных лесов для
- Классификация для создания окончательного ярлыка мы будем использовать большинство голосов
- Регрессия, среднее/медиана будет рассчитана для целевого значения.
Базовые учащиеся представляют собой деревья решений с полной глубиной до 20 макс. Это дает низкое смещение с моделями с высокой дисперсией.
Высокая дисперсия может быть уменьшена за счет
- Выборка строк с заменой
- Выборка столбца / выбор функции
- Агрегация многих моделей
Оценка/ошибка вне пакета (OOB) может рассматриваться как оценка перекрестной проверки. Это обеспечит разумность/разумность каждой модели.
По мере увеличения количества моделей дисперсия уменьшается, а модель уменьшает дисперсию.
Гиперпараметры
- Количество моделей — К
- Частота выборки строк
- Частота дискретизации столбца
Тривиально распараллеливаемый
Каждой из моделей нужны только соответствующие им наборы данных. Каждую из моделей можно обучать отдельно на каждом ядре/процессоре.
Каждую из моделей можно обучать отдельно на каждом ядре/процессоре
Пространственно-временная сложность
Время поезда ==> O (n log n * d * k)
Время выполнения ==> O(глубина * K)
Пространство времени выполнения ==> O (глубина * k)
Недостатки-преимущества
- Большие размеры
- Категориальные переменные со многими измерениями
Случайные леса используют деревья решений в качестве базового обучения, поэтому давайте обсудим несколько вещей о них.
Дерева решений
Деревья решений можно рассматривать как программно вложенные операторы if-else. Геометрически они представляют собой набор параллельных осей гиперплоскостей.
Деревья решений также не являются мерой, основанной на расстоянии, для измерения сходства между точками данных.
Давайте воспользуемся набором данных IRIS и рассмотрим две характеристики: лепесток и чашелистикдлину.
Энтропия графика
Когда метки классов равновероятны, энтропия максимальна. но когда мы удаляемся так, что одна из меток класса доминирует, то энтропия уменьшается.
Случайная переменная с k-значениями
Энтропия вещественных переменных
Если случайная величина принимает значения между a и b и если значения между a и b равновероятны, то энтропия максимальна.
Получение информации
IG = энтропия (родительский) — (средневзвешенное значение энтропии (дочерние узлы))
Графическое представление прироста информации и энтропии
От 0 до 0,5 увеличиваются как энтропия, так и прирост информации. Разница в том, что энтропия увеличивается быстрее, чем прирост информации.
От 0,5 до 1 уменьшаются как энтропия, так и прирост информации.
Прирост информации предпочтительнее энтропии, потому что прирост информации представляет собой только квадратный член, тогда как энтропия имеет логарифмический член, вычисление которого требует немного времени.
Sklearn использует примесь Джини в своих библиотеках
Переобучение и недообученность
Если глубина дерева большая, то количество точек в листовом узле будет маленьким. Также может случиться так, что может быть только одна точка, и даже она может быть шумной.
Интерпретируемость модели снизится, так как условий слишком много.
Геометрически слишком много гиперкубов и кубоидов.
Минимальная глубина, которую мы можем иметь, равна 1, что называется пнем решения, которое приведет к недообучению. Геометрически будет одна параллельная гиперплоскость с одной осью, которая может разделять данные.
Деревья решений — это ХОРОШО
- удобно обрабатывать большие данные
- размерность разумна
- низкие требования к задержке
Реализация случайного леса
классsklearn.ensemble.RandomForestClassifier
(n_estimators=100, *, criterion='gini', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='auto', max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, bootstrap=True, oob_score=False , n_jobs=None, random_state=None, verbose=0, warm_start=False, class_weight=Нет, ccp_alpha=0.0, max_samples=Нет)
Из этого множества параметров мы будем использовать только два параметра max-depth и n_estimators из-за низкой вычислительной мощности.
Случайный лесной код вызова
Приведенный ниже код выполняет как настройку гиперпараметров, так и использование настроенных значений гиперпараметров.
Выходные данные настройки гиперпараметра случайного леса
Код для матриц путаницы, точности и повторного вызова
Заключение
Вывод и вывод случайного лесного классификатора
- Процент неправильно классифицированных точек составляет 36 процентов, поэтому для этого набора данных с этим набором функций Random Forest работает хорошо.
- Из матрицы путаницы мы видим, что классификатор не может отличить другие метки от класса 3.
- Добавление других параметров в модель случайного леса может повысить производительность.
Код для этого доступен по адресу
https://github.com/ariyurjana/Personalized_Cancer_diagnosis
Версия в формате PDF доступна по адресу