我正在尝试使用位于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)代替它,但是这样做破坏了模型的准确性,我想避免这种情况。
答案 0 :(得分:0)
查看data,并意识到三个属性scope
,ca
和thal
中的值的绝大多数丢失,您应该做的最确定的事情就是从建模中完全删除这些属性(列)。
机器学习中有一个(巨大的...)领域涉及数据插补,但在这里肯定不适用-通常仅在 some (即少数)时适用您的价值观缺失了,这远非如此。
我发现的解决方案之一是用一些数字(例如0)代替它,但是这样做破坏了模型的准确性,我想避免这种情况。
这是可以理解的;如果您确实坚持朝这个方向进行实验,请尝试使用相应属性的平均值(或中位数)替换缺失值(这是最简单的数据插补方法之一)。
如果您打算在这里使用深度学习模型,还请注意,对于这样的应用程序,只有294个样本的数据集相当小...