Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.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 Can';我不知道如何清除随机森林中的南部_Python_Numpy_Scikit Learn_Nan - Fatal编程技术网

Python Can';我不知道如何清除随机森林中的南部

Python Can';我不知道如何清除随机森林中的南部,python,numpy,scikit-learn,nan,Python,Numpy,Scikit Learn,Nan,获取ValueError:运行以下代码时,输入包含NaN from sklearn.ensemble import RandomForestRegressor rf = RandomForestRegressor(n_estimators = 1000, random_state = 42) rf.fit(train_features, train_labels); 我运行了下面的程序,得到的结果表明没有NaN或无穷大的值,但在train_features数组下有一个不同的循环显示它们 np.

获取ValueError:运行以下代码时,输入包含NaN

from sklearn.ensemble import RandomForestRegressor
rf = RandomForestRegressor(n_estimators = 1000, random_state = 42)
rf.fit(train_features, train_labels);
我运行了下面的程序,得到的结果表明没有NaN或无穷大的值,但在train_features数组下有一个不同的循环显示它们

np.any(np.isnan(train_features))
我已经在下面运行了,但它没有改变我收到的错误

train_features = np.nan_to_num(train_features)
train_labels = np.nan_to_num(train_labels)
请帮忙

编辑:添加完整的相关代码:

features = pd.read_csv(x)
labels = np.array(features['Actuals'])
features = features.drop('Actuals', axis = 1)
feature_list = list(features.columns)
features = np.array(features)

from sklearn.model_selection import train_test_split
train_features, test_features, train_labels, test_labels = train_test_split(features, labels, test_size = 0.25, random_state = 42)

from sklearn.ensemble import RandomForestRegressor
rf = RandomForestRegressor(n_estimators = 1000, random_state = 42)
rf.fit(train_features, train_labels);

从我在代码中看到的情况来看,您只检查了
nan
,而不是
inf
。也许有更好的方法使用
numpy
,但是
pandas
方法应该可以:

with pd.option_context('mode.use_inf_as_na', True):
    pd.DataFrame(train_features).isnull().sum() #Will show you which columns have nan or inf values
    pd.DataFrame(train_labels).isnull().sum()

使用此选项,您可以确定是否存在
nan
inf
值。然后你可以
fillna

从我在你的代码中看到的,你只检查
nan
,而不是
inf
。也许有更好的方法使用
numpy
,但是
pandas
方法应该可以:

with pd.option_context('mode.use_inf_as_na', True):
    pd.DataFrame(train_features).isnull().sum() #Will show you which columns have nan or inf values
    pd.DataFrame(train_labels).isnull().sum()

使用此选项,您可以确定是否存在
nan
inf
值。然后你可以
fillna

我用
np.all(np.isfinite(train\u features))
分别测试了
inf
。不幸的是,我不能使用pandas函数,因为它们都是为了随机林的目的而制作成数组的。但是你可以使用
pd.dataframe()
将数组转换成数据帧,如答案中所述。您的代码中还缺少什么?也许是后路改造?你在把值转换成日志吗?对不起,我没看到。我输入了您提供的代码,但在运行培训时仍然存在nan错误。我已经用我完整的相关代码更新了帖子。如果你在相关代码的第二行添加
print(features.isnull().sum().sum())
,你会得到零吗?如果你在我的回答中使用
with
语句,它仍然是零吗?我在变为数组之前运行了11,在得到
之后运行'numpy.ndarray'对象没有属性'isnull'
我使用
np.all(np.isfinite(train\u特性))
分别测试了
inf
我只是没有把它放进去,我的坏孩子。不幸的是,我不能使用pandas函数,因为它们都是为了随机林的目的而制作成数组的。但是你可以使用
pd.dataframe()
将数组转换成数据帧,如答案中所述。您的代码中还缺少什么?也许是后路改造?你在把值转换成日志吗?对不起,我没看到。我输入了您提供的代码,但在运行培训时仍然存在nan错误。我已经用我完整的相关代码更新了帖子。如果你在相关代码的第二行添加
print(features.isnull().sum().sum())
,你会得到零吗?如果您在我的回答中使用
with
语句执行此操作,它仍然为零吗?我在更改为数组之前运行了11,在get
'numpy.ndarray'对象没有属性'isnull'之后运行。