数据挖掘——主成分分析

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

# 导入库
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坐标轴标签 

数据挖掘——主成分分析_第1张图片

 

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

热力图 

数据挖掘——主成分分析_第2张图片

 

你可能感兴趣的:(数据挖掘,python,机器学习)