scikit-learn中处理nan / null的分类器

蒽铃

我想知道scikit-learn中是否有处理nan / null值的分类器。我以为随机森林回归器可以解决此问题,但在致电时出现错误predict

X_train = np.array([[1, np.nan, 3],[np.nan, 5, 6]])
y_train = np.array([1, 2])
clf = RandomForestRegressor(X_train, y_train)
X_test = np.array([7, 8, np.nan])
y_pred = clf.predict(X_test) # Fails!

我不能使用任何缺少值的scikit-learn算法调用预测吗?

编辑。现在我考虑一下,这是有道理的。在训练过程中这不是问题,但是当您预测变量为null时如何分支时?也许您可以同时拆分两种方法并取平均结果?只要距离函数忽略空值,似乎k-NN应该可以正常工作。

编辑2(较老和明智)一些gbm库(例如xgboost)正是出于此目的而使用三叉树而不是二叉树:2个孩子用于“是/否”决定,1个孩子用于缺失的决定。sklearn正在使用二叉树

杂货商

我做了一个例子,其中包含训练中缺少的值和测试集

我只是使用SimpleImputer选择了一种策略,用均值替换丢失的数据还有其他策略。

from __future__ import print_function

import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.impute import SimpleImputer


X_train = [[0, 0, np.nan], [np.nan, 1, 1]]
Y_train = [0, 1]
X_test_1 = [0, 0, np.nan]
X_test_2 = [0, np.nan, np.nan]
X_test_3 = [np.nan, 1, 1]

# Create our imputer to replace missing values with the mean e.g.
imp = SimpleImputer(missing_values=np.nan, strategy='mean')
imp = imp.fit(X_train)

# Impute our data, then train
X_train_imp = imp.transform(X_train)
clf = RandomForestClassifier(n_estimators=10)
clf = clf.fit(X_train_imp, Y_train)

for X_test in [X_test_1, X_test_2, X_test_3]:
    # Impute each test item, then predict
    X_test_imp = imp.transform(X_test)
    print(X_test, '->', clf.predict(X_test_imp))

# Results
[0, 0, nan] -> [0]
[0, nan, nan] -> [0]
[nan, 1, 1] -> [1]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

scikit-learn中多类问题的级联分类器

来自分类Dev

使用scikit-learn处理分类特征

来自分类Dev

使用scikit-learn处理分类特征

来自分类Dev

处理 scikit-learn MLPClassifier 的分类标签

来自分类Dev

scikit学习管道中的后处理分类器输出

来自分类Dev

Scikit-Learn中的分类数据转换

来自分类Dev

Scikit-learn Ridge分类器:提取类概率

来自分类Dev

Scikit-learn Ridge分类器:提取类概率

来自分类Dev

如何处理 Scikit.learn 管道中不平衡的 xgboost 多类分类?

来自分类Dev

使用scikit-learn处理太多分类功能

来自分类Dev

在scikit学习中评估SGD分类器的收敛性

来自分类Dev

评估scikit学习中SGD分类器的收敛性

来自分类Dev

使用scikit学习OneHotEncoder时如何处理分类数据中的缺失值(NaN)?

来自分类Dev

scikit-learn分类器中的得分函数位于哪里?

来自分类Dev

在scikit-learn中组合概率分类器的最佳方法

来自分类Dev

在scikit-learn python中结合两个不同的分类器结果

来自分类Dev

在scikit-learn的Pipeline中包含分类器以进行交叉验证是否有意义?

来自分类Dev

scikit-learn中多类分类器的平均值=“ micro”的精确召回曲线

来自分类Dev

如何使用scikit-learn执行集成(多分类器)分类?

来自分类Dev

scikit-learn获取分类的确定性/所选类别的分类器分数

来自分类Dev

scikit中的分类报告学习

来自分类Dev

在SciKit Learn中使用相同的预处理器缩放数据框中的多列

来自分类Dev

Python:如何正确处理熊猫DataFrame中的NaN,以在Scikit-learn中进行功能选择

来自分类Dev

在Android中使用经过训练的Scikit-learn svm分类器

来自分类Dev

带有scikit-learn的intel daal4py分类器

来自分类Dev

在 scikit-learn 中使用图像数据拟合支持向量分类器会产生错误

来自分类Dev

Python scikit-learn:为什么我的 LinearRegression 分类器的分数这么低?

来自分类Dev

如何预处理新实例进行分类,以使特征编码与使用Scikit-learn的模型相同?

来自分类Dev

如何在scikit中对分类数据使用一个热编码器?

Related 相关文章

  1. 1

    scikit-learn中多类问题的级联分类器

  2. 2

    使用scikit-learn处理分类特征

  3. 3

    使用scikit-learn处理分类特征

  4. 4

    处理 scikit-learn MLPClassifier 的分类标签

  5. 5

    scikit学习管道中的后处理分类器输出

  6. 6

    Scikit-Learn中的分类数据转换

  7. 7

    Scikit-learn Ridge分类器:提取类概率

  8. 8

    Scikit-learn Ridge分类器:提取类概率

  9. 9

    如何处理 Scikit.learn 管道中不平衡的 xgboost 多类分类?

  10. 10

    使用scikit-learn处理太多分类功能

  11. 11

    在scikit学习中评估SGD分类器的收敛性

  12. 12

    评估scikit学习中SGD分类器的收敛性

  13. 13

    使用scikit学习OneHotEncoder时如何处理分类数据中的缺失值(NaN)?

  14. 14

    scikit-learn分类器中的得分函数位于哪里?

  15. 15

    在scikit-learn中组合概率分类器的最佳方法

  16. 16

    在scikit-learn python中结合两个不同的分类器结果

  17. 17

    在scikit-learn的Pipeline中包含分类器以进行交叉验证是否有意义?

  18. 18

    scikit-learn中多类分类器的平均值=“ micro”的精确召回曲线

  19. 19

    如何使用scikit-learn执行集成(多分类器)分类?

  20. 20

    scikit-learn获取分类的确定性/所选类别的分类器分数

  21. 21

    scikit中的分类报告学习

  22. 22

    在SciKit Learn中使用相同的预处理器缩放数据框中的多列

  23. 23

    Python:如何正确处理熊猫DataFrame中的NaN,以在Scikit-learn中进行功能选择

  24. 24

    在Android中使用经过训练的Scikit-learn svm分类器

  25. 25

    带有scikit-learn的intel daal4py分类器

  26. 26

    在 scikit-learn 中使用图像数据拟合支持向量分类器会产生错误

  27. 27

    Python scikit-learn:为什么我的 LinearRegression 分类器的分数这么低?

  28. 28

    如何预处理新实例进行分类,以使特征编码与使用Scikit-learn的模型相同?

  29. 29

    如何在scikit中对分类数据使用一个热编码器?

热门标签

归档