Диагностика рака — 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 доступна по адресу

https://github.com/ariyurjana/Personalized_Cancer_diagnosis/blob/final_case_study_1/PersCancDiag_RandomForest.html

использованная литература

  1. www.appliedaicourse.com
  2. www.kaggle.com
  3. www.stackoverflow.com
  4. www.google.co.in