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