Python - удаление постоянных функций из набора данных
Те объекты, которые содержат постоянные значения (т.е. только одно значение для всех выходных или целевых значений) в наборе данных, называются постоянными объектами. Эти функции не предоставляют никакой информации целевой функции. Это избыточные данные, доступные в наборе данных. Наличие этой функции не влияет на цель, поэтому рекомендуется удалить эти функции из набора данных. Этот процесс удаления избыточных функций и сохранения только необходимых функций в наборе данных осуществляется с помощью метода фильтрации методов выбора функций.
Теперь давайте посмотрим, как мы можем удалить постоянные функции в 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. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.