Два лучших признака
Часть раздела Статистика для машинного обучения путешествия по Machine Learning на Coddy. Урок 59 из 64.
Вот изображение, которое обещала эта глава: два наиболее сильных признака по среднему значению на одном графике рассеяния, по одному цвету на класс.
Доброкачественные образцы сосредоточены внизу слева, а злокачественные распространяются вверх и вправо. Там, где эти облака пересекаются, модель, использующая эту пару признаков, будет ошибаться.
Ещё одна проверка: являются ли эти два набора почти копиями?
first = strength.index[0]
second = strength.index[1]
print(np.round(df[first].corr(df[second]), 2))Это выводит 0.85: признаки связаны, но не являются копиями. При значении 0.99 второй признак повторял бы первый и почти ничего нового не добавлял.
Задание
СреднеПризнаки error показывают, насколько измерение менялось в разных клетках одного образца. Смогут ли два самых сильных признака различить классы? Стартовый код ранжирует их и сохраняет в first и second; label(ax) задаёт подписи графика.
- Выведи
r between them:и их r с точностью до 2 знаков после запятой. - Построй диаграмму рассеяния для каждого класса, отложив
firstпо горизонтальной оси и обозначив точки названием класса. - Вызови
label(ax), добавь легенду и покажи график.
Пример для самой сильной пары worst (r 0.82):
Затем оцени свой график: облака точек разделены? И соответствует ли этому твоё значение r?
Попробуйте сами
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer
cancer = load_breast_cancer(as_frame=True)
df = cancer.frame
y = cancer.target
# Десять признаков погрешности: насколько каждое измерение различалось между клетками одного образца
X = cancer.data[cancer.feature_names[10:20]]
# Упорядочены по силе: first и second — два самых сильных признака
strength = np.abs(X.corrwith(y)).sort_values(ascending=False)
first = strength.index[0]
second = strength.index[1]
# Задаёт заголовок графика и подписывает оси именами признаков из пары
def label(ax):
ax.set_title("Error Features")
ax.set_xlabel(first)
ax.set_ylabel(second)
# Напишите свой код ниже
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Статистика для машинного обучения
1Центр и разброс
Среднее и медианаПроцентили и квартилиДисперсия и стандартное отклонениеВыборка или генеральная совокупность?Самое частое значениеПовторение: сроки доставки4Выборки и генеральные совокупности
Генеральная совокупность и выборкаСредние значения выборок различаютсяРаспределение выборочных среднихЧем больше выборка, тем меньше шумИтоги: опрос жителей города2Распределения
Гистограммы плотностиФормы распределения данныхНормальная криваяПравило 68–95–99,7Z-оценкиПовторение: время работы батареи8Сравнение групп
Диаграммы размаха по группамРазность среднихА вдруг это случайность?P-значенияt-критерийПовторение: A/B-тест11Изучаем набор данных
Первый взглядВсе признаки сразуПризнаки и целевая переменнаяДва лучших признакаПовторение: данные о диабете3Вероятность с помощью моделирования
Вероятность как частотаЗакон больших чиселСуммы значений на кубикахМатематическое ожиданиеУсловная вероятностьПовторение: шансы в игре в кости6Взаимосвязи
Чтение диаграмм рассеянияКорреляцияМатрица корреляцийТепловые карты корреляцийКорреляция не означает причинностьПовторение: мороженое и солнцеПотренируйтесь самостоятельно: Онлайн-компилятор Python