Python: eliminación de características constantes del conjunto de datos

Las características que contienen valores constantes (es decir, un solo valor para todas las salidas o valores objetivo) en el conjunto de datos se conocen como características constantes. Estas funciones no proporcionan ninguna información a la función de destino. Estos son datos redundantes disponibles en el conjunto de datos. La presencia de esta función no tiene efecto en el objetivo, por lo que es bueno eliminar estas funciones del conjunto de datos. Este proceso de eliminar características redundantes y mantener solo las características necesarias en el conjunto de datos se incluye en el método de filtro de Métodos de selección de características.

Ahora veamos cómo podemos eliminar características constantes en Python.

Considere el conjunto de datos de creación propia para el artículo:

Portal Categoría_del_artículo Puntos de vista
GeeksforGeeks Python 545
GeeksforGeeks Ciencia de los datos 1505
GeeksforGeeks Ciencia de los datos 1157
GeeksforGeeks Ciencia de los datos 2541
GeeksforGeeks Matemáticas 5726
GeeksforGeeks Python 3125
GeeksforGeeks Ciencia de los datos 3131
GeeksforGeeks Matemáticas 6525
GeeksforGeeks Matemáticas 15000

Código: Crear DataFrame de los datos anteriores

# Import pandas to create DataFrame
import pandas as pd
  
# Make DataFrame of the given data
data = pd.DataFrame({"Portal":['GeeksforGeeks', 'GeeksforGeeks', 'GeeksforGeeks', 'GeeksforGeeks', 'GeeksforGeeks', 
                               'GeeksforGeeks', 'GeeksforGeeks', 'GeeksforGeeks', 'GeeksforGeeks'],
                    "Article's_category":['Python', 'Data Science', 'Data Science', 'Data Science', 'Mathematics', 
                                          'Python', 'Data Science', 'Mathematics', 'Mathematics'],
                    "Views":[545, 1505, 1157, 2541, 5726, 3125, 3131, 6525, 15000]})

Código: convertir los datos categóricos en datos numéricos

# import ordinal encoder from sklearn
from sklearn.preprocessing import OrdinalEncoder
ord_enc = OrdinalEncoder()
  
# Transform the data
data[["Portal","Article's_category"]] = ord_enc.fit_transform(data[["Portal","Article's_category"]])

Código: ajusta los datos a VarianceThreshold.

# import VarianceThreshold
from sklearn.feature_selection import VarianceThreshold
var_threshold = VarianceThreshold(threshold=0)   # threshold = 0 for constant
  
# fit the data
var_threshold.fit(data)
  
# We can check the variance of different features as
print(var_threshold.variances_)

Salida: Varianza de diferentes características:

[0.00000000e+00 6.17283951e-01 1.76746269e+07]

Código: transformar los datos

print(var_threshold.transform(data))
print('*' * 10,"Separator",'*' * 10)
  
# shapes of data before transformed and after transformed
print("Earlier shape of data: ", data.shape)
print("Shape after transformation: ", var_threshold.transform(data).shape)

Producción:

[[2.000e+00 5.450e+02]
 [0.000e+00 1.505e+03]
 [0.000e+00 1.157e+03]
 [0.000e+00 2.541e+03]
 [1.000e+00 5.726e+03]
 [2.000e+00 3.125e+03]
 [0.000e+00 3.131e+03]
 [1.000e+00 6.525e+03]
 [1.000e+00 1.500e+04]]
********** Separator **********
Earlier shape of data:  (9, 3)
Shape after transformation:  (9, 2)

Como puede observar anteriormente, tuvimos 9 observaciones con 3 características.
Después de la transformación tenemos 9 observaciones con 2 características. Podemos observar claramente que la característica eliminada es ‘Portal’.

Publicación traducida automáticamente

Artículo escrito por mkumarchaudhary06 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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