2011-02-10 3 views
3

У меня есть набор из 100 наблюдений, где каждое наблюдение имеет 45 характеристик. И каждое из этих наблюдений имеет прикрепленный ярлык, который я хочу предсказать на основе этих 45 характеристик. Таким образом, это входная матрица с размером 45 х 100 и матрицей-мишенью с размером 1 х 100.
Дело в том, что я хочу знать, сколько из этих 45 характеристик имеет значение в моем наборе данных, в основном основной компонентный анализ, и я понимаю, что могу сделать это с помощью функции Matlab processpca.

Не могли бы вы рассказать мне, как я могу это сделать? Предположим, что входная матрица равна x с 45 строками и 100 столбцами, а y - вектор с 100 элементами.Matlab Question - Основной анализ компонентов

+1

@David Хеффернэн: Вот про смутное замечание я видел на SO, но. @Jack: R похож на Matlab синтаксически. Вы можете взглянуть на http://www.uga.edu/strata/software/pdf/pcaTutorial.pdf, если хотите идти по этому маршруту. – aqua

+0

Да, R, что вы хотите для PCA –

+2

@ Дэвид Хеффернан: Что относительно кода Matlab для анализа основных компонентов недостаточно, чтобы один * имел *, чтобы переключиться на R, чтобы получить достойные результаты? – Jonas

ответ

5

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

Principal Components Analysis

и ...

Putting PCA to Work

... оба из которых обеспечить код в MATLAB не требует каких-либо панелей инструментов.

1

Вы попробовали COEFF = princomp(x)?

COEFF = princomp(X) выполняет анализ главных компонентов ( PCA) на п-по-р матрицы X данных, и возвращает основные коэффициенты компонента, также известные как нагрузок. Строки X соответствуют наблюдениям, столбцам до переменных. COEFF представляет собой матрицу p-by-p, для каждого столбца, содержащего коэффициенты для одного основного компонента. Столбы находятся в порядке уменьшения дисперсии компонентов .

+0

Обратите внимание, что для этого решения требуется панель инструментов статистики. – Predictor

+0

Я пробовал это, но дело в том, что я хочу увидеть, какая из этих характеристик важна в моих данных. Я хочу создать Neural Network, и я хочу передать в качестве входных данных только те характеристики. – Simon

0

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

Если вы не вынуждены выполнять анализ в MATLAB, я предлагаю вам попробовать более специализированное программное обеспечение, например, WEKA (www.cs.waikato.ac.nz/ml/weka/) или RapidMiner (quick-i .com). Оба инструмента могут обеспечить PCA и другие алгоритмы уменьшения размера + они содержат хорошие инструменты визуализации.

0

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

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

  • Наивный байесовский классификатор Тарированная
  • Decision Trees (ака Случайные леса)
  • биномиального и Multinominal логистического регрессионного анализа
  • линейный дискриминантный

У вас также есть множество возможностей для выбора функции:

  • sequentialfs (вперед и назад МНЕМОНИЧЕСКИЙ)
  • relifF
  • «treebagger» также поддерживает опции для выбора функции и оценки переменного значения.

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

Несколько месяцев назад, я сделал веб-семинар для MathWorks под названием «Compuational Statistics: Начало работы с классификацией с использованием MTALAB». Вы можете смотреть вебинар на

http://www.mathworks.com/company/events/webinars/wbnr51468.html?id=51468&p1=772996255&p2=772996273

код и набор данных для примеров можно найти на MATLAB Central

http://www.mathworks.com/matlabcentral/fileexchange/28770

При всем этом сказано и сделано, многие люди с помощью основного компонента Анализ как шаг предварительной обработки перед применением алгоритмов классификации. PCA привыкает много

  1. Если вам необходимо извлечь из особенностей изображений
  2. Когда вы беспокоитесь о мультиколлинеарности
0

Вы должны найти корреляционную матрицу. в следующем примере MATLAB находит корреляционную матрицу с функцией «КОРР»

http://www.mathworks.com/help/stats/feature-transformation.html#f75476

+0

Пожалуйста, разместите здесь все соответствующие коды и документацию. Ссылка может меняться со временем и сделать этот ответ недействительным. – rfornal

Смежные вопросы