Выбор характеристик с непрерывными и категориальными данными (с Boruta, Decision tree et c.) - PullRequest
0 голосов
/ 30 января 2020

Я работаю над мультирегрессией с большим количеством данных столбцов, которые включают числовые данные c и категориальные данные для определения стоимости товаров.

Существует много данных. Однако, чтобы избежать проблем с переобучением, мне нужно выбрать функции, которые могут объяснить стоимость товаров.

Прежде всего, я пытаюсь использовать dataframe.corr для расчета корреляции между каждым столбцом. со стоимостью товаров.

Для сравнения корреляции я использую boruta.BorutaPy , Техника случайного леса и sklearn.linear_model.LinearRegression для выбор функции. К сожалению, категорические данные мешают этому. Я читал об этих методах работы с категориальными данными.

import pandas as pd

data = pd.read_csv(dir + file)

X = data.drop(['value','Id'], axis = 1)

index = X.keys()

Y = data['value']

X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = .3)

Этот код показывает, как я могу прочитать файл и выбрать данные поезда / теста из прочитанных данных (Конечно, категориальные данные включены в X-кадр данных) .

Вот склерный способ выбора функций

model = linear_model.LinearRegression()

n_feat = 15    # The number of feature what I want to select

rfe = RFE(model, n_features_to_select = n_feat, step = 1)
fit = rfe.fit(X, Y)

, и путь брута равен

from sklearn.feature_selection import *
from boruta import BorutaPy

rf = RandomForestRegressor(n_estimators = 100, n_jobs=-1, oob_score=True)

feat_selector = BorutaPy(rf, n_estimators='auto', verbose=0, max_iter=200)

boruta_fit = feat_selector.fit(X_train.values, Y_train.values)

, он также показывает ValueError, поскольку значение категориальных данных равно строка.

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

Спасибо за вашу помощь!

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