Содержание

1. Введение
— Что такое точечная диаграмма?
— Когда использовать точечную диаграмму
— Библиотеки Python с функциональностью точечной диаграммы

2. Создание диаграмм рассеяния в Python (с примерами)
— Пример 1. Исследование положительной корреляции
— Пример 2. Исследование отрицательной корреляции
— Пример 3. Сравнение двух групп
— Пример 4. Выявление выбросов
— Пример 5. Оценка кластеризации или группировки
— Пример 6. Выявление тенденций в данных временных рядов

3. Обработка больших наборов данных с помощью точечных диаграмм
—1. Альфа-смешение
— 2. Подвыборка
— 3. Агрегирование
— 4. Построение плотности
— 5. Интерактивная диаграмма рассеяния
— 6. Использование t-SNE для размерности Сокращение

4. Часто задаваемые вопросы
— Как создать диаграмму рассеяния в Python?
— Как выглядит диаграмма рассеяния с положительной/отрицательной корреляцией?
— Каковы некоторые распространенные ошибки при создание точечных диаграмм?
— Как добавить дополнительную информацию в точечную диаграмму?

1. Введение

Точечная диаграмма — это тип визуализации данных, используемый в анализе данных и статистике. Он отображает отдельные точки данных в виде точек на 2D-плоскости, причем каждая точка представляет собой одно наблюдение данных. Положение каждой точки на графике определяется ее значениями двух числовых переменных: одной по оси X, а другой по оси Y. Диаграммы рассеяния полезны для изучения и визуализации взаимосвязи или корреляции между этими двумя переменными.

Когда использовать точечную диаграмму

  1. Изучение взаимосвязей. Диаграммы рассеяния отлично подходят для исследования взаимосвязей между двумя переменными. Вы можете определить, существует ли между ними закономерность, тенденция или корреляция.
  2. Выявление выбросов. Выбросы или точки данных, которые значительно отклоняются от основной тенденции, часто заметны на диаграммах рассеяния и могут иметь важное значение для дальнейшего исследования.
  3. Сравнение групп. Диаграммы рассеяния можно использовать для сравнения данных из разных групп или категорий. Каждая группа обычно обозначается разным цветом или формой маркера.
  4. Визуализация распределения данных. Диаграммы рассеяния могут дать представление о распределении точек данных по обеим осям, помогая понять распределение данных.
  5. Обработка больших наборов данных. При работе с большими наборами данных специальные методы могут сделать диаграммы рассеяния более интерпретируемыми. В этом уроке мы рассмотрим, как обрабатывать большие наборы данных.

Библиотеки Python с функциональностью точечной диаграммы

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

  • Matplotlib: универсальная и широко используемая библиотека построения графиков, предоставляющая широкие возможности настройки.
  • Seaborn:Построенный на основе Matplotlib, Seaborn предлагает интерфейс более высокого уровня для создания привлекательной статистической графики.
  • Plotly: предоставляет возможности интерактивного и веб-построения, отлично подходит для создания интерактивных диаграмм рассеяния.
  • Pandas (создан на основе Matplotlib): Pandas, библиотека манипулирования данными, включает функции точечной диаграммы для объектов DataFrame.
  • Altair: библиотека декларативной статистической визуализации для Python, которая генерирует графики Vega-Lite.
  • Bokeh: библиотека для создания интерактивных и визуально привлекательных веб-визуализаций.

2. Создание диаграмм рассеяния в Python (с примерами)

Вот примеры кода, демонстрирующие, когда использовать диаграммы рассеяния в различных сценариях:

Пример 1. Исследование положительной корреляции

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

Объяснение: Мы используем Matplotlib для создания диаграммы рассеяния. Переменная temperature представляет температуру в градусах Фаренгейта, а переменная ice_cream_sales представляет количество проданных рожков мороженого. Каждая точка на диаграмме рассеяния соответствует паре температура-продажа мороженого. Мы используем синие точки («о») в качестве маркеров и для ясности предоставляем метки, заголовки и легенду.

import matplotlib.pyplot as plt
import numpy as np

# Generate sample data for temperature and ice cream sales
temperature = np.array([60, 65, 70, 75, 80, 85, 90, 95, 100])
ice_cream_sales = np.array([50, 55, 60, 70, 80, 90, 95, 100, 105])

# Create a scatter plot
plt.scatter(temperature, ice_cream_sales, color='blue', marker='o', label='Data Points')

