使用具有NA值的字段进行张量流模型训练

时间:2018-08-14 13:55:46

标签: pandas tensorflow machine-learning

我正在尝试使用位于tensorflow的数据集来创建机器学习模型 https://www.kaggle.com/imnikhilanand/heart-attack-prediction

csv文件如下所示(请注意,我已将?替换为.,以便更易于用熊猫解析)

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

当我用熊猫解析时,.在熊猫的数据框中被读为NaN

由于使用NaN进行的任何操作都是NaN,因此馈送此数据会造成问题。

我的数据问题是数据不可用,有没有办法将这种数据馈送到模型并获得结果。

我发现的解决方案之一是用一些数字(例如0)代替它,但是这样做破坏了模型的准确性,我想避免这种情况。

1 个答案:

答案 0 :(得分:0)

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

机器学习中有一个(巨大的...)领域涉及数据插补,但在这里肯定不适用-通常仅在 some (即少数)时适用您的价值观缺失了,这远非如此。

  

我发现的解决方案之一是用一些数字(例如0)代替它,但是这样做破坏了模型的准确性,我想避免这种情况。

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

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