Вопрос или проблема
Я пытаюсь получить LDA в Orange 3.28 (GUI).
Используя знаменитый набор данных ирисов, загруженный из виджета набора данных:
Данные, как вы можете видеть, загружены как следует и имеют “iris” в качестве цели (это то же самое, что и класс, между прочим, я не смог найти информацию ?)
Виджет линейной проекции работает для PCA и кругового:
Вместо этого я получаю ошибку с текстом “y должен быть одномерным массивом, вместо этого получен массив формы (150,0)“.
Что я делаю не так и как мне получить LDA ?
Бонусный вопрос: справочная информация говорит, что “Этот виджет отображает линейные проекции данных с метками классов“. Однако я не смог найти упоминаний о “данных с метками классов” в руководстве. Ближайшее, что я нашел – это виджет “создать класс”, который, очевидно, создает новую категориальную переменную на основе текста. Это то же самое, что и переменная “цель”? Виджеты таблицы данных ссылаются как на “цель с 3 значениями” (в этом случае), так и позволяют “цветить по классам экземпляров” – является ли класс тем же, что и переменная цели? Если нет, то как определяется класс?
У вас есть столбец Iris как ‘мета’, а не как цель. Один из способов это исправить – использовать виджет выбора столбцов и переместить ‘iris’ из мета в ‘класс’.
Ответ или решение
Использование LDA в Orange 3.28: Решение проблемы и объяснения
Введение
В рамках вашего вопроса о реализации LDA (линейный дискриминантный анализ) в Orange 3.28, вы столкнулись с проблемой, что LDA не работает, несмотря на корректную настройку для других методов, таких как PCA. Давайте разберем, как правильно настроить LDA, а также проясним термины, такие как "целевой" и "классовый" атрибуты.
Ошибка при использовании LDA
Ошибка, которую вы наблюдаете: "y should be a 1d array, got an array of shape (150,0) instead", указывает на то, что Orange не может определить целевую переменную (класс) для выполнения LDA. Это может происходить по нескольким причинам:
- Неправильно назначенные метаданные: В вашем случае, столбец "iris" был загружен как мета-атрибут, а не как целевой класс. Для LDA важен столбец, который указывает на классы (или целевую переменную), по которым будет проводиться анализ.
Решение проблемы
Чтобы устранить данную проблему, выполните следующие шаги:
-
Используйте виджет «Выбор столбцов» (Select Columns):
- Перетащите виджет в рабочую область проекта.
- Подключите его к виджету, который загружает датасет (например, «Загрузчик данных»).
- В настройках виджета выберите ваш столбец "iris" и переместите его из метаданных в класс (target).
-
Запустите LDA снова:
- После изменения статуса столбца "iris", повторно подключите виджет "Линейная проекция" и выберите LDA в качестве метода проекции. Теперь LDA должен работать корректно.
Объяснение терминов
Теперь давайте проясним, что означают "целевой" (target) и "классовый" (class) атрибуты в контексте Orange:
-
Целевой атрибут (Target): Это переменная, которую вы хотите предсказать или проанализировать. В вашем случае, это вид ириса из набора данных Iris.
-
Классовый атрибут (Class): Это атрибут, который группирует данные по категориям. Классы могут быть представлены целевыми переменными (как в вашем случае) или другими категориальными переменными, созданными с помощью виджета "Создание класса" (Create Class).
Важное замечание: в контексте машинного обучения, термины "класс" и "целевой атрибут" часто используются как синонимы, особенно когда речь идет о задачах классификации.
Заключение
Корректная настройка атрибутов в Orange является определяющим фактором для успешного выполнения анализа данных. В вашем случае, изменение статуса атрибута "iris" с метаданных на целевой класс решит проблему с ошибкой LDA. Важно внимательно следить за тем, как данные и атрибуты организованы в рабочем процессе для эффективного использования мощных инструментов анализа, предлагаемых Orange.
Если у вас возникнут дополнительные вопросы или потребуется помощь с другими аспектами работы в Orange, не стесняйтесь задавать свои вопросы.