Python代码 十二种必须掌握的降维知识( 二 )


3.常用的降维技术
降维可以通过两种不同的方式完成:

  • 仅保留原始数据集中最相关的变量(此技术称为特征选择)通过查找较小的一组新变量 , 每个变量都是输入变量的组合 , 包含与输入变量基本相同的信息(此技术称为降维)
我们现在将介绍各种降维技术以及如何在Python中实现它们 。
3.1缺失值比率
假设你有一个数据集 。你的第一步是什么?在构建模型之前 , 你应该会希望先探索数据 。在研究数据时 , 你会发现数据集中存在一些缺失值 。怎么办?你将尝试找出这些缺失值的原因 , 然后将输入它们或完全删除具有缺失值的变量(使用适当的方法) 。
如果我们有太多的缺失值(比如说超过50%)怎么办?我们应该输入这些缺失值还是直接删除变量?我宁愿放弃变量 , 因为它没有太多的信息 。然而 , 这不是一成不变的 。我们可以设置一个阈值 , 如果任何变量中缺失值的百分比大于该阈值 , 我们将删除该变量 。
让我们在Python中实现这种方法 。
#导入所需要的库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
首先 , 让我们加载数据:
#读取数据
train=pd.read_csv("Train_UWu5bXk.csv")
注意:应在读取数据时添加文件的路径 。
现在 , 我们将检查每个变量中缺失值的百分比 。我们可以使用.isnull().sum()来计算它 。
#检查每个变量中缺失值的百分比
train.isnull().sum()/len(train)*100
Python代码 十二种必须掌握的降维知识

文章插图
 
正如你在上表中所看到的 , 并没有太多的缺失值(实际上只有2个变量具有缺失值) 。我们可以使用适当的方法来输入变量 , 或者我们可以设置阈值 , 比如20% , 并删除具有超过20%缺失值的变量 。让我们看看如何在Python中完成此操作:
#保存变量中缺失的值
a = train.isnull().sum()/len(train)*100
#将列名保存在变量中
variables = train.columns
variable = [ ]
for i in range(0,12):
if a[i]<=20: #将阈值设置为20%
variable.Append(variables[i])
因此 , 要使用的变量存储在“variables”中 , 它只包含哪些缺失值小于20%的特征
3.2低方差过滤器
假设我们的数据集中的一个变量 , 其中所有观察值都是相同的 , 例如1 。如果我们要使用此变量 , 你认为它可以改进我们将要建立的模型么?答案当然是否定的 , 因为这个变量的方差为零 。
因此 , 我们需要计算给出的每个变量的方差 。然后删除与我们的数据集中其他变量相比方差比较小的变量 。如上所述 , 这样做的原因是方差较小的变量不会影响目标变量 。
让我们首先使用已知Item


推荐阅读