回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在研究一个回归问题。对于我的模型,我使用随机森林分类器进行降维。输出是一个以空格分隔的布尔值字符串,它将好的特性突出显示为“True”。它看起来是这样的:</p>
<pre><code>[ True True True True True True True True True True True True
True True True False True True False True True True False True
True True True True True True True False True False False True
True False False False False False False False False False False True
False False True False False False False False False True False False
False True False False False False False False False False False False
False False False False False False False False False False False False
False False False False False False False False False False False False
False False False False False False False False False False False False
False False False False False False True False False True False False
False True False True False False False False False False False False
False False False False False False False False False False False False
False True False False False False False False False False True False
False False False False False True False False False True True False
False False False False False False False False False False False False
False False False False False False True False False False False False
False False True False False True False True False True False False
True False False False False False False False False False False False
False False False True False True False True False False False False
False False False False False True True False False False False False
False False False False True False True True False True False False
False False False True True True False False False False False False
False False False False False False False False False False False False
False False False False False False True False False False False False
False False False False False False False False True False False False
False True False]
</code></pre>
<p>我所做的就是把它变成一个逗号分隔的列表,如下所示:</p>
<pre><code>[True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, True, True, False, True, True, True, False, True, True, True, True, True, True, True, True, False, True, False, False, True, True, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, False, False, False, False, False, True, False, False, False, True, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, True, False, False, False, True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, True, False, False, False, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, True, False, False, True, False, True, False, True, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, True, False, True, False, False, False, False, False, False, False, False, False, True, True, False, False, False, False, False, False, False, False, False, True, False, True, True, False, True, False, False, False, False, False, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False]
</code></pre>
<p>然后循环遍历每个元素并检索相应的测试列。这是此过程的完整代码:</p>
<pre><code>sel = SelectFromModel(RandomForestClassifier(n_estimators = 100), threshold = '1.25*mean')
sel.fit(x_train, y_train)
selected = sel.get_support()
selected_list = list(selected)
columns_list = []
for i in range(len(selected_list)):
if(selected_list[i] == 'True'):
columns_list.append(test[i])
print(columns_list)
</code></pre>
<p>但是现在我得到了一个空列表,尽管我试图将它附加到我的<code>columns_list</code>。基本上,我的目标是在我的预测中使用维度缩减的列。我用线性回归来解决这个问题。你知道吗</p>
<p><strong>更新</p>
<p>当我将代码更改为下面的建议时,出现以下错误:</p>
<pre><code>Traceback (most recent call last):
File "/opt/anaconda/envs/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 2890, in get_loc
return self._engine.get_loc(key)
File "pandas/_libs/index.pyx", line 107, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/index.pyx", line 131, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/hashtable_class_helper.pxi", line 1607, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas/_libs/hashtable_class_helper.pxi", line 1614, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 0
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/onur/Documents/Boston-Kaggle/Model.py", line 100, in <module>
columns_list.append(test[i])
File "/opt/anaconda/envs/lib/python3.7/site-packages/pandas/core/frame.py", line 2975, in __getitem__
indexer = self.columns.get_loc(key)
File "/opt/anaconda/envs/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 2892, in get_loc
return self._engine.get_loc(self._maybe_cast_indexer(key))
File "pandas/_libs/index.pyx", line 107, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/index.pyx", line 131, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/hashtable_class_helper.pxi", line 1607, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas/_libs/hashtable_class_helper.pxi", line 1614, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 0
</code></pre>