Важность функции без метки для данных временных рядов с большим количеством столбцов/функцийPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Важность функции без метки для данных временных рядов с большим количеством столбцов/функций

Сообщение Anonymous »

У меня есть образец набора данных временных рядов (23, 14291), который для некоторых пользователей представляет собой сводную таблицу для подсчета за 24 часа; Я пытаюсь отфильтровать некоторые столбцы/функции, которые не имеют характера, основанного на временных рядах, и отфильтровать столбцы для достижения значимых функций. Я уже пытался использовать метод PCA, чтобы сохранить данные с большим количеством дисперсии данных или матрицей корреляции, чтобы исключить сильно коррелированные столбцы/функции.
Теперь я хотел поэкспериментировать с важностью функций. на основе этого сообщения с использованием некоторых регрессоров, но безуспешно.
Я попробовал следующее:

Код: Выделить всё

from sklearn.model_selection import train_test_split
trainingSet, testSet = train_test_split(df3,
#target_attribute,
test_size=0.2,
random_state=42,
#stratify=y,
shuffle=False)

import xgboost as xgb
from xgboost import XGBRegressor, plot_importance

X_train = trainingSet[:].values
y_train = trainingSet.iloc[:,1].values

X_test = testSet[:].values
y_test = testSet.iloc[:,1].values
y_test_new = y_test.astype('float32')

dtrain = xgb.DMatrix(X_train,y_train)
dtest = xgb.DMatrix(X_test,y_test)

params = {"objective":"reg:linear",'colsample_bytree': 0.3,'learning_rate': 0.1,
'max_depth': 5, 'alpha': 10}
num_round = 2
model_xgb_1user = xgb.train(params, dtrain, num_round)

pred_test_xgb_1user = model_xgb_1user.predict(dtest)

#from sklearn.multioutput import MultiOutputRegressor
#xgb = MultiOutputRegressor(XGBRegressor(n_estimators=100)).fit(trainingSet, testSet)
#xgb = XGBRegressor(n_estimators=100)
#xgb.fit(trainingSet, testSet)
sorted_idx = xgb.feature_importances_.argsort()
plt.barh(df3.feature_names[sorted_idx], xgb.feature_importances_[sorted_idx])
plt.xlabel("Xgboost Feature Importance")

pd.DataFrame(bst.get_fscore().items(), columns=['feature','importance']).sort_values('importance', ascending=False)
Я не уверен, как я смогу справиться с этим без меток, используя регрессоры. Я также прочитал этот пост. Важность функции Xgboost вычисляется тремя способами с помощью Python. Мне не удалось передать набор данных на основе временных рядов для определения важности функции.


Подробнее здесь: https://stackoverflow.com/questions/711 ... r-of-colum
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»