Как использовать анализ главных компонентов (PCA) для анализа набора данных, состоящего из 300 образцов модельных данныхPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать анализ главных компонентов (PCA) для анализа набора данных, состоящего из 300 образцов модельных данных

Сообщение Anonymous »


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

импортировать numpy как np импортировать matplotlib.pyplot как plt """ Создайте 300 выборок данных для высоты и температуры """ # Определить количество строк и столбцов количество_строк, количество_столбцов = 20, 300 # Создайте массив высот в диапазоне от 100 км до 500 км. высоты = np.linspace(100, 500, num_rows) # Повторите значения высоты во всех столбцах height_array = np.tile(altitudes, (num_columns, 1)).T # Параметры для создания температурных профилей height_midpoint = (altitudes.min() + heights.max()) / 2 температура_амплитуда, температура_частота = 250, 0,02 # Создайте синусоидальную волну для представления температуры в зависимости от высоты температуры = температура_амплитуда * np.sin(частота_температуры * (высота — средняя точка высоты)) + 750 # Создать случайный шум для небольших изменений температуры макс_вариация = 50 шум = np.random.uniform(-max_variation, max_variation, (num_rows, num_columns)) # Добавьте шум к температурам, чтобы создать температурные профили temp_array = температура[:, np.newaxis] + шум """ Анализ главных компонентов""" из sklearn.decomposition импорт PCA run_number = np.arange(1, 301).reshape(300, 1) ПКА = ПКА(2) Principal_comComponents = pca.fit_transform(temperature_array.T) печать (temperature_array.shape) печать(principal_comComponents.shape) # Создайте фигуру с двумя подграфиками рис, axs = plt.subplots(1, 3, figsize=(12, 5)) # Первый сюжет # График зависимости температуры от высоты для всех 300 профилей для меня в диапазоне (num_columns): sc1 = axs[0].plot(temperature_array[:, i], height_array[:, i], label=f'Profile {i+1}', альфа=0,8) # Постройте профиль номинальной температуры отмеченными линиями номинальная_температура = температура_амплитуда * np.sin(температура_частота * (высота - высота_средняя точка)) + 750 axs[0].plot(nominal_temperature, heights, 'k', linewidth=2, label='Nominal Profile', linestyle='--') # Установите метки и заголовок сюжета axs[0].set_ylabel('Высота (км)') axs[0].set_xlabel('Температура (K)') axs[0].set_title('Профили температуры и высоты') # Второй сюжет sc2 = axs[1].scatter(основные_компоненты[:, 0], главные_компоненты[:, 1], c=run_number.T,edgecolor='none', альфа=0,5, cmap=plt.cm.get_cmap('Акцент')) axs[1].set_xlabel('компонент 1') axs[1].set_ylabel('компонент 2') fig.colorbar(sc2, ax=axs[1]) # Третий сюжет sc3 = axs[2].plot(np.cumsum(pca.explained_variance_ratio_)) axs[2].set_xlabel('количество компонентов') axs[2].set_ylabel('кумулятивная объясненная дисперсия') plt.tight_layout()
Изображение

Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Применимо ли анализ главных компонентов к функциям моментов Ху [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Анализ электронного письма, состоящего из нескольких частей, с подчастями с использованием Python
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Какой метод анализа основных компонентов для станционного нелинейного 3D-набора данных?
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Обработка FreeSurfer: совместный или раздельный анализ групповых образцов?
    Anonymous » » в форуме Linux
    0 Ответы
    43 Просмотры
    Последнее сообщение Anonymous
  • Трясогузка: проверка модельных отношений
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»