问题描述
假设我有一个设计矩阵X(X_1,...,X_84)并且一个多元目标Y = [Y_1,Y_2,Y_3,Y_4],我想执行特征选择。因此,这是一个多元多元线性回归。理想情况下,我希望使用Python RFE(递归特征消除),LassoCV和sm.OLS,但Y必须是向量而不是矩阵。
我该如何解决这个问题?
谢谢
解决方法
您必须为RFE选择两个常量:
-
- 回归方法:
* Which regression method will you use?
***
* Decision Tree Regressor?,Random Forest Regressor?,Linear Regressor? ...
***
-
- 功能数量:
- 您将为问题选择多少个功能? 1,5?
- 不幸的是,您必须将功能部件号设置为常数。
例如:
from sklearn.feature_selection import RFE
from sklearn.linear_model import LassoCV
rfe = RFE(estimator=LassoCV(),n_features_to_select=5)
可能的问题:如果我不知道应该选择多少个功能,应该怎么办?
好吧,您可以使用RFECV。
rfe = RFECV(estimator=LassoCV())
然后,您可以继续创建Pipeline
和fit
模型。
from sklearn.pipeline import Pipeline
model = LassoCV()
pipeline = Pipeline(steps=[('s',rfe),('m',model)])
pipeline.fit(X,y)
预测下一个值:
data = [[-7.05,0.32,0.94,....]]
y_hat = pipeline.predict(data)
打印y_hat
时,将获得下一个预测值。