首页 > 解决方案 > 自动特征选择 - Sklearn.feature_selection

问题描述

我有两个数据集,一个训练数据和一个测试数据。train.shape = (307511, 122) 和 test.shape = (48744, 121)。这两个数据集都包含这些 dtype:int32、float64 和 object。

我进行了热编码以将对象转换为 float 或 int dtype。

train = pd.get_dummies(train)
test = pd.get_dummies(test)
print('Train dummies shape: {}'.format(train.shape))
print('Test dummies shape: {}'.format(test.shape))

我从上面的代码中得到了这些结果:

Train dummies shape: (307511, 246)
Test dummies shape: (48744, 242)

形状已更改,因此 HotEncoding 已成功。但现在我面临的问题是,当我尝试训练和测试我的数据时,我得到了这个错误:

ValueError: Input contains NaN, infinity or a value too large for dtype('float32')

这些是我的进口:

from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.feature_selection import SelectFromModel 
from sklearn.ensemble import ExtraTreesClassifier

请帮忙

标签: pythontensorflowmachine-learningscikit-learn

解决方案


尝试这个:

train.as_matrix().astype(np.float)
test.as_matrix().astype(np.float)

推荐阅读