在SkLearn中使用交叉验证运行递归特征消除的问题?

时间:2017-12-07 21:54:20

标签: python machine-learning data-mining

我目前正在开展一个项目,其中一部分我们想要使用过滤器评估方法,我们在其中进行相关性分析,但在另一部分中,我们认为做更多或包装器是个好主意使用交叉验证消除方法特征。我在Sci-kit上找到了递归功能消除包。

我正在将数据加载到Pandas数据框'df':

df = pd.read_csv("/Users/rohinmahesh/Documents/Data_Mining_Project/bank-additional-full.csv")
df = df.reset_index()

创建虚拟变量后,我创建了要素和标签数组:

x = df2.iloc[:, :-1]
y = df2.iloc[:, -1]
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3)

在以精确度作为度量(项目规范)运行各种模型之后,最优模型是Logistic回归:

clf = LogisticRegression()
clf.fit(x_train, y_train)

然后我用3倍交叉验证(项目规范)评估模型:

pre_score = cross_val_score(clf, x, y, cv=3)
score = pre_score * 100
print(st.mean(score))

现在,当我运行常规的递归特征消除时,它正在工作:

rfe = RFE(clf, 3)
rfe = rfe.fit(x_test, y_test)
print(rfe.support_)
print(rfe.ranking_)

但是当我尝试使用RFECV运行时,我收到一条错误消息:

rfe = RFECV(clf, cv=3)
rfe = rfe.fit(x_test, y_test)
print(rfe.support_)
print(rfe.ranking_)

我是新手,所以任何帮助都会很棒!

编辑:我已经让它运行正常(不确定我之前做了什么使它错了)但我得到了这个输出,我不明白一切是如何排名1.有可能有人抓到我的错误可能?

0 个答案:

没有答案