Pandas 使用具有NA值的字段进行tensorflow模型训练

Pandas 使用具有NA值的字段进行tensorflow模型训练,pandas,tensorflow,machine-learning,Pandas,Tensorflow,Machine Learning,我正在尝试使用tensorflow创建一个机器学习模型,使用的数据集位于 csv文件如下所示(请注意,我已将?替换为,以便更容易用pandas解析) 当我用panda解析时,在panda的数据框中被读取为NaN 由于使用NaN的任何操作都将是NaN,因此输入此数据会产生问题 我的数据问题是不可用的数据,是否有一种方法可以将此类数据提供给模型并获得结果 我找到的一个解决方案是用一些数字(如0)替换它,但这样做会破坏模型的准确性,我想避免这种情况。查看,并意识到三个属性范围,ca和thal中的绝大

我正在尝试使用tensorflow创建一个机器学习模型,使用的数据集位于

csv文件如下所示(请注意,我已将
替换为
,以便更容易用pandas解析)

当我用panda解析时,
在panda的数据框中被读取为
NaN

由于使用
NaN
的任何操作都将是
NaN
,因此输入此数据会产生问题

我的数据问题是不可用的数据,是否有一种方法可以将此类数据提供给模型并获得结果

我找到的一个解决方案是用一些数字(如0)替换它,但这样做会破坏模型的准确性,我想避免这种情况。

查看,并意识到三个属性
范围
ca
thal
中的绝大多数值都丢失了,您应该做的最确定的事情是从建模中完全删除这些属性(列)

机器学习中有一个(巨大的…)领域涉及数据插补,但它在这里肯定不适用-当您的值中只有一部分(即一小部分)缺失时,它通常适用,而这里的情况远非如此

我找到的一个解决方案是用一些数字(比如0)替换它,但这样做会破坏模型的准确性,我想避免这种情况

这是可以理解的;如果您坚持在这个方向上进行实验,请尝试用相应属性的平均值(或中位数)替换缺少的值(这是最简单的数据插补方法之一)


如果您打算在这里使用深度学习模型,还请注意,对于这样的应用程序,只有294个样本的数据集非常小……

您可以删除缺少数据的行或列。这不是最好的解决方案,因为最终可能会得到少量数据,而这些数据可能不会给您带来令人满意的结果。
age,sex,cp,trestbps,chol,fbs,restecg,thalach,exang,oldpeak,slope,ca,thal,num       
28,1,2,130,132,0,2,185,0,0,.,.,.,0
29,1,2,120,243,0,0,160,0,0,.,.,.,0
29,1,2,140,.,0,0,170,0,0,.,.,.,0