那些在数据集中包含常量值(即, 所有输出或目标值仅一个值)的要素称为常量要素。这些功能不向目标功能提供任何信息。这些是数据集中可用的冗余数据。此功能的存在对目标没有影响, 因此最好从数据集中删除这些功能。删除冗余特征并仅在数据集中保留必要特征的过程属于特征选择方法的过滤方法。
现在, 让我们看看如何在Python中删除常量功能。
考虑为文章自行创建的数据集:
门户网站 | 文章的s_category | 观看次数 |
---|---|---|
极客 | python | 545 |
极客 | 数据科学 | 1505 |
极客 | 数据科学 | 1157 |
极客 | 数据科学 | 2541 |
极客 | 数学 | 5726 |
极客 | python | 3125 |
极客 | 数据科学 | 3131 |
极客 | 数学 | 6525 |
极客 | 数学 | 15000 |
代码:创建以上数据的DataFrame
# Import pandas to create DataFrame
import pandas as pd
# Make DataFrame of the given data
data = pd.DataFrame({ "Portal" :[ 'srcmini' , 'srcmini' , 'srcmini' , 'srcmini' , 'srcmini' , 'srcmini' , 'srcmini' , 'srcmini' , 'srcmini' ], "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 ]})
代码:将分类数据转换为数字数据
# 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" ]])
代码:将数据拟合到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]]
********** Separator **********
Earlier shape of data: (9, 3)
Shape after transformation: (9, 2)
如你所见, 我们有9个观测值和3个特征。
转换后, 我们有9个具有2个特征的观测值。我们可以清楚地看到删除的功能是”门户”。
首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。
评论前必须登录!
注册