【发布时间】:2015-07-09 04:16:45
【问题描述】:
我正在 scikit 中运行一些算法。就像目前我使用 RandomisedLasso。但是这个问题与 scikit 中的任何 ml 算法有关。
我的初始训练数据是 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 没有要交叉检查的标题。
这在 scikit 中的任何 ml 算法实现中都很常见。如何克服这一点?就像我需要找到它给出的哪些变量一样重要,或者如果我正在运行回归模型,那么系数代表哪些变量,因为我可能使用 Onehotencoder 来转换分类变量,然后它会改变原始的 var 顺序。
有什么想法吗?
【问题讨论】:
标签: python numpy pandas matplotlib scikit-learn