# Add labels and a title
plt.xlabel('Temperature (Fahrenheit)')
plt.ylabel('Ice Cream Sales (Cones)')
plt.title('Positive Correlation: Temperature vs. Ice Cream Sales')

# Add a legend
plt.legend()

# Show the plot
plt.grid(True)
plt.show()

Пример 2. Исследование отрицательной корреляции

Сценарий. В этом примере мы исследуем отрицательную корреляцию между количеством часов, проведенных за просмотром телевизора, и успеваемостью учащихся. Мы хотим визуализировать, имеют ли учащиеся, которые проводят больше времени перед телевизором, более низкие баллы на экзаменах.

Объяснение: мы используем Matplotlib для создания диаграммы рассеяния. Переменная tv_hours представляет количество часов, которые учащийся проводит перед телевизором, а переменная exam_scores представляет соответствующие оценки на экзамене. Красные маркеры «x» используются для обозначения точек данных. Метки, заголовок и легенда добавлены для ясности.

import matplotlib.pyplot as plt
import numpy as np

# Generate sample data for TV hours and exam scores
tv_hours = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
exam_scores = np.array([90, 85, 80, 75, 70, 65, 60, 55, 50])

# Create a scatter plot
plt.scatter(tv_hours, exam_scores, color='red', marker='x', label='Data Points')

# Add labels and a title
plt.xlabel('TV Hours')
plt.ylabel('Exam Scores')
plt.title('Negative Correlation: TV Hours vs. Exam Scores')

# Add a legend
plt.legend()

# Show the plot
plt.grid(True)
plt.show()

Пример 3: сравнение двух групп

Сценарий. Здесь мы сравниваем рост мужчин и женщин. Мы хотим визуализировать распределение высот в этих двух группах.

Объяснение: Мы создаем диаграмму рассеяния, используя Matplotlib, для мужского и женского роста. Синие точки («о») обозначают мужчин, а красные маркеры «х» представляют женщин. Переменные males_height и females_height содержат данные о высоте. Поместив обе группы на один и тот же график, мы можем легко сравнить их распределения.

import matplotlib.pyplot as plt
import numpy as np

# Generate sample data for heights of males and females
males_height = np.array([65, 68, 70, 72, 75, 77, 80, 82, 85])
females_height = np.array([60, 63, 65, 68, 70, 72, 75, 78, 80])

# Create a scatter plot for males and females
plt.scatter(males_height, range(len(males_height)), color='blue', marker='o', label='Males', alpha=0.7)
plt.scatter(females_height, range(len(females_height)), color='red', marker='x', label='Females', alpha=0.7)

# Add labels and a title
plt.xlabel('Height (inches)')
plt.ylabel('Sample Index')
plt.title('Comparing Heights of Males and Females')

# Add a legend
plt.legend()

# Show the plot
plt.grid(True)
plt.show()

Пример 4: Идентификация выбросов

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

Объяснение: мы используем Matplotlib для создания диаграммы рассеяния. Переменная test_scores содержит результаты тестов, и мы используем зеленые квадратные маркеры («s») для точек данных. График помогает визуализировать, есть ли какие-либо оценки, значительно отклоняющиеся от основной группы.

import matplotlib.pyplot as plt
import numpy as np

# Generate sample data for test scores
test_scores = np.array([75, 80, 85, 90, 95, 100, 105, 120, 125, 130, 135])

# Create a scatter plot
plt.scatter(range(len(test_scores)), test_scores, color='green', marker='s', label='Test Scores')

# Add labels and a title
plt.xlabel('Student Index')
plt.ylabel('Test Scores')
plt.title('Identifying Outliers in Test Scores')

# Add a legend
plt.legend()

# Show the plot
plt.grid(True)
plt.show()

Пример 5: Оценка кластеризации или группировки

Сценарий. У нас есть данные о клиентах, и мы хотим определить, существуют ли естественные кластеры или группы на основе частоты покупок и общих расходов. Здесь мы применяем кластеризацию K-средних для идентификации этих групп.

Пояснение. Мы генерируем случайные данные о клиентах, включая частоту покупок и общую сумму расходов. Затем мы применяем кластеризацию K-средних из библиотеки Scikit-Learn, чтобы группировать клиентов в кластеры. На точечной диаграмме отображаются точки данных о клиентах, каждая из которых отнесена к кластеру (представлена ​​разными цветами), а также центры кластера (красные маркеры «x»). Это помогает нам идентифицировать группы клиентов на основе их покупательского поведения.

