【发布时间】:2018-07-01 01:08:34
【问题描述】:
如何显示对 SVM 模型有贡献的重要特征以及特征名称?
我的代码如下所示,
首先我导入了模块
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.grid_search import GridSearchCV
from sklearn.metrics import accuracy_score
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.svm import SVC
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import train_test_split
from sklearn.metrics import confusion_matrix, classification_report
然后我将数据分为特征和变量
y = df_new[['numeric values']]
X = df_new.drop('numeric values', axis=1).values
然后我设置管道
steps = [('scalar', StandardScaler()),
('SVM', SVC(kernel='linear'))]
pipeline = Pipeline(steps)
然后我指定了我的超参数空间
parameters = {'SVM__C':[1, 10, 100],
'SVM__gamma':[0.1, 0.01]}
我创建了一个训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X,y, test_size = 0.2, random_state=21)
实例化 GridSearchCV 对象:cv
cv = GridSearchCV(pipeline,param_grid = parameters,cv=5)
适应训练集
cv.fit(X_train,y_train.values.ravel())
预测测试集的标签:y_pred
y_pred = cv.predict(X_test)
feature_importances = cv.best_estimator_.feature_importances_
我收到的错误消息
“管道”对象没有属性“feature_importances_”
【问题讨论】:
-
这里到底有什么问题?请确保问题有清晰的问题描述。
-
问题是,我想提取数据的重要特征。我已经使用 feature_importances = cv.best_estimator_.feature_importances_ 但我得到“'管道'对象没有属性'feature_importances_'”
-
所以你有一个产生错误的代码,请确保在问题中有代码和完整的错误回溯。
-
假设,你得看看这篇文章:medium.com/@aneesha/…
标签: python matplotlib machine-learning svm