Estou treinando um classificador de floresta aleatória em python sklearn
, veja o código abaixo-
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier(random_state=42)
rf.fit(X = df.drop("AP", axis =1), y = df["AP"].astype(int))
Quando prevejo os valores usando este classificador em outro conjunto de dados que possui NaN
valores, o modelo fornece alguma saída. Nem isso, tentei prever a saída em uma linha com todas as variáveis como NaNs
, e ele previu as saídas.
#making a row with all NaN values
row = pd.DataFrame([np.nan] * len(rf.feature_names_in_), index=rf_corn.feature_names_in_).T
rf.predict(row)
Ele prevê-
array([1])
Sei que o RandomForestClassifier no Scikit-learn não oferece suporte nativo a valores ausentes. Portanto, eu esperava um ValueError, não uma previsão.
Posso ignorar as linhas NaN e prever apenas linhas não nan, mas estou preocupado se há algo errado com este classificador. Qualquer informação será bem-vinda.
Na versão mais recente do scikit-learn (v1.4), eles adicionaram suporte para valores ausentes no RandomForestClassifier quando o critério é gini (padrão).
Fonte: https://scikit-learn.org/dev/whats_new/v1.4.html#id7