使用包含NA值的字段进行TensorFlow模型训练

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

CSV文件如下所示(请注意,我已经将?替换为.,这样使用pandas解析时会更容易)

age,sex,cp,trestbps,chol,fbs,restecg,thalach,exang,oldpeak,slope,ca,thal,num       28,1,2,130,132,0,2,185,0,0,.,.,.,029,1,2,120,243,0,0,160,0,0,.,.,.,029,1,2,140,.,0,0,170,0,0,.,.,.,0

当我使用pandas解析这个文件时,.在pandas的数据框中被读取为NaN

将此数据输入模型时出现了问题,因为任何与NaN进行的操作结果都会是NaN

我的问题是数据中存在不可用数据,有没有办法将这种数据输入模型并获得结果。

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


回答:

查看数据,并意识到scopecathal这三个属性的值大部分是缺失的,你最应该做的事情是将这些属性(列)完全从你的模型中移除。

机器学习中有一个(庞大…)的领域是关于数据填补的,但在这里几乎不适用——它通常适用于只有一些(即少数)值缺失的情况,而这里的情况远非如此。

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

这可以理解;如果你坚持要在这个方向上进行实验,不妨尝试用相应属性的均值(或中位数)来替换缺失的值(这是最简单的数据填补方法之一)。

如果你打算在这里使用深度学习模型,请注意仅有294个样本的数据集对于这种应用来说相当小…

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注