个性化阅读
专注于IT技术分析

Python从数据集中移除常量特征介绍

那些在数据集中包含常量值(即, 所有输出或目标值仅一个值)的要素称为常量要素。这些功能不向目标功能提供任何信息。这些是数据集中可用的冗余数据。此功能的存在对目标没有影响, 因此最好从数据集中删除这些功能。删除冗余特征并仅在数据集中保留必要特征的过程属于特征选择方法的过滤方法。

现在, 让我们看看如何在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课程。


赞(0) 打赏
未经允许不得转载:srcmini » Python从数据集中移除常量特征介绍
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