Я пытаюсь понять, как я могу использовать sklearn RFE для линейной регрессионной модели, когда у меня есть категорические столбцы, я создал с пандами get_dummiessklearn RFE с пандами get_dummies
У меня есть набор данных и макет:
y = Carsales
X = Unemployment, Queries, CPI_energy, CPI_all, Month(comes in as an int)
Первое, что я делаю, это преобразовать месяц в объект, затем категорию (преобразование прямо к типу категории не работало в пандах).
df['MonthFac'] = df['Month'].astype('object')
df['MonthFac'] = df['MonthFac'].astype('category')
Затем я создаю мой X, Y:
from sklearn.linear_model import LinearRegression
cols = ['Unemployment','Queries','CPI_energy','CPI_all']
X = pd.concat([train[cols],(pd.get_dummies(train['MonthFac']))], axis = 1)
y = train['ElantraSales'].values
lm1 = LinearRegression()
lm1.fit(X,y)
Затем я хочу использовать RFE:
from sklearn.feature_selection import RFE
selector = RFE(lm1,step=1, n_features_to_select = 2)
selector.fit(X,y)
Простой RFE ищет 2 особенностей, однако результат в том, что она занимает 2 из столбцов месяца как 1, я технически только должен был бы только, если 1 из столбцов месяца был рангом 1, тогда я хотел бы, чтобы переменная «MonthFac» была значительной в построении моей модели, я хочу знать, что такое верхний рейтинг переменная t o использование.
Или я просто должен использовать свои дедуктивные рассуждения, чтобы выяснить, какую другую переменную использовать на основе вывода selector.ranking_
?
По сравнению с R, кривая обучения sklearn намного выше, кажется:/
Также я делаю Категориальные значения прямо панд/sklearn? В R все, что я должен был сделать, это as.factor
и BAM, он сделал все это.
Еще один вопрос, если бы я не был уверен, какое оптимальное количество функций я бы подумал, что я мог бы создать селектор цикла R^2/R^2 adj/MSE и распечатать его, но поскольку у меня есть эти дополнительные месячных столбцов мой цикл будет идти до 16, потому что есть по существу 16 функций, есть ли лучший способ сделать это?
Не могли бы вы принять мой ответ, если это поможет вам решить ваш вопрос? Большое спасибо. :-) –
Приношу свои извинения, еще раз спасибо! – Neil
Не проблема вообще. :-) Рад, что это помогло. –