import matplotlib.pyplot as plt
import numpy as np
from sklearn.cluster import KMeans

# Generate random customer data (purchase frequency and total spending)
np.random.seed(0)
n_samples = 300
X = np.random.rand(n_samples, 2)

# Apply K-means clustering to identify clusters
n_clusters = 3
kmeans = KMeans(n_clusters=n_clusters, random_state=0)
kmeans.fit(X)

# Create a scatter plot of customer data with cluster labels
plt.scatter(X[:, 0], X[:, 1], c=kmeans.labels_, cmap='viridis', marker='o', label='Customers')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], c='red', marker='x', s=200, label='Cluster Centers')

# Add labels and a title
plt.xlabel('Purchase Frequency')
plt.ylabel('Total Spending')
plt.title('Customer Clustering based on Purchase Behavior')

# Add a legend
plt.legend(loc='upper right')

# Show the plot
plt.grid(True)
plt.show()

Пример 6: Определение тенденций в данных временных рядов

Сценарий. У нас есть данные временных рядов, отражающие ежемесячный трафик веб-сайта и количество запущенных рекламных кампаний. Мы хотим выявить любые тенденции или закономерности в этих данных.

Объяснение: мы используем Matplotlib для создания диаграммы рассеяния. Переменная campaigns_launched представляет количество рекламных кампаний, запускаемых каждый месяц, а переменная website_traffic представляет соответствующий трафик веб-сайта. Фиолетовые точки («о») обозначают точки данных. Составляя график этих данных, мы можем визуально оценить, существует ли какая-либо связь или тенденция между количеством запущенных кампаний и посещаемостью веб-сайта с течением времени.

import matplotlib.pyplot as plt
import numpy as np

# Generate sample time series data (website traffic and advertising campaigns)
months = np.arange(1, 13)
website_traffic = np.array([1000, 1200, 1300, 1400, 1600, 2000, 2200, 2500, 2800, 3200, 3500, 3800])
campaigns_launched = np.array([1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 15])

# Create a scatter plot
plt.scatter(campaigns_launched, website_traffic, color='purple', marker='o', label='Data Points')

# Add labels and a title
plt.xlabel('Number of Campaigns Launched')
plt.ylabel('Website Traffic')
plt.title('Trends in Website Traffic vs. Advertising Campaigns')

# Add a legend
plt.legend()

# Show the plot
plt.grid(True)
plt.show()

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

3. Обработка больших наборов данных с помощью точечных диаграмм

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

Введение

При анализе и визуализации данных диаграммы рассеяния имеют неоценимое значение для выявления закономерностей и взаимосвязей между двумя переменными. Однако по мере увеличения размера наборов данных простой процесс построения графиков всех точек данных может стать утомительным. В этой главе мы исследуем две ключевые стратегии обработки больших наборов данных с диаграммами рассеяния: Альфа-смешивание и Подвыборка. Эти методы позволяют нам сохранять ясность и интерпретируемость диаграмм рассеяния при работа с обширными данными.

3.1. Альфа-смешение

Сценарий. Представьте, что у вас есть большой набор данных о клиентах, включая частоту покупок и общие расходы. Ваша цель — визуализировать взаимосвязь между этими двумя переменными.

Объяснение. Альфа-смешение предполагает настройку прозрачности точек данных. В этом примере мы генерируем большой случайный набор данных о клиентах. Мы используем диаграмму рассеяния Matplotlib и устанавливаем для альфа небольшое значение (например, 0,1), чтобы сделать точки данных слегка прозрачными. Эта прозрачность показывает плотность точек данных, позволяя нам наблюдать тенденции и закономерности, не перегружая график.

import matplotlib.pyplot as plt
import numpy as np

# Generate a large random dataset
np.random.seed(0)
n_samples = 10000
purchase_frequency = np.random.rand(n_samples) * 10  # Simulated purchase frequency (scaled to 0-10)
total_spending = np.random.rand(n_samples) * 1000     # Simulated total spending (scaled to 0-1000 USD)

# Create a scatter plot with alpha blending (transparency)
plt.scatter(purchase_frequency, total_spending, alpha=0.1, color='purple', marker='o', label='Customers')

# Add labels and a title
plt.xlabel('Purchase Frequency')
plt.ylabel('Total Spending (USD)')
plt.title('Customer Data Visualization with Alpha Blending')

