进入 RFE 并获取“DataFrame 对象不可调用”错误
Stepping into RFE and getting 'DataFrame object is not callable" error
我是第一次尝试使用 RFE,结果遇到 "DataFrame object is not callable" 错误。
这是我的代码
X, y = df5(n_samples=875, n_features=10, random_state=0)
estimator = SVR(kernel="linear")
selector = RFE(LinearRegression, step=1, cv=5)
selector = selector.fit(X, y)
df5([ True, True, True, True, True,
False, False, False, False, False], dtype=bool)
selector.ranking_
df5([1, 1, 1, 1, 1, 6, 4, 3, 2, 5])
我正在查看具有 49 个特征的数据集,我正在寻找的输出是应该保留这些特征中的哪些特征,哪些特征应该被踢出。
如果有人能帮我弄清楚如何将其纳入 RFECV,加分!
如果您想要 select 列,首先找出有关数据框的信息,然后 select 需要的功能。
# the next 2 lines is to initialize DataFrame object (just for the example)
>>> from pandas import DataFrame
>>> df = DataFrame.from_dict({'one': range(10), 'two': range(10, 0, -1), 'three': [3 for x in range(10)]})
# now figure out what columns you df has:
>>> df.head()
one three two
0 0 3 10
1 1 3 9
2 2 3 8
3 3 3 7
4 4 3 6
5 5 3 5
6 6 3 4
7 7 3 3
8 8 3 2
9 9 3 1
# Now you can slice specific columns (features in your case):
>>> df[['one', 'two']]
one two
0 0 10
1 1 9
2 2 8
3 3 7
4 4 6
5 5 5
6 6 4
7 7 3
8 8 2
9 9 1
你的特征名称是数字的吗?我不确定。检查一下。
我是第一次尝试使用 RFE,结果遇到 "DataFrame object is not callable" 错误。
这是我的代码
X, y = df5(n_samples=875, n_features=10, random_state=0)
estimator = SVR(kernel="linear")
selector = RFE(LinearRegression, step=1, cv=5)
selector = selector.fit(X, y)
df5([ True, True, True, True, True,
False, False, False, False, False], dtype=bool)
selector.ranking_
df5([1, 1, 1, 1, 1, 6, 4, 3, 2, 5])
我正在查看具有 49 个特征的数据集,我正在寻找的输出是应该保留这些特征中的哪些特征,哪些特征应该被踢出。
如果有人能帮我弄清楚如何将其纳入 RFECV,加分!
如果您想要 select 列,首先找出有关数据框的信息,然后 select 需要的功能。
# the next 2 lines is to initialize DataFrame object (just for the example)
>>> from pandas import DataFrame
>>> df = DataFrame.from_dict({'one': range(10), 'two': range(10, 0, -1), 'three': [3 for x in range(10)]})
# now figure out what columns you df has:
>>> df.head()
one three two
0 0 3 10
1 1 3 9
2 2 3 8
3 3 3 7
4 4 3 6
5 5 3 5
6 6 3 4
7 7 3 3
8 8 3 2
9 9 3 1
# Now you can slice specific columns (features in your case):
>>> df[['one', 'two']]
one two
0 0 10
1 1 9
2 2 8
3 3 7
4 4 6
5 5 5
6 6 4
7 7 3
8 8 2
9 9 1
你的特征名称是数字的吗?我不确定。检查一下。