Python 在降维后使用选定变量会引发值错误
我正在研究一个回归问题,即卡格尔主持的波士顿房屋预测问题。我目前正在使用随机森林分类器来减少数据集的维数。但现在,我得到了以下错误:Python 在降维后使用选定变量会引发值错误,python,pandas,machine-learning,scikit-learn,random-forest,Python,Pandas,Machine Learning,Scikit Learn,Random Forest,我正在研究一个回归问题,即卡格尔主持的波士顿房屋预测问题。我目前正在使用随机森林分类器来减少数据集的维数。但现在,我得到了以下错误: Traceback (most recent call last): File "C:/Users/security/Downloads/AP/Boston-Kaggle/Model.py", line 96, in <module> print("The selected values from the test set are: " +
Traceback (most recent call last):
File "C:/Users/security/Downloads/AP/Boston-Kaggle/Model.py", line 96, in <module>
print("The selected values from the test set are: " + test[selected])
File "C:\Users\security\AppData\Roaming\Python\Python37\site-packages\pandas\core\frame.py", line 2918, in __getitem__
return self._getitem_bool_array(key)
File "C:\Users\security\AppData\Roaming\Python\Python37\site-packages\pandas\core\frame.py", line 2963, in _getitem_bool_array
(len(key), len(self.index)))
ValueError: Item wrong length 303 instead of 1459.
更新
测试头:
Id MSSubClass MSZoning ... YrSold SaleType SaleCondition
0 1461 20 RH ... 2010 WD Normal
1 1462 20 RL ... 2010 WD Normal
2 1463 60 RL ... 2010 WD Normal
3 1464 60 RL ... 2010 WD Normal
4 1465 120 RL ... 2010 WD Normal
[5 rows x 80 columns]
打印所选内容:
[ True True True True True True True True True True True True
True True True True True True True True True True False True
True True True True True True True True True False True True
True False True False True True False False False False True True
True False True False True False True False False True True True
False True True True False False False False False False True True
True True False False True True False True True True True False
True True True False True False True True True False False False
False False False False False False False False False False False True
False False False True True False True False False True False True
False True False True False False False False False False False False
False False False False False False False True False True True False
False True True False False False False False False True True False
True False True False False True True False False True True True
False False False True True False False True False True True True
True False False False True False True True False True True False
True False True True True True False True True True True True
True False False False False True True True False False False False
False False False True False True False True False False True False
False True False True False True True False False False False False
False True False False True False True True False True False True
False True False True True True False False False False False True
False False False False False True False True False True False False
False False True True True False True False False True False True
True False False False False False True False True True False False
False True True]
根据这篇文章:
您可以调整:打印从测试集中选择的值为:+test[selected]到:
这将返回数据帧,其中get_selected为true。
如果要访问特定列,可以将其更改为:
s = pd.Series(selected, name='bools')
testA = test[s.values]
print("The selected values from the test set are: " + testA['columnname'])
你能不能打印:test.head,selected,你不能用这样的测试访问数据框:test[selected]这是错误的检查这里:,这解释了get_support在做什么我已经发布了head。以下是完整数据集的链接:现在打印Selected检查编辑。
s = pd.Series(selected, name='bools')
print("The selected values from the test set are: " + test[s.values])
s = pd.Series(selected, name='bools')
testA = test[s.values]
print("The selected values from the test set are: " + testA['columnname'])