# Add a legend
plt.legend()

# Show the plot
plt.grid(True)
plt.show()

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

3.2. Подвыборка

Сценарий. Вы работаете с обширным набором данных о клиентах, включающих частоту покупок и общие расходы. Вы стремитесь визуализировать взаимосвязь между этими переменными, одновременно сокращая количество точек данных для ясности.

Объяснение. Подвыборка предполагает выбор репрезентативного подмножества точек данных для построения графика. В этом примере мы генерируем большой случайный набор данных, а затем подвыбираем его, случайным образом выбирая подмножество точек данных. Указывая `subsample_size`, мы контролируем количество точек данных, которые будут включены в график, уменьшая беспорядок.

import matplotlib.pyplot as plt
import numpy as np

# Generate a large random dataset
np.random.seed(0)
n_samples = 10000
purchase_frequency = np.random.rand(n_samples) * 10  # Simulated purchase frequency (scaled to 0-10)
total_spending = np.random.rand(n_samples) * 1000     # Simulated total spending (scaled to 0-1000 USD)

# Subsample the data
subsample_size = 1000
random_indices = np.random.choice(n_samples, size=subsample_size, replace=False)
purchase_frequency_subsample = purchase_frequency[random_indices]
total_spending_subsample = total_spending[random_indices]

# Create a scatter plot
plt.scatter(purchase_frequency_subsample, total_spending_subsample, color='blue', marker='o', label='Customers')

# Add labels and a title
plt.xlabel('Purchase Frequency')
plt.ylabel('Total Spending (USD)')
plt.title('Subsampled Customer Data Visualization')

# Add a legend
plt.legend()

# Show the plot
plt.grid(True)
plt.show()

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

3.3. Агрегирование

Сценарий. У вас есть огромный набор данных, содержащий данные о продажах, включая суммы покупок и временные метки. Вы хотите визуализировать общую тенденцию покупок с течением времени, работая с большим объемом данных.

Пояснение. В этом примере мы будем использовать агрегирование, разбивая данные по временным интервалам (например, месяцам) и вычисляя сводную статистику (например, среднюю сумму покупки) в пределах каждого интервала. Это уменьшает количество точек данных, сохраняя при этом тенденцию с течением времени.

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

# Generate a large random sales dataset with timestamps
np.random.seed(0)
n_samples = 10000
timestamps = pd.date_range(start='2022-01-01', periods=n_samples, freq='D')
purchase_amounts = np.random.rand(n_samples) * 100  # Simulated purchase amounts (scaled to 0-100 USD)

# Create a DataFrame
sales_df = pd.DataFrame({'Timestamp': timestamps, 'PurchaseAmount': purchase_amounts})

# Convert timestamps to datetime objects
sales_df['Timestamp'] = pd.to_datetime(sales_df['Timestamp'])

# Aggregate data by month
monthly_sales = sales_df.set_index('Timestamp').resample('M')['PurchaseAmount'].mean().reset_index()

# Create a scatter plot of aggregated data
plt.scatter(monthly_sales['Timestamp'], monthly_sales['PurchaseAmount'], color='green', marker='o', label='Monthly Average')

# Add labels and a title
plt.xlabel('Month')
plt.ylabel('Average Purchase Amount (USD)')
plt.title('Aggregated Sales Data Visualization')

# Add a legend
plt.legend()

# Show the plot
plt.xticks(rotation=45)  # Rotate x-axis labels for readability
plt.grid(True)
plt.show()

В этом примере мы генерируем большой случайный набор данных о продажах с отметками времени и суммами покупок. Затем мы агрегируем данные по месяцам, рассчитывая среднюю сумму покупки за каждый месяц. Составляя график этих агрегированных точек, мы уменьшаем количество точек данных, сохраняя при этом визуализацию общей тенденции покупок с течением времени. Агрегация особенно полезна для данных временных рядов или других сценариев, где группировка данных может дать ценную информацию.

3.4. Плотность

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

Объяснение. В этом примере мы создадим график плотности, используя такую ​​библиотеку, как Seaborn, которая обеспечивает визуализацию плотности точек данных в виде тепловой карты. Это поможет вам увидеть концентрацию точек данных в различных регионах.

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

# Generate a large random customer dataset with geographic coordinates
np.random.seed(0)
n_samples = 10000
latitude = np.random.uniform(35, 45, size=n_samples)  # Simulated latitude (between 35 and 45 degrees)
longitude = np.random.uniform(-120, -70, size=n_samples)  # Simulated longitude (between -120 and -70 degrees)

