我正在使用 python scikit-learn 中实现的 SVM 处理二进制分类任务。数据大小约为 10,000,特征数为 34。
在找到好的参数集(使用RandomizedSearchCV
类)后,我通过交叉验证来评估模型。结果看起来不错。
criteria_list = ["precision", "recall", "f1", "roc_auc"]
score_df = []
score_df2 = []
clf = svm.SVC(**random_search_clf.best_estimator_.get_params())
for crit in criteria_list:
scores = cross_validation.cross_val_score(clf, X, y, cv=3, scoring=crit)
score_df.append(["{} (±{})".format(np.round(np.mean(scores),3), np.round(np.std(scores),4)), scores])
score_df2.append(["{} (±{})".format(np.round(np.mean(scores),3), np.round(np.std(scores),4))])
pd.DataFrame(np.transpose(score_df2), columns=criteria_list, index=["SVM"])
我的问题是是否有可能找出哪个特征对测试数据分类有效。我认为这与敏感性分析有关,但通过谷歌搜索“敏感性分析 + svm”或“敏感性分析 + scikit learn”无法显示出好的答案。