降维——PCA

PCA:
参考:https://www.cnblogs.com/pinard/p/6239403.html
目的:提取有价值的信息
目标:希望投影后的值尽可能分散

选择K个单位正交基,使得原始数据变换到这组基上后,各字段两两协方差为0,字段的方差尽可能大
(1)先对数据进行去中心化
(2)构建协方差矩阵(对角线为方差,其他元素为协方差):
目标:对角线最大,其他值为0
(3)进行对角化处理:
求出特征值;
求特征值最大的K个特征向量;
单位化特征向量,变换坐标

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from sklearn.datasets.samples_generator import make_blobs

x,y=make_blobs(n_samples=1000,n_features=3,centers=[[3,3, 3], [0,0,0], [1,1,1], [2,2,2]], cluster_std=[0.2, 0.1, 0.2, 0.2], random_state =9)
fig=plt.figure()
ax=Axes3D(fig,rect=[0,0,1,1],elev=30,azim=20)
plt.scatter(x[:,0],x[:,1],x[:,2],marker='o')
#三维
from sklearn.decomposition import PCA
pca=PCA(n_components=3)
pca.fit(x)
print(pca.explained_variance_ratio_)
print(pca.explained_variance_)
#二维
pca=PCA(n_components=2)
pca.fit(x)
print(pca.explained_variance_ratio_)
print(pca.explained_variance_)
#指定比例
pca=PCA(n_components=0.95)
pca.fit(x)
print(pca.explained_variance_ratio_)
print(pca.explained_variance_)
print(pca.n_components_)
#指定比例
pca=PCA(n_components=0.99)
pca.fit(x)
print(pca.explained_variance_ratio_)
print(pca.explained_variance_)
print(pca.n_components_)
#mle算法自动选择
pca=PCA(n_components='mle')
pca.fit(x)
print(pca.explained_variance_ratio_)
print(pca.explained_variance_)
print(pca.n_components_)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值