Я работаю над мультирегрессией с большим количеством данных столбцов, которые включают числовые данные 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, поскольку значение категориальных данных равно строка.
Я хочу знать решение выбора функции с категориальными данными без фиктивных переменных . Потому что я думаю, что фиктивные переменные каждой категории не подходят для применения мульти регрессии. Если мое мнение неверно, я рад услышать ваш совет.
Спасибо за вашу помощь!