数据挖掘——主成分分析

 主成分分析:将多变量降维成少变量,在保持原有信息尽量完整的前提下,尽可能多的减少变量

# 导入库
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import seaborn as sns
%matplotlib inline
from sklearn.datasets import load_breast_cancer

# 加载数据库,转为dataframe
cancer = load_breast_cancer()
df = pd.DataFrame(cancer['data'],columns=cancer['feature_names'])
df.head()
  1. numpy、pandas、matplotlib:数据分析的常用库
  2. seaborn:数据可视化
  3. sklearn.datasets:从机器学习库中导入数据集
# PCA
from sklearn.preprocessing import StandardScaler
# 归一化
scaler = StandardScaler()
scaler.fit(df)
scaled_data = scaler.transform(df)
  1.  from sklearn.preprocessing import StandardScaler:机器学习库中的标准化
  2. StandardScaler().fit():算均值和方差
  3. StandardScaler().transform:算2.后的标准化
from sklearn.decomposition import PCA

#选取主成分个数,暂定为2 
pca = PCA(n_components=2)
pca.fit(scaled_data)
  1.  from sklearn.decomposition import PCA:机器学习库中的主成分分析
  2.  PCA(n_components=2):选取主成分个数,2个
  3. PCA(n_components=2).fit:用于训练
# 数据投影
x_pca = pca.transform(scaled_data)
  1.  pca.transform():将得到的主成分分析结果进行投影 
scaled_data.shape
  1.  获取表格的行列
x_pca.shape
# 可视化
plt.figure(figsize=(8,6))
plt.scatter(x_pca[:,0],x_pca[:,1],c=cancer['target'],cmap='rainbow')
plt.xlabel('First principal component')
plt.ylabel('Second Principal Component')
  1. 将数据结果可视化:figure画布,scatter、plot图标类型,xlabel、ylabel坐标轴标签 

 

pca.components_
  1. pca.components_:返回具有最大方差的主成分 
map= pd.DataFrame(pca.components_,columns=cancer['feature_names'])
plt.figure(figsize=(12,6))
sns.heatmap(map,cmap='twilight')

热力图 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值