classificadores no scikit-learn que manipulam nan / null

Eu queria saber se existem classificadores que lidam com valores nan / nulos no scikit-learn. Eu pensei que o regressor de floresta aleatório lida com isso, mas recebi um erro quando ligopredict.

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!

Não posso chamar prever com qualquer algoritmo scikit-learn com valores ausentes?

Editar. Agora que penso sobre isso, faz sentido. Não é um problema durante o treinamento, mas quando você prevê como se ramifica quando a variável é nula? talvez você possa dividir os dois lados e calcular a média do resultado? Parece que o k-NN deve funcionar bem, desde que a função distance ignore nulos.

Editar 2 (mais antigo e mais sábio) Algumas bibliotecas gbm (como xgboost) usam uma árvore ternária em vez de uma árvore binária exatamente para esse fim: 2 filhos para a decisão sim / não e 1 filho para a decisão que falta. sklearn éusando uma árvore binária

questionAnswers(3)

yourAnswerToTheQuestion