Изменения

Перейти к: навигация, поиск

Уменьшение размерности

2938 байт добавлено, 19:40, 4 сентября 2022
м
rollbackEdits.php mass rollback
Встроенные методы используют преимущества оберточных методов и являются более эффективными, при этом на отбор тратится меньше времени, уменьшается риск [[переобучение|переобучения]], но т.к. полученный набор признаков был отобран на основе знаний о классификаторе, то есть вероятность, что для другого классификатора это множество признаков уже не будет настолько же релевантным.
 
===Правила обрезки===
Для признаков, у которых найдено качество, можно выкинуть ненужное число признаков.
От каких параметров может зависеть алгоритм обрезки:
* Число признаков
* Порог значимости признаков
* Интегральный порог значимости признаков
* Метод сломанной трости
* Метод локтя
 
Может быть известно число признаков, которые нужно оставить, или выкинуть.
 
Порог значимости признаков соответствует порогу для меры, например, для корреляции. Выкидываются признаки, для которых корреляция меньше определенного порога:
 
<tex>\left | F \right | > x</tex>
 
Может существовать интегральный порог значимости, то есть признаки отсортированы по нормированной по единице "полезности" <tex>\mu</tex>, и выбирается несколько признаков с наибольшей <tex>\mu</tex>.
 
'''Метод сломанной трости'''. Есть отрезок, который мы разбиваем по <tex>n-1</tex> случайным точкам. Если отсортировать длины подотрезков, то для <tex>i</tex>-го подотрезка длина будет равна примерно:
 
<tex>T = \frac{\sum_{i=1}^{k} \frac{1}{i} }{k}</tex>, где <tex>k</tex> {{---}} число признаков, которые нужно оставить.
 
Тогда берутся те признаки, для которых <tex>\mu</tex> превышает порог <tex>T</tex>.
 
'''Метод локтя'''. Пусть есть график для признаков, отсортированных по убыванию <tex>\mu</tex>. Берутся признаки, идущие до резкого перехода между соседними значениями. То есть берутся <tex>\mu</tex> до порога <tex>T</tex>, где <tex>T</tex> {{---}} основание наиболее острого угла, образованного тремя соседними точками на графике.
 
Метод локтя можно использовать и для задачи кластеризации. Например, пусть <tex>\mu</tex> {{---}} внутрикластерное расстояние. Тогда выбирается число кластеров, соответствующее резкому переходу между соседними значениями на графике.
===Другие методы===
curCount -= curStep
return included
 
==Выделение признаков==
Другим способом уменьшить размерность входных данных является выделение признаков. Эти методы каким-то образом составляют из уже исходных признаков новые, все также полностью описывающие пространство набора данных, но уменьшая его размерность и теряя в репрезентативности данных, т.к. становится непонятно, за что отвечают новые признаки.
'''import''' java.io.FileReader;
<font color="green">// load dataset</font>
'''var''' data = new Instances(new BufferedReader(new FileReader("data/bank-data.arff")));
'''var''' filter = new NumericToNominal();
filter.setInputFormat(data);
data = Filter.useFilter(data, filter);
<font color="green">// initialize the PCA-based selector</font>
'''var''' pca = new PrincipalComponents();
<font color="green">// dimensionality reduction is achieved through selecting enough eigenvectors to account</font> <font color="green">// for some percantege of the variance in the original data</font>
pca.setVarianceCovered(0.95);
pca.buildEvaluator(data);
<font color="green">// transform the dataset</font>
data = pca.transformedData(data);
==См. также==
*[[Переобучение]]
*[[Метод опорных векторов (SVM)| SVM]]<sup>[на 28.01.19 не создан]</sup>
*[[Дерево решений и случайный лес| Случайный лес]]
*[[Метод главных компонент (PCA)| PCA]]<sup>[на 28.01.19 не создан]</sup>*[[Стохастическое вложение соседей с t-распределением |t-SNE]]<sup>[на 28.01.19 не создан]</sup> 
==Примечания==
<references/>
1632
правки

Навигация