Выбор признаков в классификации временных рядов - PullRequest
0 голосов
/ 29 октября 2019

У меня есть данные временного ряда с 9 переменными. Я нахожу 4 особенности из этого. Например, я вычисляю np.mean(), np.std(), np.var(), np.ptp() Теперь мои столбцы расширяются до 36 переменных из 9 переменных.

Метод выбора функции, доступный в sklearn, работает для одномерных данных. Поэтому, когда я применяю этот метод к многомерным данным, они не обнаружат, является ли np.mean() лучшей функцией, чем np.std(). Они просто найдут лучшие переменные из 36 переменных.

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

1 Ответ

0 голосов
/ 29 октября 2019

Позвольте мне подвести итог, чтобы убедиться, что я сначала понял вашу проблему. У вас есть данные временного ряда из 9 переменных, значит, у вас есть 9 каналов длины L, поэтому матрица формы L x 9, верно? Теперь вы вычисляете свои 4 объекта на каждом канале, превращая его в матрицу формы L x 36.

. Например, sklearn.selectKBest выбирает k лучших функций из 36 векторов объектов. Например, если k = 18, то после преобразования вы получите матрицу формы L x 18. Он выбирает 18 лучших функций.

Не могли бы вы подробнее рассказать о своей проблеме и о том, чего вы хотели бы достичь? Возможно с каким-нибудь кодом?

Редактировать:

Возможное решение, чтобы увидеть, какие функции были выбраны:

from sklearn.datasets import load_digits
from sklearn.feature_selection import SelectKBest, chi2
X, y = load_digits(return_X_y=True)
# X.shape = (1797, 64)
kbest = SelectKBest(chi2, k=20)
kbest.fit(X, y)
X_new = kbest.transform(X)
# X_new.shape = (1797, 20)
selected_features = kbest.get_support()
# Returns a mask of X.shape[1]
array([False, False, False, False, False,  True,  True, False, False,
       False, False, False, False,  True, False, False, False, False,
       False,  True,  True,  True, False, False, False, False,  True,
       False,  True, False,  True, False, False,  True,  True, False,
       False, False, False, False, False,  True,  True,  True,  True,
       False,  True, False, False, False, False, False, False, False,
        True, False, False, False,  True, False, False,  True,  True,
       False])

Теперь вам просто нужно сохранить вОбратите внимание, что функции соответствуют индексам, замаскированным с помощью true.

. Вдохновлен sklearn-документацией для SelectKBest (https://scikit -learn.org / stable / modules / generate / sklearn.feature_selection. SelectKBest.html # sklearn.feature_selection.SelectKBest )

...