Python - удаление постоянных функций из набора данных

Опубликовано: 19 Июля, 2021

Те объекты, которые содержат постоянные значения (т.е. только одно значение для всех выходных или целевых значений) в наборе данных, называются постоянными объектами. Эти функции не предоставляют никакой информации целевой функции. Это избыточные данные, доступные в наборе данных. Наличие этой функции не влияет на цель, поэтому рекомендуется удалить эти функции из набора данных. Этот процесс удаления избыточных функций и сохранения только необходимых функций в наборе данных осуществляется с помощью метода фильтрации методов выбора функций.

Теперь давайте посмотрим, как мы можем удалить постоянные функции в Python.

Рассмотрим самостоятельно созданный набор данных для статьи:

Портал Категория статьи Взгляды
GeeksforGeeks Python 545
GeeksforGeeks Наука о данных 1505
GeeksforGeeks Наука о данных 1157
GeeksforGeeks Наука о данных 2541
GeeksforGeeks Математика 5726
GeeksforGeeks Python 3125
GeeksforGeeks Наука о данных 3131
GeeksforGeeks Математика 6525
GeeksforGeeks Математика 15000

Код: Создайте DataFrame из вышеуказанных данных




# 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 ]})

Код: преобразование категориальных данных в числовые.

Код: подогнать данные к 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_)

Результат: Различие различных характеристик:

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

Код: преобразование данных




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)

Выход:

[[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]]
********** Разделитель **********
Более ранняя форма данных: (9, 3)
Форма после преобразования: (9, 2)

Как вы можете заметить ранее, у нас было 9 наблюдений с 3 особенностями.
После преобразования у нас есть 9 наблюдений с 2 особенностями. Мы ясно видим, что удаленная функция - это «Портал».

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.