Python 在拟合保持NaN值不变的决策树分类器时出现值错误
我试图在两列中缺少值的数据上拟合DT分类器。由于DT处理缺失值,因此我希望在不输入任何值的情况下测试模型,即将缺失值保留为NaN。但是当我运行模型时,我得到了值错误Python 在拟合保持NaN值不变的决策树分类器时出现值错误,python,Python,我试图在两列中缺少值的数据上拟合DT分类器。由于DT处理缺失值,因此我希望在不输入任何值的情况下测试模型,即将缺失值保留为NaN。但是当我运行模型时,我得到了值错误 ValueError: Input contains NaN, infinity or a value too large for dtype('float32') 我尝试了以下代码: train_data = pd.read_csv('./train.csv') #converting -999 to NAN train_da
ValueError: Input contains NaN, infinity or a value too large for dtype('float32')
我尝试了以下代码:
train_data = pd.read_csv('./train.csv')
#converting -999 to NAN
train_data.x14[train_data.x14==-999]=np.NaN
train_data.x15[train_data.x15==-999]=np.NaN
train_data = train_data.reset_index()
#defining x and y
x = train_data.iloc[:,1:18]
y = train_data.iloc[:,-1]
print("Sample x data\n", x.head(n=5))
print("Sample y data\n", y.head(n=5))
X_train,X_test,Y_train,Y_test = train_test_split(x, y, test_size=0.30, random_state=0)
X_train = X_train.values
Y_train = Y_train.values
model = DecisionTreeClassifier(max_depth=10,
min_samples_split=5,
random_state=520)
# class_weight='balanced')
model.fit(X_train, Y_train)
保持
NaN
完好无损的唯一方法是在将数据提供给分类器之前删除它们
x = train_data.dropna().iloc[:,1:18]
y = train_data.dropna().iloc[:,-1]
您的训练数据(x
和y
)将不包含NaN
(您别无选择),但至少您的DataFrame
及其缺少的值将保持完整(无论出于何种原因) 请参阅: