我目前正在开展一个项目,其中一部分我们想要使用过滤器评估方法,我们在其中进行相关性分析,但在另一部分中,我们认为做更多或包装器是个好主意使用交叉验证消除方法特征。我在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.有可能有人抓到我的错误可能?