machine-learning - 处理 SVM 中缺失的属性

标签 machine-learning scikit-learn classification svm missing-data

我有一个包含 2500 条记录的数据集。每条记录有 100 个属性。我面临的问题是,其中许多记录缺少一个(或多个)属性。由于这样的记录数量很大(大约800条),我不能忽视这些记录。我的所有属性都是数字。我的目标属性是绝对的。它有 6 个可能的类别。我计划使用 SVM 分类器进行训练。

我应该使用什么方法来处理缺失的属性值?

此外,我的测试数据也包含缺失的属性。如何处理测试数据中的缺失值?

最佳答案

由于 2500 个数据集中的 800 个实例相当高,因此删除它们可能确实不是最佳选择。

由于您正在处理数字属性,因此常见的技术是找到一些可用于缺失数据的通用值。通常出于这些目的选择均值

sklearn 提供了一个预处理器,可以在 sklearn.preprocessing.Imputer 中执行此操作

一个例子:

from sklearn.preprocessing import Imputer
imp = Imputer(missing_values='NaN', strategy='mean', axis=0)
imp.fit([[1, 2], [np.nan, 3], [7, 6]])

当然,最好的解决方案是请领域专家填写缺失的值,但这通常是不可能的。

关于machine-learning - 处理 SVM 中缺失的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37342315/

相关文章:

python - Python sklearn coef_ 输出中的 target 是什么?

Python (numpy) 因大量数组元素而导致系统崩溃

python - 识别航拍图像上的人行横道

python - 更深的卷积神经网络可以得到更少的参数吗?

matlab - 使用批量梯度下降的错误权重

machine-learning - 计算朴素贝叶斯分类中的概率

python - 如何在 python 中执行 xgboost 的网格搜索?

python - Pytorch 从 Dataloader 加载两个图像

scikit-learn - 如何使用 scikit-learn 从决策树中获取区间限制?

python - 如何根据sklearn中的预测概率对实例进行排名