# Create a DataFrame
customer_df = pd.DataFrame({'Latitude': latitude, 'Longitude': longitude})

# Create a density plot using Seaborn
plt.figure(figsize=(10, 8))
sns.kdeplot(data=customer_df, x='Longitude', y='Latitude', cmap='viridis', fill=True)

# Add labels and a title
plt.xlabel('Longitude')
plt.ylabel('Latitude')
plt.title('Density Plot of Customer Locations')

# Show the plot
plt.grid(True)
plt.show()

Пояснение к графику:

  1. Цвет Градиент: график состоит из цветового градиента от темно-синего до желтого с различными оттенками между ними. Цвета представляют плотность расположения клиентов: более темные цвета указывают на более высокую плотность, а более светлые — на более низкую плотность.
  2. Координаты. Ось X представляет долготу, а ось Y – широту. Это географические координаты, которые определяют местоположение каждой точки данных (клиента).
  3. Тепловая карта-Нравится Визуализация: график выглядит как тепловая карта, где интенсивность цвета в определенном месте соответствует плотности клиентов в этом месте. область. Более темные области представляют регионы с более высокой концентрацией клиентов, а более светлые области указывают на более низкую плотность клиентов.
  4. Заливка: график заполнен. Это означает, что вся область внутри осей покрыта графиком плотности, что позволяет увидеть распределение по всему географическому диапазону.

Интерпретация:

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

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

3.5. Интерактивная точечная диаграмма

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

Объяснение. В этом примере мы будем использовать библиотеку Python, например Plotly, для создания интерактивной диаграммы рассеяния. Пользователи могут выбирать, какие атрибуты продукта они хотят отобразить на осях X и Y, а также могут интерактивно масштабировать, панорамировать и наводить курсор на точки данных для получения дополнительной информации.

import plotly.express as px
import pandas as pd
import numpy as np

# Generate a large random sales dataset with product attributes
np.random.seed(0)
n_samples = 10000
product_rating = np.random.rand(n_samples) * 5  # Simulated product rating (scaled to 0-5)
product_price = np.random.rand(n_samples) * 1000  # Simulated product price (scaled to 0-1000 USD)

# Create a DataFrame
sales_df = pd.DataFrame({'ProductRating': product_rating, 'ProductPrice': product_price})

# Create an interactive scatter plot using Plotly Express
fig = px.scatter(sales_df, x='ProductRating', y='ProductPrice', title='Interactive Sales Data Visualization')

# Customize the layout (optional)
fig.update_layout(
    xaxis_title='Product Rating',
    yaxis_title='Product Price (USD)',
)

# Show the interactive plot
fig.show()

Пояснение к графику:

  1. Интерактивный Интерфейс: график является интерактивным, что позволяет пользователям выполнять различные действия, такие как увеличение и уменьшение масштаба, панорамирование (перемещение) и наведение курсора на точки данных для получения дополнительной информации. .
  2. Оси и метки. Ось X представляет «рейтинг продукта», который является показателем качества или рейтинга продуктов. Ось Y представляет «Цену продукта» в долларах США, указывающую цену продуктов.
  3. Точки данных.Каждая точка данных на диаграмме рассеяния представляет продукт в наборе данных. Положение точки данных по осям X и Y соответствует номиналу и цене продукта.
  4. Заголовок. У графика есть заголовок, в данном случае «Интерактивная визуализация данных о продажах».

Интерпретация:

  • Пользователи могут взаимодействовать с графиком, выбирая различные атрибуты для осей X и Y. Например, они могут изучить, как рейтинги продуктов связаны с ценами на них, или изучить другие взаимосвязи в наборе данных.
  • Увеличение масштаба позволяет пользователям сосредоточиться на определенной интересующей области графика, а панорамирование позволяет им исследовать различные области набора данных.
  • Наведение курсора на точки данных предоставляет подробную информацию о каждом продукте, что позволяет легко идентифицировать отдельные продукты по их положению на графике.

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

3.6. Использование t-SNE для уменьшения размерности

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

Объяснение. В этом примере мы будем использовать t-Distributed Stochastic Neighbor Embedding (t-SNE), метод уменьшения размерности, для проецирования набора данных высокой размерности в пространство меньшей размерности (обычно 2D). ). Это представление меньшей размерности затем можно использовать для точечной диаграммы.

