我正在scikit中运行一些算法。就像目前我使用RandomisedAsso一样。但这个问题适用于scikit中的任何ml-algo。
我最初的训练数据是149x56。现在我要做的是:
from sklearn.linear_model import RandomizedLasso
est_rlasso = RandomizedLasso(max_iter=1000)
# Running Randomised Lasso
x=est_rlasso.fit_transform(tourism_X,tourism_Y)
x.shape
>>> (149x36).
因此,如果你看到它给出了最初56个最佳特征中的36个,并将数据集从149x56转换为149x36。但问题是它保留了哪些36个功能?scikit最大的问题是它去掉了可变标题。所以现在我不知道这个算法保留了哪些特征,删除了哪个特征,因为最后的X没有要交叉检查的头。
THis在scikit中的任何ml算法实现中都很常见。如何克服这一点?比如,如果我需要找到它给出的哪些变量是有效的,或者如果我正在运行回归模型,那么系数代表哪些变量,因为我可能使用Onehotencoder来转换分类变量,然后它会改变原始变量的var顺序。
知道吗?
从文档
get_support([index])返回功能/索引的掩码或列表选定。
http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.RandomizedLasso.html