Визуализация и изучение набора данных о раке молочной железы для прогнозирования рака

Всем привет!

Это мой первый блог о машинном обучении, который поможет вам понять, насколько важно анализировать набор данных, прежде чем мы реализуем какой-либо алгоритм в машинном обучении.

Теперь вы можете спросить, как? Позволь мне показать тебе. Анализируя набор данных, в отличие от традиционного программирования, в машинном обучении можно потратить месяцы на проект, но результатов не будет. Переход непосредственно к реализации алгоритма, который, как вам кажется, может работать, не анализируя его, - это большая яма.

В этом посте я попытаюсь обрисовать процесс визуализации и анализа набора данных.

Набор данных: груди-рак-wisconsin.csv
Источник: https://github.com/jeffheaton/aifh/blob/master/vol1/python- examples / datasets / Breast-Cancer-wisconsin.csv
Описание: этот набор данных поможет вам составить классификацию рака груди и быстро просмотреть пять верхних строк наборов данных.

Вероятно, как и вы, я не специалист по онкологическим заболеваниям. Но давайте сделаем вид, что понимаем, что функций набора данных достаточно, чтобы предсказать стадию онкологического пациента.

Задача: классифицировать стадию рака у пациента с помощью различных функций набора данных

Прежде чем мы перейдем к использованию какого-либо алгоритма регрессии, вот что я бы сделал, чтобы получить интуицию / понимание постановки проблемы:

  1. Давайте сначала очистим некоторые данные.

На этом все не заканчивается. Вероятно, вам нужно больше попотеть, чтобы очистить данные. Очистка реальных данных всегда была для нас большой проблемой, но мы постараемся рассказать об этом в следующих публикациях. значения, нули или специальные символы («?»).

2. Начните с тепловой карты, чтобы получить некоторую первоначальную интуицию.

Откуда это взялось? Что ж, просто чтобы понять, какой атрибут (параметр) связан с другим, нам нужно понять концепцию корреляции между атрибутами. Чтобы понять это лучше, здесь вступает в игру тепловая карта.

Так выглядит тепловая карта

Здесь нам нужно понять взаимосвязь между всеми атрибутами, где +1 означает наивысшую положительную относительность, а -1 - отрицательную.

Давайте сосредоточимся на квадрате, где встречаются атрибут size_uniformity оси X и shape_uniformity оси Y, то есть 0,91, что показывает, что эти два атрибута тесно связаны друг с другом. Проще говоря, значение size_uniformity увеличивается, когда значение shape_uniformity увеличивается, если бы снова было -0.91, они сильно взаимосвязаны, но на этот раз одно увеличивается, когда другое уменьшается.

3. Давайте поиграем и с другими атрибутами… используя гистограмму.

Прежде чем я покажу вам результат, попробуйте его визуализировать. Я беру столбец (bland_chromatin) по оси X и пытаюсь предсказать результаты по оси Y. Это означает, что я получу график, который покажет, сколько людей из каждой категории в bland_chromatin попадут в класс 2 или класс 4…. Запомните… класс 2 означает, что пациент находится на ранней стадии рака, а класс 4 - злонамеренный.

Наблюдение: из графика мне ясно, что когда чистый хроматин находится в диапазоне 1, 2 или 3. 150,160,130 нет. пациентов находятся в доброкачественной стадии, но как только диапазон превышает от 3 до 7, видно, что многие пациенты попадают в опасную ситуацию, но все же некоторые случаи остаются безопасными. Как только диапазон превышает 7, выясняется, что ни один пациент не находился в безопасном состоянии, и, следовательно, в диапазоне 8, 9 и 10 не было ни одного случая, который был бы безопасным.

4. Как все это помогает?

Многие проекты машинного обучения терпят неудачу, некоторые преуспевают. Как вы думаете, в чем главное отличие?

Используемые функции - должны быть наиболее важным фактором.

Это то, что пытается сделать любой алгоритм машинного обучения - изучить набор функций, чтобы на их основе делать точные прогнозы.

Так что позвольте мне кратко изложить всю историю в нескольких строках…

  1. получить интуитивное представление о том, какой алгоритм может быть хорошим для начала
  2. помогает нам в разработке функций придумывать новые функции (когда первая попытка дает неудовлетворительные результаты, а так бывает почти всегда)
  3. помогает нам сформировать в нашем сознании мысленную модель того, с какими данными и проблемами мы имеем дело - это помогает нам принимать более правильные решения на протяжении всего процесса, вместо того, чтобы просто стрелять в темноте и молиться о том, чтобы появилось что-то новаторское .

Вы можете получить доступ к полному коду и набору данных здесь

Спасибо за терпение ... Аплодисменты (эхом)