Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在降维后使用选定变量会引发值错误_Python_Pandas_Machine Learning_Scikit Learn_Random Forest - Fatal编程技术网

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'])