如何获取sklearn训练的Lasso模型所使用的特征的具体名称
获取Lasso模型选中特征名称的方法
sklearn自带的diabetes数据集会将特征名称存储在加载后对象的feature_names属性中,你可以结合Lasso模型的非零系数掩码直接过滤得到被使用的特征,具体实现代码如下:
from sklearn.datasets import load_diabetes from sklearn.model_selection import train_test_split from sklearn.linear_model import Lasso import numpy as np # 原有数据加载、拆分、模型训练逻辑 diabetes = load_diabetes() X_train, X_test, y_train, y_test = train_test_split(diabetes['data'], diabetes['target'], random_state=263) lasso = Lasso().fit(X_train, y_train) # 新增获取选中特征名称的逻辑 # 读取全部原始特征名称 all_feature_names = diabetes.feature_names # 用非零系数生成布尔掩码,过滤得到被模型使用的特征 used_feature_names = all_feature_names[lasso.coef_ != 0] # 打印查看结果 print(used_feature_names)
如果是自定义数据集,只需提前准备好和特征矩阵列数一一对应的特征名称列表,替换上述代码中的all_feature_names,使用同样的掩码规则过滤即可得到选中的特征名称。
内容的提问来源于stack exchange,提问作者daniel stafford
相关产品推荐
相关产品推荐

