После создания описательный анализ данные, заполните пробелы и выберите первые столбцы. Важно продолжать уменьшать размеры, для этого в этом руководстве по t-SNE представлено уменьшение размеров с помощью нелинейного анализа.
Большинство реальных наборов данных имеют множество функций, иногда несколько тысяч. Каждую из них можно рассматривать как измерение в пространстве точек данных. Поэтому чаще всего мы имеем дело с многомерными наборами данных, полная визуализация которых достаточно затруднительна.
Чтобы посмотреть на набор данных в целом, нам нужно уменьшить количество измерений, используемых в визуализации, без потери большого количества информации о данных. Эта задача называется уменьшением размерности и является примером проблемы обучения без учителя, потому что мы должны получать новые низкоразмерные признаки из самих данных без какого-либо ввода с учителем.
Одним из хорошо известных методов уменьшения размерности является анализ основных компонентов (PCA), который мы рассмотрим позже в этом курсе. Его ограничение состоит в том, что это алгоритм линейный, что накладывает некоторые ограничения на данные.
Существует также множество нелинейных методов, которые в совокупности называются многообразным обучением. Одним из самых известных из них является t-SNE, поэтому это руководство по t-SNE 🙂
Название метода звучит сложно и немного пугающе: t-распределенное встраивание стохастических соседей. Его математика также впечатляют (мы не будем останавливаться на этом здесь, но, если вы чувствуете себя смелым, вот оригинальная статья Лоренса ван дер Маатен и Джеффри Хинтона из JMLR).
Его основная идея проста: найти проекцию многомерного признакового пространства на плоскость (или трехмерную гиперплоскость, но она почти всегда двумерная) такую, что точки, которые были далеко друг от друга в исходном пространстве в n измерениях, окажутся далеко друг от друга. отдельно в самолете. Те, кто изначально были близки, останутся близкими друг другу.
По сути, встраивание соседей — это поиск нового, менее размерного представления данных, которое сохраняет окрестности примеров.
Представление t-SNE
Теперь немного потренируемся. Во-первых, нам нужно импортировать дополнительные классы:
из sklearn.manifold импортировать TSNE
из sklearn.preprocessing импортировать StandardScaler
Мы опустим функции State и Churn и преобразуем значения «Да»/«Нет» из двоичных функций в числовые значения с помощью pandas.Series.map():
Х = дф.уронить(['Изменение', 'Состояние'], ось = 1)
X['Международный план'] = X['Международный план'].
карта({'Да': 1, 'Нет': 0})
X['План голосовой почты'] = X['План голосовой почты'].
карта({'Да': 1, 'Нет': 0})
Нам также необходимо нормализовать данные. Для этого мы вычтем среднее значение каждой переменной и разделим его на стандартное отклонение. Все это можно сделать с помощью StandardScaler.
масштабатор = Стандартный масштаб()
X_scaled = масштабатор.fit_transform(ИКС)
Давайте теперь построим представление t-SNE:
%%time tsne = TSNE(random_state=17)
tsne_repr = тсне.fit_transform(X_в масштабе)Время ЦП: пользователь 1 мин 32 с, система: 7,86 с, всего: 1 мин 39 с
Время стены: 1 мин 39 с
Давайте раскрасим это представление t-SNE в соответствии с оттоком (зеленым для постоянных клиентов и красным для ушедших).
Пожалуйста.разбрасывать(tsne_repr[:, 0], tsne_repr[:, 1],
c=df['Churn'].map({False: 'зеленый', True: 'красный'}));

Мы видим, что отвернувшиеся клиенты сосредоточены в нескольких областях низкоразмерного пространства признаков.
Мульти т-СНЭ
Чтобы лучше понять изображение, мы также можем раскрасить его оставшимися двоичными функциями: международный план и голосовая почта. Зеленые точки здесь обозначают объекты, положительные по соответствующей бинарной характеристике.
_, оси = plt.subplots(1, 2, sharey=True, figsize=(12, 5))для i, имя в enumerate(['Международный план', 'План голосовой почты']):
оси[i].разбрасывать(tsne_repr[:, 0], tsne_repr[:, 1],
c=df[имя].карта({'Да': 'зеленый', 'Нет': 'красный'}))
оси[i].set_title(имя)

Однако понятно, что, например, многие недовольные клиенты, отменившие подписку, скопились в самом юго-западном кластере, представляющем людей с международным тарифом, но без голосовой почты.
Недостатки t-SNE
Наконец, давайте отметим некоторые недостатки в этом руководстве по t-SNE:
Большой сложность Расчет. Реализация в scikit-learn вряд ли осуществима в реальной задаче. Если у вас большое количество образцов, вам следует попробовать вместо этого Multicore-TSNE.
Сюжет может сильно меняться в зависимости от случайного начального числа, что усложняет интерпретацию. Вот хороший учебник по t-SNE. В общем, не стоит стрелять выводы далеко идущие, основанные на таких графиках, так как это может быть просто догадкой. Конечно, некоторые результаты на изображениях t-SNE могут вдохновить на идею и быть подтверждены дальнейшими исследованиями, но это случается не очень часто.