Python: 在不填补缺失数据的情况下进行机器学习

我目前正在处理一个相当特殊的数据集:它有大约1000列和100万行,但大约90%的值是NaN。这并不是因为记录质量差,而是因为数据代表对个体的测量,每个个体只有大约100个特征是相关的。因此,填补缺失值会完全破坏数据中的信息。

仅仅将具有相同特征的个体归为一组,并只考虑每个子组相关的列也并不容易,因为这实际上会导致每组列的群体非常小(对于给定的个体,几乎任何填充列的组合都是可能的)。

问题是,scikit-learn的降维方法无法处理缺失值。是否有可以处理的软件包,或者我应该使用不同的方法并跳过降维?


回答:

你可以使用能够处理缺失值的梯度提升软件包,这对你的情况非常理想。你提到需要软件包,R中的gbm和Python中的xgboost都可以使用。如果你想了解xgboost如何自动处理缺失值,可以阅读这篇论文的第3.4节以获得见解。

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中创建了一个多类分类项目。该项目可以对…

发表回复

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