Python,SciKit学习-如何使用带有缺失值的'predict_proba()'(';NaN';)

Python,SciKit学习-如何使用带有缺失值的'predict_proba()'(';NaN';),python,scikit-learn,logistic-regression,Python,Scikit Learn,Logistic Regression,我正在运行一个分类算法,该算法对包含缺失值(NaN)的数据使用逻辑回归 数据集是NetCDF文件中地理参考的海洋数据,缺少的值只是陆地上的值,因此没有数据。是否有一种方法可以在海洋数据上运行上述代码,但要保持NAN在数据集中的位置,以便我以后可以正确地绘制结果?还是我误解了predict\u proba函数的工作原理 您可以删除NAs示例,也可以为该专栏添加mean或其他预处理。您好@sunnyshinsolanki,谢谢您的评论。我很高兴删除这些值,但我希望能够保留它们的位置,并在计算概率后将

我正在运行一个分类算法,该算法对包含缺失值(
NaN
)的数据使用逻辑回归


数据集是NetCDF文件中地理参考的海洋数据,缺少的值只是陆地上的值,因此没有数据。是否有一种方法可以在海洋数据上运行上述代码,但要保持NAN在数据集中的位置,以便我以后可以正确地绘制结果?还是我误解了
predict\u proba
函数的工作原理

您可以删除NAs示例,也可以为该专栏添加mean或其他预处理。您好@sunnyshinsolanki,谢谢您的评论。我很高兴删除这些值,但我希望能够保留它们的位置,并在计算概率后将NaN放回原位?否则我的网格数组就不正确了。你将无法通过删除1个值来猜测概率,其中预测将发生在1个以上的未来。您必须删除存在NAN的行。你不会得到他们的概率。如果你想要一些值为NAN的行的概率,那么你可以把NAN所在列的平均值放进去。谢谢@sunnyshinsolanki,我想现在我只需要把一些可笑的值放进去,使预测的概率为0,然后把NAN替换回来。直到我有一个更好的方法来忽略这些值。你可以使用均值。如果您使用的是pandas dataframe,那么可以使用函数fillna来填充NAN。它有一个名为method的参数,其值ffil(正向填充)对您的情况非常有用。如果您想输入0,那么使用df.fillna(0)。
probs = lr_model.predict_proba(data[['var1','var2']])

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