机器学习中的降维

China☆狼群 提交于 2020-01-24 15:06:58

1. 啥是降维?

摘自维基百科
在机器学习和统计学领域,降维是指在某些限定条件下,降低随机变量个数,得到一组“不相关”主变量的过程。 降维可进一步细分为变量选择和特征提取两大方法。
简单来说,如果你的数据集是由下面几个成分组成:

 1.降雨量
 2.湿度
 3.房屋价格
 4.健康指数

我们显然可以判断,前两个数据具有明显的相关性,意思就是, 我们的原始数据就有比较大的冗余, 这对我们进行模型训练是无作用的,因此我们可以通过降维达到:

1. 平均湿度
2. 房屋价格
3. 健康指数

这就是一个改进版的训练集,一般都会在数据预处理阶段对数据先降个维。

2. 降维的方法是啥?

特征选择: 这里不是特征提取,而是特征提取之后, 再从提取的特征之中筛选几个

1.过滤式选择

1.1 方差选择(低方差特征过滤, 删除低方差的特征项)
from sklearn. feature_selection import VarianceThreshold

	def featur_Select():
		data = pd.read_csv("feature.csv")
		#data =data.iloc[:,1:-2]
		print("\n")
		transfer = VarianceThreshold(threshold = 阈值)
		result =  transfer.fit_transform(data)
		print(result)

1.2 相关系数
我们此处使用皮尔森相关系数:从-1 到 +1 (负相关最强 到 正相关最强)

from scipy.status import  pearsonr
	
	def  pearsonr_ Selection():
		data = 某个字典 。。
		# 只能一次算两个数据的相关性
		relationship  = pearsonr(data[x], data[y]) 
		print(relationship)		

即使我们知道了两个数据的相关系数很强,接近一,这代表我们不得不去丢弃一部分数据,怎么丢弃?方法如下:

  1. 选取其中一个
  2. 加权求和
  3. 主成分分析PCA

主要讲讲主成分分析:
对水壶拍摄: 照出来的就是二维的,三维降到二维。 但是想从照片还原到实物就不是那么简单了,我们要求拍照者选定合适的角度, 比如倾斜45度的时候,我们可以较全面地观察到这个水壶; 而不是正视,正视我们只能看到正面,几乎不可能还原。

PCA就是,保留尽可能多的信息的降维

from sklearn.decomposition import pca

def pca_demo():
	data = [[2,8,4,5],  [6,3,0,8], [2,3,4,1]]
	# n_components 就是目标维度, 整数代表几个维度,浮点数代表信息百分比数
	#比如你给个0.5原本的四个特征不一定就成了两个特征, 而有可能是三个
	#比如你给个0.98,可能只剩下了两个特征
	pca =  PCA(n_components) 
	data_new = pca.fir_transform(data)
	print(data_new)

嵌入式选择

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!