import matplotlib.pyplot as plt
import numpy as np
from sklearn.datasets import make_classification
from sklearn.manifold import TSNE

# Generate a large random dataset with high dimensionality
n_samples = 1000
n_features = 50
X, y = make_classification(n_samples=n_samples, n_features=n_features, random_state=0)

# Perform dimensionality reduction with t-SNE
tsne = TSNE(n_components=2, random_state=0)
X_reduced = tsne.fit_transform(X)

# Create a scatter plot of the reduced-dimensional data
plt.scatter(X_reduced[:, 0], X_reduced[:, 1], c=y, cmap='viridis', marker='o', label='Data Points')

# Add labels and a title
plt.xlabel('t-SNE Component 1')
plt.ylabel('t-SNE Component 2')
plt.title('t-SNE Dimensionality Reduction Scatter Plot')

# Add a legend
plt.legend()

# Show the plot
plt.grid(True)
plt.show()

В этом примере мы начинаем с большого случайного набора данных с большим количеством объектов (в данном случае 50). Затем мы применяем t-SNE, чтобы уменьшить размерность набора данных до двух компонентов (2D), сохраняя при этом внутреннюю структуру данных. Наконец, мы создаем диаграмму рассеяния, используя данные уменьшенной размерности.

Интерпретация:

  • Диаграмма рассеяния представляет точки данных в низкомерном пространстве (2D), созданном с помощью метода t-SNE.
  • Каждая точка данных представлена ​​маркером на графике, а цвет маркера соответствует меткам классов (если они доступны).
  • Уменьшая размерность данных, мы делаем их более удобными для построения графиков, что позволяет нам более эффективно визуализировать отношения и закономерности в наборе данных.

Метод — уменьшение размерности:

  • Здесь используется метод уменьшения размерности, в частности t-SNE. Методы уменьшения размерности направлены на сбор наиболее важной информации в многомерных данных, одновременно уменьшая размерность для целей визуализации или анализа.
  • t-SNE особенно полезен для визуализации многомерных данных, поскольку он пытается сохранить попарное сходство между точками данных, что делает его подходящим для диаграмм рассеяния.

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

4. Часто задаваемые вопросы

Вопрос 1. Как создать точечную диаграмму в Python?
A1:
Вы можете создать точечную диаграмму в Python, используя такие библиотеки, как Matplotlib, Seaborn или Plotly. Обычно вы предоставляете данные для осей X и Y, а затем настраиваете график по мере необходимости.

Вопрос 2. Как выглядит диаграмма рассеяния с положительной/отрицательной корреляцией?
A2:
При положительной корреляции точки на диаграмме рассеяния имеют тенденцию образовывать восходящий узор от левого нижнего угла к правому верхнему. При отрицательной корреляции точки имеют тенденцию образовывать нисходящий узор от левого верхнего угла к правому нижнему.

Вопрос 3. Каковы распространенные ошибки при создании точечных диаграмм?
Ответ 3.
К распространенным ошибкам относятся:

  • Без маркировки осей и названия графика.
  • Использование неподходящих масштабов для осей.
  • Чрезмерное отображение (слишком много точек данных, что затрудняет обнаружение закономерностей).
  • Неправильная интерпретация корреляции как причинно-следственной связи.

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

ИЗУЧИТЕ ДОПОЛНИТЕЛЬНЫЕ РЕСУРСЫ ПО ВИЗУАЛИЗАЦИИ ДАННЫХ

Важное примечание! Чтобы получить более подробную информацию об альтернативных методах визуализации данных, посетите следующую ссылку.

  1. Введение в визуализацию данных
  2. Диаграммы рассеяния
  3. Линейные графики
  4. Гистограммы
  5. Гистограммы
  6. Круговые диаграммы
  7. Коробочные графики
  8. Тепловые карты
  9. Сюжеты для скрипки
  10. Диаграммы площадей
  11. Пузырьковые диаграммы
  12. Радарные диаграммы
  13. Диаграммы Сэнки
  14. Карты деревьев
  15. Карты
  16. Облака слов
  17. Диаграммы Ганта
  18. Стримграфы
  19. Матрицы диаграммы рассеяния
  20. Полярные графики
  21. 3D-графики
  22. Графики параллельных координат
  23. Сетевые графики
  24. Графики солнечных лучей
  25. Графики водопадов
  26. Диаграммы Кивиата