LINUX.ORG.RU

R: Интеллектуальный анализ данных или Data Mining

 datamining, , , ,


1

0

По согласованию с редакцией Linux Format выложил в открытый доступ главу «Интеллектуальный анализ данных или Data Mining» — седьмую и последнюю часть из цикла статей по R. Эта часть была опубликована в декабрьском номере LXF.

Из Википедии: R — язык программирования для статистической обработки данных и работы с графикой, а также свободная программная среда вычислений с открытым исходным кодом в рамках проекта GNU.

Информация по улучшению и советы по развитию всячески приветствуются.

>>> Подробности

★★★★★

Проверено: anonymous_incognito ()
Последнее исправление: CYB3R (всего исправлений: 1)

Спасибо!

Однако есть недостатки :). Анализ принципиальных компонент это не просто преобразование когда первая компонента несет наибольшую информацию о разнообразии объектов. Это свойство анализа не самое главное. Главным является замена исходного набора переменных новым, причем таким, что новые переменные взаимно независимы (ортогональны). Именно это дает анализу такую силу.

Пропущен вопрос о выделении числа компонент и вообще вопрос есть ли зависимость (или все случайно). А ведь просто надо построить

plot(prcomp(cbind(runif(100),runif(100),runif(100),runif(100),runif(100),runif( 100),runif(100))))

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

Ну а наличие излома на графике нагрузок компонент и позволяет сказать сколько выделять компонент для последующего анализа (ортогонального вращения и\или введения своих осей).

Непонятна "нелюбовь" к lda, да он обнажает тот факт, что если не отличаются объекты классификации на векторе признаков, то и разделяющую гиперплоскость негде провести. Геометрия вещь упрямая :)

psv1967 ★★★★★
()
Ответ на: комментарий от psv1967

Ээээ. Как-то это уже сложно для меня. Может быть ещё серию? С меня, как обычно было в предыдущих частях, оформление, проверка и приведение всё к устраивающему редакцию виду, а с вас идеи. Даже немного денег получить удастся :)

Мой e-mail: E.M.Baldin в inp точка nsk точка su

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от psv1967

Спасибо за ответ!
Естественно, я писал текст, ориентируясь на традиции того круга специалистов, к которому принадлежу (биологи-систематики). Отсюда и акцент на снижение размерности, и "нелюбовь" к lda.
Что бы конкретно Вы добавили в текст?

plantago
()

Хмм, а может кому-нибудь будет интересно прикрутить (точнее проверить) MathGL для R ?

abalakin ★★
()
Ответ на: комментарий от plantago

Сначала я бы рассказал в чем идея многомерного анализа. Я бы начал издалека.

Я бы начал с того, что нарисовал скатерплоты двух коррелирующих величин. Для случаев когда r>0 и r<0. С нанесением эллипсов рассеяния. Затем показал как изменяется скатерплот для случая перехода к -1 и 1. Все точки легли на одной линии? Значит имеем функциональную зависимость и одна переменная лишняя, поскольку не добавляет информации. Вот здесь удобный момент, а как предсказать значение одной переменной по второй когда зависимость статистическая? Строим прямую регрессию прямо на скатерплоте для r>0. Затем показываем обратную регрессию... О! да они не совпали! (объясняем почему) А если r плавно меняется? Угол между регрессиями меняется тоже. "Ножницы" разворачивающиеся вокруг точки x-среднее y-среднее. Ну ка а чему равен тангенс угла альфа между ними? Да это же r. Теперь рассматриваем случай когда r=0, и прямая и обратная регрессии ортогональны (перпендикулярны :). Подчеркиваем что коэффициент корреляции равен 0. Ну и предсказать можно _только_ среднее зависимой переменной. Объясняем что r^2 это коэффициент детерминации показывающий какую долю дисперсии переменных можно объяснить взаимным влиянием. И из него надо исходить в оценке наших возможностей количественной оценки одной переменной по другой. (! обязательно нарисовать что такое "ложный коэффициент корреляции"! ).

Теперь говорим о том что в эксперименте обычно много больше чем две переменные описывают объекты наблюдения. И строят корреляционную матрицу. В которой если переменных больше 10 увы тоже поседеешь пока разберешься. Говорим о том, что не все переменные описывающие объект изменяются вследствии _различных_ случайных причин. Некоторые в разной степени зависят от неких первичных переменных, и только эти первичные переменные вследствии совсем различной природы действительно независимы друг от друга. То есть r между ними равны 0 или почти равны 0. То есть это и есть "первопричины" наблюдаемого в эксперименте.

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

Опять рисуем коррелограмму для случая 1>r>0, для переменных x и y. Проводим новую ось х' такую что на нее проецируется максимум дисперсии. Ось х' проходит через точку (x-среднее y-среднее) и _ортогонально_ ей проецируются все точки. Объясняется что ось проходит так, что накапливает максимальную сумму спроецированных на нее отклонений^2. Как провести независимую по отношению к ней вторую ось очевидно, это перпендикулярная к ней ось y'. Зразу развиваем идею на трёхмерный случай пририсовывая к графику ось z и объявляя эллипс рассеивания "дыней рассеивания". Объясняем что ось y' при этом вращается перпендикулярно x' "ища" направление в котором "дыня рассеивания" "сплюснута". И на этом направлении ось y' тоже накапливает максимум проекций отклонений от среднего. Ну а ось z' теперь является "осью без выбора" :).

То есть мы построили вместо x y z новую систему координат x' y' z' в которой коэффициенты корреляции равны 0. Побочный эффект, то что произошло "сжатие/концентрация" дисперсии, каждый раз мы выделяли максимум оставшейся (ограниченные условием независимости осей). Строим график сколько исходной диспепсию системы x y z ... приходится на систему координат x' y' z' ... . Для случайных данных получаем прямую линию. При наличии нескольких причин, получаем излом на кол-ве этих самых причин. Объясняем что выделив определенное кол-во причин, можно остановится и отбросить все остальное, как шум. Выделенное можно опять провращать проводя оси по разным критериям. Сохраняя их взаимоперпендикулярность/независимость/ортогональность, или делая косоугольные вращения. Можно оси проводить и мысленно, после некоторой тренировки это легко. Ну естественно есть и gobi в помощь. Два основных случая --- когда коэффициенты корреляции отражают "естественную группировку" и когда собственно зависимости.

В таком же духе можно сразу перейти к lda у него только новую систему координат немного по другому проводят. Тот "гондурас" который так любили "трогать" в 80е --- как де достоверность посчитать для методов снижения размерности закрым Эфрон своим бутстрепом. Достаточно расказать как применить простейший "складной нож" для построения распределения любого результата.

psv1967 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.