Saltar al contenido

imputación de valor faltante en el ejemplo de código de Python

Si hallas algún problema con tu código o proyecto, recuerda probar siempre en un entorno de testing antes subir el código al trabajo final.

Ejemplo: marcar valores imputados

# Marking imputed valuesfrom sklearn.impute import MissingIndicator
X = np.array([[-1,-1,1,3]),[4,-1,0,-1],[8,-1,1,0]])
indicator = MissingIndicator(missing_values=-1)
mask_missing_values_only = indicator.fit_transform(X)
mask_missing_values_only
# array([[ True,  True, False],#        [False,  True,  True],#        [False,  True, False]])

indicator.features_
# array([0, 1, 3])

indicator = MissingIndicator(missing_values=-1, features="all")
mask_all = indicator.fit_transform(X)
mask_all
# array([[ True,  True, False, False],#        [False,  True, False,  True],#        [False,  True, False, False]])
indicator.features_
# array([0, 1, 2, 3])from sklearn.datasets import load_iris
from sklearn.impute import SimpleImputer, MissingIndicator
from sklearn.model_selection import train_test_split
from sklearn.pipeline import FeatureUnion, make_pipeline
from sklearn.tree import DecisionTreeClassifier
X, y = load_iris(return_X_y=True)
mask = np.random.randint(0,2, size=X.shape).astype(np.bool)
X[mask]= np.nan
  X_train, X_test, y_train, _ = train_test_split(X, y, test_size=100,
                                                 random_state=0)
  
transformer = FeatureUnion(
  transformer_list=[('features', SimpleImputer(strategy='mean')),('indicators', MissingIndicator())])
transformer = transformer.fit(X_train, y_train)
results = transformer.transform(X_test)
results.shape
# (100, 8)

clf = make_pipeline(transformer, DecisionTreeClassifier())
clf = clf.fit(X_train, y_train)
results = clf.predict(X_test)
results.shape
# (100,)

Agradecemos que desees añadir valor a nuestra información contribuyendo tu experiencia en las crónicas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *